Samba 中的 Badlock 安全漏洞 - CVE-2016-2118

Public Date: April 12, 2016, 13:51
已更新 April 15, 2016, 11:09 - English(英语) French Japanese Korean

此信息是否有帮助?

Resolved 状态
Important Impact
Red Hat 产品安全团在用于 Microsoft Windows Active Directory 架构基于 DCE/RPC 的 SAMR 和 LSA 协议中发现协议漏洞已为其分配 CVE-2016-2118 ,并将其评级为 重要 2016 年 4 月发布的 Samba 重要安全漏洞 里描述的级别从‘中等’至‘严重’的其他相关漏洞,也已公开。
注意:是一个协议方面的问题,它影响到所有实现这个协议的应用程序,包括 Samba - CVE-2016-2118 和 Microsoft Windows - CVE-2016-0128。

背景资料

DCE/RPC 用来定义 API 及跨网络协议的远程过程调用机制规范。 Security Account Manager(SAM)远程协议(客户端到服务器)为帐户存储或包含用户和组的目录提供管理功能。该协议可为本地及远程 Microsoft Active Directory 域显示开放帐户数据库。 本地安全认证(域策略)远程协议是用来管理不同机器和域的安全策略。 这个协议可启用远程策略管理方案,但有少数情况例外。 SAMR 和 LSA 协议均基于 DCE 1.1 RPC 协议。
这些协议通常包含在所有 Windows 安装以及每一台 Samba 服务器中。它们是用来维护 Security Account Manager 数据库。这可用于所有角色(例如: 独立机器控制器或者域成员)

特此鸣谢

Red Hat 愿籍此机会感谢 Samba 项目组报告这个问题,特别是首先发现这个问题的 Stefan Metzmacher(SerNet)。

受影响的产品

Red Hat 产品安全团队已将这个问题评级为 重要 2016 年 4 月 发布的 Samba 重要安全漏洞里描述的 其他级别从‘中等’到‘严重’的漏洞也已公开。你可以在 Badlock: SAMR and LSA protocol man-in-the-middle attack against Samba (CVE-2016-2118) 里找到关于 Badlock 的其他信息。

以下 Red Hat 产品版本会受到影响:

  • Red Hat Enterprise Linux 4*
  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Gluster Storage 3
Red Hat Enterprise Linux server 及 Red Hat Gluster Storage 中附带的 Samba 软件包的所有版本均会受此漏洞影响。

*您需要有活跃 ELS 订阅方可访问 RHEL 4 中的这个补丁。如果您没有活跃 ELS 订阅,请 联络 Red Hat 销售部 或您的具体销售代表以了解详情。

什么是 Red Hat Enterprise Linux 延长的生命周期支持附加组件(ELS)?

攻击描述及影响

任何一个由客户端启动,到服务器的授权 DCE/RPC 连接 用来作为 中间人攻击者模拟授权用户攻击该服务器中的 SAMR 或者 LSA 服务。结果是攻击者可获取 Security Account Manager 数据库的读取/写入权限,这样就会暴露所有密码及可能的敏感信息
客户端选择应用程序协议、认证类型例如: Kerberos 或者 NTLMSSP) 认证 等级(NONE、CONNECT、SIGN 或者 SEAL)在此均无关紧要。中间人攻击者 授权等级降级为 CONNECT 以接管该连接。 如下所述,Badlock 问题和一系列 CVE 都已被解决:

了解危险性

对于在 AD 环境中将 Samba 作为域成员使用的客户:

  • 如何探测:查找 smb.conf 文件中的 'security = ads'
    • 建议在 RHEL5 中迁移至 samba3x、RHEL6 中迁移至 samba(3.6)或 RHEL7 中迁移至 samba(4.2)
    • 迁移不是自动完成的,需事先规划,特别是 IDMAP,因为从 3.0 -> 3.6 以及从 3.6 -> 4.x 会有所变化。

对于在 NT 环境中将 Samba 作为域成员使用的客户:

  • 如何探测:查找 smb.conf 文件中的 'security = domain'
    • 建议在 RHEL5 中迁移至 samba3x、RHEL6 中迁移至 samba(3.6)或 RHEL7 中迁移至 samba(4.2)
    • 迁移不是自动完成的,需事先规划,特别是 IDMAP,因为从 3.0 -> 3.6 以及从 3.6 -> 4.x 会有所变化。

对于将 Samba 作为文件服务器使用的客户:

  • 如何探测:查找 'security = user' 或者 'security = ads' 或者 'security = domain' 或者 'security = standalone',以及 smb.conf 文件中定义的共享。
    • 建议在 RHEL5 中迁移至 samba3x、RHEL6 中迁移至 samba(3.6)或 RHEL7 中迁移至 samba(4.2)
    • 迁移不是自动完成的,需事先规划,特别是 IDMAP,因为从 3.0 -> 3.6 以及从 3.6 -> 4.x 会有所变化。

常见问题

  1. 我已更新了 Samba 服务器和客户端,我需要重启服务吗?
    • 不需要,当在您的系统应用更新时, smb 服务将自动重启。
  2. 我是否需要在我的架构中为 Samba 服务器和 Samba 客户端打补丁?
    • 您至少要更新 Samba 服务器。因为 Badlock 是一个协议漏洞,根据 Samba 架构的配置,服务器和客户端都可能会受影响。Red Hat 安全团队建议客户将两者都更新。
  3. 更新的补丁是否会破坏运行 Samba 旧版本的当前客户端
    • 这个安全建议收紧了用于配置 Samba 的安全选项。当更新了 Samba 服务器却没有更新客户端时,这可能会破坏相关配置。您可以回退到旧的不安全的选项来保持互用性,例如在 smb.conf文件里设置: allow dcerpc auth level connect = yes ,但既然这会导致某些攻击途径,Red Hat 产品安全团队强烈建议不要这样做。
  4. 我的 Samba 服务器实例没有与任何 Windows 域连接,这是否还会影响到我?
    • 是的,如果管理性用户使用非安全的客户端和 Samba 服务器通讯,或者使用安全客户端与不安全的 Samba 服务器通讯,man-in-the-middle 攻击者都可能利用这个漏洞。
  5. 加密可以保护我不受这个 MITM 攻击吗?
    • SMB 协议默认只加密凭证和命令,而文件是以明文进行传输的。我们推荐在对安全和隐私敏感的场合里使用加密来保护所有通讯。Samba 3.2 里添加了加密,但仅适用于 Samba 客户。Microsoft 在 Windows 8 和 Windows Server 2012 里添加了对 SMB 3.0 加密的支持。然而,这两种类型的加密都只保护 SMB 协商和命令完成后的通讯,如文件传输。这个阶段涉及上面强调的漏洞。虽然 Samba/SMB 加密是最佳实践,但还不足够防范这个漏洞。
  6. 修复了 Samba 的哪个版本?
    • Red Hat 正在所有支持的产品里更新 Samba 4.2/4.1/4.0/3.6/3.0 软件包(samba、samba3x、samba4),其中包括 IPA、OpenChange 和库(libtalloc、libtdb 和 libevent)等所需的依赖关系。

受影响的 配置

附带 Samba 服务器作为域成员的 Active Directory 架构会受此漏洞的影响。man-in-the-middle 攻击者会截取域成员和域控制器之间的 DCE/RPC 流量,以便模拟该客户端,并获取已授权用户帐户相同的权限。
任意配置为文件或打印服务器的 Samba 服务器会受这个漏洞的影响。

更新受影响的产品

Red Hat Enterprise Linux 4 - 延长的生命周期支持* samba (v3.0) RHSA-2016:0625
Red Hat Enterprise Linux 5 samba (v3.0) RHSA-2016:0621
Red Hat Enterprise Linux 5 samba3x (v3.6) RHSA-2016:0613
Red Hat Enterprise Linux 5.6 长生命周期 samba (v3.0) RHSA-2016:0623
Red Hat Enterprise Linux 5.6 长生命周期 samba3x (v3.6) RHSA-2016:0624
Red Hat Enterprise Linux 5.9 长生命周期 samba (v3.0) RHSA-2016:0623
Red Hat Enterprise Linux 5.9 长生命周期 samba3x (v3.6) RHSA-2016:0624
Red Hat Enterprise Linux 6 samba (v3.6) RHSA-2016:0611
Red Hat Enterprise Linux 6 samba4 (v4.0) RHSA-2016:0612
Red Hat Enterprise Linux 6.2 高级更新支持** samba (v3.6) RHSA-2016:0619
Red Hat Enterprise Linux 6.2 高级更新支持** samba4 (v4.0) RHSA-2016:0620
Red Hat Enterprise Linux 6.4 高级更新支持** samba (v3.6) RHSA-2016:0619
Red Hat Enterprise Linux 6.4 高级更新支持** samba4 (v4.0) RHSA-2016:0620
Red Hat Enterprise Linux 6.5 高级更新支持t** samba (v3.6) RHSA-2016:0619
Red Hat Enterprise Linux 6.5 高级更新支持t** samba4 (v4.0) RHSA-2016:0620
Red Hat Enterprise Linux 6.6 延长的更新支持 samba (v3.6) RHSA-2016:0619
Red Hat Enterprise Linux 6.6 延长的更新支持 samba4 (v4.0) RHSA-2016:0620
Red Hat Enterprise Linux 7 samba (v4.2) RHSA-2016:0612
Red Hat Enterprise Linux 7.1 延长的更新支持 samba (v4.1) RHSA-2016:0618
Red Hat Gluster Storage 3 (EL6) samba (v4.2) RHSA-2016:0614
Red Hat Gluster Storage 3 (EL7) samba (v4.2) RHSA-2016:0614

*您需要有活跃 ELS 订阅方可访问 RHEL4 中的这个补丁。如果您没有活跃 ELS 订阅,请 联络 Red Hat 销售部 或您的具体销售代表以了解详情。

什么是 Red Hat Enterprise Linux 延长的生命周期支持附加组件(ELS)?

**您需要有活跃 AUS 订阅方可访问 RHEL 6.X AUS 中的这个补丁。

迁移

在应用包含修复的软件包之前不使用私有帐号来访问 SMB/CIFS 服务可以降低风险。限制对物理硬件(控制台、服务器)的管理性访问,使验证不涉及任何网络通讯。

解决方案

新 smb.conf 配置选项
这个更新引进以下新 smb.conf 文件配置选项:
allow dcerpc auth level connect (G)
这个选项控制 DCE/RPC 服务是否 可以 和 DCERPC_AUTH_LEVEL_CONNECT 一起使用,它提供验证,但不能实现每条-消息 的完整性 (SIGN) ,也不能保护隐私 (SEAL)
有些接口,比如 SAMR、LSARPC 及 netlogon 有默认的 no 硬编码; epmapper、mgmt 和 rpcecho 有默认为 yes 的硬编码。
这个行为可根据接口名称(例如: lsarpc netlogon、samr、srvsvc、winreg 或者 wkssvc) 覆盖,方法是指定 'allow dcerpc auth level connect:interface = yes'。
这个选项会为任意具体实施限制生成优先顺序。 例如:
  • drsuapi 和 backupkey 协议要求 DCERPC_AUTH_LEVEL_PRIVACY;
  • dnsserver 协议要求 DCERPC_AUTH_LEVEL_INTEGRITY。
默认:allow dcerpc auth level connect = no
例如:allow dcerpc auth level connect = yes

Comments