在 IIS 上,如何修补 SSL 3.0 POODLE 漏洞 (CVE-2014-3566)?

在 IIS 上,如何修补 SSL 3.0 POODLE 漏洞 (CVE-2014-3566)?

如何修补CVE-2014-3566在运行 IIS 的 Windows Server 2012 系统上?

Windows 更新中是否有补丁,或者我必须更改注册表以禁用 SSL 3.0

答案1

不存在“补丁”。这是协议中的漏洞,而不是实现中的错误。

在 Windows Server 2003 至 2012 R2 中,SSL/TLS 协议由注册表中的标志控制HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols

要禁用 POODLE 漏洞所涉及的 SSLv3,请在上述位置创建一个名为 的子项(如果尚不存在)SSL 3.0,并在其下创建一个名为 的子项Server(如果尚不存在)。在此位置 ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server) 创建一个名为 的 DWORD 值Enabled,并将其设置为0

禁用 SSL 2.0(您也应该这样做)的方法相同,只不过您将使用SSL 2.0上述注册表路径中命名的密钥。

我还没有测试过所有版本,但我认为可以安全地假设需要重新启动才能使此更改生效。

答案2

为了便于安装,我从以下位置获取了此“disable ssl 2 and 3.reg”文件Evan 的回答

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000

答案3

Powershell 禁用 SSL2 和 SSL3:

2..3 | %{ New-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL $_.0\Server" -Name Enabled -PropertyType "DWORD" -Value 0 -Force }

答案4

这是一个 PowerShell,它将测试注册表项是否存在,如果需要则创建它们,然后输入必要的值以禁用 SSL 2.0 和 SSL 3.0

$regPath1 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0'
$regPath2 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Server'
$regPath3 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0'
$regPath4 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server'


If(!(Test-Path -Path $regPath1))
{
New-Item -Path $regPath1 -Force
}

If(!(Test-Path $regPath2))
{
New-Item -Path $regPath2 -Force
}
   New-ItemProperty -Path $regPath2 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath2 -Name Enabled -PropertyType DWORD -Value "0" -Force 

If(!(Test-Path $regPath3))
{
New-Item -Path $regPath3 -Force
}

If(!(Test-Path $regPath4))
{
New-Item -Path $regPath4 -Force
}
   New-ItemProperty -Path $regPath4 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath4 -Name Enabled -PropertyType DWORD -Value "0" -Force

可以使用 SCCM 或命令行进行部署 - 只需确保以管理员身份运行 SCCM 作业或命令行。一些包含注册表信息的网站表明在创建和/或修改注册表项后需要重新启动。

相关内容