web-dev-qa-db-fra.com

Sur IIS, comment corriger la vulnérabilité SSL 3.0 POODLE (CVE-2014-3566)?

Comment corriger CVE-2014-3566 sur un système Windows Server 2012 exécutant IIS?

Existe-t-il un correctif dans Windows Update ou dois-je le faire ne modification du registre pour désactiver SSL 3. ?

53
Eric Lathrop

Il n'y a pas de "patch". C'est une vulnérabilité dans le protocole, pas un bogue dans l'implémentation.

Dans Windows Server 2003 à 2012 R2, les protocoles SSL/TLS sont contrôlés par des indicateurs dans le registre défini sur HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols.

Pour désactiver SSLv3, qui concerne la vulnérabilité POODLE, créez une sous-clé à l'emplacement ci-dessus (si elle n'est pas déjà présente) nommée SSL 3.0 et, en dessous, une sous-clé nommée Server (si elle n'est pas déjà présente). À cet emplacement (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server) créez une valeur DWORD nommée Enabled et laissez-la définie sur 0.

La désactivation de SSL 2.0, ce que vous devriez également faire, se fait de la même manière, sauf que vous utiliserez une clé nommée SSL 2.0 dans le chemin de registre ci-dessus.

Je n'ai pas testé toutes les versions, mais je pense qu'il est probablement sûr de supposer qu'un redémarrage est nécessaire pour que cette modification prenne effet.

58
Evan Anderson

Juste pour faciliter l'installation, j'ai dérivé ce fichier "disable ssl 2 and 3.reg" de réponse d'Evan ci-dessus :

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
24
Eric Lathrop

Powershell pour désactiver SSL2 et SSL3:

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

Il existe un utilitaire gratuit de Nartac que vous pouvez utiliser pour désactiver les protocoles.

https://www.nartac.com/Products/IISCrypto/Default.aspx

9
DrundoSoft

Voici un PowerShell qui testera la présence des clés de registre, les créera si nécessaire, puis entrera les valeurs nécessaires pour désactiver SSL 2.0 et 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

Cela peut être déployé en utilisant SCCM ou ligne de commande - assurez-vous simplement d'exécuter le travail ou la ligne de commande SCCM en tant qu'administrateur. Certains sites Web contenant les informations de registre indiquent que un redémarrage est requis après la création et/ou la modification des clés de registre.

8
Kazi

Ou prenez une copie d'IISCrypto et cliquez sur le bouton des meilleures pratiques, puis décochez SSL 3.0, puis appliquez, puis redémarrez

4
Tom

Vous n'avez pas à désactiver SSL3. Vous pouvez activer SSL3 et avoir POODLE atténué.

# 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

Avec ces paramètres, vous auriez toujours le support IE6 (avec SSLv3 en utilisant RC4) et une sécurité de configuration plus qu'acceptable. Seul IE6 et un client vraiment ancien utiliseraient des chiffrements SSLv3 ou RC4.

3
Angel Abad Cerdeira

Il existe un bon script PowerShell qui aide à la configuration IIS 7.5 & 8:

Ce script PowerShell configure votre serveur Microsoft Internet Information Server 7.5 et 8.0 (IIS) pour prendre en charge le protocole TLS 1.1 et TLS 1.2 avec la confidentialité vers l'avant. De plus, il augmente la sécurité de vos connexions SSL en désactivant SSL2 et SSL3 non sécurisés et tous les chiffrements non sécurisés et faibles qu'un navigateur peut également utiliser. Ce script implémente les règles de bonnes pratiques actuelles.

https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12

3
David Thomas