Wie kann ich unter IIS die Sicherheitsanfälligkeit in SSL 3.0 POODLE (CVE-2014-3566) beheben?

53

Wie kann ich CVE-2014-3566 auf einem Windows Server 2012-System mit IIS patchen ?

Gibt es einen Patch in Windows Update oder muss ich eine Registrierungsänderung vornehmen, um SSL 3.0 zu deaktivieren ?

Eric Lathrop
quelle
1
Es gibt ein Microsoft Fix it 50495 auf der MS KB-Seite, mit der Sie verlinkt sind.
MattBianco
3
Ich habe versucht, Fix it 50495 unter Windows 2008 auszuführen, und es ist mit der Fehlermeldung "Dieser Microsoft Fix gilt nicht für Ihr Betriebssystem oder Ihre Anwendungsversion." Fehlgeschlagen. Naja.
Josh

Antworten:

58

Es gibt keinen "Patch". Es ist eine Sicherheitslücke im Protokoll, kein Fehler in der Implementierung.

In Windows Server 2003 bis 2012 R2 werden die SSL / TLS-Protokolle durch Flags in der Registrierung unter gesteuert HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols.

Um SSLv3 zu deaktivieren, von dem die POODLE-Sicherheitsanfälligkeit betroffen ist, erstellen Sie einen Unterschlüssel an der oben genannten Position (sofern noch nicht vorhanden) SSL 3.0und darunter einen Unterschlüssel mit dem Namen Server(sofern noch nicht vorhanden). HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\ServerErstellen Sie an dieser Stelle ( ) einen DWORD-Wert mit dem Namen Enabledund belassen Sie ihn auf 0.

Das Deaktivieren von SSL 2.0, das Sie ebenfalls ausführen sollten, erfolgt auf die gleiche Weise, mit der Ausnahme, dass Sie einen Schlüssel verwenden, der SSL 2.0im obigen Registrierungspfad angegeben ist.

Ich habe nicht alle Versionen getestet, aber ich denke, es ist wahrscheinlich sicher anzunehmen, dass ein Neustart erforderlich ist, damit diese Änderung wirksam wird.

Evan Anderson
quelle
3
Ein Neustart ist unter Windows Server 2012 mindestens nicht erforderlich. Sie können vorher und nachher auf poodlebleed.com überprüfen, indem Sie Ihre URL und 443 für den SSL-Port eingeben
Simon
Danke, wissen Sie, ob ich PCT auch deaktivieren sollte, da es angeblich standardmäßig deaktiviert und auf diese Weise noch nicht deaktiviert ist?
Mark Broadhurst
@ Simon, gibt es noch etwas, das Sie tun müssen, damit die Änderungen wirksam werden? Ich habe gerade die Registrierungsaktualisierungen auf einem Server 2012-Computer vorgenommen, es wird jedoch weiterhin gemeldet, dass SSL3 aktiviert ist.
Abe Miessler
Das glaube ich nicht. Ich gehe davon aus, dass Sie iis und meinen Apache verwenden und diese Website verwendet haben. Und Sie sind sicher, dass Sie genau den richtigen Registrierungsschlüssel haben?
Simon
* NICHT Apache (Ich weiß nicht, woher "mein Apache" kam!)
Simon
24

Nur um die Installation zu vereinfachen, habe ich diese "disable ssl 2 and 3.reg" -Datei aus Evans Antwort oben abgeleitet :

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
quelle
12

PowerShell zum Deaktivieren von SSL2 und 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
quelle
Leider funktioniert das Obige nur, wenn die Registrierungsunterschlüssel bereits vorhanden sind. Es wäre schön, PS zu sehen, die sie erstellen können, wenn sie nicht vorhanden sind, oder sie zu aktualisieren, wenn sie dies tun.
Jaans
Bist du sicher? Meins schafft sie für mich. Bei niedrigeren Versionen von Powershell und Windows (ich verwende v2 auf Server 2008 R2) kann es
abweichen
2
Yup ... siehe Screenshot hochgeladen auf: i.imgur.com/rctFH4D.png Verwenden von PS 3.0 und WSMan 3.0.
Jaans
8

Hier ist eine PowerShell, die prüft, ob die Registrierungsschlüssel vorhanden sind, sie bei Bedarf erstellt und dann die erforderlichen Werte zum Deaktivieren von SSL 2.0 und SSL 3.0 eingibt

$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

Dies kann über SCCM oder über die Befehlszeile bereitgestellt werden. Führen Sie den SCCM-Job oder die Befehlszeile nur als Administrator aus. Einige Websites mit Registrierungsinformationen weisen darauf hin, dass ein Neustart erforderlich ist, nachdem die Registrierungsschlüssel erstellt und / oder geändert wurden.

Kazi
quelle
4

Oder holen Sie sich eine Kopie von IISCrypto und klicken Sie auf die Schaltfläche "Best Practices". Deaktivieren Sie dann SSL 3.0, wenden Sie es an und starten Sie es neu

Tom
quelle
3

Sie müssen SSL3 nicht deaktivieren. Sie können SSL3 aktivieren und POODLE reduzieren .

# 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

Mit diesen Einstellungen hätten Sie weiterhin IE6-Unterstützung (mit SSLv3 unter Verwendung von RC4) und eine mehr als akzeptable Konfigurationssicherheit. Nur IE6 und wirklich alte Clients würden SSLv3- oder RC4-Verschlüsselungen verwenden.

Engel Abad Cerdeira
quelle
3

Es gibt ein gutes PowerShell-Skript, das bei der Konfiguration von IIS 7.5 und 8 hilft:

Dieses PowerShell-Skript richtet Microsoft Internet Information Server 7.5 und 8.0 (IIS) so ein, dass TLS 1.1- und TLS 1.2-Protokolle mit Weiterleitungsgeheimnis unterstützt werden. Darüber hinaus wird die Sicherheit Ihrer SSL-Verbindungen erhöht, indem unsicheres SSL2 und SSL3 sowie alle unsicheren und schwachen Verschlüsselungen deaktiviert werden, auf die möglicherweise auch ein Browser zurückgreift. Dieses Skript implementiert die aktuellen Best-Practice-Regeln.

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

David Thomas
quelle
Hmm, ich bin mir nicht sicher, warum dies abgelehnt wurde. Ich habe dieses Dienstprogramm selbst verwendet und es funktioniert einwandfrei.
David Thomas
Das sieht gut aus, aber mindestens ein Typ hat Probleme, nachdem er es ausgeführt hat - weiß nicht, ob es isoliert ist, wenn andere Leute sagen, dass es großartig ist.
Mark