注意
已更新 2023 年 3 月 20 日 - 可用性部分
摘要
分布式组件对象模型 (DCOM) 远程协议是一种使用远程过程调用 (RPC 公开应用程序对象的协议) 。 DCOM 用于联网设备的软件组件之间的通信。 CVE-2021-26414 需要在 DCOM 中进行强化更改。 因此,建议验证环境中使用 DCOM 或 RPC 的客户端或服务器应用程序是否按预期工作,并启用强化更改。
备注 我们强烈建议您安装最新的可用安全更新。 它们提供针对最新安全威胁的高级保护。 它们还提供我们为支持迁移而添加的功能。 有关强化 DCOM 的详细信息和上下文,请参阅 DCOM 身份验证强化:您需要了解的内容。
DCOM 更新的第一阶段于 2021 年 6 月 8 日发布。 在该更新中,默认情况下禁用了 DCOM 强化。 可以通过修改注册表来启用它们,如下面的“用于启用或禁用强化更改的注册表设置”部分中所述。 DCOM 更新的第二阶段于 2022 年 6 月 14 日发布。 这会将强化更改为默认启用,但保留了使用注册表项设置禁用更改的功能。 DCOM 更新的最后阶段将于 2023 年 3 月发布。 它将使 DCOM 强化保持启用状态,并删除禁用它的功能。
日程表
| 更新版本 | 行为更改 |
|---|---|
| 2021 年 6 月 8 日 | 第 1 阶段发布 - 默认禁用强化更改,但能够使用注册表项启用更改。 |
| 2022 年 6 月 14 日 | 第 2 阶段发布 - 默认启用强化更改,但能够使用注册表项禁用更改。 |
| 2023 年 3 月 14 日 | 第 3 阶段发布 - 默认启用强化更改且无法禁用它们。 此时,必须解决环境中与强化更改和应用程序的任何兼容性问题。 |
测试 DCOM 强化兼容性
新的 DCOM 错误事件
为了帮助识别在启用 DCOM 安全强化更改后可能存在兼容性问题的应用程序,我们在系统日志中添加了新的 DCOM 错误事件。 请参阅下表。 如果系统检测到 DCOM 客户端应用程序正尝试使用低于 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 的身份验证级别激活 DCOM 服务器,它将记录这些事件。 可以从服务器端事件日志跟踪到客户端设备,并使用客户端事件日志查找应用程序。
服务器事件 - 指示服务器正在接收较低级别的请求
| 事件 ID | 消息 |
|---|---|
| 10036 | “服务器端身份验证级别策略不允许用户从地址 %4) %1\%2 SID (%3 激活 DCOM 服务器。 请至少在客户端应用程序中将激活身份验证级别提高到 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY。” (%1 - 域,%2 - 用户名,%3 - 用户 SID,%4 - 客户端 IP 地址) |
客户端事件 - 指示哪个应用程序正在发送较低级别的请求
| 事件 ID | 消息 |
|---|---|
| 10037 | “PID 为 %2 的应用程序 %1 正在请求激活计算机 %4 上的 CLSID %3,并将身份验证级别显式设置为 %5。 DCOM 要求的最低激活身份验证级别为 5 (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) 。 要提高激活身份验证级别,请联系应用程序供应商。” |
| 10038 | “PID 为 %2 的应用程序 %1 正在请求激活计算机 %4 上的 CLSID %3,默认激活身份验证级别为 %5。 DCOM 要求的最低激活身份验证级别为 5 (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) 。 要提高激活身份验证级别,请联系应用程序供应商。” (%1 - 应用程序路径,%2 - 应用程序 PID,%3 - 应用程序请求激活的 COM 类的 CLSID,%4 - 计算机名称,%5 - 身份验证级别) 的值 |
可用性
这些错误事件仅适用于 Windows 版本的子集;请参阅下表。
| Windows 版本 | 在这些日期当天或之后可用 |
|---|---|
| Windows Server 2022 | 2021 年 9 月 27 日 KB5005619 |
| Windows 10 版本 2004、Windows 10 版本 20H2、Windows 10 版本 21H1 | 2021 年 9 月 1 日 KB5005101 |
| Windows 10,版本 1909 | 2021 年 8 月 26 日 KB5005103 |
| Windows Server 2019,Windows 10 版本 1809 | 2021 年 8 月 26 日 KB5005102 |
| Windows Server 2016,Windows 10 版本 1607 | 2021 年 9 月 14 日 KB5005573 |
| Windows Server 2012 R2 和 Windows 8.1 | 2021 年 10 月 12 日 KB5006714 |
| Windows 11 版本 22H2 | 2022 年 9 月 30 日 KB5017389 |
客户端请求自动提升权限修补程序
所有非匿名激活请求的身份验证级别
为了帮助减少应用兼容性问题,我们已自动将来自基于 Windows 的 DCOM 客户端的所有非匿名激活请求的身份验证级别提高到最低 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY。 通过此更改,将自动接受大多数基于 Windows 的 DCOM 客户端请求,并在服务器端启用 DCOM 强化更改,而无需对 DCOM 客户端进行任何进一步修改。 此外,大多数 Windows DCOM 客户端将自动适用于服务器端的 DCOM 强化更改,而无需对 DCOM 客户端进行任何进一步修改。
备注 此修补程序将继续包含在累积更新中。
补丁更新时间线
自 2022 年 11 月初始发布以来,自动提升修补程序进行了一些更新。
2022 年 11 月更新
- 此更新自动将激活身份验证级别提升到数据包完整性。 默认情况下,此更改在 Windows Server 2016 和 Windows Server 2019 上处于禁用状态。
2022 年 12 月更新
- 默认情况下,Windows Server 2016 和 Windows Server 2019 启用了 11 月更改。
- 此更新还解决了影响 Windows Server 2016 和 Windows Server 2019 上的匿名激活的问题。
2023 年 1 月更新
- 此更新解决了从 2008 Windows Server 到 2015 年 7 月) 发布的初始版本Windows 10 (平台上影响匿名激活的问题。
如果已在客户端和服务器上安装了截至 2023 年 1 月的累积安全更新,它们将完全启用最新的自动提升修补程序。
用于启用或禁用强化更改的注册表设置
在可以启用或禁用 CVE-2021-26414 强化更改的时间线阶段,可以使用以下注册表项:
- 路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\AppCompat
- 值名称: “RequireIntegrityActivationAuthenticationLevel”
- 类型:dword
- 值数据:default= 0x00000000表示已禁用。 0x00000001表示已启用。 如果未定义此值,它将默认为“启用”。
备注 必须以十六进制格式输入值数据。
重要 设置此注册表项后,必须重启设备才能使其生效。
备注 启用上述注册表项将使 DCOM 服务器强制使用 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 或更高的激活 Authentication-Level。 这不会影响匿名激活 (使用身份验证级别 RPC_C_AUTHN_LEVEL_NONE) 的激活。 如果 DCOM 服务器允许匿名激活,则即使启用了 DCOM 强化更改,仍允许匿名激活。
备注 默认情况下,此注册表值不存在;您必须创建它。 如果存在,Windows 将读取它,并且不会覆盖它。
备注 安装更高版本的更新既不会更改也不会删除现有的注册表项和设置。