EN

Wie man einen SSL-POODLE-Angriff verhindert

In diesem Artikel:

Der POODLE-Angriff (Padding Oracle On Downgraded Legacy Encryption) ist ein Fallback-Angriff, der versucht, die verwendete TLS-Protokollversion auf SSL 3.0 herunterzustufen. Ein POODLE-Angriff kann auch erfolgreich gegen die TLS-Protokollversionen 1.0 – 1.2 durchgeführt werden.

In diesem Artikel erfahren Sie, wie Sie SSL POODLE verhindern können.

Sicherheitsbewertung des SSL POODLE-Angriffs

Security Assessment Prevent SSL POODLE

CVSS-Vektor: AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N

Informationen zur SSL POODLE-Sicherheitslücke

Der POODLE-Angriff (Padding Oracle On Downgraded Legacy Encryption) wurde von Bodo Möller, Thai Duong und Krzysztof Kotowicz vom Google Security Team entdeckt. Sie wurde im Oktober 2014 in einem Papier mit dem Titel This POODLE Bites: Exploiting The SSL 3.0 Fallback.

Dieser Angriff besteht aus zwei Teilen. Mit einem Man-in-the-Middle-Angriff kann ein Angreifer eine Verbindung zwischen einem Server und einem Client dazu zwingen, von der Verschlüsselung des TLS-Protokolls (Transport Layer Security) auf die SSL-3.0-Verschlüsselung heruntergestuft zu werden. Dadurch kann er den Datenverkehr zwischen dem Client und dem Server abhören und entschlüsseln. 

Der zweite Teil ist ein Padding-Orakel-Angriff, bei dem die verschlüsselten Informationen (Chiffretext) durch wiederholtes Senden von Anfragen an einen Webserver aufgedeckt werden. Dieser Teil des Angriffs nutzt eine Sicherheitslücke im CBC-Verschlüsselungsmodus (Cipher Block Chaining) von SSL 3.0 aus. Daher ist es notwendig, diese Version des Protokolls herabzustufen.

Poodle Attack Crashtest Securityk light Wie man einen SSL-POODLE-Angriff verhindert
POODLE Angriff

Wenn ein POODLE-Angriff erfolgreich ist, kann ein Angreifer sensible Daten wie Passwörter, Sitzungs-Cookies oder andere Authentifizierungs-Token auslesen, die es ihm ermöglichen, sich als Benutzer auszugeben und Zugang zu einer Website zu erhalten. Auch persönliche Daten, Kreditkartennummern und Gesundheitsdaten können auf diese Weise in Umlauf gebracht werden. 

Mit anderen Worten: Damit ein POODLE-Angriff möglich ist und Erfolg hat, müssen mehrere Bedingungen erfüllt sein. Angreifer müssen:

  • einen erfolgreichen Man-in-the-Middle-Angriff (MITM) starten – was an sich schon eine Reihe von Umständen erfordert
  • das Opfer dazu zwingen, bösartiges JavaScript auszuführen und den Server zu veranlassen, SSL 3.0 herunterzustufen oder darauf zurückzugreifen
  • Anfragen an den Server senden, wobei Sie die Eingabe variieren, um die CBC-Schwachstelle auszunutzen
  • die Serverantworten überwachen und den daraus resultierenden Chiffriertext, um die Informationen zu entschlüsseln und Zugang zu erhalten

Wenn Angreifer alle diese Schritte ausführen können, ist ein POODLE-Angriff erfolgreich. Insgesamt dauert der Angriff nur einige Minuten, sofern die oben genannten Bedingungen erfüllt sind.

Jedes System, das SSL 3.0 mit CBC unterstützt oder eine SSL/TLS-Suite implementiert, ist für diese Art von Angriff anfällig. Darüber hinaus sind auch Systeme, die auf SSL/TLS-Bibliotheken (wie OpenSSL) verweisen, mögliche Ziele. Darüber hinaus wurde 2014 festgestellt, dass die TLS-Protokollversionen 1.0 – 1.2 ebenfalls für einen POODLE-Angriff anfällig sind und sogar noch leichtere Ziele darstellen, da im Rahmen des Angriffs kein Fallback zu SSL erforderlich ist.

Wie funktioniert der POODLE-Angriff?

Die beiden Teile des Angriffs werden im Folgenden beschrieben.

Der Downgrade-Tanz

Der Angriff nutzt die Funktion zur Aushandlung der Protokollversion aus, die in TLS- und SSL-Implementierungen vorhanden ist. Das bedeutet, dass Server und Clients, die TLS verwenden, wieder zu SSL wechseln können, wenn sie sich mit einem System verbinden, das SSL verwendet. Das heißt, sie können mit älteren Systemen arbeiten, die ältere Protokollversionen verwenden, um die Interoperabilität und die Benutzerfreundlichkeit zu verbessern. 

Ein Angreifer nutzt diese Funktion aus, um einen Server zur Umstellung auf SSL 3.0 zu zwingen, ein Downgrade-Tanz oder Downgrade-Angriff. Der Angreifer erreicht diese Herabstufung, indem er wiederholt versucht, eine sichere Verbindung mit einem Server herzustellen (Handshake) und diese dann abbricht.

Nach wiederholten Verbindungsabbrüchen wechselt ein Server automatisch zu einem älteren Protokoll, um dem Client, der angeblich eine Verbindung herstellen will, entgegenzukommen.

Blockchiffren und CBC-Verschlüsselung

Um das Padding-Orakel zu verstehen, müssen Sie wissen, wie die Verschlüsselung im CBC-Modus funktioniert. 

SSL- und TLS-Protokolle ermöglichen es Browsern und Servern, Sätze von Verschlüsselungsalgorithmen zu verwenden, die auch als Cipher Suites bezeichnet werden. Diese Chiffriersuiten enthalten mehrere verschiedene Algorithmen für unterschiedliche Zwecke, darunter auch so genannte Blockchiffren wie Advanced Encryption Standard (AES) und Data Encryption Standard (DES).

Bei der Verwendung von Blockchiffren werden die Daten in Blöcken verschlüsselt, die eine feste Größe haben. Um Daten zu verschlüsseln, müssen sie also in gleiche Blöcke aufgeteilt werden. Wenn die Daten in einem Block nicht ausreichen, wird eine Auffüllung hinzugefügt. Diese Auffüllung wird benötigt, um sicherzustellen, dass die Länge der Daten bzw. der Nachricht der Standardblockgröße entspricht, z. B. 8 oder 16 Byte.

Cipher Suites, die für einen POODLE-Angriff anfällig sind, verwenden außerdem einen Cipher-Blockchain (CBC)-Verschlüsselungsmodus. Dieser Modus der Datenverschlüsselung funktioniert wie folgt.

Zunächst wird der Klartext bzw. die Nachricht in Blöcke zerlegt. Dann werden mehrere Bytes oder ein ganzer Auffüllungsblock am Ende hinzugefügt, um sicherzustellen, dass alle Blöcke die gleiche Größe haben. Schließlich wird der Klartext im ersten Block mit einem zufälligen Initialisierungsvektor (IV), der eindeutig ist, XOR-verknüpft, um einen Zwischenwert zu erzeugen.

Danach wird der Zwischenwert verschlüsselt, indem er in die Blockchiffre eingespeist wird (die den Chiffretext erzeugt). Der daraus resultierende Chiffriertextblock wird als Schlüssel (d. h. als Initialisierungsvektor) im nächsten Block verwendet, der mit dem aufgefüllten Klartext XOR-verknüpft werden muss. 

Um die Nachricht zu entschlüsseln, muss die Reihenfolge dieses Prozesses umgekehrt werden. Wenn Sie einen Block entschlüsseln, müssen Sie ihn mit dem vorherigen Block XOR-verknüpfen. Auf diese Weise werden die Blöcke aneinandergereiht, daher der Name.

Das Auffüllorakel und die CBC-Sicherheitsschwachstelle

Die Schwachstelle bei dieser Art der Verschlüsselung ist auf einen Fehler in der Auffüllungsvalidierung bei CBC zurückzuführen. In SSL 3.0, das CBC verwendet, werden die Auffüllbytes (der Auffüllinhalt) nicht spezifiziert oder überprüft. Die einzige Anforderung besteht darin, dass das letzte Byte des vorhergehenden Blocks die Auffülllänge angeben muss. Wenn die Länge des Auffüllens korrekt ist, akzeptiert der Server den Auffüllblock. 

Da SSL 3.0 das MAC-then-encrypt-Verfahren verwendet, wird der Klartext-Nachrichtenauthentifizierungscode (MAC) vor dem Auffüllen und der Verschlüsselung berechnet. Mit anderen Worten: Das Auffüllen oder der Auffüllblock ist nicht sicher, und genau das machen sich Angreifer zunutze, wenn sie einen Auffüll-Orakel-Angriff durchführen. 

Da der Angreifer bereits durch einen Man-in-the-Middle-Angriff Zugang zur Kommunikation zwischen Client und Server erhalten hat, ist er im Besitz der verschlüsselten Kommunikation. HTTP-POST-Anfragen haben eine definierte Struktur, so dass der Angreifer weiß, wo sich ein Session-Cookie befindet.

Der Angreifer ändert dann die verschlüsselten Daten, indem er eine Anfrage fälscht, die ein Vielfaches der Blockgröße beträgt. Diese Anfrage enthält das Sitzungs-Cookie in einem bestimmten Block und hat am Ende die notwendige Auffüllung, von der er weiß, dass sie akzeptiert wird. Schließlich senden sie diese Anfrage an den Server und versuchen, den Wert des letzten Bytes des Cookies zu erraten.

Der Server antwortet daraufhin, indem er die Anfrage entweder bestätigt oder ablehnt. Wenn der Server die Anfrage ablehnt, hat der Angreifer den Wert nicht richtig erraten. Nimmt der Server die Anfrage jedoch an, ist der Wert des letzten Bytes des Blocks korrekt. Mit Hilfe von XOR kann der Angreifer dann das entschlüsselte Byte mit dem vorherigen Block kombinieren und so das echte letzte Byte (Klartext) aufdecken. Durch Wiederholung dieses Vorgangs kann er das Cookie Byte für Byte erraten.

Präventionsleitfaden für SSL/TLS-Schwachstellen

Leitfaden

Erfahren Sie, wie Sie verschiedene Arten von SSL/TLS-Schwachstellen erkennen und verhindern können.

Mehr erfahren

Zusammenfassung

Zusammenfassend lässt sich sagen, wie ein POODLE-Angriff Schritt für Schritt ausgeführt wird:

1. Ein Angreifer führt einen Man-in-the-Middle-Angriff durch, der in öffentlichen Netzwerken mit geringer Sicherheit leichter zu bewerkstelligen ist. Dies geschieht häufig, indem ein Benutzer gezwungen wird, bösartiges JavaScript auf einer unschuldig aussehenden Website auszuführen.

2. Der MITM-Angriff ermöglicht es dem Angreifer, die Kommunikation zwischen dem Client und dem Server zu belauschen und in diesen Verkehr einzugreifen und Eingaben hinzuzufügen. Diese Kommunikation bleibt verschlüsselt, so dass der Angreifer den Server zu einem Downgrade auf SSL 3.0 veranlassen muss, um die Sicherheitslücke auszunutzen.

3. Nachdem der Angreifer den Server durch einen Protokoll-Downgrade-Tanz erfolgreich dazu gebracht hat, zu SSL 3.0 zu wechseln, kann er mit dem Padding-Orakel-Angriff beginnen. 

4. Der Angreifer nutzt die SSL-3.0-Padding-Schwachstelle aus, die es ihm ermöglicht, Chiffriertext wiederherzustellen, indem er zahlreiche Cookie-tragende HTTP-POST-Anfragen an den Server mit unterschiedlichen Eingaben im letzten Block der Anfrage sendet.
5. Durch Überwachung der Serverantworten und Variation der Eingaben können die Angreifer den Inhalt Byte für Byte wiederherstellen. Für ein Byte des Cookies sind in der Regel nicht mehr als 256 Versuche nötig, um es aufzudecken, und bei einem 16-Byte-Cookie entspricht dies maximal 4096 Anfragen.

Wie man den SSL-POODLE-Angriff verhindert

Um den POODLE-Angriff zu verhindern, muss die Unterstützung für SSL 3.0 sowohl auf den Servern als auch in den Browsern deaktiviert werden, und es muss eine sichere TLS-Konfiguration eingerichtet werden, die idealerweise TLS 1.2 oder höher unterstützt.

Außerdem müssen Sie sicherstellen, dass TLS_FALLBACK_SCSV aktiviert ist. Diese Protokollerweiterung garantiert, dass das Protokoll während einer Verhandlung niemals auf frühere Protokollversionen zurückfällt, die unterhalb der höchsten vom Server unterstützten SSL- oder TLS-Version liegen. 

Die Implementierung von TLS_FALLBACK_SCSV bedeutet, dass SSL nur verwendet wird, wenn ein bestehendes Altsystem beteiligt ist, und nicht ein Downgrade-Angriff, der den Server zwingt, Versionen zu überspringen und auf SSL 3.0 herunterzustufen. Dadurch wird das erzwungene Downgrade und damit der gesamte POODLE-Angriff verhindert.

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit https://example.com
Wir scannen derzeit https://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 06/12/2022
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.