Como faço para corrigir o CVE-2014-3566 em um sistema Windows Server 2012 executando o IIS?
Existe um patch no Windows Update ou preciso fazer uma alteração no registro para desativar o SSL 3.0 ?
Como faço para corrigir o CVE-2014-3566 em um sistema Windows Server 2012 executando o IIS?
Existe um patch no Windows Update ou preciso fazer uma alteração no registro para desativar o SSL 3.0 ?
Respostas:
Não há "patch". É uma vulnerabilidade no protocolo, não um bug na implementação.
No Windows Server 2003 a 2012 R2, os protocolos SSL / TLS são controlados por sinalizadores no registro definido em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols
.
Para desabilitar o SSLv3, no qual a vulnerabilidade POODLE está relacionada, crie uma subchave no local acima (se ainda não estiver presente) nomeada SSL 3.0
e, embaixo, uma subchave chamada Server
(se ainda não estiver presente). Nesse local ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server
), crie um valor DWORD chamado Enabled
e deixe-o definido em 0
.
Desabilitar o SSL 2.0, o que você também deve fazer, é feito da mesma maneira, exceto que você usará uma chave nomeada SSL 2.0
no caminho do registro acima.
Não testei todas as versões, mas acho que é seguro presumir que uma reinicialização é necessária para que essa alteração entre em vigor.
Apenas para facilitar a instalação, derivamos esse arquivo "disable ssl 2 and 3.reg" da resposta de Evan acima :
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
PowerShell para desativar o SSL2 e o SSL3:
2..3 | %{ New-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL $_.0\Server" -Name Enabled -PropertyType "DWORD" -Value 0 -Force }
Existe um utilitário gratuito da Nartac que você pode usar para desativar os protocolos.
Aqui está um PowerShell que testará a presença das chaves do Registro, crie-as se necessário e insira os valores necessários para desativar o SSL 2.0 e o 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
Isso pode ser implantado usando o SCCM ou a linha de comando - apenas certifique-se de executar o trabalho ou a linha de comando do SCCM como administrador. Alguns sites com as informações do registro indicam que é necessária uma reinicialização após a criação e / ou modificação das chaves do registro.
Você não precisa desativar o SSL3. Você pode ativar o SSL3 e ter o POODLE mitigado .
# Copy and paste this in PowerShell then restart your server
$cipherSuitesOrder = @(
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384',
'TLS_RSA_WITH_AES_128_CBC_SHA256',
'TLS_RSA_WITH_AES_128_CBC_SHA',
'TLS_RSA_WITH_AES_256_CBC_SHA256',
'TLS_RSA_WITH_AES_256_CBC_SHA',
'TLS_RSA_WITH_RC4_128_SHA',
'TLS_RSA_WITH_3DES_EDE_CBC_SHA',
'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256',
'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384'
)
$cipherSuitesAsString = [string]::join(',', $cipherSuitesOrder)
New-ItemProperty -path 'HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002' \
-name 'Functions' -value $cipherSuitesAsString -PropertyType 'String' -Force | Out-Null
Com essas configurações, você ainda teria suporte ao IE6 (com SSLv3 usando RC4) e teria uma configuração mais do que aceitável em termos de segurança. Somente o IE6 e um cliente muito antigo usariam cifras SSLv3 ou RC4.
Há um bom script do PowerShell que ajuda na configuração do IIS 7.5 e 8:
Esse script do PowerShell configura o Microsoft Internet Information Server 7.5 e 8.0 (IIS) para oferecer suporte aos protocolos TLS 1.1 e TLS 1.2 com sigilo de encaminhamento. Além disso, aumenta a segurança de suas conexões SSL, desativando SSL2 e SSL3 inseguro e todas as cifras inseguras e fracas que um navegador também pode ter. Este script implementa as regras atuais de melhores práticas.
https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12