Zum Inhalt

47-Tage-Zertifikate sind in Planung. Bist du bereit?

Jetzt handeln →

Ein Leitfaden zum Schutz und zur Verwaltung von SSH-Schlüsseln zur Minderung von Sicherheitsrisiken

Ein Leitfaden zum Schutz und zur Verwaltung von SSH-Schlüsseln zur Minderung von Sicherheitsrisiken

Wer sich schon länger in einer IT-Umgebung bewegt, ist höchstwahrscheinlich schon einmal auf den Begriff SSH-Schlüssel gestoßen. Secure Shell (SSH)-Schlüssel sind Zugangsdaten, die im SSH-Protokoll für moderne Infrastructure-as-a-Service-Plattformen wie AWS, Google Cloud und Azure verwendet werden.

Was sind SSH-Schlüssel?

SSH-Schlüssel gibt es in verschiedenen Größen. Die gängigste Wahl ist die RSA-2048-Bit-Verschlüsselung. Sie ist vergleichbar mit einem 617-stelligen Passwort. Die Generierung eines SSH-Schlüsselpaars ist je nach Betriebssystem unterschiedlich. Unter Windows kann ein Benutzer es durch Herunterladen und Verwenden eines SSH-Clients wie PuTTY generieren, während dies auf Mac- und Linux-Systemen über ein Terminalfenster möglich ist. 

SSH-Schlüssel liegen immer paarweise vor, bestehend aus einem öffentlichen und einem privaten Schlüssel. Es gibt drei verschiedene Schlüsseltypen, je nachdem, wer oder was diese Schlüssel besitzt:

  • Benutzerschlüssel

    Wenn der private und der öffentliche Schlüssel beim Benutzer verbleiben, wird dieser Satz von SSH-Schlüsseln als Benutzerschlüssel bezeichnet.

  • Hostschlüssel

    Wenn sich der private und der öffentliche Schlüssel auf dem Remote-System befinden, wird dieses Schlüsselpaar als Host-Schlüssel bezeichnet.

  • Sitzungsschlüssel

    Dieser Schlüsseltyp wird verwendet, wenn große Datenmengen übertragen und verschlüsselt werden müssen.

Wie funktioniert die SSH-Schlüsselauthentifizierung?

Nach der erfolgreichen Generierung eines Schlüsselpaars wird der Benutzer aufgefordert, den SSH-Benutzernamen und die IP-Adresse des Remote-Systems einzugeben. Dieser angegebene Benutzername und das Protokoll teilen dem Remote-Server nun mit, welcher öffentliche Schlüssel zur Authentifizierung des Benutzers benötigt wird. Anschließend verwendet der Remote-Server den bereits verfügbaren öffentlichen Schlüssel, um eine Challenge-Nachricht zu verschlüsseln, die an den Client zurückgesendet und mit dem privaten Schlüssel auf dem System des Benutzers entschlüsselt wird.

Nach diesem Vorgang wird die entschlüsselte Nachricht mit einer zuvor erfassten Sitzungs-ID verknüpft und anschließend an den Server zurückgesendet. Nur wenn diese Nachricht mit der Server-ID übereinstimmt, wird der Client authentifiziert und erhält Zugriff auf den Remote-Server. Wichtig ist, dass die SSH-Schlüssel ordnungsgemäß verwaltet werden.

Maßgeschneiderte Beratungsleistungen

Wir bewerten, entwickeln Strategien und implementieren Verschlüsselungsstrategien und -lösungen, die auf Ihre Anforderungen zugeschnitten sind.

Verwalten von SSH-Schlüsseln

Millionen von SSH-Schlüsseln werden für den Zugriff auf verschiedene digitale Assets verwendet, vor allem von Fortune 500-Unternehmen. Ein effektives SSH-Schlüsselverwaltungssystem trägt daher erheblich zur Reduzierung von Sicherheitsrisiken bei. Es gibt verschiedene Möglichkeiten, die Kontrolle über SSH-Schlüssel in Entwicklungs- und Produktionsumgebungen zu erlangen. Dies bedeutet, dass der Benutzer den SSO-Anbieter, einen Verzeichnisdienst und verschiedene Systemverwaltungslösungen verwalten muss.

Risiken im Zusammenhang mit SSH-Schlüsseln

Es gibt viele Risiken oder Schwachstellen im Zusammenhang mit SSH-Schlüsseln, aber einige Schwachstellen sind kritisch und sollten nicht ignoriert werden:

Probleme bei der SSH-Schlüsselverfolgung

Ein großes Unternehmen verfügt oft über mehr als eine Million SSH-Schlüssel, und es ist praktisch unmöglich, jeden einzelnen Schlüssel zu verwalten. Dies liegt daran, dass Endbenutzer im Gegensatz zu Zertifikaten oder Passwörtern problemlos neue SSH-Schlüssel erstellen oder duplizieren können. Sobald eine große Anzahl von SSH-Schlüsseln gesammelt wurde, wird es schwierig, diese Anmeldeinformationen nachzuverfolgen, wenn Entwicklungsserver in Produktionsumgebungen migriert werden oder ein Mitarbeiter das Unternehmen verlässt, ohne seinen Schlüssel zu ändern. Diese nicht erfassten SSH-Schlüssel können Angreifern langfristigen privilegierten Zugriff auf Unternehmensressourcen verschaffen. Manchmal können sich Angreifer sogar ein dauerhaftes Netzwerk sichern, indem sie sich als Benutzer mit dem tatsächlichen SSH-Schlüssel ausgeben.

Das Teilen von SSH-Schlüsseln ist problematisch

Aus Effizienzgründen werden SSH-Schlüssel häufig von Mitarbeitern oder Servern gemeinsam genutzt oder dupliziert. Durch diese Duplizierung kann ein einzelner SSH-Schlüssel mehrere Instanzen haben und Zugriff auf alle Maschinen eines Unternehmens gewähren. Dies erleichtert Benutzern zwar die Arbeit, erschwert Angreifern aber langfristig das Leben. Durch die Duplizierung von SSH-Schlüsseln entstehen komplizierte, viele-zu-viele private und öffentliche Schlüssel, was die Sicherheit verringert, da das Rotieren und Widerrufen ohne denselben passenden Schlüsselfingerabdruck schwierig ist. Die gemeinsame Nutzung von Schlüsseln ist gefährlich, da sie die Nachvollziehbarkeit und Nichtabstreitbarkeit verringert.

Statische SSH-Schlüssel

Die Rotation von über einer Million SSH-Schlüsseln ist keine leichte Aufgabe. Viele IT-Administratoren ändern oder verteilen Schlüssel selten neu, aus Angst, dass eine kritische Komponente oder ein Mitarbeiter etwas übersehen könnte. Diese Faktoren führen zu einer Flut statischer SSH-Schlüssel, was Angreifer dazu verleitet, einen unveränderten Schlüssel zu kompromittieren, ihn zu verwenden oder sich lateral im Unternehmen zu bewegen und so Zugriff auf kritische oder sensible Ressourcen zu erhalten.

Eingebettete SSH-Schlüssel

SSH-Schlüssel sind häufig in Anwendungen oder Skripten eingebettet. Dies erschwert deren Änderung erheblich, da Code und eingebettete Schlüssel aufeinander abgestimmt sein müssen, um Systemausfälle zu verhindern. Dies kann zu Hintertüren für Angreifer führen, da diese in Anwendungen, Code und Skripten eingebetteten SSH-Schlüssel vorhanden sind.

Schwache SSH-Konfiguration

SSH-Client- und Server-Implementierungen wie OpenSSH enthalten einige spezifische Konfigurationsparameter, die IT-Administratoren übersehen. Die Wahl von Standardeinstellungen wie der Portweiterleitung erhöht die Sicherheitsrisiken erheblich.

Sicherheitslücken von SSH

Es gibt einige Schwachstellen im Zusammenhang mit Sicherheitsmaßnahmen wie:

  • Brute-Force- und Malware-Angriffe

    Angreifer zielen auf SSH-Schlüssel ab, um sich innerhalb eines Unternehmens seitlich zu bewegen, Brute-Force-Angriffe zu starten und durch die Schaffung von Hintertüren Malware-Angriffe zu erzielen.

  • SSH-Session-Hijacking und unbefugter Zugriff

    Angreifer können die SSH-Sitzung eines Benutzers kapern, indem sie die vertrauenswürdige Kommunikation zwischen mehreren Systemen ausnutzen. Dies geschieht durch die Entführung oder den unberechtigten Zugriff auf den Socket des Benutzers. Daher ist es besser, Standardkonfigurationen zu vermeiden, da diese den privilegierten Benutzerzugriff gefährden.

Mildern Sie SSH-Sicherheitsangriffe

Obwohl es im Zusammenhang mit der SSH-Schlüsselverwaltung viele Schwachstellen gibt, gibt es auch Möglichkeiten, diese zu verhindern:

  1. Schlüssel entdecken und zuordnen

    Der Benutzer muss SSH-Server, Zertifikate und private Schlüssel ermitteln, die zum SSH-Zugriff berechtigt sind. Regelmäßige Netzwerkscans und die Verwendung von Erkennungstools zur Lokalisierung und Pflege des zentralen Pfads sind ebenfalls wichtig. Darüber hinaus ist es wichtig, die Schlüssel-Benutzer-Beziehung abzubilden.

  2. Steuern Sie SSH-Schlüssel und Zugriff

    Es empfiehlt sich, Richtlinien und Verfahren zur SSH-Schlüsselverwaltung zu implementieren, um neue Schlüssel zu generieren und nicht verwendete Schlüssel zu entfernen. Der Benutzer kann Verzeichnisdienste nutzen, um die erforderlichen Berechtigungsstufen für den Zugriff auf die SSH-Anmeldeinformationen zuzuweisen.

  3. Root-Login deaktivieren

    Das Root-Konto ist das primäre Benutzerkonto und ermöglicht den vollständigen Zugriff auf alle UNIX-basierten Systeme. Angreifer zielen auf dieses Root-Konto ab, um uneingeschränkten Zugriff auf kritische Systeme zu erhalten.

Fazit

Wenn die IT-Administratoren ordnungsgemäße Prüfpfade pflegen, um sicherzustellen, dass alle verwendeten Schlüssel den Richtlinien entsprechen, kann dies zu Transparenz führen und es können entsprechende Änderungen bei der Schlüsselgenerierung und -rotation vorgenommen werden.