Terrapin – eine Schwachstelle im SSH-Protokoll, die es Ihnen ermöglicht, die Verbindungssicherheit zu verringern

Eine Gruppe von Forschern der Ruhr-Universität Bochum (Deutschland) stellte eine neue MITM-Angriffstechnik auf SSH vor – Terrapin, die eine Schwachstelle (CVE-2023-48795) im Protokoll ausnutzt. Ein Angreifer, der in der Lage ist, einen MITM-Angriff zu organisieren, hat während des Verbindungsaushandlungsprozesses die Möglichkeit, das Senden einer Nachricht zu blockieren, indem er Protokollerweiterungen konfiguriert, um die Sicherheitsstufe der Verbindung zu verringern. Ein Prototyp des Angriffs-Toolkits wurde auf GitHub veröffentlicht.

Im Kontext von OpenSSH ermöglicht die Schwachstelle beispielsweise, die Verbindung zurückzusetzen, um weniger sichere Authentifizierungsalgorithmen zu verwenden, und den Schutz vor Seitenkanalangriffen zu deaktivieren, die Eingaben durch Analyse der Verzögerungen zwischen Tastenanschlägen auf der Tastatur wiederherstellen. In der Python-Bibliothek AsyncSSH ermöglicht uns der Terrapin-Angriff in Kombination mit einer Schwachstelle (CVE-2023-46446) in der Implementierung der internen Zustandsmaschine, uns in eine SSH-Sitzung einzuzwängen.

Die Schwachstelle betrifft alle SSH-Implementierungen, die Chiffren im ChaCha20-Poly1305- oder CBC-Modus in Kombination mit dem ETM-Modus (Encrypt-then-MAC) unterstützen. Ähnliche Funktionen sind beispielsweise in OpenSSH seit mehr als 10 Jahren verfügbar. Die Schwachstelle wurde in der heutigen Version von OpenSSH 9.6 sowie in Updates auf PuTTY 0.80, libssh 0.10.6/0.9.8 und AsyncSSH 2.14.2 behoben. In Dropbear SSH wurde der Fix bereits zum Code hinzugefügt, es wurde jedoch noch kein neues Release generiert.

Die Schwachstelle wird durch die Tatsache verursacht, dass ein Angreifer, der den Verbindungsverkehr kontrolliert (z. B. der Besitzer eines böswilligen WLAN-Punkts), die Paketsequenznummern während des Verbindungsaushandlungsprozesses anpassen und das stille Löschen einer beliebigen Anzahl von SSH-Dienstnachrichten erreichen kann vom Client oder Server gesendet. Ein Angreifer kann unter anderem SSH_MSG_EXT_INFO-Nachrichten löschen, die zur Konfiguration der verwendeten Protokollerweiterungen verwendet werden. Um zu verhindern, dass die Gegenpartei einen Paketverlust aufgrund einer Lücke in den Sequenznummern erkennt, initiiert der Angreifer das Senden eines Dummy-Pakets mit derselben Sequenznummer wie das Remote-Paket, um die Sequenznummer zu verschieben. Das Dummy-Paket enthält eine Nachricht mit dem Flag SSH_MSG_IGNORE, die bei der Verarbeitung ignoriert wird.

Terrapin – eine Schwachstelle im SSH-Protokoll, die es Ihnen ermöglicht, die Verbindungssicherheit zu verringern

Der Angriff kann nicht mit Stream-Chiffren und CTR durchgeführt werden, da die Integritätsverletzung auf Anwendungsebene erkannt wird. In der Praxis ist nur die ChaCha20-Poly1305-Verschlüsselung anfällig für Angriffe ([E-Mail geschützt] ), bei dem der Status nur durch Nachrichtensequenznummern und eine Kombination aus dem Encrypt-Then-MAC-Modus (*) verfolgt wird[E-Mail geschützt] ) und CBC-Chiffren.

In OpenSSH 9.6 und anderen Implementierungen ist zur Blockierung des Angriffs eine Erweiterung des „Strict KEX“-Protokolls implementiert, die bei Unterstützung auf Server- und Clientseite automatisch aktiviert wird. Die Erweiterung beendet die Verbindung, wenn während des Verbindungsaushandlungsprozesses abnormale oder unnötige Nachrichten (z. B. mit dem Flag SSH_MSG_IGNORE oder SSH2_MSG_DEBUG) empfangen werden, und setzt außerdem den MAC-Zähler (Message Authentication Code) nach Abschluss jedes Schlüsselaustauschs zurück.

Source: opennet.ru

Kommentar hinzufügen