Beim Secrets-Management geht es um die Sicherung und Kontrolle von Berechtigungsnachweisen für die automatisierten Komponenten einer Anwendung.
Nach Lektüre dieses Artikels können Sie Folgendes:
Ähnliche Inhalte
Was ist API-Sicherheit?
Was ist ein API-Aufruf?
Was ist eine Datenschutzverletzung?
Was ist SQL-Injection?
Ransomware
Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!
Link zum Artikel kopieren
Unter Secrets-Management versteht man die sichere Speicherung sensibler Informationen, die im Fall eines Leaks böswilligen oder unbefugten Parteien Zugang zur Anwendungsinfrastruktur verschaffen könnten. Ein „Secret“ bezieht sich in diesem Zusammenhang auf die Verschlüsselungsschlüssel, API-Schlüssel, SSH-Schlüssel, Token, Passwörter oder Zertifikate, mit denen verschiedene Teile der Anwendungsinfrastruktur miteinander verbunden werden können.
Während ein Nutzer vielleicht nur ein Passwort benötigt, um sich bei einer Anwendung anzumelden, besteht diese Anwendung selbst aus verschiedenen Teilen, die allesamt für die Kommunikation miteinander Anmeldedaten – diese Secrets – benötigen.
Fast jeder weiß, wie mühsam es sein kann, sich Passwörter für mehrere Anwendungen zu merken, insbesondere wenn diese Passwörter regelmäßig aktualisiert werden müssen. Aus diesem Grund gehen viele Menschen zu unsicheren Passwortpraktiken über, wie z. B. das Aufschreiben ihrer Passwörter oder die Verwendung desselben Passworts für alle Anwendungen.
Entwickler stehen bei der Entwicklung von Software vor ähnlichen Herausforderungen. Die Infrastruktur, mit der Anwendungen funktionieren oder auf der ein Unternehmen läuft, kann Hunderte oder sogar Millionen von Schlüsseln, Token und Passwörtern erfordern. Da die Verwaltung all dieser Geheimnisse so anstrengend ist, werden sie oft fest in die Anwendungssoftware einkodiert. Sie werden unter Umständen nie aktualisiert und sind manchmal im Klartext kodiert, wodurch sie anfällig für Angriffe sind.
Im Kontext der Anwendungsentwicklung ist ein Secret oder Geheimnis ein Teil der Daten, der als Berechtigungsnachweis verwendet wird. Genauso wie sich eine Person für den Zugriff auf ihre E-Mails mit Benutzername und Passwort authentifizieren muss, müssen sich die nicht-menschlichen Komponenten dieser E-Mail-Anwendung (oder jeder anderen Anwendung) gegenseitig authentifizieren, damit die Anwendung funktioniert. Zu diesen Komponenten gehören unter anderem API-Verbindungen, Container, Microservices, Skripte, Funktionen und Automatisierungstools. Zur Authentifizierung verwenden sie Anmeldeinformationen.
Geheimnisse können sein:
Denken Sie daran, wie Kinderbausteine (z. B. LEGO®) ineinander greifen, um eine stabile, wenn auch winzige Struktur zu bilden. Geheimnisse sind wie diese Befestigungsmechanismen, die eine Anwendung zusammenhalten. Ohne sie fällt die App auseinander.
Im Gegensatz zu Legosteinen, die immer an den selben Stellen ineinander greifen, müssen Geheimnisse regelmäßig geändert werden. Wenn ein Geheimnis zu lange verwendet wird, kann ein Angreifer es möglicherweise durch einen Brute-Force-Angriff erraten. Und je länger ein Geheimnis verwendet wird, desto wahrscheinlicher wird ein Leak.
Da Geheimnisse regelmäßig geändert werden müssen, wird die sichere Verwaltung dieser Geheimnisse noch komplexer. Genauso wie es schwierig sein kann, sich ein neues Passwort zu merken, ist auch das regelmäßige Wechseln von Geheimnissen eine große Herausforderung. Ein Dutzend Apps kann von einer einzigen API abhängen, und alle diese Apps müssen ihre Geheimnisse aktualisieren, wenn die API neue Anmeldedaten erfordert. In manchen Fällen weiß ein Unternehmen nicht einmal, wie viele Apps von dieser API abhängig sind und was bei der Aktualisierung eines Geheimnisses kaputt gehen wird.
Manchmal verzichten Entwicklungsteams aus Gründen der Effizienz ganz auf die Aktualisierung von Geheimnissen, so wie viele Menschen lieber nie ihre Passwörter ändern. Es kann sogar vorkommen, dass sie Geheimnisse in Skripten und Funktionen fest codieren, weil sie davon ausgehen, dass die Geheimnisse nicht geändert werden müssen.
Manuelle Weitergabe: Entwickler, die nicht über eine Lösung für das Secrets-Management verfügen, sind möglicherweise gezwungen, Geheimnisse manuell zwischen den Entwicklungsteams auszutauschen, was zu einer mangelhaften Dokumentation und zur Einführung von Geheimnissen in ungesicherte Umgebungen führt.
Konten von Dritten: Externe Nutzer benötigen unter Umständen Zugriff auf interne APIs und Datenbanken. Da sie nicht zum Unternehmen gehören, ist es schwierig, ein sicheres Secrets-Management durchzusetzen.
Cloud-Computing: Cloud-Umgebungen sind weitreichend und flüchtig. Zur Unterstützung von Diensten werden regelmäßig neue virtuelle Maschineninstanzen eingerichtet, die alle ihre eigenen Geheimnisse benötigen. Cloud-Anwendungen ermöglichen außerdem einen umfassenden Zugriff von nahezu unendlich vielen Standorten aus, wodurch sich die Anzahl der zu verwaltenden Anmeldeinformationen und Berechtigungen enorm erhöht.
Fehlen einer zentralen Verwaltung: Genauso wie es schwierig sein kann, sich mit einer Gruppe auf eine Uhrzeit für das Abendessen zu einigen, ist es auch schwierig, Geheimnisse zu verwalten, die über mehrere Teams und Bereiche verteilt sind. Jedes Team dokumentiert Geheimnisse anders, speichert sie anders oder hat keinen Einblick in die Geheimnisse, die andere Teams verwenden.
Secrets-Management-Tools können alle notwendigen Prozesse für die sichere Verwaltung von Geheimnissen automatisieren. Außerdem speichern sie Geheimnisse in einer sicheren Umgebung, getrennt vom Code der Anwendung. So können Entwickler vermeiden, Geheimnisse fest zu kodieren oder sie im Klartext zu speichern, wo sie kompromittiert werden könnten.
Cloudflare bietet eine hoch skalierbare Entwicklungsplattform für die Ausführung von Code über sein globales Netzwerk. Cloudflare Secrets Store ermöglicht es Entwicklern, die Geheimnisse, die ihre Anwendungen benötigen, sicher zu speichern und zu verwalten - von API-Tokens bis hin zu Headern für die Autorisierung von Anfragen. Erfahren Sie mehr über Secrets Store.