Was ist Vault?

Viele Unternehmen besitzen heute hunderte oder sogar tausende von internen Applikationen. Diese Applikationen sprechen meistens über Schnittstellen mit anderen Systemen (z.B. mit einer Datenbank, API, Cloud-Service, etc…). Für diese Kommunikation wird meist ein Secret verwendet (ein Username und Passwort, Zertifikat, oder ähnliches) zur Authentifizierung sowie Autorisierung. Bei diesen Secrets handelt es sich um „Sensitive Values“, deren Diebstahl oder Entwendung große Schäden für das Unternehmen bedeuten würde, z.B. durch Data Leak oder Data Theft.

Das Problem

Die manuelle Verwaltung dieser Secrets wird bei grösserer Applikationslandschaft zunehmend komplexer und aufwendiger. Viele Secrets werden dabei mit unbegrenzter

Laufzeit ausgestattet. Dies ist ein potentielles Sicherheitsrisiko, da so von Angreifern erbeutete Secrets wiederverwendet werden können um sensible Daten abzugreifen.

Auch sind viele Secrets meist mit umfangreichen Rechten versehen, in vielen Fällen deutlich mehr als für Ihre Aufgabe tatsächlich erforderlich ist, welches ein weiteres Sicherheitsproblem darstellt.

vault_HashiCorp

Die ordentliche Dokumentation und eventuelle Rotation dieser Secrets ist ein weiterer Punkt der ein nicht zu unterschätzendes Maß an Aufwand erfordert.

Im Falle eines bekannten Credential Leaks kann es oft schwierig sein, die entsprechenden Credentials zu revoken, da eventuell andere kritische Systeme die gleichen Credentials verwenden oder die verwendeten Credentials nicht dokumentiert oder nicht schnell genug identifiziert werden können, womit Angreifern wertvolle Zeit in die Hände gespielt wird.

Die Lösung

Das von der Firma HashiCorp entwickelte Open-Source Produkt Vault bietet eine zentrale und sichere Lösung für die Verwaltung und Administration von Application Secrets.

Secrets zu bestimmten Systemen können mit Laufzeiten (TTLs) oder einer „Maximum Usage“ versehen werden, um eine häufigere Rotation und damit einen unautorisierten Zugriff auf Application Secrets erheblich zu erschweren.

Durch die kurzen Lebenszeiten der von Vault erstellen „Dynamischen Secrets“ wird die Gefahr verringert, das Angreifer mit erbeuteten Zugangsdaten wichtige Systeme hacken können.

Durch Vaults Policy-System erhalten die entsprechenden Applikationen nur genau die Berechtigungen, die zum Ausführen Ihrer Arbeit erforderlich ist. Auch hiermit lässt sich die Sicherheit beträchtlich erhöhen.

Credential Leaks können durch das sofortige „Revoken“ in Ihrem Blast Radius reduziert werden.

Wie funktioniert Vault?

Vault ist in der populären Programmiersprache Go geschrieben und als Open Source Software kostenfrei auf GitHub verfügbar. Der Einsatz im Unternehmen ist ebenfalls kostenlos und es werden keinerlei Lizenzgebühren fällig. Jeder kann der Code verwenden und verändern und somit an das eigene Unternehmen anpassen.

Vault ist ein dynamisch und hochanpassbares System für die Verwendung mit unterschiedlichen Systemen und Workflows. Die zwei zentralen Komponenten bei Vault sind:

  • Auth Methods
  • Secret Engines

Auth Methods (Anmeldemethoden) stellen dabei den Zugangspunkt zu Vault dar, also WER sich am System anmeldet oder WELCHES System mit Secrets umgeht. Vault bietet Anmeldemethoden für eine menschliche Interaktion, wie Active Directory, LDAP, OIDC oder GitHub. Das bestehende IDM-System wird also nicht von Vault verändert, sondern nur als weiteres System angedockt, die bestehenden Identitäten können ohne Probleme weiterverwendet werden. Für Machine-to-Machine (wie z.B. eine Applikation meldet sich an einer Datenbank an) Workflows existieren Anmeldemethoden wie z.B. X.509-Zertifikate oder AppRole.

Secret Engines (Geheimnisverzeichnisse) stellen dar WELCHE Secrets in Vault verwaltet und ausgegeben werden. Im Gegensatz zu festen, lang laufenden und berechtigungsreichen Zugangsdaten gibt Vault nur dynamische, kurzlebige, berechtigungslimiterte Geheimnisse aus. Die Logik für dies wird von den schon, genannten Secrets Engines in Vault übernommen. Diese wissen wie mit dem entsprechenden System zu sprechen ist und erstellt Zugangsdaten dynamisch und ohne Admin-Interaktion. Vault unterstützt eine grosse Anzahl von Backend-Systemen, darunter Azure, AWS, SSH sowie viele Datenbankensysteme (Microsoft SQL Server, MySQL, PostgreSQL, etc…).

clients_humans_or_machines

Vorteile für Security Officers und Information Security Officers

Für SOs oder ISOs bietet Vault eine sichere, zentrale Plattform zur Speicherung von sensitiven Zugangsdaten, Passwörtern und Informationen.

Applikationen wird der Umgang mit sensitiven Zugangsdates nicht mehr selbst überlassen, sondern auf Vault ausgelagert. Applikationen müssen damit einem vorher definierten Security-Prozess folgen um Zugriff auf kritische Systeme zu erlangen.

Durch die Kurzlebigkeit und beschränkten Berechtigungen der von Vault ausgegebenen Secrets wird der Blast Radius von Credential Leaks deutlich verringert.

Für Third-Party-Applikationen, deren Code sich nicht für Vault anpassen lässt, steht ein sogenannter Vault-Agent zur Verfügung, der entsprechende Zugangsdaten an die Applikation über Standard-APIs übergibt.

Vertraulichkeit wird über durchgehende Verschlüsselung mittels TLS 1.2 in Transit oder AES256 bei ruhenden Daten sichergestellt.

Vault erfüllt ebenfalls den Standard FIPS 140-2.

Im äussersten Information Security Notfall kann der gesamte Vault in einen „Sealed“ Zustand versetzt werden, der sofort sämtliche Zugriffsberechtigungen in allen Systemen widerruft und alle zukünftigen Anfragen ablehnt. Der Vault kann danach nur von einem Admin-Operator wieder „entsperrt“ werden.

Vault und generell HashiCorp-Produkte sind bekannt für Ihre enorme Stabilität und Zuverlässigkeit.

Vault wurde bereits in tausenden von Firmen und Millionen Stunden produktiven Betriebs verwendet und wird permanent durch Security Reviews und Penetration Testing geprüft.

Vorteile für Developer / Entwickler

Vault bietet für Entwickler eine Plattform mit der Applikationen Ihre Secrets an einem sicheren und zentralen Ort aufbewahrt werden können. Die Zuständigkeit für das Verwalten und Absichern der Secrets verlagert sich damit von Entwicklern auf das IT Security-Team, die mit dem Thema Information Security am besten vertraut sind.

Für den programmatischen Zugriff bietet Vault eine grosse Menge an SDKs, darunter für z.B. Go oder C#. Auch besitzt Vault eine gut dokumentierte und äußerst umfangreiche HTTP REST API (HTTP API | Vault by HashiCorp).

Für selbst entwickelte Applikationen bietet Vault ebenfalls „Encryption-as-a-Service“ an.

Secrets können damit auch ausserhalb von Vault aufbewahrt werden und trotzdem durch Vault Security-Prozesse geschützt werden.

Außerdem bietet Vault eine hervorragende Anbindung an andere HashiCorp-Produkte, darunter Terraform oder Nomad. Ein Terraform-Provider für Vault ist ebenfalls verfügbar.