重要: 本文中以前指示的发布日期已更改。 请注意“采取措施”和“这些 Windows 更新的时间安排”部分中的新发布日期。
摘要
密钥分发中心 (KDC) 在确定 Kerberos 服务票证是否可用于通过 Kerberos 约束委派 (KCD) 进行的委派时,其方式中存在一个安全功能绕过漏洞。 要利用此漏洞,配置用于使用 KCD 的被盗用的服务可能会篡改 Kerberos 服务票证,委派强制 KDC 接受票证时无效。 这些 Windows 更新通过更改 KDC 借助 KCD 验证 Kerberos 服务票证的方式来解决此漏洞。
若要详细了解此漏洞,请参阅 CVE-2020-17049。
采取操作 若要保护环境并防止中断,必须遵循以下所有步骤:
|
这些 Windows 更新的时间安排
这些 Windows 更新将分三个阶段发布:
-
2020 年 12 月 8 日或之后发布 Windows 更新后开始初始部署阶段。
-
第二个部署阶段,在 2021 年 4 月 13 日或之后,将删除 PerformTicketSignature 设置 0,并要求使用设置 1 或 2。
-
针对在 2021 年 7 月 13 日或之后发布的 Windows 更新的强制执行阶段。
2020 年 12 月 8 日:初始部署阶段
初始部署阶段从 2020 年 12 月 8 日发布的 Windows 更新开始,在强制执行阶段会继续安装后续发布的 Windows 更新。 这些以及后续 Windows 更新促成了 Kerberos 变更。 2020 年 12 月 8 日的更新包括对 2020 年 11 月 10 日 CVE-2020-17049 版本最初引入的所有已知问题的修复。 此更新还增加了对 Windows Server 2008 SP2 和 Windows Server 2008 R2 的支持。
该版本:
-
处理 CVE-2020-17049(默认在部署模式下)。
-
添加对 PerformTicketSignature 注册表值的支持,以在 Active Directory 域控制器服务器上启用保护。 默认情况下,此值不存在。
缓解措施包括在托管 Active Directory 域控制器角色和只读域控制器 (RODC) 的所有设备上安装 Windows 更新,然后启用强制模式。
2021 年 4 月 13 日:第二个部署阶段
第二个部署阶段从 2021 年 4 月 13 日发布的 Windows 更新开始。 此阶段将删除 PerformTicketSignature 设置 0。 安装此更新后,将 PerformTicketSignature 设置为 0 将具有与将 PerformTicketSignature 设置为 1 相同的效果。 DC 将处于“部署”模式。
注意
-
如果在你的环境中 PerformTicketSignature 从未设置为 0,则不需要此阶段。 此阶段有助于确保将 PerformTicketSignature 设置为 0 的客户在“强制”阶段之前更改为设置 1。
-
随着 2021 年 4 月 13 日更新的部署,将 PerformTicketSignature 设置为 1 使服务票证可续订。 这是 2021 年 4 月之前发布的 Windows 更新的行为变化,将 PerformTicketSignature 设置为 1 时导致服务票证无法续订。
-
此更新假定所有域控制器都安装了 2020 年 12 月 8 日更新或更高版本的更新。
-
安装此更新并以手动或编程方式将 PerformTicketSignature 设置为 1 或更高值后,不受支持的 Windows Server 域控制器将无法再与支持的域控制器一起工作。 这包括 Windows Server 2008 和不带扩展安全更新 (ESU) 的 Windows Server 2008 R2,以及 Windows Server 2003。
2021 年 7 月 13 日:强制执行阶段
2021 年 7 月 13 日发布的版本会过渡到强制执行阶段。 强制阶段将强制实施变更以处理 CVE-2020-17049。 Active Directory 域控制器现在支持强制模式。 转到强制模式要求所有 Active Directory 域控制器都安装了 2020 年 12 月 8 日更新或更高版本的 Windows 更新。 此时,将忽略 PerformTicketSignature 注册表项设置,并且无法覆盖强制模式。
安装指南
安装此更新前
应用此更新之前,您必须安装以下必需的更新项。 如果您使用 Windows Update,则会根据需要自动提供这些必需的更新项。
-
在应用此更新之前,必须安装日期为 2019 年 9 月 23 日的 SHA-2 更新 (KB4474419) 或更高版本的 SHA-2 更新,然后重新启动设备。 有关 SHA-2 更新的更多信息,请参阅针对 Windows 和 WSUS 的 2019 SHA-2 代码签名支持要求。
-
对于 Windows Server 2008 R2 SP1,必须安装日期为 2019 年 3 月 12 日的服务堆栈更新 (SSU) (KB4490628)。 更新 KB4490628 安装完成后,我们建议安装最新的 SSU 更新。 有关最新 SSU 更新的更多信息,请参阅 ADV990001 | 最新服务堆栈更新。
-
对于 Windows Server 2008 SP2,必须安装日期为 2019 年 4 月 9 日的服务堆栈更新 (SSU) (KB4493730)。 更新 KB4493730 安装完成后,我们建议安装最新的 SSU 更新。 有关最新 SSU 更新的详细信息,请参阅 ADV990001 | 最新的服务堆栈更新。
-
2020 年 1 月 14 日扩展支持到期后,客户需要购买本地版 Windows Server 2008 SP2 或 Windows Server 2008 R2 SP1 的扩展安全更新 (ESU)。 购买了 ESU 的客户必须遵循 KB4522133 中的步骤,才能继续接收安全更新。 有关 ESU 及受支持版本的更多信息,请参阅 KB4497181。
重要说明安装这些必需的更新后,必须重启系统。
安装所有更新
要解决此安全漏洞,请按照以下步骤安装 Windows 更新并启用强制模式:
-
至少部署一个在 2020 年 12 月 8 日到 2021 年 3 月 9 日之间发布的更新到林中所有的 Active Directory 域控制器。
-
完成步骤 1 后的至少一周之后或几周后部署 2021 年 4 月 12 日更新。
-
更新所有 Active Directory 域控制器后,请等待至少一周以允许所有未完成的 Service for User to Self (S4U2self) Kerberos 服务票证过期,然后可以通过部署 Active Directory 域控制器强制模式启用完全保护。
备注-
注 如果你已从默认设置(默认 7 天)修改了 Kerberos 服务票证的到期时间,则须至少等待环境中的配置天数。
-
这些步骤假定 PerformTicketSignature 在你的环境中从未设置为 0。 如果 PerformTicketSignature 设置为 0,则必须先移动到设置 1,然后再移动到设置 2(强制模式),并至少等待一周,以允许所有未完成的 Service User-to-Self (S4U2self) Kerberos 服务票证过期。 不应直接从设置 0 移动到设置 2(强制模式)。
-
步骤 1:安装 Windows 更新
将 2020 年 12 月 8 日或之后的 Windows 更新安装到林中托管 Active Directory 域控制器角色的所有设备上,包括只读域控制器。
Windows Server 产品 |
KB # |
更新类型 |
Windows Server 版本 20H2(服务器核心安装) |
安全更新 |
|
Windows Server 版本 2004(服务器核心安装) |
安全更新 |
|
Windows Server 版本 1909(服务器核心安装) |
安全更新 |
|
Windows Server 版本 1903(服务器核心安装) |
安全更新 |
|
Windows Server 2019 (服务器核心安装) |
安全更新 |
|
Windows Server 2019 |
安全更新 |
|
Windows Server 2016(服务器核心安装) |
安全更新 |
|
Windows Server 2016 |
安全更新 |
|
Windows Server 2012 R2(服务器核心安装) |
月度汇总 |
|
仅安全相关 |
||
Windows Server 2012 R2 |
月度汇总 |
|
仅安全相关 |
||
Windows Server 2012(服务器核心安装) |
月度汇总 |
|
仅安全相关 |
||
Windows Server 2012 |
月度汇总 |
|
仅安全相关 |
||
Windows Server 2008 R2 Service Pack 1 |
月度汇总 |
|
仅安全相关 |
||
Windows Server 2008 Service Pack 2 |
月度汇总 |
|
仅安全相关 |
步骤 2:启用强制模式
托管 Active Directory 域控制器角色的所有设备更新完成后,请至少等待一周时间,以便所有未完成的 S4U2self Kerberos 服务票证过期。 然后,通过部署强制模式启用全面保护。 为此,请启用 Enforcement 模式注册表项。
警告 使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 请自行承担修改注册表的风险。
备注 此更新引入了对以下注册表值的支持,以便启用 Enforcement 模式。 不通过安装此更新创建此注册表值。 你必须手动添加此注册表值。
注册表子项 |
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Kdc |
值 |
PerformTicketSignature |
数据类型 |
REG_DWORD |
数据 |
1:启用 Deployment 模式。 在域控制器上启用了修复程序,但 Active Directory 域控制器不要求 Kerberos 服务票证符合该修补程序。 此模式增加了对 CVE-2020-17049 更新域控制器上的票证签名的支持,但域控制器不需要签名票证。 这允许初始部署阶段(DC 已更新至 12 月的初始部署更新)和更新的域控制器的组合共存。 所有域控制器均已更新且设置为 1 时,将对所有新票证进行签名。 在此模式下,新票证将被标记为可续订。 2:启用 Enforcement 模式 这样可在所需模式下启用修补程序,此时必须更新所有域,且所有 Active Directory 域控制器的 Kerberos 服务票证必须签名。 使用此设置时,必须签署所有票证才能被视为有效。 在这种模式下,票证将再次被标记为可更新。 0:不推荐。 禁用 Kerberos 服务票证签名,你的域不受保护。 重要说明:设置 0 与强制设置 2 不兼容。 如果将域设置为 0,则在稍后阶段应用 Enforcement 模式时可能会发生间歇性身份验证失败。 我们建议客户在强制阶段之前(至少在强制执行之前一周)将域设置为 1。 |
默认为 |
1(未设置注册表项时) |
是否需要重启? |
否 |