Τα διαπιστευτήρια περνούν συνεχώς από τη μία ομάδα στην άλλη. Η ομάδα υποδομών δίνει ένα κλειδί deploy σε μια ομάδα προϊόντος, η υποστήριξη παίρνει τα στοιχεία διαχειριστή για την πύλη ενός προμηθευτή, το οικονομικό τμήμα δίνει στους μηχανικούς το token του API της τράπεζας για μια ενσωμάτωση. Κάθε παράδοση είναι ρουτίνα, και ακριβώς εκεί ένα διαπιστευτήριο καταλήγει συνήθως για πάντα σε ένα νήμα του Slack.
Για μια ασφαλή παράδοση διαπιστευτηρίων ανάμεσα σε ομάδες δεν χρειάζεστε τόσο κάποιο έξυπνο εργαλείο όσο έναν σαφή κανόνα για το ποιο από δύο εργαλεία θα χρησιμοποιείτε, και μερικές συνήθειες γύρω από αυτόν. Ο οδηγός περιγράφει τον κανόνα και τις συνήθειες: περιορίστε τα δικαιώματα του διαπιστευτηρίου, παραδώστε το χωρίς να το βάλετε σε μήνυμα, ορίστε υπεύθυνο, και αφαιρέστε το εγκαίρως.
Η μία απόφαση που μετράει: κρύπτη ή σύνδεσμος μίας χρήσης
Όλα τα υπόλοιπα εξαρτώνται από το πώς θα χρησιμοποιήσει το διαπιστευτήριο η ομάδα που το παραλαμβάνει.
| Η ομάδα που το παραλαμβάνει | Χρησιμοποιήστε | Γιατί |
|---|---|---|
| Θα το χρησιμοποιεί συνεχώς, από πολλά άτομα, χωρίς ημερομηνία λήξης | Μια κοινόχρηστη κρύπτη στον διαχειριστή κωδικών πρόσβασης ή μυστικών σας | Ονομαστική πρόσβαση, ανάκληση και εναλλαγή σε ένα σημείο |
| Θα το χρησιμοποιήσει μία φορά ή ένα άτομο το χρειάζεται για λίγο | Έναν μυστικό σύνδεσμο μίας χρήσης | Το μήνυμα περιέχει μόνο έναν σύνδεσμο, και το αντίγραφο καταστρέφεται με το πρώτο άνοιγμα |
| Θα το χρησιμοποιεί από κώδικα ή CI | Έναν διαχειριστή μυστικών με ταυτότητες μηχανών | Κανένας άνθρωπος δεν βλέπει ποτέ την τιμή |
Η κρύπτη είναι το σύστημα αναφοράς. Αν το διαπιστευτήριο θα χρησιμοποιείται και μετά την παράδοση, η θέση του είναι σε μια κοινόχρηστη κρύπτη που ανήκει στην ομάδα που το παραλαμβάνει, με μέλη που προστίθενται ονομαστικά. Οι περισσότεροι επαγγελματικοί διαχειριστές κωδικών πρόσβασης και εργαλεία όπως το Vault ή το AWS Secrets Manager το κάνουν καλά.
Ο σύνδεσμος μίας χρήσης είναι για τη στιγμή της μεταφοράς, όταν η κρύπτη δεν ταιριάζει: ο παραλήπτης δεν έχει πρόσβαση στην κρύπτη σας, το διαπιστευτήριο είναι προσωρινό, ή πρέπει να δώσετε μια τιμή σε ένα άτομο αμέσως. Το μυστικό κρυπτογραφείται στο πρόγραμμα περιήγησής σας, το αποθηκευμένο αντίγραφο καταστρέφεται την πρώτη φορά που ανοίγει ο σύνδεσμος, και ο ίδιος ο σύνδεσμος παύει να λειτουργεί όταν λήξει, αν δεν τον ανοίξει κανείς. Το άρθρο Μυστικοί σύνδεσμοι ή διαχειριστές κωδικών πρόσβασης εξετάζει τις οριακές περιπτώσεις.
Ποτέ email, συνομιλίες, κοινόχρηστα έγγραφα ή αιτήματα υποστήριξης. Όλα κρατούν αντίγραφα, όλα συγχρονίζονται σε συσκευές που δεν ελέγχετε, και σε όλα μπορεί να κάνει αναζήτηση ο επόμενος που θα μπει στον λογαριασμό.
Περιορίστε το διαπιστευτήριο πριν μετακινηθεί
Ένα καλό κανάλι δεν διορθώνει ένα διαπιστευτήριο με υπερβολικά δικαιώματα.
- Δημιουργήστε ξεχωριστό λογαριασμό για την ομάδα ή το άτομο που το παραλαμβάνει, αντί να δανείσετε έναν λογαριασμό που ανήκει σε συγκεκριμένο άτομο. Στις κοινές ταυτότητες δεν φαίνεται ποιος έκανε τι, και δεν αφαιρούνται καθαρά.
- Δώστε τα δικαιώματα που χρειάζεται η εργασία. Μια ομάδα που διαβάζει αναφορές δεν χρειάζεται δικαίωμα εγγραφής. Μια ομάδα που κάνει deploy δεν χρειάζεται πρόσβαση στη χρέωση.
- Αλλάξτε πρώτα την τιμή αν έχει ήδη κυκλοφορήσει. Αν το υπάρχον κλειδί έχει επικολληθεί εδώ κι εκεί, εκδώστε νέο για την παράδοση αντί να διαδώσετε κι άλλο το παλιό.
- Ψάξτε στο υλικό γύρω από την εργασία. Αιτήματα υποστήριξης, runbook, παραδείγματα ρυθμίσεων και script που συνοδεύουν τη δουλειά συχνά περιέχουν ακριβώς το διαπιστευτήριο που πρόκειται να παραδώσετε. Αφαιρέστε το πριν από την παράδοση, αλλιώς η παράδοση θα είναι το μικρότερο από τα προβλήματά σας.
Η ίδια η παράδοση
- Επαληθεύστε τον παραλήπτη μέσα από ένα κανάλι που ο οργανισμός σας ήδη εμπιστεύεται: το αίτημα, έναν γνωστό προϊστάμενο, μια βιντεοκλήση. Οι διευθύνσεις που μοιάζουν με τις σωστές και τα ονόματα που συμπληρώνονται αυτόματα είναι ο συνηθισμένος τρόπος με τον οποίο ένα μυστικό πάει σε λάθος χέρια.
- Παραδώστε με το εργαλείο που διαλέξατε. Κρύπτη: προσθέστε το άτομο στην κοινόχρηστη συλλογή. Σύνδεσμος: επικολλήστε την τιμή στο εργαλείο μυστικού συνδέσμου μίας χρήσης, ορίστε λήξη ίση με το πραγματικό χρονικό περιθώριο (μία ώρα αν ο παραλήπτης περιμένει, μία ημέρα αν είστε σε διαφορετικές ζώνες ώρας), ορίστε όριο προβολών στη μία, προσθέστε φράση πρόσβασης με λογαριασμό Pro για οτιδήποτε ευαίσθητο, και στείλτε τον σύνδεσμο.
- Στείλτε τις υπόλοιπες πληροφορίες χωριστά. Το όνομα χρήστη, ο host και σε τι δίνει πρόσβαση το διαπιστευτήριο πηγαίνουν σε ένα κανονικό μήνυμα, ποτέ μαζί με τον σύνδεσμο. Ένα μήνυμα που διαρρέει δεν πρέπει ποτέ να περιέχει και τα δύο μισά.
- Καταγράψτε την παράδοση στο σύστημα αναφοράς σας χωρίς το μυστικό: παραλήπτης, σκοπός, σύστημα, υπεύθυνος, ημερομηνία λήξης.
- Ζητήστε επιβεβαίωση ότι η πρόσβαση λειτουργεί, όχι επιβεβαίωση της τιμής. «Μπορείτε να συνδεθείτε;» είναι η σωστή ερώτηση. «Στείλτε μου πίσω το κλειδί να το ελέγξω» δεν είναι.
Για μια ομάδα που το κάνει συχνά, η εφαρμογή του LinkPilot για το Slack μετατρέπει έναν κωδικό πρόσβασης που επικολλάτε σε σύνδεσμο μίας χρήσης μέσα από το ίδιο το κανάλι. Έτσι η συνήθεια δεν εξαρτάται από το αν θα θυμηθούν όλοι να ανοίξουν άλλο εργαλείο.
Ορίστε υπεύθυνο και κάντε ελέγχους σε τακτά διαστήματα
Διαπιστευτήρια χωρίς υπεύθυνο δεν αλλάζονται και δεν αφαιρούνται ποτέ. Η ομάδα που παραλαμβάνει πρέπει να ορίσει ένα άτομο που λογοδοτεί για την τιμή: ποιος την έχει, ποιος άλλος τη χρειάζεται, και πότε καταργείται.
- Ελάχιστα δικαιώματα ανά ρόλο, με ρόλους ή ομάδες όπου κάνουν τη διαχείριση πιο απλή, ώστε μία αποχώρηση να μη σημαίνει επαναφορά σε κάθε σύστημα χωριστά.
- Έλεγχος ταυτότητας πολλών παραγόντων στην κρύπτη, επειδή τώρα η κρύπτη είναι ο στόχος που αξίζει μια επίθεση.
- Συχνότητα ελέγχων ανάλογη με την ευαισθησία: κάθε τρίμηνο για τα περισσότερα κοινόχρηστα διαπιστευτήρια, σε κάθε αλλαγή στην ομάδα για την πρόσβαση στην παραγωγή.
- Ελέγξτε τις παραδόσεις. Μια κρύπτη δείχνει ποιος είχε πρόσβαση σε τι. Ένας λογαριασμός LinkPilot Pro δείχνει ιστορικό ενεργειών (audit log) για κάθε μυστικό σύνδεσμο, ώστε να βλέπετε πότε έγινε μια εμφάνιση μίας χρήσης και να την αντιστοιχίζετε με την επιβεβαίωση του παραλήπτη.
Λήξη, εναλλαγή και έκθεση
Αποφασίστε πότε τελειώνει η ζωή του διαπιστευτηρίου πριν αρχίσει.
- Η προσωρινή πρόσβαση τελειώνει την ημερομηνία που συμφωνήθηκε. Αφαιρέστε τον λογαριασμό ή τη συμμετοχή στην κρύπτη και ανακαλέστε κάθε σύνδεσμο μίας χρήσης που δεν άνοιξε ποτέ.
- Η εναλλαγή ακολουθεί τον κίνδυνο, όχι μόνο το ημερολόγιο: μετά από μια αποχώρηση, μετά από αλλαγή προμηθευτή, μετά από κάθε υποψία έκθεσης, και σε τακτά διαστήματα για ό,τι έχει μεγάλη διάρκεια ζωής.
- Μια υποψία διαρροής είναι διαρροή μέχρι να αποδειχθεί το αντίθετο. Αντικαταστήστε το διαπιστευτήριο με νέο στο σύστημα που το δέχεται, ενημερώστε τον υπεύθυνο, και ενημερώστε τις εργασίες και τις υπηρεσίες που εξαρτώνταν από την παλιά τιμή. Ο οδηγός για τα κλειδιά API έχει μια λίστα ελέγχου για την εναλλαγή που ισχύει για τους περισσότερους τύπους διαπιστευτηρίων.
Δύο εργαλεία, ένας κανόνας για να διαλέγετε ανάμεσά τους, και ένας υπεύθυνος για κάθε τιμή. Αυτό είναι όλο το σύστημα, και αντέχει σε πολύ περισσότερες παραδόσεις από οποιοδήποτε έγγραφο πολιτικής που ο κόσμος σταματά να διαβάζει.
