原因 CVE-2018-0886 的 CredSSP 更新 将默认设置从“易受攻击”更改为“缓解”的更新。
摘要
凭据安全支持提供程序协议 (CredSSP) 是处理其他应用程序的身份验证请求的身份验证提供程序。CredSSP 的未修补版本中存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以在目标系统上中继用户凭据以执行代码。 任何依赖 CredSSP 进行身份验证的应用程序都可能容易受到此类攻击。
此安全更新通过更正 CredSSP 在身份验证过程中验证请求的方式来修复此漏洞。
若要了解有关此漏洞的更多信息,请参阅 CVE-2018-0886。
更新
2018 年 3 月 13 日
2018 年 3 月 13 日的初始版本更新了所有受影响平台的 CredSSP 身份验证协议和远程桌面客户端。缓解措施包括在所有符合条件的客户端和服务器操作系统上安装更新,然后使用包含的“组策略”设置或基于注册表的等效项管理客户端和服务器计算机上的设置选项。 我们建议管理员应用该策略,并尽快在客户端和服务器计算机上将其设置为“强制更新的客户端”或“缓解”。这些更改将需要重启受影响的系统。请密切关注导致本文后面的兼容性表中的客户端和服务器之间的“阻止”交互的组策略或注册表设置对。
2018 年 4 月 17 日
KB 4093120 中的远程桌面客户端 (RDP) 更新将增强更新的客户端无法连接到尚未更新的服务器时出现的错误消息。
2018 年 5 月 8 日
将默认设置从“易受攻击”更改为“缓解”的更新。
相关的 Microsoft 知识库编号已在 CVE-2018-0886 中列出。
组策略
策略路径和设置名称 | 说明 |
---|---|
策略路径:“计算机配置”->“管理模板”->“系统”->“凭据分配” | 加密 oracle 修正 设置可应用于使用 CredSSP 组件(例如,远程桌面连接)的应用程序。 CredSSP 协议的某些版本容易受到针对客户端的加密 oracle 攻击。 此策略控制与易受攻击的客户端和服务器的兼容性。 此策略允许你设置针对加密 oracle 漏洞的防护级别。 如果启用此策略设置,将会基于以下选项选择 CredSSP 版本支持: 强制更新的客户端– 使用 CredSSP 的客户端应用程序将无法回退到不安全的版本,且使用 CredSSP 的服务将不接受未修补的客户端。 缓解– 使用 CredSSP 的客户端应用程序将无法回退到不安全的版本,但使用 CredSSP 的服务将接受未修补的客户端。 易受攻击– 使用 CredSSP 的客户端应用程序将通过支持回退到不安全的版本使远程服务器遭受攻击,但使用 CredSSP 的服务将接受未修补的客户端。</br> |
“加密 Oracle 修正组策略”支持以下三个选项,应将这些选项应用于客户端和服务器:
策略设置 | 注册表值 | 客户端行为 | 服务器行为 |
---|---|---|---|
强制更新的客户端 | 0 | 使用 CredSSP 的客户端应用程序将无法回退到不安全的版本。 | 使用 CredSSP 的服务将不接受未修补的客户端。注意 在所有 Windows 和第三方 CredSSP 客户端支持最新的 CredSSP 版本之前,不应部署此设置。 |
缓解 | 1 | 使用 CredSSP 的客户端应用程序将无法回退到不安全的版本。 | 使用 CredSSP 的服务将接受未修补的客户端。 |
易受攻击 | 2 | 使用 CredSSP 的客户端应用程序将通过支持回退到不安全的版本使远程服务器遭受攻击。 | 使用 CredSSP 的服务将接受未修补的客户端。 |
</figure>
第二次更新(于 2018 年 5 月 8 日发布)会将默认行为更改为“缓解”选项。
注意 对加密 Oracle 修正的任何更改都需要重启。
注册表值
警告 如果使用注册表编辑器或其他方法修改注册表不当,可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 请自行承担修改注册表的风险。
注册表路径 | HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters |
---|---|
值 | AllowEncryptionOracle |
数据类型 | DWORD |
是否需要重启? | 是 |
此更新引入了以下注册表设置:
注册表路径 | HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters |
---|---|
值 | AllowEncryptionOracle |
数据类型 | DWORD |
是否需要重启? | 是 |
互操作性矩阵
客户端和服务器都需要更新,否则,Windows 和第三方 CredSSP 客户端可能无法连接到 Windows 或第三方主机。 有关易受攻击或导致操作失败的情况,请参阅以下互操作性矩阵。
服务器 | |||||
---|---|---|---|---|---|
未修补 | 强制更新的客户端 | 缓解 | 易受攻击 | ||
客户端 | 未修补 | 允许 | 阻止 | 允许 | 允许 |
强制更新的客户端 | 阻止 | 允许 | 允许 | 允许 | |
缓解 | 阻止 | 允许 | 允许 | 允许 | |
易受攻击 | 允许 | 允许 | 允许 | 允许 |
客户端设置 | CVE-2018-0886 修补程序状态 |
---|---|
未修补 | 易受攻击 |
强制更新的客户端 | 安全 |
缓解 | 安全 |
易受攻击 | 易受攻击 |
Windows 事件日志错误
如果在阻止的配置中配置客户端和远程主机,将在已修补的 Windows 客户端上记录事件 ID 6041。
事件日志 | 系统 |
---|---|
事件源 | LSA (LsaSrv) |
事件 ID | 6041 |
事件消息文本 | 对 <主机名> 的 CredSSP 身份验证无法协商通用协议版本。 远程主机提供了加密 Oracle 修正不允许的版本 <协议版本>。 |
由未修补的 Windows RDP 客户端通过 CredSSP 阻止的配置对生成的错误
由没有 2018 年 4 月 17 日修补程序 (KB 4093120) 的远程桌面客户端提供的错误
与配置了“强制更新的客户端”的服务器配对的未修补的 Windows 8.1 之前的客户端和 Windows Server 2012 R2 客户端 | 由未修补的 Windows 8.1/Windows Server 2012 R2 和更高版本的 RDP 客户端通过 CredSSP 阻止的配置对生成的错误 |
---|---|
发生了身份验证错误。提供给函数的令牌无效 | 发生了身份验证错误。不支持请求的函数。 |
由具有 2018 年 4 月 17 日修补程序 (KB 4093120) 的远程桌面客户端提供的错误
与配置了“强制更新的客户端”的服务器配对的未修补的 Windows 8.1 之前的客户端和 Windows Server 2012 R2 客户端 | 这些错误是由未修补的 Windows 8.1/Windows Server 2012 R2 和更高版本的 RDP 客户端通过 CredSSP 阻止的配置对生成的。 |
---|---|
发生了身份验证错误。提供给函数的令牌无效。 | 发生了身份验证错误。不支持请求的函数。远程计算机: <主机名>这可能由 CredSSP 加密 oracle 修正引起的。有关更多信息,请参阅 https://go.microsoft.com/fwlink/?linkid=866660 |
第三方远程桌面客户端和服务器
所有第三方客户端或服务器必须使用最新版本的 CredSSP 协议。 请联系供应商以确定其软件是否与最新的 CredSSP 协议兼容。
可在 Windows 协议文档网站中找到协议更新。
解决方案
win + R
输入 gpedit.msc
打开本地组策略编辑器
点击计算机配置
管理模板
系统
凭据分配
选择 加密 Oracle修正
编辑 加密 Oracle修正
将保护级别从 已缓解 修改为 易受攻击