Speicherung von Geheimnissen
Inhalt:
Zusammenfassung
Problem
Wir müssen Geheimnisse speichern, etwa Passwörter, private Schlüssel, Authentifizierungstoken usw.
Manche Geheimnisse sind benutzerorientiert. Zum Beispiel möchte unser Entwickler mit seinem Mobiltelefon ein Passwort für einen Dienst nachschlagen können.
Manche Geheimnisse sind systemorientiert. Zum Beispiel muss unsere Continuous-Delivery-Pipeline die Zugangsdaten für unser Cloud-Hosting nachschlagen können.
Entscheidung
Bitwarden für benutzerorientierte Geheimnisse
Vault by HashiCorp für systemorientierte Geheimnisse.
Status
Entschieden. Wir sind offen für neue Alternativen, sobald sie aufkommen.
Details
Annahmen
Für diesen Zweck und unseren aktuellen Stand legen wir Wert auf benutzerorientierten Komfort, etwa brauchbare mobile Apps.
Wir möchten schnellen, einfachen Zugriff unterwegs sicherstellen, etwa für einen Entwickler, der Site Reliability Engineering im Bereitschaftsdienst leistet.
Wir möchten einige Geheimnisse mit ausgewählten Personen, etwa einem Team, teilen können.
Wir versuchen nicht, für einen einzelnen Anbieter zu lösen, etwa alle Geheimnisse ausschließlich bei Amazon oder Azure oder Google zu speichern.
Wir wollen keine Ad-hoc-Ansätze wie „merk es dir“ oder „schreib es auf einen Zettel“ oder „finde selbst heraus, wie du es speicherst“.
Unser Sicherheitsmodell für diesen Zweck ist damit einverstanden, angesehene COTS-Anbieter zu verwenden, etwa SaaS-Passwortverwaltungswerkzeuge.
Einschränkungen
Im Moment wollen wir etwas Einfaches, das heißt, ohne Code schreiben zu müssen, ohne Server installieren zu müssen, ohne eine große Verpflichtung einzugehen, ohne alle standardisieren zu müssen.
Positionen
Wir haben erwogen:
Benutzerorientierte Standard-Passwortmanager: LastPass, 1Password, Bitwarden, Dashlane, KeePass, pass, GPG usw.
Systemorientierte COTS-Passwortmanager: AWS KMS, Vault by HashiCorp, EnvKey, Secret Server by Thycotic, Devolutions Password Server, Confidant by Lyft.
Auf Teilen ausgerichtete Ansätze: ein gemeinsames Google-Dokument, ein gemeinsamer Slack-Kanal, ein gemeinsamer Netzwerkordner usw.
Low-Tech-Ad-hoc-Ansätze, etwa Merken, einen Zettel schreiben oder sich darauf verlassen, dass jeder Benutzer seinen eigenen Weg findet.
Argument
Bitwarden, LastPass, 1Password und Dashlane sind allesamt kommerzielle Standardprodukte.
Ähnliche Arten von Funktionen für Benutzer, Teams, Organisationen usw.
Desktop-Fähigkeit für Windows und Mac und mobile Fähigkeit für Android und iOS.
Browser-Erweiterungen für Chrome und Firefox, für automatisches Ausfüllen von Formularen usw.
Bitwarden hat zwei Vorteile gegenüber den anderen:
Bitwarden ist Open Source, das heißt, die Sicherheit kann von Fachleuten überprüft werden, und das Unternehmen wird von sicherheitsorientierten Entwicklern weithin geschätzt.
Anekdoten von Softwareleuten beschreiben eine deutliche Präferenz für Bitwarden gegenüber den anderen.
Ein typischer guter Erfahrungsbericht: https://jcs.org/2017/11/17/bitwarden
Eine typische Abstimmungsseite im direkten Vergleich: https://stackshare.io/stackups/bitwarden-vs-dashlane
Wir stellen KeyPass, pass, GPG usw. zurück, weil es zusätzliche Komplexität gibt. Alle sehen aus wie gute Lösungen für technische Benutzer. GPG sieht besonders gut aus für technische Benutzer, die systemübergreifende befehlsorientierte Fähigkeiten wollen.
Wir stellen KMS zurück, weil es die Bindung an einen einzelnen Anbieter (Lock-in) hat.
Wir wählen Vault für systemorientierte Bedürfnisse, weil die Bewertungen erstaunlich positiv sind und weil HashiCorp eine hervorragende Erfolgsbilanz bei erstklassiger Software und Support hat.
Wir legen ein Veto gegen die Ansätze des Teilens ein, etwa über gemeinsame Dokumente, gemeinsame Kanäle, gemeinsame Netzwerkordner usw. Diese bieten nicht die Sicherheitsqualitäten, die wir wollen.
Wir legen ein Veto gegen die Low-Tech-Ad-hoc-Ansätze ein, weil wir uns alle einig sind, dass das kein langfristiger Weg nach vorn ist.
Implikationen
Entwickler müssen Geheimnisse möglicherweise an zwei Orten verfolgen: Bitwarden für benutzerorientierten Zugriff und Vault für systemorientierten Zugriff.
Zugehöriges
Zugehörige Entscheidungen
Die Entscheidung, welcher CI/CD-Server gewählt wird, muss einen Nachweis der Fähigkeit zum Zugriff auf Geheimnisse enthalten.
Wir müssen entscheiden, wie die Geheimnisse verwaltet werden, im Hinblick auf Richtlinien, Rotationen, Organisationen usw.
Zugehörige Anforderungen
Die Geheimnisse haben zugehörige Anforderungen für Compliance, Auditierung und das Onboarding/Offboarding von Personal.
Zugehörige Artefakte
Wir erwarten, dass wir einige Geheimnisse in Umgebungsvariablen exportieren könnten.
Zugehörige Prinzipien
Leicht umkehrbar.
Leicht parallelisierbar, das heißt, es ist einfach, eine Vielzahl von Passwortmanagern zu verwenden.
Billig auszuprobieren, das heißt, es gibt eine kostenlose Testversion und keine Verpflichtung.
Notizen
Bewertungsnotizen hier. Die Notizen sind allesamt öffentliche Kommentare auf verschiedenen DevOps-Diskussionsforen.
Vault by HashiCorp
Vault ist genau das, was Sie hier wollen.
Werfen Sie Vault aber nicht einfach in die Produktion, bauen Sie es zuerst in einer Testumgebung auf, weil die Dokumentation von HashiCorp ziemlich mangelhaft sein kann, auch wenn ihre Produkte großartig sind.
Sehr steile Lernkurve, und es ist nicht trivial aufzusetzen.
Die Ersteinrichtung ist etwas mühsam. Sie lohnt sich aber, und die Community wird sie gut genug unterstützen, dass Sie zurechtkommen.
Schreckliche Dokumentation, aber es gibt viele Anleitungen online von Leuten, die es eingerichtet haben, und wenn Sie ein paar davon kombinieren, haben Sie eine funktionierende Einrichtung.
Die Ersteinrichtung erforderte Herumbasteln an ihren Helm-Charts (vault und consul). Technisch kann man viele andere Backends verwenden, aber ich rate wirklich, wirklich davon ab. Das Backend/consul kann winzig klein sein, wenn man nicht viele Daten zu speichern hat.
Machen Sie sich unbedingt mit der CLI vertraut, denn die GUI ist eher ein Proof-of-Concept/Werbeportal für ihre Enterprise-Edition.
Die Tatsache, dass man es nicht einfach „befüllen“ kann, ist mühsam. Wenn man zum Beispiel 5 Felder hat, muss man für jedes Element jedes Feld manuell hinzufügen. Es ist also nicht so, dass man Felder für eine bestimmte Kategorie vordefiniert und diese Felder für alle Elemente dieser Kategorie ausfüllt, sondern eher „man erzeugt jedes Mal alles“, was (meiner Meinung nach) eine Zumutung ist.
Sie sollten sich vielleicht auch goldfish als UI auf vault ansehen. Es macht es ziemlich angenehm, Ihr Team dafür zu gewinnen. Sie haben auch eine Demo. 1. consul einrichten. 2. vault einrichten, das auf consul zeigt. 3. goldfish einrichten, das auf vault zeigt. 3. Einen Cron-Job einrichten, der consul snapshot für Sicherungen ausführt.
LastPass
LastPass Teams. Wir nutzen es, hat benutzerdefinierte Vorlagen, ACLs, meiner Meinung nach fehlt nichts.
Ich habe LastPass in meiner Organisation eingeführt und gebe ihm ein C+/B-. Das größte Problem ist in letzter Zeit mangelnde Zuverlässigkeit. In den vergangenen 90 Tagen gab es mehrere Stunden, in denen Tresore in den Offline-Modus gezwungen wurden. Das ist für meine Organisation nicht ideal, weil wir buchstäblich 4.000+ Passwörter in 20+ gemeinsamen Ordnern gespeichert haben. Wie Sie sich vorstellen können, werden bei so vielen Passwörtern täglich mindestens einige aktualisiert oder hinzugefügt. Wir haben einen DR-Plan, falls Probleme länger als ein bis zwei Stunden andauern: Ein Skript signiert und verschlüsselt jede Nacht einen CSV-Dump des Tresors, der in keepass importiert werden kann.
LastPass hatte nicht gemeldete kurze Aussetzer bei der Dienstqualität: Die Anmeldung „funktioniert“, lädt aber keine Seiten, zufällige Funktionen im Admin-Bereich sind kaputt, und Schlüssel für neue gemeinsame Ordner der obersten Ebene werden nicht richtig geteilt. Ich habe einen speziellen „Key-Push“-/Backup-Benutzer, der in jeder Gruppe ist. Normalerweise behebt die Anmeldung als dieser Benutzer alle Probleme beim Schlüsselteilen, aber nicht, wenn der Dienst beeinträchtigt ist, egal was die Statusseite sagt...
Für die Integration kann es einfach sein, wenn Sie passende ACLs mit einem Modell der geringsten Rechte haben, z. B. wenn ein Benutzer sowohl Lesen & Schreiben als auch nur Lesen für einen Eintrag oder Ordner hat, erhält er nur Leseberechtigungen. Leider sind die ACLs meiner Organisation nicht die besten, daher habe ich am Ende die JSON-Provisionierungs-API und ~500 Zeilen Python verwendet, weil sich die abhängige Natur unserer Hunderte von ACLs nicht gut auf das Modell der geringsten Rechte abbilden ließ. Am Ende habe ich alle ACLs eines Benutzers abgerufen und eine Art Abhängigkeitsdurchlauf gemacht.
Wenn Ihre ACL- oder Gruppenstruktur bereits mit einer Struktur der geringsten Rechte im Hinterkopf aufgebaut ist, wird das AD/LDAP-Synchronisierungswerkzeug für Windows gut funktionieren.
Wenden Sie sich an das Vertriebsteam, dann kann man Ihnen eine längere Enterprise-Testversion verschaffen. Stellen Sie sicher, dass Sie die Einschränkungen vollständig verstehen, bevor Sie sich entscheiden. Wir hatten ziemlich viele Wachstumsschmerzen, aber abgesehen von Ausfällen oder Beeinträchtigungen auf Serverseite lief es unglaublich reibungslos.
Bitwarden
Bitwarden hat gute Werkzeuge drumherum (WebUI, CLI, Mobil, Desktop). Selbst hostbar und ziemlich einfach einzurichten. Recht gute Dokumentation und ein von PrivacyTools empfohlenes Werkzeug.
EnvKey
https://www.envkey.com/ ist ein SaaS. Wirklich einfach zu implementieren, zu integrieren und zu verwalten.
Funktionen:
API-Schlüssel und Zugangsdaten schützen.
Konfiguration überall synchron halten.
Intelligente, Ende-zu-Ende-verschlüsselte Verwaltung von Konfiguration und Geheimnissen.
Unsicheres Teilen und Konfigurations-Wildwuchs verhindern.
In Minuten integrieren.
Fähigkeiten:
Konfiguration und Zugriffsebenen für alle Ihre Apps, Umgebungen und Teams an einem Ort verwalten.
Jede Entwicklungs- oder Serverumgebung mit nur einer einzigen Umgebungsvariablen konfigurieren.
Pluspunkte:
Gute Startseite.
Klares Wertversprechen.
Optisch hervorragende Web-App.
Überlegene Beispieldaten, z. B. Algolia, AWS, Datadog, GitHub, Stripe usw.
Habe 30 Minuten mit dem Gründer über das Unternehmen, die UI usw. gesprochen. Dane klingt gut informiert, ehrlich in Bezug auf Vor-/Nachteile und wie ein tragfähiger Partner.
Das Unternehmen ist im Wesentlichen ein typisches Y-Combinator-Unternehmen mit 1 Gründer. Hat 2018-01 $120K eingesammelt.
Der Fokus liegt darauf, zu Enterprise-Funktionen zu gelangen, besonders vom EnvKey-Cloud-Hosting zu On-Prem oder BYOC zu wechseln.
Möglicher Weg nach vorn: mit EnvKey wegen der Benutzerfreundlichkeit beginnen, dann später (oder parallel) Vault hinzufügen.
Confidant by Lyft
https://lyft.github.io/confidant/
Confidant ist ein Open-Source-Dienst zur Verwaltung von Geheimnissen, der von den Entwicklern bei Lyft stammt und eine benutzerfreundliche Speicherung und einen benutzerfreundlichen Zugriff auf Geheimnisse auf sichere Weise bietet.
KMS-Authentifizierung: Confidant löst das „Henne-Ei“-Problem der Authentifizierung, indem es AWS KMS und IAM nutzt, damit IAM-Rollen sichere Authentifizierungstoken erzeugen können, die Confidant überprüfen kann. Confidant verwaltet außerdem KMS-Grants für Ihre IAM-Rollen, wodurch die IAM-Rollen Token erzeugen können, die für die Dienst-zu-Dienst-Authentifizierung oder zum Übermitteln verschlüsselter Nachrichten zwischen Diensten verwendet werden können.
Verschlüsselung versionierter Geheimnisse im Ruhezustand: Confidant speichert Geheimnisse in DynamoDB nur anfügend (append-only) und erzeugt für jede Revision jedes Geheimnisses einen eindeutigen KMS-Datenschlüssel, unter Verwendung der symmetrischen authentifizierten Kryptografie Fernet.
Eine benutzerfreundliche Weboberfläche zur Verwaltung von Geheimnissen: Confidant bietet eine AngularJS-Weboberfläche, mit der Endbenutzer Geheimnisse, die Zuordnungen von Geheimnissen zu Diensten und den Änderungsverlauf leicht verwalten können.
Devolutions Password Server
https://server.devolutions.net/
Zugriff auf privilegierte Konten und Sitzungen sichern, verwalten und überwachen.
Ein umfassender, hochgesicherter Passworttresor, mit dem Sie den Zugriff auf Ihre privilegierten Konten kontrollieren und zugleich die Gesamtsichtbarkeit des Netzwerks für Systemadministratoren verbessern und Endbenutzern ein nahtloses Erlebnis bieten können.
Funktionen: zentraler Organisations-Passworttresor, benutzerspezifischer privater Tresor, Passwortmanager, Einschleusen von Zugangsdaten, Active-Directory-Integration, rollenbasierte Zugriffskontrolle, Zwei-Faktor-Authentifizierung, unternehmenstauglich, IP-Beschränkungen, Verwaltungsfähigkeiten, automatischer Passwortgenerator, Zugriff per mobiler App, Passwortverlauf, Zugriffsberichte, E-Mail-Warnungen.
unterstützt Datenverschlüsselung
unterstützt mehrere Authentifizierungsschemata, einschließlich LDAP, O365 und lokaler Benutzer MIT Unterstützung für MFA aus mehreren Quellen
mehrere Repositories/Tresore mit fein abgestuften Zugriffskontrollen für mehrere Teams
moderne Web-UI
private Zugangsdaten- und Verbindungstresore für persönliche Zugangsdaten/Verbindungen
mobile Apps für iOS/Android
Audit-Protokolle für jeden Eintrag, wer/was/wann, mit einer optionalen Abfrage, warum zugegriffen wird
anpassbare Vorlagen (obwohl sie Hunderte von Verbindungstypen nativ unterstützen)
Unmengen weiterer Funktionen und ein Windows/Mac-Thick-Client (Remote Desktop Manager), mit dem man sich synchronisieren kann und der die Optionen stark erweitert... Ein-Klick-Verbindungen
Der Preis ist gar nicht so schlecht – bis zu 15 Benutzer kosten $500 pro Jahr für den Passwortserver
Secret Server by Thycotic
https://thycotic.com/products/secret-server/
Funktionen der On-Premise-Version:
Vollständige Kontrolle über Ihre Ende-zu-Ende-Sicherheitssysteme und -Infrastruktur
Software in Ihrem On-Premise-Rechenzentrum oder in Ihrer eigenen Virtual-Private-Cloud-Instanz bereitstellen
Rechtliche und regulatorische Verpflichtungen erfüllen, die verlangen, dass alle Daten und Systeme On-Premise liegen
Funktionen der Cloud-Version:
Das Software-as-a-Service-Modell erlaubt Ihnen, sich anzumelden und sofort loszulegen
Elastische Skalierbarkeit, wenn Sie wachsen
Kontrollen und Redundanz, bereitgestellt von Azure mit 99,9 % Verfügbarkeits-SLA
Benutzerfeedback:
Wir haben dieses Produkt früher verwendet. Es war so leicht zu umgehen, und die Regeln funktionieren nur bei klugen Leuten. Faule oder dumme Benutzer können es in einem Teambereich leicht ruinieren. Die Preise sind verhandelbar, wenn man mit ihnen spricht.
Man kann es mit SQL Express und einem Win-7-Rechner betreiben.
Billig.