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

53

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

Existe-t-il un correctif dans Windows Update ou dois-je modifier le registre pour désactiver SSL 3.0 ?

Eric Lathrop
la source
1
Il existe un Microsoft Fix it 50495 sur la page MS Ko à laquelle vous êtes lié.
MattBianco
3
J'ai essayé d'exécuter Fix it 50495 sur Windows 2008 et cela a échoué avec l'erreur "Ce correctif Microsoft ne s'applique pas à votre système d'exploitation ni à la version de votre application." Tant pis.
Josh

Réponses:

58

Il n'y a pas de "patch". C'est une vulnérabilité dans le protocole, pas un bug dans la mise en œuvre.

Dans Windows Server 2003 à 2012 R2, les protocoles SSL / TLS sont contrôlés par des indicateurs dans le registre défini à 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.0et, sous celle-ci, 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 Enabledet laissez-la définie sur 0.

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

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

Evan Anderson
la source
3
redémarrage non nécessaire sur Windows Server 2012 au moins. vous pouvez vérifier avant et après sur poodlebleed.com en entrant votre URL et le port 443 pour le port SSL
Simon
Merci, Savez-vous si je devrais également désactiver PCT car il est prétendument désactivé par défaut et pourtant pas désactivé de cette manière?
Mark Broadhurst
@Simon, y a-t-il autre chose que vous devez faire pour que les modifications prennent effet? Je viens de faire les mises à jour du registre sur un ordinateur Server 2012, mais il est toujours signalé que SSL3 est activé.
Abe Miessler
Je ne crois pas Je suppose que vous utilisez iis et mon Apache et que vous avez vérifié notre site Web. Et vous êtes sûr d'avoir la bonne clé de registre?
Simon
* PAS Apache (je ne sais pas d'où vient 'mon Apache'!)
Simon
24

Pour faciliter l’installation, j’ai tiré ce fichier "disable ssl 2 and 3.reg" de la 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
Eric Lathrop
la source
12

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 }
Vasili Syrakis
la source
Malheureusement, ce qui précède ne fonctionne que si les sous-clés de registre sont déjà présentes. Ce serait bien de voir le PS qui peut les créer s'il n'existe pas ou les mettre à jour s'ils le font.
Jaans
Êtes-vous sûr? Le mien les crée pour moi. Cela pourrait différer sur les versions inférieures de Powershell et de Windows (j'utilise v2 sur Server 2008 R2)
Vasili Syrakis
2
Yup ... voir la capture d'écran téléchargée sur: i.imgur.com/rctFH4D.png Utilisation de PS 3.0 et WSMan 3.0.
Jaans
8

Voici un PowerShell qui va tester la présence des clés de registre, les créer si nécessaire, puis entrer 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é à l'aide de SCCM ou d'une ligne de commande. Veillez simplement à exécuter le travail ou la ligne de commande SCCM en tant qu'administrateur. Certains sites Web contenant des informations de registre indiquent qu’un redémarrage est nécessaire une fois les clés de registre créées et / ou modifiées.

Kazi
la source
4

Ou récupérez une copie de IISCrypto et cliquez sur le bouton des meilleures pratiques, puis décochez SSL 3.0, puis appliquez et redémarrez.

À M
la source
3

Vous n'êtes pas obligé de désactiver SSL3. Vous pouvez activer SSL3 et atténuer 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

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

Angel Abad Cerdeira
la source
3

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

Ce script PowerShell permet à votre Microsoft Internet Information Server 7.5 et 8.0 (IIS) de prendre en charge les protocoles TLS 1.1 et TLS 1.2 avec transfert de confidentialité. En outre, il augmente la sécurité de vos connexions SSL en désactivant les protocoles SSL2 et SSL3 non sécurisés, ainsi que tous les chiffrements peu sécurisés et faibles qu'un navigateur peut également utiliser. Ce script implémente les règles de meilleures pratiques actuelles.

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

David Thomas
la source
Hmm, je ne sais pas pourquoi cela a été voté. J'ai utilisé cet utilitaire moi-même et cela fonctionne parfaitement.
David Thomas
Cela a l'air bien, mais au moins un gars a eu des problèmes après l'avoir exécuté - je ne sais pas si c'est isolé vu que d'autres personnes disent que c'est génial.
Marc