Sicherheitsanfälligkeit in SSH-Clients OpenSSH und PuTTY

In den SSH-Clients OpenSSH und PuTTY entdeckt eine Schwachstelle (CVE-2020-14002 in PuTTY und CVE-2020-14145 in OpenSSH), die zu einem Datenleck im Verbindungsvereinbarungsalgorithmus führt. Die Sicherheitsanfälligkeit ermöglicht es einem Angreifer, der den Verkehr des Clients abfangen kann (zum Beispiel wenn sich ein Benutzer über einen vom Angreifer kontrollierten WLAN-Zugangspunkt verbindet), den Versuch der ursprünglichen Verbindung des Clients zu einem Host zu erkennen, bevor der Client den Hostschlüssel zwischengespeichert hat.

Weiß der Angreifer, dass der Client versucht, sich zum ersten Mal zu verbinden und noch keinen Hostschlüssel gespeichert hat, kann er die Verbindung über sich selbst umleiten (MITM) und dem Client seinen eigenen Hosts-Schlüssel präsentieren, den der SSH-Client als Schlüssel des Zielhosts betrachtet, sofern der Fingerabdruck des Schlüssels nicht überprüft wird. Dadurch kann der Angreifer einen MITM-Angriff ohne Verdacht des Benutzers durchführen und Verbindungen ignorieren, bei denen der Client bereits zwischengespeicherte Hostschlüssel hat, deren Manipulation eine Warnung über eine Änderung des Hostschlüssels zur Folge hätte. Der Angriff basiert auf der Nachlässigkeit der Benutzer, die beim ersten Verbindungsaufbau keine manuelle Überprüfung des Fingerabdrucks des Hostschlüssels durchführen. Diejenigen, die die Fingerabdrücke der Schlüssel überprüfen, sind gegen solche Angriffe geschützt.

Ein Kriterium für die Bestimmung des ersten Verbindungsversuchs ist die Änderung der Reihenfolge der Aufzählung unterstützter Algorithmen für Hosts-Schlüssel. Wenn es sich um die erste Verbindung handelt, überträgt der Client die Standardliste der Algorithmen, und wenn der Hostschlüssel bereits im Cache gespeichert ist, wird der zugehörige Algorithmus an die erste Stelle gesetzt (Algorithmen werden in der Reihenfolge der Präferenz sortiert).

Das Problem tritt in den Versionen von OpenSSH von 5.7 bis 8.3 und in PuTTY von 0.68 bis 0.73 auf. Das Problem behoben in der Version PuTTY 0.74 wurde durch die Hinzufügung einer Option zur Deaktivierung der dynamischen Erstellung der Liste von Algorithmen zur Handhabung von Hosts-Schlüsseln zugunsten der Aufzählung von Algorithmen in fester Reihenfolge behoben.

Das OpenSSH-Projekt plant nicht, das Verhalten des SSH-Clients zu ändern, da im Falle, dass der Algorithmus des vorhandenen Schlüssels nicht an erster Stelle angegeben wird, ein Versuch unternommen wird, einen nicht zu dem zwischengespeicherten Schlüssel passenden Algorithmus anzuwenden, mit einer Warnung über den unbekannten Schlüssel. Das bedeutet, es gibt die Wahl – entweder ein Informationsleck (OpenSSH und PuTTY) oder die Ausgabe von Warnungen über den Schlüsselwechsel (Dropbear SSH), wenn der gespeicherte Schlüssel nicht dem ersten Algorithmus in der Standardliste entspricht.

Um in OpenSSH Schutz zu gewährleisten, wird empfohlen, alternative Methoden zur Überprüfung des Hostschlüssels mittels SSHFP-Einträgen in DNSSEC und Hostzertifikaten (PKI) zu verwenden. Zudem kann die adaptive Auswahl der Hostschlüssel-Algorithmen über die Option HostKeyAlgorithms deaktiviert werden, und die Option UpdateHostKeys kann genutzt werden, um dem Client zusätzliche Hostschlüssel nach der Authentifizierung zu ermöglichen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4