Tastatur und Computermaus als Symbol für Hacking

Datenlecks durch öffentliche SSH-Keys

Datenlecks durch öffentliche SSH-Keys

Datenlecks durch öffentliche SSH-Keys

SSH wird häufig von Systemadministratoren zur Fernsteuerung von Systemen über die Shell-Befehlszeile verwendet. Doch SSH birgt auch Gefahren und unbekannte Schwachstellen. Im folgenden Beitrag möchten wir Ihnen diese gerne vorstellen:

Unsere Leitstelle wurde jüngst durch die ausgelöste Regel "SSH aus dem Internet (Secure Shell)" auf eine Sicherheitslücke aufmerksam. Die Regel "SSH aus dem Internet (Secure Shell)" erkennt Netzwerkereignisse, die auf die Verwendung von SSH-Verkehr aus dem Internet hinweisen. Diese im Vergleich kleinere Schwachstelle im SSH-Authentifizierungsprotokoll erscheint zwar zunächst harmlos, kann aber zu Offenlegungen der Infrastruktur eines Unternehmens führen. Im Folgenden möchten wir Ihnen erläutern warum:

Um eine ständige Eingabe von Passwörtern für den Zugang zu SSH-Servern zu vermeiden, nutzen Administratoren in der Regel sogenannte SSH-Keys. Die Verwendung dieser Schlüssel ist die gängigste Methode zur Identifizierung und Authentifizierung von Benutzern. Als Schutzmaßnahme werden stets ein öffentlicher und ein privater Schlüssel als Paar verwendet. Der öffentliche Schlüssel kann dabei jederzeit aus dem privaten Schlüssel wiederhergestellt werden, jedoch nicht umgekehrt. Öffentliche Schlüssel sind - wie der Begriff besagt - öffentlich und teilweise weit verbreitet. Private Schlüssel sind nur dem jeweiligen Besitzer zugeordnet und dürfen im Gegensatz zu öffentlichen Schlüsseln nicht weitergegeben werden.

Authorisierung von GitHub- oder Gitlab-Repositorys

Eine Besonderheit besteht bei der Authorisierung von GitHub- oder Gitlab-Repositorys. Hier werden genutzte öffentliche SSH-Schlüssel automatisch der Öffentlichkeit zugänglich gemacht. Um öffentliche Schlüssel eines bestimmten Benutzers zu erhalten, müssen Sie lediglich .keys an das Ende eines Benutzernamens anhängen (z. B. https://github.com/{username}.keys). Dies ist eine recht unbekannte Funktion von GitHub und Gitlab, die theoretisch jeden in die Lage versetzt, auf Millionen von öffentlichen Schlüsseln zuzugreifen. Grundsätzlich birgt dies noch keine Gefahr. Doch eine kritische Schwachstelle ermöglicht es, mithilfe des öffentlichen Schlüssels auf sensible Informationen zuzugreifen:

Private On-Premise-Gitlab-CE-Instanzen lassen es zu, einige gängige Benutzernamen durch Anwendung der Brute-Force-Methode zu ermitteln und die öffentlichen Schlüssel der vorhandenen Benutzer zu erhalten. Darüber hinaus können zusätzliche Informationen über Mitarbeiter einer bestimmten Entität eingesehen werden. Wenn der entsprechende SSH-Client eine Authentifizierungsanfrage an einen Server sendet, zählt er grundsätzlich alle seine öffentlichen Schlüssel auf, für die private Schlüssel existieren. Interessantes Detail: Man benötigt keinen privaten Schlüssel, um zu überprüfen, ob ein Server den Zugriff von einer bestimmten öffentlichen/privaten Schlüsselkombination zulässt. Sobald man also Zugriff auf einen öffentlichen Schlüssel hat, kann man überprüfen, ob ein Server den Zugriff für den angegebenen öffentlichen Schlüssel und ein Benutzernamenpaar zulässt.

Ein Angreifer kann auf diese Weise eine große Menge an öffentlichen Schlüsseln von GitHub abrufen und einen internetweiten Scan von SSH-Servern auf allen IPv4-Adressen der Infrastruktur eines Unternehmens durchführen. Cyberkriminelle können damit alle IP‘s innerhalb weniger Tage scannen.

Wenn Ihre Infrastruktur auf Standard-SSH-Ports läuft und Standard-SSH-Benutzernamen verwendet, kann dies folglich ein zusätzliches Ziel für gezielte Angriffe darstellen. Es droht der unberechtigte Zugriff auf Kunden- sowie personenbezogene Daten.

Unsere Handlungsempfehlungen:

  • SSH-Server sollten nur mit starken Sicherheitskontrollen dem Internet ausgesetzt sein, da diese Server häufig als Erstzugang oder Hintertürvektor für Angriffe ins Visier genommen werden.
  • Ziehen Sie den Einsatz einer Multi-Faktor-Authentifizierung in Erwägung.
  • Nutzen Sie stets aktuelle Systeme.
  • Schalten Sie Remote Root-Login aus.
  • Grundsätzlich sind die Daten auf einem eigenen Server, der getrennt vom Internet im eigenen lokalen Netz steht, besser aufgehoben als auf den Servern eines externen Anbieters wie GitHub. In Deutschland gehostete und vom eigenen Admin verwaltete Server sind zu favorisieren.