简介
2020 年 7 月 14 日,Microsoft 发布了针对 CVE-2020-1350 | Windows DNS 服务器远程代码执行漏洞中描述的问题的安全更新。 此通报描述了影响配置为运行 DNS 服务器角色的 Windows 服务器的关键远程代码执行 (RCE) 漏洞。 我们强烈建议服务器管理员尽早应用此安全更新。
可以利用基于注册表的解决方法来帮助保护受影响的 Windows 服务器,并且无需管理员重新启动服务器即可实现该方法。 由于此漏洞的波动性,管理员在应用此安全更新之前可能必须实施此解决方法,以便他们能使用标准部署节奏更新系统。
解决方法
重要
请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。
若要解决此漏洞,请进行以下注册表更改以限制允许的最大基于入站 TCP 的 DNS 响应数据包的大小:
项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
数值 = TcpReceivePacketSize
类型 = DWORD
数值数据 = 0xFF00
注意
默认(也是最大)数值数据 = 0xFFFF。
如果通过组策略粘贴此注册表值或将其应用于服务器,则会接受该值,但实际上不会设置为你期望的值。 无法将值 0x 键入“数值数据”框中。 但可以粘贴。 如果粘贴该值,则得到一个十进制值 4325120。
此解决方法将 FF00 作为十进制值 65280 的值。 此值比允许的最大值 65535 小 255。
你必须重新启动 DNS 服务才能使注册表更改生效。 为此,请在显示的命令提示符处运行以下命令:
net stop dns && net start dns
实施解决办法后,当来自上游服务器的 DNS 响应大于 65,280 字节时,Windows DNS 服务器将无法解析其客户端的 DNS 名称。
有关此解决方法的重要信息
超过建议值的基于 TCP 的 DNS 响应数据包将丢弃,而不会出错。 因此,可能无法响应某些查询。 这可能会导致意外失败。 只有当 DNS 服务器收到的有效 TCP 响应大于上一个缓解措施允许的值(超过 65,280 字节)时,它才会受到此解决方法的负面影响。
减少的值不太可能影响标准部署或递归查询。 但是,在给定环境中可能存在非标准用例。 若要确定服务器实现是否会受到此解决方法的不利影响,应启用诊断日志记录并捕获代表典型业务流的示例集。 然后,你需要查看日志文件,以确定是否存在异常大的 TCP 响应数据包
有关详细信息,请参阅 DNS 日志记录和诊断。
常见问题