更新日期:2022 年 7 月 8 日

摘要

CVE-2021-42291 解决了安全绕过漏洞,该漏洞允许某些用户对 Active Directory (AD) 中存储的特定对象的安全敏感属性上设置任意值。 要利用此漏洞,用户必须具有足够的权限才能创建计算机帐户,例如向用户授予计算机对象的 CreateChild 权限。 该用户可以创建一个计算机帐户,使用轻型目录访问协议 (LDAP) 添加调用,该调用允许对 securityDescriptor 属性进行过度允许的访问。 此外,创建者和所有者可以在创建帐户后修改安全敏感属性。

CVE-2021-42291 中的缓解措施包括:

  1. 没有域管理员权限的用户尝试对计算机派生的对象执行 LDAP 添加操作时,进行额外的授权验证。 这包括 Audit-By-Default 模式,该模式在此类尝试发生时进行审核,而不会干扰请求,以及阻止此类尝试的 Enforcement 模式。

  2. 当没有域管理员权限的用户尝试对 securityDescriptor 属性执行 LDAP 修改操作时,临时删除隐式所有者权限。 进行验证以确认是否允许用户在没有隐式所有者权限的情况下写入安全描述符。 这还包括 Audit-By-Default 模式,该模式在此类尝试发生时进行审核,而不干扰请求,以及阻止此类尝试的 Enforcement 模式。

采取操作

为了保护您的环境并避免中断,请完成以下步骤:

  1. 安装 2021 年 11 月 9 日 Windows 更新或后续 Windows 更新即可更新托管 Active Directory 域控制器角色的所有设备。 默认情况下,将在审核模式下实现更改。

  2. 在具有 2021 年 11 月 9 日或更高版本 Windows 更新的域控制器上监视目录服务事件日志中的 3044-3056 事件,这些更新在编程强制模式之前发布。 记录的事件表明用户可能具有创建具有任意安全敏感属性的计算机帐户的过多权限。 使用高级或统一支持案例或反馈中心向 Microsoft 报告任何意外情况。 (这些事件的示例可以在“新添加的事件”部分找到。)

  3. 如果审核模式在足够长的时间内未检测到任何意外权限,请切换到强制模式以确保不会出现负面结果。 使用高级或统一支持案例或反馈中心向 Microsoft 报告任何意外情况。

    重要说明 默认情况下,强制模式将在 2023 年 4 月 11 日或之后发布的更新中打开

Windows 更新时间安排

这些 Windows 更新将分两个阶段发布:

  1. 初始部署 - 引入更新,包括使用 dSHeuristics 属性配置的默认审计、强制或禁用模式。

  2. 最终部署 - 默认强制执行。

    重要说明 默认情况下,强制模式将在 2023 年 4 月 11 日或之后发布的更新中打开

2021 年 11 月 9 日:初始部署阶段

初始部署阶段从 2021 年 11 月 9 日发布的 Windows 更新开始。 此版本添加了在创建或修改计算机或计算机派生对象期间对没有域管理员权限的用户设置的权限进行审核。 还添加了强制和禁用模式。 可以使用 dSHeuristics 属性全局设置每个 Active Directory 林的模式。

(更新于 2022 年 7 月 8 日)2023 年 4 月 11 日:最终部署阶段

最终部署阶段从 2023 年 4 月 11 日或之后发布的 Windows 更新开始(待定)。 此阶段将默认更改为强制模式。

重要: 2023 年 4 月 11 日之后不支持禁用模式。

备注 此更新假定所有域控制器都使用 2021 年 11 月 9 日或更高版本的更新进行更新。

部署指南

设置配置信息

安装 CVE-2021-42291 后,dSHeuristics 属性的字符 28 和 29 控制更新的行为。 dSHeuristics 属性存在于每个 Active Directory 林中,并包含整个林的设置。 dSHeuristics 属性是"CN=目录服务,CN=Windows NT,CN=Services,CN=配置,<Domain>"对象的一个属性。 有关详细信息 ,请参阅 6.1.1.2.4.1.2 dSHeuristicsDS-启发 式属性。

字符 28 - LDAP 添加操作的附加 AuthZ 验证

0:启用默认审核模式。 当没有域管理员权限的用户将 securityDescriptor 或其他属性设置为可能授予过多权限的值(可能允许将来利用新计算机派生的 AD 对象)时,将记录事件。

1: 启用强制模式。 这可以防止没有域管理员权限的用户将 securityDescriptor 或其他属性设置为可能授予对计算机派生的 AD 对象的过多权限的值。 发生此情况时,也会记录事件。

2: 禁用更新的审核,不强制实施增加的安全性。 不建议。

例如:如果林中未启用其他 dSHeuristics 设置,并且想要切换到强制模式进行其他 AuthZ 验证,则 dSHeuristics 属性应设置为:

“0000000001000000000200000001”

在这种情况下设置的字符是:
第 10 个字符:如果 dSHeuristics 属性至少为 10 个字符,则必须设置为 1
第 20 个字符:如果 dSHeuristics 属性至少为 20 个字符,则必须设置为 2
第 28 个字符:必须设置为 1 才能启用附加 AuthZ 验证的强制模式

字符 29 - 针对 LDAP 修改操作临时删除隐式所有权

0:启用默认审核模式。 没有域管理员权限的用户将 securityDescriptor 设置为可能授予过多权限的值(可能允许将来利用现有计算机派生的 AD 对象)时,将记录事件。

1: 启用强制模式。 这可以防止没有域管理员权限的用户将 securityDescriptor 设置为可能授予对现有计算机派生 AD 对象过多权限的值。 发生此情况时,也会记录事件。

2:禁用更新的审核,不强制实施增加的安全性。 不建议。

例如:如果林中仅设置了其他 AuthZ 验证 dsHeuristics 标志,并且想要切换到强制模式以临时删除隐式所有权,则 dSHeuristics 属性应设置为:

“00000000010000000002000000011”

在这种情况下设置的字符是:
第 10 个字符:如果 dSHeuristics 属性至少为 10 个字符,则必须设置为 1
第 20 个字符:如果 dSHeuristics 属性至少为 20 个字符,则必须设置为 2
第 28 个字符:必须设置为 1 才能启用附加 AuthZ 验证的强制模式
第 29 个字符:必须设置为 1 才能启用临时删除隐式所有权的强制模式

新添加的事件

2021 年 11 月 9 日的 Windows 更新还将添加新的事件日志。

模式更改事件 - LDAP 添加操作的附加 AuthZ 验证

dSHeuristics 属性第 28 位更改时发生的事件,会更改针对更新的 LDAP 添加操作部分的附加 AuthZ 验证模式。

事件日志

目录服务

事件类型

信息

事件 ID

3050

事件文本

该目录已配置为在 LDAP 添加操作期间强制执行每个属性授权。

这是最安全的设置,无需进一步操作。

事件日志

目录服务

事件类型

警告

事件 ID

3051

事件文本

目录已配置为在 LDAP 添加操作期间不强制执行每个属性的授权。 将记录警告事件,但不会阻止任何请求。

此设置不安全,只应用作临时故障排除步骤。 请查看以下链接中的建议缓解措施。

事件日志

目录服务

事件类型

错误

事件 ID

3052

事件文本

目录已配置为在 LDAP 添加操作期间不强制执行每个属性的授权。 不会记录任何事件,并且不会阻止任何请求。

此设置不安全,只应用作临时故障排除步骤。 请查看以下链接中的建议缓解措施。

模式更改事件 - 暂时删除所有者隐式权限

dSHeuristics 属性第 29 位更改时发生的事件,会更改更新的隐式所有权权限部分的临时删除模式。

事件日志

目录服务

事件类型

信息

事件 ID

3053

事件文本

目录已配置为在 LDAP 添加和修改操作期间最初设置或修改 nTSecurityDescriptor 属性时阻止所有者隐式特权。

这是最安全的设置,无需进一步操作。

事件日志

目录服务

事件类型

警告

事件 ID

3054

事件文本

目录已配置为在 LDAP 添加和修改操作期间最初设置或修改 nTSecurityDescriptor 属性时允许所有者隐式特权。 将记录警告事件,但不会阻止任何请求。

此设置不安全,只应用作临时故障排除步骤。 

事件日志

目录服务

事件类型

错误

事件 ID

3055

事件文本

目录已配置为在 LDAP 添加和修改操作期间最初设置或修改 nTSecurityDescriptor 属性时允许所有者隐式特权。 不会记录任何事件,并且不会阻止任何请求。

此设置不安全,只应用作临时故障排除步骤。 

审核模式事件

在审核模式下发生的事件,用于记录 LDAP 添加或修改操作的潜在安全问题。

事件日志

目录服务

事件类型

警告

事件 ID

3047

事件文本

目录服务检测到针对以下对象的 LDAP 添加请求,该请求通常会由于以下安全原因而被阻止。

客户端无权根据默认的合并安全描述符写入添加请求中包含的一个或多个属性。

该请求被允许继续进行,因为目录当前配置为仅在审核模式下进行此安全检查。

对象 DN:<created object’s DN>

对象类:<created object’s objectClass>

用户:<user who attempted the LDAP add>

客户端 IP 地址:<the IP of the requestor>

安全性 desc:<the SD that was attempted>

事件日志

目录服务

事件类型

警告

事件 ID

3048

事件文本

目录服务检测到针对以下对象的 LDAP 添加请求,该请求通常会由于以下安全原因而被阻止。

客户端在添加请求中包括 nTSecurityDescriptor 属性,但没有基于默认合并的安全描述符写入新安全描述符的一个或多个部分的显式权限。

该请求被允许继续进行,因为目录当前配置为仅在审核模式下进行此安全检查。

对象 DN:<created object’s DN>

对象类:<created object’s objectClass>

用户:<user who attempted the LDAP add>

客户端 IP 地址:<the IP of the requestor>

事件日志

目录服务

事件类型

警告

事件 ID

3049

事件文本

目录服务检测到以下对象的 LDAP 修改请求,该对象通常由于以下安全原因被阻止。

客户端在添加请求中包括 nTSecurityDescriptor 属性,但没有基于默认合并的安全描述符写入新安全描述符的一个或多个部分的显式权限。

该请求被允许继续进行,因为目录当前配置为仅在审核模式下进行此安全检查。

对象 DN:<created object’s DN>

对象类:<created object’s objectClass>

用户:<user who attempted the LDAP add>

客户端 IP 地址:<the IP of the requestor>

事件日志

目录服务

事件类型

警告

事件 ID

3056

事件文本

目录服务针对下面指定的对象处理了 sdRightsEffective 属性的查询。 返回的访问掩码包含在WRITE_DAC,但仅因为目录已配置为允许隐式所有者权限,而该权限不是一个安全的设置。

对象 DN:<created object’s DN>

用户:<user who attempted the LDAP add>

客户端 IP 地址:<the IP of the requestor>

强制模式 - LDAP 添加失败

拒绝 LDAP 添加操作时发生的事件。

事件日志

目录服务

事件类型

警告

事件 ID

3044

事件文本

目录服务拒绝了针对以下对象的 LDAP 添加请求。 请求被拒绝,因为客户端无权根据默认的合并安全描述符写入添加请求中包含的一个或多个属性。

对象 DN:<created object’s DN>

对象类:<created object’s objectClass>

用户:<user who attempted the LDAP add>

客户端 IP 地址:<the IP of the requestor>

安全性 desc:<the SD that was attempted>

事件日志

目录服务

事件类型

警告

事件 ID

3045

事件文本

目录服务拒绝了针对以下对象的 LDAP 添加请求。 请求被拒绝,因为客户端在添加请求中包含 nTSecurityDescriptor 属性,但没有基于默认合并的安全描述符写入新安全描述符的一个或多个部分的显式权限。

对象 DN:<created object’s DN>

对象类:<created object’s objectClass>

用户:<user who attempted the LDAP add>

客户端 IP 地址:<the IP of the requestor>

强制模式 - LDAP 修改失败

LDAP 修改操作被拒绝时发生的事件。

事件日志

目录服务

事件类型

警告

事件 ID

3046

事件文本

目录服务拒绝了以下对象的 LDAP 修改请求。 请求被拒绝,因为客户端在修改请求中包含 nTSecurityDescriptor 属性,但没有基于对象的现有安全描述符写入新安全描述符的一个或多个部分的显式权限。

对象 DN:<created object’s DN>

对象类:<created object’s objectClass>

用户:<user who attempted the LDAP add>

客户端 IP 地址:<the IP of the requestor>

常见问题

问题 1 如果混合了已更新和未更新的 Active Directory 域控制器,会发生什么情况?

解答 1:未更新的 DCs 不会记录与此漏洞相关的事件。

问题 2,我需要为 Read-Only Domain Controllers (RODCs) 做什么?

解答 2:无;LDAP Add 和 Modify 操作不能以 RODC 为目标。

问题 3 我拥有启用 Enforcement 模式后失败的第三方产品或流程。 是否需要授予服务或用户域管理员权限?

解答 3:我们通常不建议将服务或用户添加到 Domain Administrators 组作为此问题的第一个解决方案。 检查事件日志,了解需要哪些特定权限,并考虑在为此目的指定的单独 Organizational Unit 中为该用户委派适当受限的权限。

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?

谢谢您的反馈!

×