Αποθήκευση μυστικών
Περιεχόμενα:
Περίληψη
Ζήτημα
Πρέπει να αποθηκεύουμε μυστικά, όπως κωδικούς πρόσβασης, ιδιωτικά κλειδιά, διακριτικά ταυτοποίησης κ.λπ.
Ορισμένα από τα μυστικά είναι προσανατολισμένα στον χρήστη. Για παράδειγμα, ο προγραμματιστής μας θέλει να μπορεί να χρησιμοποιεί το κινητό του τηλέφωνο για να αναζητήσει έναν κωδικό πρόσβασης σε μια υπηρεσία.
Ορισμένα από τα μυστικά είναι προσανατολισμένα στο σύστημα. Για παράδειγμα, η ροή συνεχούς παράδοσής μας πρέπει να μπορεί να αναζητά τα διαπιστευτήρια για τη φιλοξενία μας στο cloud.
Απόφαση
Bitwarden για μυστικά προσανατολισμένα στον χρήστη
Vault by HashiCorp για μυστικά προσανατολισμένα στο σύστημα.
Κατάσταση
Αποφασίστηκε. Είμαστε ανοικτοί σε νέες εναλλακτικές όταν προκύπτουν.
Λεπτομέρειες
Παραδοχές
Για αυτόν τον σκοπό, και στην τρέχουσα κατάστασή μας, εκτιμούμε την ευκολία προσανατολισμένη στον χρήστη, όπως οι χρηστικές εφαρμογές για κινητά.
Θέλουμε να διασφαλίσουμε γρήγορη εύκολη πρόσβαση εν κινήσει, όπως για έναν προγραμματιστή που κάνει μηχανική αξιοπιστίας συστημάτων σε εφημερία.
Θέλουμε να μπορούμε να μοιραζόμαστε ορισμένα μυστικά ανάμεσα σε επιλεγμένα πρόσωπα, όπως μια ομάδα.
Δεν προσπαθούμε να λύσουμε το ζήτημα για έναν μόνο πάροχο, όπως η αποθήκευση όλων των μυστικών αποκλειστικά στην Amazon ή την Azure ή την Google.
Δεν θέλουμε αυτοσχέδιες προσεγγίσεις όπως «θυμήσου το» ή «γράψε το σε ένα σημείωμα» ή «βρες τον δικό σου τρόπο να το αποθηκεύσεις».
Το μοντέλο ασφάλειάς μας για αυτόν τον σκοπό είναι εντάξει με τη χρήση καλά σεβαστών προμηθευτών COTS, όπως εργαλεία SaaS διαχείρισης κωδικών πρόσβασης.
Περιορισμοί
Αυτή τη στιγμή θέλουμε κάτι εύκολο, δηλαδή χωρίς ανάγκη γραφής κώδικα, χωρίς ανάγκη εγκατάστασης διακομιστών, χωρίς ανάγκη μεγάλης δέσμευσης, χωρίς ανάγκη τυποποίησης όλων.
Θέσεις
Εξετάσαμε:
Έτοιμους διαχειριστές κωδικών προσανατολισμένους στον χρήστη: LastPass, 1Password, Bitwarden, Dashlane, KeePass, pass, GPG κ.λπ.
Διαχειριστές κωδικών COTS προσανατολισμένους στο σύστημα: AWS KMS, Vault by HashiCorp, EnvKey, Secret Server by Thycotic, Devolutions Password Server, Confidant by Lyft.
Προσεγγίσεις προσανατολισμένες στον διαμοιρασμό: χρήση κοινόχρηστου εγγράφου Google, ή κοινόχρηστου καναλιού Slack, ή κοινόχρηστου φακέλου δικτύου κ.λπ.
Αυτοσχέδιες προσεγγίσεις χαμηλής τεχνολογίας, όπως η απομνημόνευση, η συγγραφή σημειώματος ή το να βασίζεται κανείς στο ότι κάθε χρήστης θα βρει τη δική του προσέγγιση.
Επιχείρημα
Τα Bitwarden, LastPass, 1Password και Dashlane είναι όλα εμπορικά έτοιμα προϊόντα.
Παρόμοιοι τύποι χαρακτηριστικών για χρήστες, ομάδες, οργανισμούς κ.λπ.
Δυνατότητα επιφάνειας εργασίας για Windows και Mac, και δυνατότητα κινητού για Android και iOS.
Επεκτάσεις προγράμματος περιήγησης για Chrome και Firefox, για αυτόματη συμπλήρωση φορμών κ.λπ.
Το Bitwarden έχει δύο πλεονεκτήματα έναντι των άλλων:
Το Bitwarden είναι ανοικτού κώδικα, κάτι που σημαίνει ότι η ασφάλεια μπορεί να ελεγχθεί από ομότιμους και επίσης η εταιρεία εκτιμάται ευρέως από προγραμματιστές με προσανατολισμό στην ασφάλεια.
Ανέκδοτα εργαζομένων στο λογισμικό περιγράφουν σημαντική προτίμηση για το Bitwarden έναντι των άλλων.
Ένα τυπικό καλό παράδειγμα άρθρου: https://jcs.org/2017/11/17/bitwarden
Μια τυπική ιστοσελίδα ψηφοφορίας σύγκρισης: https://stackshare.io/stackups/bitwarden-vs-dashlane
Αναβάλλουμε τα KeyPass, pass, GPG κ.λπ. επειδή υπάρχει πρόσθετη πολυπλοκότητα. Όλα φαίνονται καλές λύσεις για τεχνικούς χρήστες. Το GPG φαίνεται ιδιαίτερα καλό για τεχνικούς χρήστες που θέλουν δυνατότητες διασυστημικές προσανατολισμένες σε εντολές.
Αναβάλλουμε το KMS επειδή έχει δέσμευση σε έναν μόνο πάροχο.
Επιλέγουμε το Vault για ανάγκες προσανατολισμένες στο σύστημα, επειδή οι κριτικές είναι εκπληκτικά θετικές, και επειδή η HashiCorp έχει εξαιρετικό ιστορικό λογισμικού και υποστήριξης κορυφαίας ποιότητας.
Ασκούμε βέτο στις προσεγγίσεις διαμοιρασμού, όπως μέσω κοινόχρηστων εγγράφων, κοινόχρηστων καναλιών, κοινόχρηστων φακέλων δικτύου κ.λπ. Αυτές δεν παρέχουν τις ποιότητες ασφάλειας που θέλουμε.
Ασκούμε βέτο στις αυτοσχέδιες προσεγγίσεις χαμηλής τεχνολογίας, επειδή όλοι συμφωνούμε ότι δεν είναι μακροπρόθεσμος δρόμος προς τα εμπρός.
Επιπτώσεις
Οι προγραμματιστές ίσως χρειαστεί να παρακολουθούν μυστικά σε δύο μέρη: στο Bitwarden για πρόσβαση προσανατολισμένη στον χρήστη και στο Vault για πρόσβαση προσανατολισμένη στο σύστημα.
Σχετικά
Σχετικές αποφάσεις
Η απόφαση για το ποιος διακομιστής CI/CD πρέπει να περιλαμβάνει απόδειξη ικανότητας πρόσβασης σε μυστικά.
Θα χρειαστεί να αποφασίσουμε πώς θα διαχειριζόμαστε τα μυστικά, όσον αφορά πολιτικές, εναλλαγές, οργανισμούς κ.λπ.
Σχετικές απαιτήσεις
Τα μυστικά θα έχουν σχετικές απαιτήσεις για συμμόρφωση, έλεγχο και ένταξη/αποχώρηση προσωπικού στο HR.
Σχετικά τεχνουργήματα
Αναμένουμε ότι ενδέχεται να εξάγουμε ορισμένα μυστικά σε μεταβλητές περιβάλλοντος.
Σχετικές αρχές
Εύκολα αναστρέψιμο.
Εύκολα παράλληλο, δηλαδή είναι εύκολο να χρησιμοποιούνται ποικίλοι διαχειριστές κωδικών.
Φθηνό να δοκιμαστεί, δηλαδή υπάρχει δωρεάν δοκιμή και καμία δέσμευση.
Σημειώσεις
Σημειώσεις αξιολόγησης εδώ. Οι σημειώσεις είναι όλες δημόσια σχόλια σε διάφορους πίνακες συζητήσεων devops.
Vault by HashiCorp
Το Vault είναι ακριβώς αυτό που θέλετε εδώ.
Μην ρίξετε όμως απλώς το Vault σε παραγωγή, στήστε το πρώτα σε περιβάλλον δοκιμών, επειδή η τεκμηρίωση της HashiCorp μπορεί να είναι αρκετά ελλιπής ακόμη και αν τα προϊόντα τους είναι καταπληκτικά.
Πολύ απότομη καμπύλη εκμάθησης και δεν είναι τετριμμένο να στηθεί.
Η αρχική ρύθμιση είναι κάπως βάσανο. Αξίζει όμως, και η κοινότητα θα το υποστηρίξει αρκετά ώστε να τα καταφέρετε.
Φρικτή τεκμηρίωση, αλλά υπάρχουν πολλοί οδηγοί στο διαδίκτυο από ανθρώπους που το έστησαν και αν συνδυάσετε μερικούς από αυτούς θα έχετε μια λειτουργική ρύθμιση.
Η αρχική ρύθμιση απαίτησε ψάξιμο με τα helm charts τους (vault και consul). Παρότι τεχνικά μπορείτε να χρησιμοποιήσετε πολλά άλλα back-ends, πραγματικά δεν το συνιστώ. Το back-end/consul μπορεί να είναι μικροσκοπικό αν δεν έχετε πολλά δεδομένα προς αποθήκευση.
Σίγουρα εξοικειωθείτε με τη χρήση του CLI, επειδή το GUI μοιάζει περισσότερο με proof-of-concept/πύλη διαφήμισης για την έκδοση enterprise τους.
Το γεγονός ότι δεν μπορείτε απλώς να το «γεμίσετε» είναι βάσανο. Για παράδειγμα, αν έχετε 5 πεδία πρέπει να προσθέσετε χειροκίνητα κάθε πεδίο για κάθε στοιχείο. Δεν είναι λοιπόν σαν να ορίζετε εκ των προτέρων πεδία για μια συγκεκριμένη κατηγορία και να τα συμπληρώνετε για όλα τα στοιχεία της κατηγορίας, είναι περισσότερο «δημιουργείτε τα πάντα κάθε φορά», που (κατά τη γνώμη μου) είναι μπελάς.
Μπορεί να θέλετε επίσης να δείτε το goldfish ως UI πάνω από το vault. Κάνει αρκετά ωραίο το να πείσετε την ομάδα σας. Έχουν και επίδειξη. 1. Στήστε το consul. 2. Στήστε το vault που δείχνει στο consul. 3. Στήστε το goldfish που δείχνει στο vault. 3. Στήστε μια εργασία cron που εκτελεί consul snapshot για αντίγραφα ασφαλείας.
LastPass
LastPass Teams. Το χρησιμοποιούμε, έχει προσαρμοσμένα πρότυπα, ACL, δεν λείπει τίποτα κατά τη γνώμη μου.
Υλοποίησα το LastPass στον οργανισμό μου και του δίνω C+/B-. Το μεγαλύτερο ζήτημα τον τελευταίο καιρό είναι η έλλειψη αξιοπιστίας. Τις τελευταίες 90 ημέρες υπήρξαν πολλές ώρες όπου τα θησαυροφυλάκια αναγκάστηκαν σε λειτουργία εκτός σύνδεσης. Αυτό δεν είναι ιδανικό για τον οργανισμό μου, επειδή έχουμε κυριολεκτικά πάνω από 4.000 κωδικούς αποθηκευμένους σε πάνω από 20 κοινόχρηστους φακέλους. Όπως μπορείτε να φανταστείτε, με τόσους κωδικούς τουλάχιστον μερικοί ενημερώνονται ή προστίθενται καθημερινά. Έχουμε σχέδιο DR για την περίπτωση που τα προβλήματα διαρκούν πάνω από μία ή δύο ώρες: ένα σενάριο υπογράφει και κρυπτογραφεί κάθε βράδυ μια εξαγωγή CSV του θησαυροφυλακίου που μπορεί να εισαχθεί στο keepass.
Το LastPass είχε αδήλωτες στιγμές υποβαθμισμένης υπηρεσίας: η σύνδεση «λειτουργεί» αλλά δεν φέρνει ιστότοπους, τυχαίες λειτουργίες χαλασμένες στον πίνακα διαχείρισης και δεν γίνεται σωστός διαμοιρασμός κλειδιών για νέους κοινόχρηστους φακέλους ανώτατου επιπέδου. Έχω έναν ειδικό χρήστη «key push»/backup που βρίσκεται σε κάθε ομάδα. Συνήθως η σύνδεση ως αυτός ο χρήστης διορθώνει τυχόν προβλήματα διαμοιρασμού κλειδιών, αλλά όχι όταν η υπηρεσία είναι υποβαθμισμένη παρά τα όσα λέει η σελίδα κατάστασης...
Για την ενσωμάτωση μπορεί να είναι εύκολη αν έχετε σωστά ACL με μοντέλο ελάχιστου προνομίου, π.χ. αν ένας χρήστης έχει ανάγνωση & εγγραφή και μόνο ανάγνωση σε μια εγγραφή ή φάκελο, παίρνει μόνο δικαιώματα ανάγνωσης. Δυστυχώς τα ACL του οργανισμού μου δεν είναι τα καλύτερα, οπότε κατέληξα να χρησιμοποιήσω το API provisioning JSON και ~500 γραμμές Python λόγω της εξαρτημένης φύσης των εκατοντάδων ACL μας που δεν αντιστοιχίζονται καλά στο μοντέλο ελάχιστου προνομίου. Κατέληξα να παίρνω όλα τα ACL στα οποία ανήκει ένας χρήστης και να κάνω ένα είδος διάσχισης εξαρτήσεων.
Αν η δομή ACL ή ομάδων σας είναι ήδη χτισμένη με γνώμονα το ελάχιστο προνόμιο, το εργαλείο συγχρονισμού AD/LDAP για Windows θα λειτουργήσει καλά.
Επικοινωνήστε με την ομάδα πωλήσεών τους και μπορούν να σας κανονίσουν μεγαλύτερη δοκιμή Enterprise. Φροντίστε να καταλάβετε πλήρως τους περιορισμούς του πριν πατήσετε τη σκανδάλη. Είχαμε αρκετούς πόνους ανάπτυξης αλλά, εκτός από διακοπές ή υποβαθμίσεις από την πλευρά του διακομιστή, ήταν απίστευτα ομαλό.
Bitwarden
Το Bitwarden έχει ωραία εργαλεία γύρω του (WebUI, CLI, κινητό, επιφάνεια εργασίας). Αυτο-φιλοξενούμενο και αρκετά εύκολο στη ρύθμιση. Αρκετά καλή τεκμηρίωση και εργαλείο που συνιστά το PrivacyTools.
EnvKey
https://www.envkey.com/ Είναι SaaS. Πολύ εύκολο στην υλοποίηση, ενσωμάτωση και διαχείριση.
Χαρακτηριστικά:
Προστατεύει κλειδιά API και διαπιστευτήρια.
Κρατά τη διαμόρφωση συγχρονισμένη παντού.
Έξυπνη, κρυπτογραφημένη end-to-end διαχείριση διαμόρφωσης και μυστικών.
Αποτρέπει τον ανασφαλή διαμοιρασμό και την εξάπλωση της διαμόρφωσης.
Ενσωμάτωση σε λίγα λεπτά.
Δυνατότητες:
Διαχειριστείτε τη διαμόρφωση και τα επίπεδα πρόσβασης για όλες τις εφαρμογές, τα περιβάλλοντα και τις ομάδες σας σε ένα μέρος.
Διαμορφώστε οποιοδήποτε περιβάλλον ανάπτυξης ή διακομιστή με μία μόνο μεταβλητή περιβάλλοντος.
Υπέρ:
Καλή αρχική σελίδα.
Σαφής πρόταση αξίας.
Οπτικά εξαιρετική διαδικτυακή εφαρμογή.
Ανώτερα δεδομένα παραδείγματος π.χ. Algolia, AWS, Datadog, GitHub, Stripe κ.λπ.
Μίλησα με τον ιδρυτή για 30 λεπτά για την εταιρεία, το UI κ.λπ. Ο Dane φαίνεται καλά ενημερωμένος, ειλικρινής για τα υπέρ/κατά και βιώσιμος συνεργάτης.
Η εταιρεία είναι ουσιαστικά μια τυπική εταιρεία Y Combinator, με 1 ιδρυτή. Συγκέντρωσε 120.000 $ τον 2018-01.
Η εστίαση είναι στην επίτευξη χαρακτηριστικών enterprise, ιδίως στη μετάβαση από τη φιλοξενία στο cloud του EnvKey σε on-prem ή BYOC.
Πιθανή πορεία: ξεκίνημα με το EnvKey για ευκολία χρήσης, έπειτα αργότερα (ή παράλληλα) προσθήκη του Vault.
Confidant by Lyft
https://lyft.github.io/confidant/
Το Confidant είναι μια υπηρεσία διαχείρισης μυστικών ανοικτού κώδικα που παρέχει φιλική προς τον χρήστη αποθήκευση και πρόσβαση σε μυστικά με ασφαλή τρόπο, από τους προγραμματιστές της Lyft.
Ταυτοποίηση KMS: Το Confidant λύνει το πρόβλημα της κότας και του αυγού στην ταυτοποίηση χρησιμοποιώντας το AWS KMS και το IAM ώστε οι ρόλοι IAM να μπορούν να δημιουργούν ασφαλή διακριτικά ταυτοποίησης που μπορούν να επαληθευτούν από το Confidant. Το Confidant διαχειρίζεται επίσης χορηγήσεις KMS για τους ρόλους IAM σας, που επιτρέπουν στους ρόλους IAM να δημιουργούν διακριτικά που μπορούν να χρησιμοποιηθούν για ταυτοποίηση υπηρεσία-προς-υπηρεσία ή για τη διαβίβαση κρυπτογραφημένων μηνυμάτων μεταξύ υπηρεσιών.
Κρυπτογράφηση σε ηρεμία μυστικών με εκδόσεις: Το Confidant αποθηκεύει μυστικά με τρόπο μόνο-προσθήκης στο DynamoDB, δημιουργώντας ένα μοναδικό κλειδί δεδομένων KMS για κάθε αναθεώρηση κάθε μυστικού, χρησιμοποιώντας συμμετρική πιστοποιημένη κρυπτογραφία Fernet.
Μια φιλική προς τον χρήστη διαδικτυακή διεπαφή για τη διαχείριση μυστικών: Το Confidant παρέχει μια διαδικτυακή διεπαφή AngularJS που επιτρέπει στους τελικούς χρήστες να διαχειρίζονται εύκολα μυστικά, τις αντιστοιχίσεις μυστικών σε υπηρεσίες και το ιστορικό αλλαγών.
Devolutions Password Server
https://server.devolutions.net/
Ασφαλίστε, διαχειριστείτε και παρακολουθήστε την πρόσβαση σε προνομιούχους λογαριασμούς και συνεδρίες.
Ένα ολοκληρωμένο, άκρως ασφαλές θησαυροφυλάκιο κωδικών που σας επιτρέπει να ελέγχετε την πρόσβαση στους προνομιούχους λογαριασμούς σας, βελτιώνοντας παράλληλα τη συνολική ορατότητα του δικτύου για τους διαχειριστές συστημάτων και παρέχοντας απρόσκοπτη εμπειρία στους τελικούς χρήστες.
Χαρακτηριστικά: κεντρικό θησαυροφυλάκιο κωδικών οργανισμού, ιδιωτικό θησαυροφυλάκιο ειδικό για τον χρήστη, διαχειριστής κωδικών, έγχυση διαπιστευτηρίων, ενσωμάτωση με Active Directory, έλεγχος πρόσβασης βάσει ρόλων, ταυτοποίηση δύο παραγόντων, έτοιμο για enterprise, περιορισμοί IP, δυνατότητες διαχείρισης, αυτοματοποιημένη γεννήτρια κωδικών, πρόσβαση από εφαρμογή κινητού, ιστορικό κωδικών, αναφορές πρόσβασης, ειδοποιήσεις email.
υποστηρίζει κρυπτογράφηση δεδομένων
υποστηρίζει πολλαπλά σχήματα ταυτοποίησης, συμπεριλαμβανομένων LDAP, O365 και τοπικών χρηστών ΜΕ υποστήριξη MFA από πολλαπλές πηγές
πολλαπλά αποθετήρια/θησαυροφυλάκια με λεπτομερείς ελέγχους πρόσβασης για πολλαπλές ομάδες
σύγχρονη διαδικτυακή διεπαφή
ιδιωτικά θησαυροφυλάκια διαπιστευτηρίων και συνδέσεων για προσωπικά διαπιστευτήρια/συνδέσεις
εφαρμογές κινητού για iOS/Android
αρχεία καταγραφής ελέγχου για κάθε εγγραφή, ποιος/τι/πότε με προαιρετική ερώτηση για το γιατί έχουν πρόσβαση
προσαρμόσιμα πρότυπα (αν και υποστηρίζουν εγγενώς εκατοντάδες τύπους συνδέσεων)
πολλά ακόμη χαρακτηριστικά και ένας thick client Windows/Mac (Remote Desktop Manager) με τον οποίο μπορείτε να συγχρονίζεστε και ο οποίος επεκτείνει σημαντικά τις επιλογές... συνδέσεις με ένα κλικ
η τιμολόγηση δεν είναι και τόσο άσχημη - μέχρι 15 χρήστες κοστίζει 500 $ τον χρόνο για τον διακομιστή κωδικών
Secret Server by Thycotic
https://thycotic.com/products/secret-server/
Χαρακτηριστικά τοπικής έκδοσης (on-premise):
Πλήρης έλεγχος των end-to-end συστημάτων και υποδομής ασφαλείας σας
Ανάπτυξη λογισμικού στο τοπικό κέντρο δεδομένων σας ή στη δική σας εικονική ιδιωτική υποδομή cloud
Εκπλήρωση νομικών και ρυθμιστικών υποχρεώσεων που απαιτούν όλα τα δεδομένα και τα συστήματα να βρίσκονται τοπικά
Χαρακτηριστικά έκδοσης cloud:
Το μοντέλο λογισμικού ως υπηρεσία σάς επιτρέπει να εγγραφείτε και να ξεκινήσετε αμέσως
Ελαστική κλιμακωσιμότητα καθώς αναπτύσσεστε
Έλεγχοι και πλεονασμός που παρέχονται από το Azure με SLA διαθεσιμότητας 99,9%
Ανατροφοδότηση χρηστών:
Χρησιμοποιούσαμε αυτό το προϊόν. Παρακάμπτεται τόσο εύκολα και οι κανόνες λειτουργούν μόνο για έξυπνους ανθρώπους. Οι τεμπέληδες ή ανόητοι χρήστες μπορούν εύκολα να το χαλάσουν σε χώρο ομάδας. Οι τιμές είναι διαπραγματεύσιμες όταν μιλήσετε μαζί τους.
Μπορείτε να το τρέξετε χρησιμοποιώντας SQL Express και ένα μηχάνημα Win 7.
Φτηνό.