Sichere Geheimdaten: Verwalten von Authentifizierungs-Credentials

Originalbeitrag von David Fiser, Threat Researcher, Alfredo Oliveira, Sr. Security Researcher

Die Verwaltung von Geheimdaten spielt eine wichtige Rolle, um sie sicher und für Bedrohungsakteure unerreichbar vorzuhalten. Ein geeignetes Management dieser essenziellen Informationen wird immer wichtiger, je mehr Workloads in die Cloud geschoben werden. Ein geleaktes Passwort kann in einer solchen Umgebung zu Datendiebstählen mit schweren Folgen führen. Gut gehütete Geheimnisse, wie z. B. Passwörter und andere Authentifizierungsdaten, ermöglichen im Idealfall den richtigen Personen den Zugang zu sensiblen Assets. Schwachstellen in der Supply Chain sind immer wieder ein Thema wie auch die Bedeutung einer angemessenen Speicherung von Geheimdaten. Doch welches sind diese geheim zu haltenden Daten, welche Rolle und Auswirkungen haben sie auf die Sicherheit und welche Probleme können sie mit sich bringen?

Der Begriff „Geheimdaten“ bezieht sich auf sensible Informationen, die für den Zugriff auf Systeme, die eine Authentifizierung erfordern, verwendet werden. Dazu gehören Anmeldedaten wie Benutzernamen, Mail-Adressen und Passwörter sowie Zugriffs-Tokens und private Schlüssel. Die Kompromittierung von SolarWinds ist ein gutes Beispiel dafür, wie anfällig Geheimdaten sein können: Bei dem Angriff wurde ein schwaches Passwort verwendet – also eine zu den Geheimdaten gehörende Information.

Der Wert von starken Passwörtern

Die Stärke des Passworts lässt sich anhand seiner Länge und der Breite des verwendeten Zeichensatzes messen. Anhand dieser Werte können wir die Anzahl der maximalen Rateversuche berechnen, die für einen Brute-Force-Angriff erforderlich sind. Theoretisch wird die maximale Anzahl von Vermutungen als xy definiert, wobei x die Anzahl der Zeichen im Alphabet und y die Anzahl der im Passwort verwendeten Buchstaben bezeichnet. Das Ergebnis sind hunderte bis Milliarden von möglichen Kombinationen.

Es gibt jedoch Ausnahmen von dieser Rechnung. Wenn gewöhnliche Wörter aus dem Wörterbuch verwendet werden, sind Passwörter leichter zu erraten. Im Allgemeinen wird das Kennwort sicherer, wenn es mehr zufällige Zeichen verwendet. Außerdem wird es jedes Mal unsicherer, wenn das Kennwort erneut verwendet wird.

Alphabet Alphabet size Number of possible combinations for 6 characters Number of possible combinations for 10 characters
A to Z 26 308,915,776 141,167,095,653,376
A to Z, a to z 52 19,770,609,664
A to Z, a to z, 0 to 9 62 56,800,235,584
All printable 126 4,001,504,141,376

Tabelle 1. Zahl der maximalen Brute Force-Versuche, die für das Erraten eines Passworts einer bestimmten Länge nötig sind.

Leider sind lange und starke Passwörter insofern eine Herausforderung für den Benutzer, weil er sich eine lange Abfolge von zufälligen Zeichen merken muss, noch mehr wenn es um mehrere Konten geht. Daher neigen viele Benutzter dazu, das Passwort überall zu verwenden. Im Falle einer Schutzverletzung kompromittiert ein wiederverwendetes Passwort andere Dienste, was zu größeren Auswirkungen führt. Deshalb stellt sich die Frage nach Alternativen für die Absicherung des Zugangs zu wichtigen Assets und Systemen.

Alternativen zum Passwort

So ist es z. B. Standard für Secure Shell (SSH)-Dienste, asymmetrische Kryptografie und private Schlüssel für die Authentifizierung zu verwenden und damit das Risiko des Erratens von Geheimnissen erheblich zu senken und eine angemessene Speicherung zu erzwingen. Diese Alternative benötigt zwar immer noch ein Token für die Authentifizierung, ist aber viel weniger auf das menschliche Erinnerungsvermögen angewiesen. Es kann z. B. auch ein Tresor zum Einsatz kommen, der Anmeldeinformationen speichert und Tools zum Erzeugen von Geheimnissen bereitstellt. Diese Tools verhindern auch die Generierung von schwachen Passwörtern und deren Wiederverwendung.

Die Kehrseite: Die Methode der Aufbewahrung in einer zentralisierten Speicherlösung birgt das Risiko, dass alle Anmeldedaten und Passwörter bei einem einzigen Verstoß kompromittiert werden können. Die Absicherung des Zugriffs auf diesen Tresor ist von entscheidender Bedeutung, wobei Biometrie oder Multi-Faktor-Authentifizierung (MFA) als zusätzliche Schutzmaßnahmen sehr zu empfehlen sind.

MFA selbst verringert die Wahrscheinlichkeit einer Kompromittierung erheblich, selbst wenn die Anmeldedaten eines Kontos offengelegt wurden, da sie eine weitere Authentifizierung erfordert, die typischerweise über eine mobile App erfolgt. Die Wahrscheinlichkeit, dass das Mobiltelefon eines Benutzers kompromittiert oder gestohlen wird und gleichzeitig seine geheimen Daten öffentlich werden, ist deutlich geringer.

Bild 1. Arbeit mit Geheimdaten

Jeder muss sein Passwort nach einer bestimmten Zeit ändern. Dies ist zwar unbequem, doch gibt es gute Gründe, Geheimdaten nach einer bestimmten Zeit verfallen zu lassen. Je länger sie gültig sind, desto höher ist die Wahrscheinlichkeit, dass ein Krimineller eine erfolgreiche Möglichkeit findet, die Informationen zu stehlen.

Arten der Speicherung geheimer Daten

Die Zahl der Systeme, die miteinander  in Arbeitsabläufen kommunizieren müssen, steigt und muss auf sichere Weise erfolgen. Dazu muss jede Anfrage der Benutzer zunächst authentifiziert werden. User wollen nicht jedes Mal Anmeldedaten eingeben, und sie sich auch nicht einfach merken. Also müssen sie gespeichert werden.

Es gibt mehrere Arten, Credentials zu speichern:

  • Klartext ist die unsicherste Art, bei der der Lesezugriff auf die Datei den Zugang zum System ermöglichen würde.
  • Hash wird von Servern am häufigsten genutzt, um den Fingerabdruck eines Geheimnisses zu speichern und so zu verhindern, dass ein Eindringling das Passwort in Klartext erhält. Für diese Art empfiehlt sich die Nutzung eines salt– oder eines anderen Hashing-Layer zusätzlich zum Verschlüsselungsalgorithmus, um die Entschlüsselung durch einen potenziellen Angreifer zu erschweren.
  • Codieren ist eine weitere Form von Klartext, so etwa base64-codierte Credentials.
  • Verschlüsseln der Credentials mit einem weiteren Passwort soll die Wahrscheinlichkeit und der Auswirkungen eines unbefugten Leaks verringern. Eine Person, die eine verschlüsselte Datei sehen kann, wäre nicht in der Lage, sie zu entschlüsseln und die benötigten Anmeldeinformationen zu erhalten, ohne zuvor andere geheime Daten zu kennen.

Aus diesen vier Typen lässt sich leicht erahnen, welcher für die Speicherung von Geheimdaten am vorteilhaftesten und sichersten ist.

Eine Möglichkeit für die Speicherung von Geheimdaten ist die Verwendung einer externen Anwendung wie z. B. eines Tresors. Der Hauptvorteil von Tresoren liegt in der Art und Weise, wie sie Geheimdaten in verschlüsselter Form speichern, und in der Möglichkeit, diese von einem Ort aus zu ändern und diese Modifikationen ohne Codeänderung an mehrere Anwendungen zu spiegeln. Ein Zugangs-Token zum Tresor muss jedoch entweder auf dem Gerät gespeichert oder dynamisch erworben werden. Dafür wäre ein dynamisches Zugangs-Token über eine MFA-Bestätigung die beste Lösung.  Insbesondere bei hochautomatisierten Systemen ist jedoch MFA nicht die beste Option.

Nicht jede Anwendung zur Speicherung von Geheimdaten sichert standardmäßig Credentials in verschlüsselter Form. Dies sollte überprüft werden, auch um die böswillige Ausnutzung von Fehlkonfigurationen zu verhindern. Zum Teil wird die Speicherung von Geheimdaten im Klartext als Schwachstelle gesehen. Generell ist Klartext eine unsichere und schlechte Design-Entscheidung, die überdacht werden sollte.

Hohes Maß an Vertrauen

Schließlich müssen Unternehmen auch dann, wenn die Geheimdaten verschlüsselt gespeichert werden, immer noch ein gewisses Maß an Vertrauen und gemeinsamer Verantwortung unter ihren Mitarbeitern erreichen und aufrechterhalten. Denn bestimmte Personen kennen den Entschlüsselungs-Key. Leseberechtigungen sollten nur für Benutzer oder Anwendungen erteilt werden, die einen triftigen Grund für den Zugriff auf diesen Speicher oder dieses System haben.

Übertragung von Geheimdaten

Sicherheit ist auch für Dienste erforderlich, die konfiguriert werden müssen und eine Übertragung benötigen. Das Verschieben von Geheimdaten ist üblich, muss daher berücksichtigt werden und über einen sicheren (d. h. verschlüsselten) Kanal erfolgen. Dafür bedarf es eines Protokolls, das standardmäßig sicher ist. Beispiele dafür sind SSH oder HTTPS.

Geheimdaten in einem Source Code Management (SCM)-System vorzuhalten, ist keine gute Idee, weil zu viele Personen darauf zugreifen können. Auch öffentliche Repositories fügen dem SCM eine weitere Gefahrenebene hinzu. Ist es dennoch notwendig, SCM zu benutzen, so sollten Tools wie git-secret zum Verschlüsseln herangezogen werden. So ließe sich verhindern, dass ein SCM als Eintrittspunkt bei einem Supply Chain-Angriff genutzt wird.

In einem nächsten Eintrag sollen die Auswirkungen einer unsicheren Speicherung von Geheimdaten im Zusammenhang mit heutigen Entwicklungstechnologien untersucht werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.