更改日志
更改 1:2023 年 6 月 19 日:
|
|---|
本文内容
摘要
2022 年 11 月 8 日或之后发布的 Windows 更新使用弱 RC4-HMAC 协商通过身份验证协商解决了安全绕过和特权提升漏洞。
此更新将 AES 设置为尚未使用默认加密类型标记的帐户上的会话密钥的默认加密类型。
若要帮助保护环境,请在 2022 年 11 月 8 日或之后将发布的 Windows 更新安装到所有设备,包括域控制器。 请参阅 更改 1。
若要了解有关这些漏洞的更多信息,请参阅 CVE-2022-37966。
发现显式设置会话密钥加密类型
你可能在易受 CVE-2022-37966 影响的用户帐户上显式定义了加密类型。 使用以下 Active Directory 查询查找已显式启用 DES/RC4 但未启用 AES 的帐户:
-
Get-ADObject -Filter "msDS-supportedEncryptionTypes -bor 0x7 -and -not msDS-supportedEncryptionTypes -bor 0x18"
注册表项设置
安装 2022 年 11 月 8 日或之后的 Windows 更新后, Kerberos 协议将提供以下注册表项:
DefaultDomainSupportedEncTypes
| 注册表项 | HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\KDC |
|---|---|
| 值 | DefaultDomainSupportedEncTypes |
| 数据类型 | REG_DWORD |
| 数据值 | 0x27(默认) |
| 是否需要重启? | 否 |
备注 如果必须更改 Active Directory 用户或计算机的默认支持的加密类型,请手动添加和配置注册表项,以设置新的受支持的加密类型。 此更新不会自动添加注册表项。
Windows 域控制器使用此值来确定 Active Directory 中 msds-SupportedEncryptionType 值为空或未设置的帐户上支持的加密类型。 运行受支持版本的 Windows 操作系统的计算机会自动为 Active Directory 中的该计算机帐户设置 msds-SupportedEncryptionTypes。 这基于 Kerberos 协议允许使用的加密类型的配置值。 有关详细信息,请参阅 网络安全:配置 Kerberos 允许的加密类型。
Active Directory 中的用户帐户、组托管服务帐户和其他帐户未自动设置 msds-SupportedEncryptionTypes 值。
若要查找可以手动设置的受支持的加密类型,请参阅 支持的加密类型位标志。 有关详细信息,请参阅 应首先执行哪些操作来帮助准备环境并防止出现 Kerberos 身份验证问题。
已选择默认值 0x27(DES、RC4、AES 会话密钥)作为此安全更新所需的最小更改。 建议客户将值设置为 0x3C 以提高安全性,因为此值将允许使用 AES 加密票证和 AES 会话密钥。 如果客户遵循我们的指导,迁移到仅限 AES 的环境,不使用 RC4 的 Kerberos 协,我们建议客户将值设置为 0x38。 请参阅 更改 1。
与 CVE-2022-37966 相关的 Windows 事件
Kerberos 密钥分发中心缺少用于帐户的强密钥
| 事件日志 | 机制 |
|---|---|
| 事件类型 | 错误 |
| 事件源 | Kdcsvc |
| 事件 ID | 42 |
| 事件文本 | Kerberos 密钥分发中心缺少用于帐户的强密钥:accountname。 必须更新此帐户的密码,以防止使用不安全的加密。 请参阅 https://go.microsoft.com/fwlink/?linkid=2210019 了解详细信息。 |
如果发现此错误,则可能需要在设置 KrbtgtFullPacSingature = 3 或安装 2023 年 7 月 11 日或之后发布的 Windows 汇报之前重置 krbtgt 密码。 Microsoft 知识库的以下文章介绍了以编程方式为 CVE-2022-37967 启用强制模式的更新:
KB5020805:如何管理与 CVE-2022-37967 相关的 Kerberos 协议更改
有关如何执行此操作的详细信息,请参阅 GitHub 网站上的 New-KrbtgtKeys.ps1 主题。
常见问题解答 (FAQ) 和已知问题
我的环境在什么情况下容易受到攻击?
标记为显式 RC4 使用的帐户可能容易受到攻击。 此外,krbgt 账户内没有 AES 会话密钥的环境可能容易受到攻击。 如果要缓解此问题,请遵循有关如何识别漏洞的指南,并使用注册表项设置部分更新显式设置的加密默认值。
在域控制器上安装 2022 年 11 月 8 日或之后发布的更新后,我应首先执行哪些操作来帮助准备环境并防止出现 Kerberos 身份验证问题?
需要验证所有设备是否具有通用的 Kerberos 加密类型。 有关 Kerberos 加密类型的详细信息,请参阅解 密所选的受支持的 Kerberos 加密类型。
如果域控制器通过组策略禁用了 RC4,则没有常见 Kerberos 加密类型的环境以前可能由于自动添加 RC4 或添加 AES 而正常运行。 此行为已随 2022 年 11 月 8 日或之后发布的更新而更改,现在将严格遵循注册表项 msds-SupportedEncryptionTypes 和 DefaultDomainSupportedEncTypes 中设置的内容。
如果帐户未设置 msds-SupportedEncryptionTypes 或设置为 0,则域控制器假定默认值 为 0x27 (39),否则域控制器将使用注册表项 DefaultDomainSupportedEncTypes 中的设置。
如果帐户确实设置了 msds-SupportedEncryptionTypes,则此设置会得到遵守,并且可能会使无法配置一个常见的 Kerberos 加密类型,该类型被之前自动添加 RC4 或 AES 的行为屏蔽,这在 2022 年 11 月 8 日或之后发布更新后该行为将不再如此。
有关如何验证你是否具有常见的 Kerberos 加密类型的信息,请参阅问题 如何验证我的所有设备是否具有常见的 Kerberos 加密类型?
如何验证我的所有设备是否都具有通用的 Kerberos 加密类型?
有关安装 2022 年 11 月 8 日或之后 发布的更新后设备可能没有常见 Kerberos 加密类型的详细信息,请参阅 上一个问题。
如果已安装 2022 年 11 月 8 日或之后发布的更新,则可以通过查看 Microsoft-Windows-Kerberos-Key-Distribution-Center 事件 27 的事件日志来检测没有常见 Kerberos 加密类型的设备,该日志标识 Kerberos 客户端与远程服务器或服务之间的不连续加密类型。
安装 2022 年 11 月 8 日或之后发布的更新后,我的环境中出现 Kerberos 身份验证问题。是否需要在不运行域控制器角色的 Windows 客户端设备或 Windows Server 上解决这些问题?
在客户端或非域控制器角色服务器上 2022 年 11 月 8 日或之后发布的更新安装不应影响环境中的 Kerberos 身份验证。
在域控制器上安装 2022 年 11 月 8 日或之后发布的更新后,我遇到了内存泄漏,本地安全机构子系统服务 (LSASS.exe) 。我该怎么办?
若要缓解此已知问题,请以管理员身份打开命令提示符窗口,并临时使用以下命令将 注册表项 KrbtgtFullPacSignature 设置为 0:
-
reg add "HKLM\System\CurrentControlSet\services\KDC" -v "KrbtgtFullPacSignature" -d 0 -t REG_DWORD
注意
备注 解决此已知问题后,应将 KrbtgtFullPacSignature 设置为更高的设置,具体取决于环境允许的设置。 建议在环境准备就绪后立即启用强制模式。
后续步骤 我们正在努力研究解决方案,并将在即将发布的版本中提供更新。
为什么我的环境中的非 Windows 设备的 Kerberos 身份验证失败?
在域控制器上安装 2022 年 11 月 8 日或之后发布的更新后,所有设备必须根据需要支持 AES 票证签名,以符合 CVE-2022-37967 所需的安全强化。
后续步骤 如果已为非 Windows 设备运行最新的软件和固件,并且已验证 Windows 域控制器与非 Windows 设备之间存在可用的通用加密类型,则需要联系设备制造商 (OEM) 以获取帮助,或将设备替换为符合要求的设备。
注意
重要说明 我们不建议使用任何解决方法来允许不合规的设备进行身份验证,因为这可能会使你的环境容易受到攻击。
运行不受支持的 Windows 版本的设备无法再访问我环境中的资源。此外,无法从我环境中更新的 Windows 设备访问这些设备。我该怎么办?
不支持的 Windows 版本包括 Windows XP、Windows Server 2003、Windows Server 2008 SP2 和 Windows Server 2008 R2 SP1,除非你拥有 ESU 许可证。 如果你有 ESU 许可证,则需要安装 2022 年 11 月 8 日或之后发布的更新,并验证配置在所有设备之间是否具有通用加密类型。
后续步骤 安装更新(如果更新适用于你的 Windows 版本,并且你具有适用的 ESU 许可证)。 如果更新不可用,则需要升级到受支持的 Windows 版本,或将任何应用程序或服务移动到合规的设备。
注意
重要说明 我们不建议使用任何解决方法来允许不合规的设备进行身份验证,因为这可能会使你的环境容易受到攻击。
我的所有设备都具有通用加密类型,并配置为仅使用 AES。为什么在专门安装 2022 年 11 月 8 日更新后仍然看到 Kerberos 身份验证错误?
此已知问题已在 2022 年 11 月 17 日和 2022 年 11 月 18 日发布的带外更新中得到解决,用于在环境中的 所有 域控制器上安装。 无需安装任何更新或对环境中的其他服务器或客户端设备进行任何更改即可解决此问题。 如果对此问题使用了任何解决方法或缓解措施,则你不再需要它们,建议将它们删除。
若要获取这些带外更新的独立包,请在 Microsoft 更新目录中搜索 KB 编号。 可以手动将这些更新导入到 Windows Server Update Services (WSUS) 和 Microsoft Endpoint Configuration Manager。 有关 WSUS 说明,请参阅 WSUS 和目录站点。 有关配置管理器说明,请参阅 从 Microsoft 更新目录导入更新。
注意
备注以下更新在 Windows 更新不可用,并且不会自动安装。
累积更新:
注意
备注 在安装这些累积更新之前,无需应用任何以前的更新。 如果已安装 2022 年 11 月 8 日发布的更新,则在安装任何后续更新(包括上面列出的更新)之前,无需卸载受影响的更新。
独立更新:
- Windows Server 2012 R2:KB5021653
- Windows Server 2012:KB5021652
- Windows Server 2008 R2 SP1:2022 年 11 月 18 日发布KB5021651 ()
- Windows Server 2008 SP2:KB5021657
注意
注意
- 如果你只使用 Windows Server 这些版本的安全更新,则只需在 2022 年 5 月安装这些独立更新即可。 仅安全更新不是累积更新,还需要安装所有以前的仅安全更新才能完全更新。 每月汇总更新是累积更新,包括安全更新和所有质量更新。
- 如果使用每月汇总更新,则需要安装上面列出的独立更新来解决此问题,并安装 2022 年 11 月 8 日发布的每月汇总,以接收 2022 年 11 月的质量更新。 如果已安装 2022 年 11 月 8 日发布的更新,则在安装任何后续更新(包括上面列出的更新)之前,无需卸载受影响的更新。
我在 Windows 设备上使用应用程序,该应用程序使用 Kerberos 的非 Microsoft 实现,并且我遇到了 Kerberos 身份验证问题。我该怎么办?
如果已验证环境的配置,但仍遇到任何非 Microsoft 的 Kerberos 实现问题,则需要应用或设备的开发人员或制造商的更新或支持。
我在 Active Directory 中为所有配置为非零的帐户设置了 msds-SupportedEncryptionTypes,且没有任何加密类型位 (最低有效 5 位) ,但在域控制器上安装 2022 年 11 月 8 日或之后发布的更新后,身份验证失败。我该怎么办?
可以通过执行以下操作之一来缓解此已知问题:
使用按位设置 msds-SupportedEncryptionTypes ,或将其设置为当前默认 0x27 以保留其当前值。 例如:
-
Msds-SuportedEncryptionTypes -bor 0x27
-
将 msds-SupportEncryptionTypes 设置为 0 ,以允许域控制器使用默认值 0x27。
后续步骤 我们正在努力研究解决方案,并将在即将发布的版本中提供更新。
词汇表
高级加密Standard (AES)
高级加密标准 (AES) 是一种取代数据加密标准 (DES) 的块密码。 AES 可用于保护电子数据。 AES 算法可用于加密和解密信息。 加密过程是将数据转换为令人无法理解的形式(称为密文);解密密文的过程则是将数据转换回其原始形式(称为明文)。 AES 用于对称密钥加密,这意味着加密和解密操作将使用同一密钥。 它也是一种块密码,这意味着它会对固定大小的明文和密文块进行操作,并且要求明文和密文的大小是该块大小的精确倍数。 AES 也称为 Rijndael 对称加密算法 [FIPS197]。
Kerberos
Kerberos 是一种基于“票证”的计算机网络身份验证协议,允许节点通过网络进行通信,以安全的方式相互证明其身份。
密钥发行中心 (KDC)
实现 Kerberos 协议中指定的身份验证和票证授予服务的 Kerberos 服务。 该服务在领域或域的管理员选择的计算机上运行;它并不存在于网络上的每台计算机上。 它必须有权访问其所服务领域的帐户数据库。 KDC 已集成到 域控制器 角色中。 它是一种网络服务,向客户端提供票证,用于对服务进行身份验证。
RC4-HMAC
RC4-HMAC (RC4) 是一种可变密钥长度对称加密算法。 有关详细信息,请参阅 [SCHNEIER] 部分 17.1。
票证授予票证
可用于获取其他票证的特殊类型的票证。 在身份验证服务 (AS) 交换中初始身份验证后,获取票证授予票证 (TGT);此后,用户无需提供其凭据,但可以使用 TGT 获取后续票证。