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.0e, 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 Enablede 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.0no 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