¿Cómo parcheo CVE-2014-3566 en un sistema Windows Server 2012 que ejecuta IIS?
¿Hay un parche en Windows Update, o tengo que hacer un cambio de registro para deshabilitar SSL 3.0 ?
¿Cómo parcheo CVE-2014-3566 en un sistema Windows Server 2012 que ejecuta IIS?
¿Hay un parche en Windows Update, o tengo que hacer un cambio de registro para deshabilitar SSL 3.0 ?
Respuestas:
No hay "parche". Es una vulnerabilidad en el protocolo, no un error en la implementación.
En Windows Server 2003 a 2012 R2, los protocolos SSL / TLS están controlados por banderas en el conjunto de registros en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols
.
Para deshabilitar SSLv3, que concierne a la vulnerabilidad POODLE, cree una subclave en la ubicación anterior (si aún no está presente) llamada SSL 3.0
y, debajo de eso, una subclave llamada Server
(si aún no está presente). En esta ubicación ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server
) cree un valor DWORD llamado Enabled
y déjelo establecido en 0
.
La desactivación de SSL 2.0, que también debería estar haciendo, se realiza de la misma manera, excepto que usará una clave nombrada SSL 2.0
en la ruta de registro anterior.
No he probado todas las versiones, pero creo que es seguro asumir que es necesario reiniciar para que este cambio surta efecto.
Solo para facilitar la instalación, obtuve este archivo "deshabilitar ssl 2 y 3.reg" de la respuesta de Evan anterior :
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 deshabilitar SSL2 y SSL3:
2..3 | %{ New-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL $_.0\Server" -Name Enabled -PropertyType "DWORD" -Value 0 -Force }
Hay una utilidad gratuita de Nartac que puede usar para deshabilitar los protocolos.
Aquí hay un PowerShell que probará la presencia de las claves de registro, las creará si es necesario y luego ingresará los valores necesarios para deshabilitar SSL 2.0 y 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
Esto se puede implementar utilizando SCCM o la línea de comandos; solo asegúrese de ejecutar el trabajo SCCM o la línea de comandos como Administrador. Algunos sitios web con la información del registro indican que es necesario reiniciar después de crear y / o modificar las claves del registro.
No tiene que deshabilitar SSL3. Puede habilitar SSL3 y mitigar POODLE .
# 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
Con esta configuración, aún tendría soporte para IE6 (con SSLv3 usando RC4) y tendría una configuración más que aceptable en cuanto a seguridad. Solo IE6 y un cliente realmente antiguo usarían cifrados SSLv3 o RC4.
Hay un buen script de PowerShell que ayuda con la configuración de IIS 7.5 y 8:
Este script de PowerShell configura su Microsoft Internet Information Server 7.5 y 8.0 (IIS) para admitir el protocolo TLS 1.1 y TLS 1.2 con confidencialidad directa. Además, aumenta la seguridad de sus conexiones SSL al deshabilitar SSL2 y SSL3 inseguros y todos los cifrados inseguros y débiles que un navegador también puede utilizar. Este script implementa las reglas actuales de mejores prácticas.
https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12