it-swarm.com.de

Sicherheitsanfälligkeit in SSL3 "POODLE"

Kanonische Frage bezüglich der kürzlich offenbarten Oracle-Sicherheitsanfälligkeit in SSL v3. Andere identische oder signifikant ähnliche Fragen sollten als Duplikat dieser Frage geschlossen werden.

  • Was ist die POODLE-Sicherheitslücke?
  • Ich benutze [product/browser]. Bin ich betroffen
  • Ist [product] für den POODLE-Angriff anfällig?
  • Was muss ich tun, um mein [product] in Bezug auf diese Sicherheitsanfälligkeit zu sichern?
  • Wie erkenne ich POODLE-Angriffe in meinem Netzwerk?
  • Gibt es bekannte POODLE-Angriffe?

Verweise:

244
tylerl

Was ist die Pudel-Sicherheitslücke?

Die Sicherheitsanfälligkeit "Pudel" veröffentlicht am 14. Oktober 2014 ist ein Angriff auf das SSL 3.0-Protokoll. Es ist ein Protokoll Fehler, kein Implementierungsproblem; Jede Implementierung von SSL 3.0 leidet darunter. Bitte beachten Sie, dass es sich um das alte SSL 3.0, not TLS 1.0 oder höher handelt. Die TLS-Versionen sind nicht betroffen (DTLS auch nicht).

Kurz gesagt: Wenn SSL 3.0 im CBC-Modus eine Blockverschlüsselung verwendet, verwendet der Verschlüsselungsprozess für einen Datensatz padding so dass die Datenlänge ein Vielfaches der Blockgröße ist. Angenommen, 3DES wird mit 8-Byte-Blöcken verwendet. Ein MAC wird über die Datensatzdaten (und die Datensatzsequenznummer sowie einige andere Headerdaten) berechnet und an die Daten angehängt. Dann werden 1 bis 8 Bytes angehängt, so dass die Gesamtlänge ein Vielfaches von 8 ist. Wenn in diesem Schritt außerdem n Bytes hinzugefügt werden, muss das letzte dieser Bytes vorhanden sein value n-1 . Dies erfolgt so, dass die Entschlüsselung funktioniert.

Betrachten Sie die Entschlüsselung eines Datensatzes: Die 3DES-CBC-Entschlüsselung wird angewendet, dann wird das allerletzte Byte überprüft: Es sollte einen Wert zwischen 0 und 7 enthalten, und dies gibt an, wie viele andere Bytes zum Auffüllen hinzugefügt wurden. Diese Bytes werden entfernt und vor allem ihr Inhalt wird ignoriert . Dies ist der wichtige Punkt: Der Datensatz enthält Bytes, die geändert werden können, ohne dass der Empfänger dies im geringsten beachtet.

Der Pudelangriff funktioniert in einem ausgewählten Klartextkontext wie BEAST und CRIME davor. Der Angreifer ist an Daten interessiert, die mit SSL geschützt werden, und er kann:

  • eigene Daten vor und nach dem geheimen Wert einspeisen, den er erhalten möchte;
  • überprüfen, abfangen und ändern Sie die resultierenden Bytes auf dem Draht.

Das wichtigste und einzig plausible Szenario, in dem solche Bedingungen erfüllt sind, ist ein Webkontext: Der Angreifer führt einen gefälschten WLAN-Zugangspunkt aus und fügt ein eigenes Javascript als Teil einer Webseite (HTTP, nicht HTTPS) ein, die das Opfer durchsucht. Das böse Javascript veranlasst den Browser, Anforderungen an eine HTTPS-Site (z. B. eine Bank-Website) zu senden, für die der Browser des Opfers einen Cookie hat. Der Angreifer will diesen Cookie.

Der Angriff erfolgt byteweise. Das Javascript des Angreifers sorgt dafür, dass die Anforderung so ist, dass das letzte Cookie-Byte am Ende eines Verschlüsselungsblocks (einer der 8-Byte-Blöcke von 3DES) auftritt und dass die Gesamtanforderungslänge eine vollständige Blockauffüllung impliziert. Angenommen, die letzten 8 Cookie-Bytes haben Werte c, c1, ... c7. Nach der Verschlüsselung funktioniert CBC folgendermaßen:

CBC encryption, from Wikipedia

Wenn also der vorherige verschlüsselte Block e, e1, ... e7, dann ist das, was in 3DES eingeht, c XOR e, c1 XOR e1, ... c7 XOR e7. Die eich Werte sind dem Angreifer bekannt (das ist das verschlüsselte Ergebnis).

Anschließend ersetzt der Angreifer von außen den letzten Block des verschlüsselten Datensatzes durch eine Kopie des Blocks, der das letzte Cookie-Byte enthält. Um zu verstehen, was passiert, müssen Sie wissen, wie die CBC-Entschlüsselung funktioniert:

CBC decryption (from Wikipedia)

Der letzte Chiffretextblock wird somit entschlüsselt, was einen Wert ergibt, der mit c endet7 XOR e7. Dieser Wert wird dann mit dem vorherigen verschlüsselten Block XOR-verknüpft. Wenn das Ergebnis mit einem Byte mit dem Wert 7 endet (was mit einer Wahrscheinlichkeit von 1/256 funktioniert), entfernt der Schritt zum Entfernen des Auffüllens die letzten 8 Bytes und endet mit dem intakten Klartext und MAC, und der Server ist zufrieden. Andernfalls liegt entweder das letzte Byte nicht im Bereich von 0 bis 7, und der Server beschwert sich, oder das letzte Byte liegt zwischen 0 und 6, und der Server entfernt die falsche Anzahl von Bytes, und der MAC nicht übereinstimmen, und der Server wird sich beschweren. Mit anderen Worten, der Angreifer kann die Reaktion des Servers beobachten, um festzustellen, ob das CBC-Entschlüsselungsergebnis eine 7 oder etwas anderes gefunden hat. Wenn eine 7 erhalten wird, wird das letzte Cookie-Byte sofort angezeigt.

Wenn das letzte Cookie-Byte erhalten wurde, wird der Prozess erneut mit dem vorherigen Byte ausgeführt und so weiter.

Der Kernpunkt ist, dass SSL 3.0 definiert ist als ignoriert die Füllbytes (mit Ausnahme der letzten). Diese Bytes werden vom MAC nicht abgedeckt und haben keinen definierten Wert.

TLS 1.0 ist nicht anfällig , da das Protokoll in TLS 1.0 angibt, dass all Auffüllbytes das haben müssen Der gleiche Wert und Bibliotheken, die TLS implementieren, überprüfen, ob diese Bytes die erwarteten Werte haben. Daher kann unser Angreifer mit einer Wahrscheinlichkeit von 1/256 (2) kein Glück haben-8), aber mit der Wahrscheinlichkeit 1/18446744073709551616 (2-64), was wesentlich schlimmer ist.


Ich benutze [product]. Bin ich betroffen Ist [product] anfällig für den Pudelangriff?

Das Angriffsszenario erfordert, dass der Angreifer in der Lage ist, eigene Daten zu injizieren, und , um die verschlüsselten Bytes abzufangen. Der einzige plausible Kontext, in dem so etwas passiert, ist ein Webbrowser, wie oben erläutert. In diesem Fall ist Pudel wie BEAST und CRIME ein Angriff auf den Client , nicht auf den Server.

Wenn [product] ist ein Webbrowser, dann sind Sie möglicherweise betroffen. Das hängt aber auch vom Server ab. Die verwendete Protokollversion ist eine Aushandlung zwischen Client und Server. SSL 3.0 wird nur durchgeführt, wenn der Server zustimmt. Daher betrachten Sie könnte als "anfällig", wenn SSL 3.0 verwendet werden kann (dies ist technisch nicht korrekt, da der Angriff in einem Webkontext clientseitig ist.) Ich erwarte jedoch, dass SSL-Sicherheitsmessgeräte so funktionieren.

Bedingungen für das Auftreten der Sicherheitsanfälligkeit: SSL 3.0 unterstützt, und Auswahl einer CBC-basierten Verschlüsselungssuite (RC4-Verschlüsselung hat keine Auffüllung, ist also nicht anfällig für diesen bestimmten Angriff - aber RC4 hat natürlich andere Probleme.

Problemumgehungen:

  • Deaktivieren Sie die SSL 3.0-Unterstützung im Client.
  • Deaktivieren Sie die SSL 3.0-Unterstützung auf dem Server.
  • Deaktivieren Sie die Unterstützung für CBC-basierte Cipher Suites, wenn Sie SSL 3.0 verwenden (entweder auf dem Client oder auf dem Server).
  • Implementieren Sie diese neue SSL/TLS-Erweiterung , um zu erkennen, wenn ein aktiver Angreifer die Verbindung unterbricht, um Ihren Client und Server zur Verwendung von SSL 3.0 zu zwingen, obwohl beide TLS 1.0 oder besser kennen. Sowohl Client als auch Server müssen es implementieren.

Jede dieser vier Lösungen vermeidet die Sicherheitsanfälligkeit.


Was muss ich tun, um mein [product] in Bezug auf diese Sicherheitsanfälligkeit?

Dasselbe wie immer. Ihr Anbieter veröffentlicht Sicherheitsupdates. installiere sie . Installieren Sie die Patches. Alle Patches. TU das. Für Pudel und für alle anderen Schwachstellen. Sie können es sich nicht leisten, sie nicht zu installieren, und das ist nicht neu . Das solltest du schon machen. Wenn Sie die Patches nicht installieren, verschlingt Níðhöggr Ihre Milz.


Wie erkenne ich Pudelangriffe in meinem Netzwerk?

Das tust du nicht! Da der wahrscheinlichste Angriffsaufbau darin besteht, dass der Angreifer das Opfer in ein sein Netzwerk lockt, nicht in Ihr Netzwerk.

Auf der Serverseite möchten Sie möglicherweise auf eine übermäßige Anzahl von Anforderungen reagieren, die bei einem Entschlüsselungsfehler fehlschlagen. Nicht jede Serversoftware protokolliert Ereignisse für solche Fälle, dies sollte jedoch im Rahmen der Möglichkeiten eines anständigen IDS-Systems liegen.


Gibt es bekannte Pudelangriffe?

Meines Wissens nicht. Wenn Sie alle externen E/A des Opfers kontrollieren, ist es in der Tat immer noch erheblich einfacher, den armen Kerl einfach auf eine gefälschte Kopie seiner Bank-Site zu locken. Kryptografische Angriffe sind ordentlich, aber sie erfordern mehr Aufwand als das Ausnutzen der Leichtgläubigkeit des Benutzers.

266
Thomas Pornin

So deaktivieren Sie die SSL v3.0-Unterstützung:

Bei Kunden:

Mozilla Firefox

Entweder

Oder

  • Geben Sie about:config In die Navigationsleiste ein und drücken Sie [Enter]
  • Akzeptieren Sie die Warnung und fahren Sie fort
  • Suche nach tls
  • Ändern Sie den Wert von security.tls.version.min Von 0 In 1 (0 = SSL 3.0; 1 = TLS 1.0).

Chrome

  • Führen Sie Chrome mit dem folgenden Befehlszeilenflag aus: --ssl-version-min=tls1

Internet Explorer

  • Gehen Sie zu Einstellungen -> Internetoptionen -> Registerkarte Erweitert -> Deaktivieren Sie "SSLv3" unter "Sicherheit".

In Webservern:

Apache v2

  • Fügen Sie Ihrer SSL-Konfigurationsdatei die folgende Zeile hinzu oder bearbeiten Sie die vorhandene Zeile wie folgt: SSLProtocol All -SSLv2 -SSLv3
  • Starten Sie den Webserver mit Sudo Apache2ctl restart Neu.

Zeus Webserver

(%ZEUSHOME Ist der Installationsort, normalerweise /usr/local/zeus)

  • Aktualisieren Sie auf Zeus Web Server 4.3r5
  • Fügen Sie %ZEUSHOME%/web/global.cfg Die folgende Zeile hinzu: tuning!ssl3_allow_rehandshake never
  • Starten Sie den Webserver mit Sudo %ZEUSHOME%/restart-zeus Neu.

Verweise:

  1. "POODLE-Angriffe auf SSLv3", ImperialViolet, ImperialViolet - POODLE-Angriffe auf SSLv

  2. "Offizielle Veröffentlichung der Sicherheitsanfälligkeit für SSLv3-POODLE", InfoSec Handlers Diary Blog,> Internet Storm Center - Internetsicherheit | SANS ISC

35
Jock Busuttil

Ich habe einen Blog zum Deaktivieren von SSLv3 in einigen der gängigsten Browser- und Serverplattformen veröffentlicht ( https://scotthelme.co.uk/sslv3-goes-to-the-dogs-poodle-kills-) off-protocol / ). Dies sollte zumindest dazu beitragen, die Frage zu beantworten, wie POODLE als Client oder Server vollständig gemindert werden kann.

Nachfolgend finden Sie die wichtigsten Details.

So schützen Sie Ihren Server

Die einfachste und robusteste Lösung für POODLE besteht darin, die SSLv3-Unterstützung auf Ihrem Server zu deaktivieren. Dies bringt jedoch einige Einschränkungen mit sich. Für den Webverkehr gibt es einige Legacy-Systeme, die keine Verbindung mit etwas anderem als SSLv3 herstellen können. Beispielsweise können Systeme mit IE6 und Windows XP Installationen ohne SP3) nicht mehr mit einer Site kommunizieren, die SSLv3 in Mitleidenschaft zieht. Dies geht aus Zahlen hervor, die von CloudFlare veröffentlicht wurden und SSLv3 in allen Bereichen vollständig deaktiviert haben Im gesamten Kundenbereich ist nur ein winziger Teil des Webverkehrs betroffen, da 98,88% der Windows-Benutzer XP Benutzer mit TLSv1.0 oder besser verbinden).

Apache

Um SSLv3 auf Ihrem Apache-Server zu deaktivieren, können Sie es wie folgt konfigurieren, sowohl im Abschnitt zur SSL-Konfiguration als auch in allen SSL-fähigen virtuellen Hosts explizit:

SSLProtocol All -SSLv2 -SSLv3

Dadurch erhalten Sie Unterstützung für TLSv1.0, TLSv1.1 und TLSv1.2, die Unterstützung für SSLv2 und SSLv3 wird jedoch explizit entfernt. Überprüfen Sie die Konfiguration und starten Sie Apache neu.

apachectl configtest

Sudo service Apache2 restart

NginX

Das Deaktivieren der SSLv3-Unterstützung unter NginX ist ebenfalls sehr einfach.

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Ähnlich wie in der obigen Apache-Konfiguration erhalten Sie TLSv1.0 + -Unterstützung und kein SSL. Sie können die Konfiguration überprüfen und neu starten.

Sudo nginx -t

Sudo service nginx restart

IIS

Dieser erfordert einige Änderungen an der Registrierung und einen Neustart des Servers, ist aber immer noch nicht so schlimm. Microsoft verfügt über einen Support-Artikel mit den erforderlichen Informationen. Sie müssen jedoch lediglich einen Registrierungs-DWORD-Wert ändern/erstellen.

HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

In Protokollen haben Sie höchstwahrscheinlich bereits einen SSL 2.0-Schlüssel. Erstellen Sie daher bei Bedarf SSL 3.0 daneben. Darunter erstellen Sie einen Serverschlüssel und dort einen DWORD-Wert namens Enabled mit dem Wert 0. Starten Sie anschließend den Server neu, damit die Änderungen wirksam werden.

IIS Settings

So überprüfen Sie Ihren Server

Die einfachste und wahrscheinlich am weitesten verbreitete Methode, um alles zu testen, was mit Ihrem SSL-Setup zu tun hat, ist Qualys SSL Test . Navigieren Sie einfach zur Website, geben Sie die Domain für die Website ein, die Sie testen möchten, und klicken Sie auf Senden, um den Test zu starten.

Qualys Check Domain

Sobald der Test abgeschlossen ist, erhalten Sie eine schöne Zusammenfassung Ihrer Ergebnisse und viele detaillierte Informationen weiter unten auf der Seite. Insbesondere möchten Sie im Abschnitt Konfiguration Ihre unterstützten Protokolle einsehen.

Check protocols

Was Sie hier sehen möchten, ist, dass Sie keine SSL-Protokolle unterstützen. Sie sollten SSLv2.0 längst deaktiviert haben, und jetzt haben wir auch SSLv3.0 entfernt. Die Unterstützung von TLSv1.0 oder besser ist gut genug, um die absolute Mehrheit der Internetnutzer zu unterstützen, ohne dass jemand unnötigen Risiken ausgesetzt ist.

So schützen Sie Ihren Browser

Sie können sich auch vor POODLE schützen, indem Sie die SSLv3-Unterstützung in Ihrem Browser deaktivieren. Dies bedeutet, dass Ihr Browser selbst dann, wenn der Server SSLv3-Unterstützung bietet, diese niemals verwendet, selbst während eines Protokoll-Downgrade-Angriffs.

Feuerfuchs

Firefox-Benutzer können about: config in ihre Adressleiste und dann security.tls.version.min in das Suchfeld eingeben. Dadurch wird die Einstellung angezeigt, die von 0 auf 1 geändert werden muss. Mit der vorhandenen Einstellung kann Firefox SSLv3 verwenden, wo es verfügbar ist und falls erforderlich. Wenn Sie die Einstellung ändern, wird Firefox gezwungen, immer nur TLSv1.0 oder besser zu verwenden, das für POODLE nicht anfällig ist.

Firefox Settings

Chrome

Chrome-Nutzer haben in der GUI keine Option zum Deaktivieren von SSLv3, da Google es entfernt hat, da Unklarheiten darüber bestehen, ob SSLv3 oder TLSv1 mit einem höheren numerischen Wert besser ist. Stattdessen können Sie das Befehlszeilenflag --ssl-version-min = tls1 hinzufügen, um die Verwendung von TLS zu erzwingen und jegliche Verbindung über das SSL-Protokoll zu verhindern. Klicken Sie in Windows mit der rechten Maustaste auf die Verknüpfung Chrome), klicken Sie auf Eigenschaften und fügen Sie das Befehlszeilenflag hinzu (siehe Abbildung unten).

Chrome Settings

Wenn Sie Google Chrome unter Mac, Linux, Chrome OS oder Android) verwenden, können Sie diese Anweisungen befolgen hier .

Internet Explorer

Das Reparieren von Internet Explorer ist ebenfalls ziemlich einfach. Gehen Sie zu Einstellungen, Internetoptionen und klicken Sie auf die Registerkarte Erweitert. Scrollen Sie nach unten, bis das Kontrollkästchen SSL 3.0 verwenden angezeigt wird, und deaktivieren Sie es.

IE Settings

So überprüfen Sie Ihren Browser

Wenn Sie überprüfen möchten, ob Ihre Browseränderungen die SSLv3.0-Unterstützung definitiv entfernt haben, können Sie einige Websites verwenden. Wenn Sie https://zmap.io/sslv3/ mit aktiviertem SSLv3 in Ihrem Browser besuchen, wird die Warnmeldung angezeigt, die ich hier in Chrome where) erhalte Ich habe SSLv3 noch nicht deaktiviert. Um zu überprüfen, ob die Site wie erwartet funktioniert, habe ich die SSLv3-Unterstützung in Internet Explorer deaktiviert und die Site auch dort geöffnet. Hier sehen Sie den Unterschied.

Chrome and IE test

Sie können auch https://www.poodletest.com/ neben Zmap ausprobieren.

32
Scott Helme

Wenn Sie den Namen Ihrer Website nicht an diese anderen Websites weitergeben möchten, können Sie ihn auch mit ...

openssl s_client -ssl3 -Host <your Host name> -port 443

Wenn es keine Verbindung herstellt, ist alles in Ordnung.

Stellen Sie aber auch sicher, dass Ihr openssl ordnungsgemäß mit Ihrer Site funktioniert ...

openssl s_client -Host <your Host name> -port 443

Durch Deaktivieren von sslv3 werden auch IE6 und Windows deaktiviert XP SP2 und niedriger. Nicht viele haben IE6, aber viele haben noch Windows XP.

3
niknah