Im Kontext der Anwendungssicherheit ist ein Geheimnis jede Information, die im Authentifizierungs- und Autorisierungsprozess beweist, dass der Besitzer die Person ist, die er vorgibt zu sein. Wenn böswillige Akteure Zugriff auf Geheimnisse erhalten, erlangen sie unbeabsichtigten Zugriff auf Ihre Systeme, den sie für verschiedene Zwecke verwenden können, beispielsweise zum Stehlen von Firmengeheimnissen und Kundeninformationen oder sogar zum Erpressen von Lösegeld für Ihre Daten.
Ein klassisches Beispiel sind Benutzername und Passwort, die einer Anwendung den Zugriff auf ihre Datenbank ermöglichen. Ein Geheimnis kann aber auch aus API-Schlüsseln, Anmeldeinformationen, Zertifikaten und privaten Schlüsseln sowie anderen Arten von Informationen bestehen. Da Geheimnisse zur Kontrolle des Zugriffs auf die Vermögenswerte einer Organisation verwendet werden, ist deren sichere Speicherung und Schutz von entscheidender Bedeutung, um das Risiko einer Kompromittierung der Organisation zu verringern.
Unter Geheimnisverwaltung versteht man den Prozess, den eine Organisation für folgende Zwecke nutzt:
Wenn Unternehmen von monolithischen zu Microservices-Architekturen wechseln , erhöht sich die Anzahl unabhängiger Anwendungs- und Infrastrukturkomponenten – jede mit ihren eigenen Anmeldeinformationen –, was bedeutet, dass viel mehr Geheimnisse verwaltet werden müssen.
Schauen wir uns zwei Möglichkeiten zur sicheren Speicherung von Geheimnissen genauer an:
Der Vault-Ansatz beinhaltet die Installation eines Drittanbieter-Tools zur Geheimnisverwaltung. Die Tresorlösung verschlüsselt jedes Geheimnis, um den Zugriff durch unbefugte Benutzer zu verhindern. Der Tresor stellt eine API bereit, um Benutzern auf der Grundlage etablierter Richtlinien Zugriff auf Geheimnisse zu gewähren. Wenn sich Benutzer der API damit authentifizieren, können sie nur auf die Geheimnisse zugreifen, für die sie autorisiert wurden.
Nachteile:
Vorteile:
Auf dem Markt stehen Entwicklern zahlreiche Tools zum Speichern und Verwalten verschlüsselter Geheimnisse zur Verfügung. Ein Beispiel für die Verwendung eines zentral automatisierten Tools zur Geheimnisverwaltung finden Sie in unserem Blog „ Schützen von SSL-Privatschlüsseln in NGINX mit HashiCorp Vault “.
Ein anderer Ansatz besteht darin, einen Cloud-Anbieter für die Geheimnisverwaltung als Service zu nutzen. Ein Vorteil besteht darin, dass sich das Tool zur Geheimnisverwaltung normalerweise eng in andere Cloud-Dienste wie verwaltete Datenbanken integrieren lässt. Die Dienste von Cloud-Anbietern bieten möglicherweise auch Funktionen wie die automatische Rotation an. Es bedarf jedoch künftiger Untersuchungen, um festzustellen, ob diese Option zu Ausfallzeiten führt.
Nachteil:
Vorteile:
Geheimnisse müssen sorgfältig verwaltet werden, um Störungen der Anwendung zu vermeiden, wenn sie entsperrt und abgerufen werden. Eine bewährte Methode besteht darin, niemals Geheimnisse in ein Quellcodeverwaltungssystem einzuchecken. Das Speichern von Geheimnissen dort setzt eine Organisation einem möglichen Desaster aus, wenn Geheimnisse versehentlich abgerufen oder kompromittiert werden, wenn ein Team oder eine Einzelperson den Code oder die Anwendung aktualisiert. Aus diesem Grund muss ein geheimer Schlüssel, der jemals, auch nur kurz, in die Quellcodeverwaltung eingecheckt wird, als kompromittiert behandelt werden. Die vertraulichen Daten müssen aus dem Repository entfernt und aus dem Verlauf des Quellcodeverwaltungssystems gelöscht werden.