Besuchen Sie Keyfactor auf der RSA Conference™ 2024 | 6. bis 9. Mai | Erfahren Sie mehr

Ein Leitfaden für Multi-Cloud SSH-Schlüsselverwaltung

SSH

Da immer mehr Unternehmen ihre Abläufe und Daten in Multi-Cloud-Umgebungen verlagern, werden die Fragen rund um die SSH-Schlüsselverwaltung immer drängender. Mark Thompson, Senior Vice President, Product Management, und Ryan Sanders, Product Marketing Manager, bei Keyfactor, beantworteten diese Fragen während ihrer gemeinsamen Sitzung auf dem 2020 Critical Trust Virtual Summit.

In diesem Blog werde ich die in unserer Sitzung behandelten Kernkonzepte aufschlüsseln und Best Practices für die Multi-Cloud-SSH-Schlüsselverwaltung vorstellen.

SSH-Einführung im Unternehmen

SSH scheint überall zu sein. 84 % der Unternehmen verwenden heute in gewissem Umfang das SSH-Protokoll in ihrer Infrastruktur.

Warum? Weil SSH eine bequeme Methode zur Authentifizierung und Sicherung von Verbindungen ist, ganz zu schweigen davon, dass es in Linux- und Unix-basierte Systeme integriert ist. SSH wird von Systemadministratoren häufig für den Fernzugriff auf Systeme und zunehmend auch für automatisierte Prozesse wie sichere Kopien und Backups oder sichere Dateiübertragungen verwendet.

Die Authentifizierung mit öffentlichen Schlüsseln ist de facto die erste Wahl für den SSH-Zugang. Im Gegensatz zu Passwörtern sind SSH-Schlüssel nicht anfällig für Brute-Force-Angriffe auf Passwörter und erfordern keine Benutzerinteraktion, um den Zugriff zu ermöglichen.

Aufgrund ihrer Vorteile ist die Verbreitung von SSH-Schlüsseln beispiellos. Es ist nicht ungewöhnlich, 50 bis 200 Schlüssel pro Server zu entdecken oder 1 Million Schlüssel in einer Organisation zu sehen.

Trotz des hoch privilegierten Zugangs, den sie bieten, werden sie in vielen Situationen nicht streng kontrolliert. Dies führt zu einer hochriskanten Situation. Da es keinen Verwaltungsrahmen gibt, fallen immer mehr Schlüssel unter den Radar von Prüfern und Sicherheits- und Risikomanagementteams.

X.509-Zertifikate vs. SSH-Schlüssel

Während die meisten Unternehmen mit PKI und der Verwaltung von X.509-Zertifikaten vertraut sind, sind die Herausforderungen im Zusammenhang mit SSH-Schlüsseln völlig anders.

Die meiste Aufmerksamkeit wird beispielsweise der Erneuerung von Zertifikaten vor dem Ablaufdatum gewidmet (um Ausfälle zu verhindern). SSH-Schlüssel laufen jedoch nicht ab, was das umgekehrte Risiko veralteter Anmeldeinformationen und unbefugten Zugriffs birgt.

Im Folgenden sind die wichtigsten Unterschiede aufgeführt:

Vergleich-1

SSH-Schlüssel-Wildwuchs: Ein verstecktes, allgegenwärtiges Risiko

Das größte Risiko für Unternehmen ist die Ausbreitung von SSH-Schlüsseln. Die Hauptursache für die Ausbreitung von SSH-Schlüsseln ist das Fehlen einer zentralen Schlüssel- und Zugriffsverwaltung, die aus folgenden Gründen entsteht:

  • Mangelnde Kontrolle: Admins stellen selbst Schlüssel bereit, kopieren sie und geben sie ohne jegliche Einschränkungen weiter
  • Kein Verfall: SSH-Schlüssel laufen nicht ab und werden jahrelang nicht auf Systemen verwaltet.
  • Fehlende Richtlinien: Root-Zugriff wird oft gewährt, auch wenn er nicht erforderlich ist
  • Begrenzte Sichtbarkeit: Es gibt keine zentralisierte Sichtbarkeit von autorisierten und privaten Schlüsseln
  • Langsame Abhilfemaßnahmen: Die Sicherheitsteams zögern, Schlüssel zu widerrufen oder zu rotieren.

 

Eine weitere Ursache für die Ausbreitung von SSH-Schlüsseln ist die Personalrotation. Zwar gibt es standardisierte Prozesse, um ausscheidende Mitarbeiter aus dem Active Directory zu entfernen, aber diese Prozesse umfassen oft nicht die zugehörigen SSH-Schlüssel. Das komplexe Netz von Vertrauensbeziehungen zwischen Schlüsseln, Benutzern und Rechnern macht das Entfernen oder Rotieren von Schlüsseln unglaublich mühsam und risikoreich.

Nach den Ergebnissen der 2020 Global Encryption Trends Study von nCipher und Ponemon geben 57 % der Sicherheitsteams zu, dass die Verwaltung von SSH-Schlüsseln mühsam oder sehr mühsam ist.

Umfrage

SSH in DevOps und Cloud

Angetrieben durch Unternehmensinitiativen zur Verlagerung von Abläufen und Daten in die Cloud werden SSH-Schlüssel zu einer neuen Norm. Es gibt verschiedene Gründe für die zunehmende Verwendung von SSH-Schlüsseln auf Cloud-Plattformen:

  • 90 % aller öffentlichen Cloud-Workloads laufen heute unter Linux (wobei SSH eine Kernkomponente ist)
  • Mehrere Teams verwenden SSH in verschiedenen Clouds und Konfigurationsmanagement-Tools (z. B. Ansible Control Nodes, Chef Infrastructure Servers usw.)
  • DevOps-Ingenieure verwenden SSH, um eine Verbindung zu Git-Repositories, Remote-Workloads usw. herzustellen.

 

Als Zeichen der Zeit hat GitHub vor kurzem angekündigt, dass es von der Verwendung von Passwörtern abrückt und SSH-Schlüssel als primäre Alternative einsetzt. Da Entwickler SSH-Schlüssel in hochautomatisierten und verteilten Umgebungen verwenden, nehmen die Risiken nur noch zu.

Diese Entwicklungen unterstreichen, dass die Verwaltung und der Schutz von SSH-Schlüsseln in der Cloud für die heutigen Unternehmen von entscheidender Bedeutung sind. Die Unterschiede zwischen den einzelnen Cloud-Anbietern erhöhen jedoch die Komplexität bei der Verwaltung von SSH-Schlüsseln, insbesondere wenn Unternehmen Multi-Cloud-Strategien anwenden.

  • Google Cloud, AWS und Azure ermöglichen es den Benutzern, neue Schlüssel zu erstellen oder vorhandene ssh-Schlüssel zu verwenden.
  • Der SSH-Zugang wird in jeder Cloud-Umgebung anders konfiguriert und verwaltet (siehe unten).
  • SSH-Schlüssel sind leicht zu erzeugen, aber es ist schwierig, den Bestand an Schlüsseln und Vertrauensbeziehungen auf dem neuesten Stand zu halten.

 

Wolken

Es ist wichtig, sich daran zu erinnern, dass die Verantwortung für die Verwaltung und Pflege der SSH-Schlüssel immer beim Benutzer liegt, auch wenn sich einige Sicherheitsaufgaben vom Benutzer auf den Cloud-Anbieter verlagert haben. Es ist wichtig, die Konsistenz von Kontrolle, Richtlinien und Sichtbarkeit über alle Cloud-Plattformen hinweg zu gewährleisten.

SSH-basierte Angriffe sind jetzt alltäglich

Trotz ihrer Bedeutung gehen viele Menschen nicht angemessen mit SSH-Schlüsseln um. In Kombination mit Fehlkonfigurationen von Clouds und Arbeitslasten entsteht eine größere Angriffsfläche. Angriffe, bei denen SSH und SSH-Schlüssel missbraucht werden, sind alltäglich geworden. Sie werden von Tag zu Tag raffinierter, da bekannte Malware so verändert wird, dass sie auf SSH-Schlüssel abzielt.

Angriffe

Hier sind nur einige Beispiele:

  • Microsoft Azure hat einen Linux-basierten Angriff aufgedeckt, der Brute-Force für passwortbasierte SSH-Anmeldungen verwendet, um VMs zu kompromittieren
  • Ein Angriff auf Exim-Server (Linux-E-Mail-Server) lädt ein Shell-Skript herunter, das dem Root-Konto einen SSH-Schlüssel hinzufügt
  • GoLang-Malware ist eine Krypto-Miner-Kampagne, die auf Linux-Server abzielt und entdeckte SSH-Schlüssel verwendet, um weitere Hosts anzugreifen und zu verbreiten
  • TrickBot-Malware aktualisiert seinen Passwort-Grabber, um OpenSSH und OpenVPN anzugreifen
  • Das FritzFrog-Botnetz erzwingt den Zugang zu Millionen von SSH-IP-Adressen und fügt einen öffentlichen SSH-Schlüssel im Besitz des Angreifers in die Datei mit den autorisierten Schlüsseln ein, um dauerhaften Zugang zu erhalten
  • Lemon_Duck-Malware nutzt Port-Scanning, um Rechner zu finden, die Port 22 (SSH) abhören, und startet Brute-Force-Angriffe auf den Benutzernamen root und eine hartkodierte Liste von Passwörtern

5 Tipps zur Entschärfung SSH-basierter Angriffe

Die Frage, die sich stellt, ist, wie man diese SSH-basierten Angriffe entschärfen kann. Glücklicherweise gibt es einige einfach umzusetzende Empfehlungen.

Root-Login deaktivieren

Root-Login ist auf den meisten Linux/Unix-Systemen erlaubt. Diese Empfehlung scheint zwar kontraintuitiv, aber wenn die Passwortauthentifizierung und das Root-Passwort aktiviert sind, ist das Risiko eines Angriffs hoch.

Authentifizierung mit öffentlichem Schlüssel verwenden

Passwortbasierte Anmeldungen sind anfällig für Brute-Force-Angriffe. Stattdessen ist die schlüsselbasierte Authentifizierung schneller und sicherer (solange die Benutzer geschult sind und die Schlüssel richtig verwaltet werden)

Starke Passphrase für Schlüssel verwenden

Private Schlüssel müssen weiterhin mit einer Passphrase geschützt werden. Verwenden Sie bewährte Verfahren für Passwörter und schützen Sie die Speicherung und Verwendung privater Schlüssel.

Einen benutzerdefinierten SSH-Port festlegen

Port 22 ist bei Angreifern und Port-Scanning-Malware weithin bekannt. Verbergen Sie SSH-Dienste, indem Sie einen neuen Port konfigurieren, wenn möglich.

SSH auf dem neuesten Stand halten

Halten Sie Ihre Serverpakete auf dem neuesten Stand (dies kann nicht oft genug betont werden). Dazu gehören auch OpenSSH-Patches gegen neue Sicherheitslücken.

Außerdem ist es empfehlenswert, die Anzahl der SSH-Schlüsselpaare pro Benutzer zu begrenzen. Dies ist auch deshalb wichtig, weil die meisten Benutzer dazu neigen, Passphrasen für ihre privaten SSH-Schlüssel wiederzuverwenden. Ein einziger kompromittierter Schlüssel kann das Tor zu allen wichtigen Unternehmensressourcen sein.

Bewährte Praktiken für die SSH-Schlüsselverwaltung in der Cloud

Der Schlüssel (Wortspiel beabsichtigt) zur Verringerung Ihres Risikos ist eine solide Schlüsselverwaltung. Dies ist vor allem in Multi-Cloud-Umgebungen von entscheidender Bedeutung. Es überrascht nicht, dass dies mit einer Bestandsaufnahme der vorhandenen Schlüssel beginnt.

01 Schlüssel entdecken

Ermittlung der authorized_keys-Dateien auf Servern und Zuordnung von Schlüssel-Vertrauensbeziehungen zu Benutzern und Servern. Dies kann nur durch eine zentralisierte, automatisierte Bestandsaufnahme effektiv erfolgen.

02 Analyse der Risiken

Anhand des Schlüsselbestands können Sie Risiken erkennen und analysieren, die durch nicht autorisierte SSH-Server und Benutzerzugriffe, Schlüssel mit Root-Zugriff sowie schwache oder veraltete Schlüssel entstehen. Ungenutzte, unbekannte und verwaiste Schlüssel könnten Backdoor-Schlüssel sein, die darauf warten, von Angreifern ausgenutzt zu werden.

03 Abhilfe schaffen

Um diese Risiken zu mindern, sollten Sie alle ungenutzten und verwaisten Schlüssel entfernen. Rotieren oder ersetzen Sie veraltete/schwache Schlüssel und sorgen Sie für einen minimalen Benutzerzugang.

04 Generierung und Bereitstellung

Stellen Sie neue Schlüssel in einem kontrollierten Prozess bereit. Ermöglichen Sie Selbstbedienung für Administratoren und Entwickler. Automatisieren Sie die Bereitstellung von Schlüsseln. Speichern Sie private Schlüssel an einem zentralen Ort.

05 Regelmäßig rotieren

Achten Sie auf die Rotation der ssh-Schlüssel. Legen Sie Regeln für die maximale Lebensdauer von Schlüsseln fest und weisen Sie die Benutzer darauf hin, dass sie den Schlüssel vor dem "Verfall" rotieren müssen. Erleichtern Sie den Benutzern die Schlüsselrotation, um Reibungsverluste zu vermeiden.

06 Kontinuierlich überwachen

Sobald Sie eine kontrollierte Umgebung eingerichtet haben, ist es einfacher, unberechtigt erstellte Schlüssel zu identifizieren. Überprüfen Sie regelmäßig die Schlüsselarten, die Rotation und die Verwendung und stellen Sie sicher, dass die Beendigung des Arbeitsverhältnisses eines Mitarbeiters den Entzug und die Entfernung der entsprechenden SSH-Schlüssel beinhaltet.

Der Keyfactor SSH Key Manager wurde entwickelt, um die Herausforderungen der SSH-Schlüsselverwaltung in modernen Multi-Cloud- und DevOps-Umgebungen zu meistern. Das Tool ermöglicht ein skalierbares und automatisiertes SSH-Schlüssel-Lebenszyklusmanagement selbst in den komplexesten Implementierungen.

Lesen Sie unser eBook über 6 Schritte, um die Kontrolle über Ihre SSH-Schlüssel zurückzugewinnen.