[Generic/OpenSSH] Schwachstelle in bestimmten Authentifizierungsverfahren
(2002-06-27 15:58:26.214152+00)
Quelle:
http://www.cert.org/advisories/CA-2002-18.html
Details zur angekündigten OpenSSH-Schwachstelle wurden bereits jetzt veröffentlicht. Die Zahl der betroffenen Systeme ist weitaus geringer, als nach der Ankündigung anzunehmen war.
Betroffene Systeme
- OpenBSD 3.0 und 3.1
- FreeBSD-current
- Andere Systeme, die OpenSSH ab Version 2.3p1 einsetzen und bei denen
BSD_AUTH
oderSKEY
zur Kompilierzeit aktiviert wurde. - PAM-basierte Systeme mit OpenSSH ab Version 2.3p1 und aktivierter keyboard interactive-Authentifizierung (nicht die Voreinstellung).
Nicht betroffene Systeme
- Debian GNU/Linux stable mit OpenSSH 1.2.3
Einfallstor
spezielle Authentifizierungspakete im Rahmen des SSH-Protokolls
Auswirkung
Es liegen glaubhafte Berichte vor, daß ein Angreifer ohne Authentifizierung beliebigen Code mit root
-Rechten ausführen kann, falls BSD_AUTH
oder SKEY
aktiviert wurde. Für reine PAM-Systeme mit "keyboard interactive"-Authentifizierung ist dies nicht bekannt; es kann aber auch nicht ausgeschlossen werden.
Durch das Einschalten von privilege separation kann ein Angreifer nur sshd
-Rechte ohne unmittelbaren Dateisystemszugriff erlangen.
Typ der Verwundbarkeit
input validation error, buffer overflow bug
Gefahrenpotential
sehr hoch, in bestimmten Umgebungen kann privilege separation das Gefahrenpotential jedoch reduzieren.
(Hinweise zur Einstufung des Gefahrenpotentials.)
Beschreibung
Die bereits am 2002-06-25 von den OpenSSH-Entwicklern angekündigte Schwachstelle wurde entgegen der Ankündigung bereits am 2002-06-26 en detail beschrieben. Es handelt sich um Fehler im Programmcode betimmter Authentifizierungsmethoden, welche im wesentlichen alle interaktiv sind: Es wird nicht nur ein einzelnes Token zur Authentifizierung übermittelt (z.B. ein Paßwort), sondern es findet ein (im Prinzip) bidirektionaler Nachrichtenaustausch zwischen Client und Server statt. Betroffen von diesem Fehler sind:
- die
BSD_AUTH
-Authentifizierungsmethode - die direkt in OpenSSH optional eingebaute
SKEY
-Methode - die PAM-basierte Authentifizierungsmethode "keyboard interactive"
BSD_AUTH
ist lediglich auf BSD-Systemen einkompiliert, SKEY
ist ebenso hauptsächlich dort anzutreffen. Die dritte Methode ist eine bestimmte Spielart von PAM, erfordert also einkompilierte PAM-Unterstützung. Nach der Installation der portablen OpenSSH-Distribution ist dieses Feature zunächst abgeschaltet und muß explizit eingeschaltet werden. (Hinweis: Es gibt auch S/Key-Authentifizierung in Form PAM-Moduls, welches entgegen der ursprünglichen S/Key-Philosophie auf die Challenge-Nachricht verzichtet und daher auch ohne den "keyboard interactive"-Modus funktioniert. Der bloße Einsatz eines derartigen PAM-Moduls macht an sich einen SSH-Server nicht anfällig für die beschriebenen Schwachstellen.)
Bei Systemen mit BSD_AUTH
- bzw. SKEY
-Unterstützung sind funktionierende Angriffsprogramme verfügbar, die (falls privilege separation nicht aktiviert ist) einem Angreifer root
-Rechte auf dem angegriffenen System geben, ohne daß dieser sich vorher authentifizieren muß. Für die PAM/"keyboard interactive"-Schwachstelle ist dies ebenfalls zu erwarten.
Bezüglich der betroffenen Systeme ist folgendes anzumerken: OpenSSH 1.2.3 unterstützt Version 2 des SSH-Protokolls nicht und enthält daher auch nicht den von der Schwachstelle betroffenen Programmcode. Bevor das Not-Upgrade auf OpenSSH 3.3.p1 durchgeführt wurde, war Debian GNU/Linux stable also von der Schwachstelle nicht betroffen, nach dem Upgrade bei entsprechender Konfiguration dagegen durchaus. (Dies ist allerdings nicht die Schuld der Debian-Entwickler.)
Hinweis: Auf der OpenSSH-Webseite ist derzeit folgende Warnung zu lesen:
The 3.4 release contain many other fixes done over a week long audit started when this issue came to light. We believe that some of those fixes are likely to be important security fixes. Therefore, we urge an upgrade to 3.4.Gegenwärtig wird von verschiedener Seite geprüft, ob neben der PAM-Problematik (die in den ersten detaillierten Advisories nicht erwähnt wurde) weitere kritische Korrekturen eingeflossen sind, die bisher nicht erwähnt wurden.
Workaround
- Abschalten aller interaktiven Authentifizierungsverfahren: Dadurch wird verhindert, daß der verwundbare Code jemals ausgeführt wird. Die Schwachstelle wird dadurch zuverlässig unterdrückt. Dieser Weg sollte auf allen Systemen beschritten werden, bei denen nicht bekannt ist, mit welchen Optionen und aus welchen Quellen der OpenSSH-Server
sshd
kompiliert wurde. Ab OpenSSH 2.9 sind dazu folgende Konfigurationsänderungen nötig (wiederum in der Dateisshd_config
):ChallengeResponseAuthentication no PAMAuthenticationViaKbdInt no
In älteren Versionen heißen diese Optionen:
KbdInteractiveAuthentication no ChallengeResponseAuthentication no
- Deaktivierung von Protokoll-Version 2: Durch das Einfügen bzw. Ändern der "
Protocol
"-Zeile in der SSH-Server-Konfigurationsdatei (typischerweise/etc/sshd_config
oder/etc/ssh/sshd_config
) kann der kritische Programmcode deaktiviert werden:Protocol 1
Diese Maßnahme führt dazu, daß Clients, die nur Protokoll-Version 2 unterstützen, den SSH-Dienst nicht mehr nutzen können.
chroot
in ein leeres Verzeichnis und fehlender root
-Privilegien kann ein Angreifer immer noch auf (móglicherweise ungesicherte) Dienste auf locahost
zugreifen, das Netz nutzen (z.B. als Spam-Relay oder Brückenkopf für weitere Angriffe), oder über Kernel-Bugs doch root
-Rechte erlangen.
Privilege separation kann tatsächlich eine Klasse von Angriffen eliminieren (nämlich die meisten, die sich nach der Authentifizierung des Benutzers abspielen, zum Beispiel solche, die auf einer Schwachstelle in der Channel-Verarbeitung basieren). Wenn privilege separation funktioniert (die Zusammenarbeit mit einer ganzen Klasse von PAM-Modulen ist beispielsweise derzeit nicht möglich), sollte diese Funktionalität daher aktiviert werden. Als Gegenmaßnahme für das aktuelle Problem ist sie jedoch nicht ausreichend.
Gegenmaßnahmen
- Umstieg auf OpenSSH 3.4.
- Einspielen des Patches aus dem Advisory der OpenSSH-Entwickler. Von Seiten der OpenSSH-Entwickler gibt es allerdings keine klare Zusage, daß dieser Patch die ihnen bekannten Probleme behebt.
- Eventuell Umstieg auf eine andere SSH-Implementierung. Das RUS-CERT prüft derzeit Alternativen.
Weitere Information zu diesem Thema
- Debian-Advisory DSA-134
Revisionen
- V.1.0 (2002-06-27)
- V.2.0 (2002-07-03) Exploit-Code für BSD_AUTH/SKEY verfügbar, für PAM zu erwarten.
Weitere Artikel zu diesem Thema:
- [Generic/OpenSSH] Neue OpenSSH-Schwachstelle angekündigt (2002-06-25)
Die Entwickler von OpenSSH kündigen die Veröffentlichung einer nicht näher beschriebenen Schwachstelle für die Woche ab dem 1. Juli 2002 an.
Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.
Copyright © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/
https://cert.uni-stuttgart.de/ticker/article.php?mid=858