Secret Gate
Μια πύλη έκδοσης που γνωρίζει τα πραγματικά σας μυστικά: τίποτα δεν κυκλοφορεί μέχρι να μην εντοπίσει τίποτα.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Τι κάνει
Το Secret Gate απαντά σε μία ερώτηση πριν οτιδήποτε φύγει από τα χέρια σας, είτε πρόκειται για ένα zip έκδοσης, ένα αντίγραφο πελάτη, ένα push ανοιχτού κώδικα ή το επόμενο commit: περιέχει κάποιο μυστικό μου; Γνωρίζει ποια είναι τα μυστικά σας, επειδή διαβάζει τα αρχεία όπου βρίσκονται, και δεν εμφανίζει ποτέ κανένα: μια ανίχνευση ονομάζει το αρχείο, τη γραμμή και από πού προήλθε η τιμή.
- Οι ακριβείς τιμές σας. Κάθε τιμή στα αρχεία env, στις ρυθμίσεις JSON και YAML, στα αρχεία
.netrcκαι στα αρχεία κλειδιών, αναζητείται όπως είναι γραμμένη, base64-encoded και URL-encoded. Ένας κωδικός πρόσβασης που μοιάζει με συνηθισμένη λέξη, ή ένα εσωτερικό token χωρίς γνωστό πρόθεμα, εντοπίζεται όπως κάθε άλλο. - Μυστικά από μηχανές στις οποίες δεν εκτελείται. Δημιουργήστε δακτυλικά αποτυπώματα στον φορητό υπολογιστή σας· ο διακομιστής build εντοπίζει αυτές τις τιμές χωρίς να τις κρατά ποτέ.
- Άλλες μηχανές ελέγχουν έναντι των δικών τους μυστικών. Τα αρχεία μεταφέρονται σε κάθε μηχανή μέσω SSH, σκανάρονται εκεί και διαγράφονται. Τα μυστικά δεν μετακινούνται ποτέ, και μια μηχανή που δεν μπορεί να απαντήσει μπλοκάρει την έκδοση.
- Μορφές, ονόματα και θόρυβος επίσης. 25 μορφές token, τα ονόματα, οι hosts, τα domains και τα ids λογαριασμών σας, ιδιωτικές διευθύνσεις IP, προσωπικές διευθύνσεις email, αριθμοί τηλεφώνου, IBANs, διαδρομές φακέλων home και τυχαίες συμβολοσειρές δίπλα σε ονόματα που μοιάζουν με μυστικά.
- Αποδεικνύει τον εαυτό του κάθε φορά. Κάθε σκανάρισμα ξεκινά τοποθετώντας canaries κάθε είδους· αν κάποιος έλεγχος χάσει το canary του, το σκανάρισμα δεν εκτελείται.
- Όπου ήδη εργάζεστε. Φάκελοι, αρχεία zip και tar, ένα git pre-commit ή pre-push hook, exit codes για CI, μια αναφορά JSON.
Δοκιμασμένο σε όσα διανέμουμε
- Κάθε Εργαλειοθήκη που πουλάμε: τα 8 εκδοθέντα αρχεία σκανάρονται έναντι των 133 τιμών μυστικών στη μηχανή build μας και 16.259 δακτυλικών αποτυπωμάτων από τον φορητό υπολογιστή μας. Όλα πέρασαν, σε 5,4 δευτερόλεπτα συνολικά.
- Ένα πραγματικό μυστικό τοποθετημένο σε αντίγραφο έκδοσης εντοπίστηκε σε καθαρή και base64-encoded μορφή, με κάθε φορά να ονομάζεται το αρχείο από το οποίο προερχόταν. Η τιμή δεν εμφανίστηκε πουθενά στην έξοδο ή στην αναφορά.
- Ένα απομακρυσμένο σκανάρισμα μέσω SSH έλεγξε μια έκδοση έναντι των 499 τιμών μυστικών μιας δεύτερης μηχανής σε 1,4 δευτερόλεπτα, και εντόπισε ένα token τοποθετημένο σε αντίγραφο που υπήρχε μόνο σε αυτή τη μηχανή.
Τι περιέχει
Η πύλη
Οι τέσσερις έλεγχοι, το self-test, το σκανάρισμα αρχείων και git-staged, μια αναγνώσιμη αναφορά και μια JSON.
Δακτυλικά αποτυπώματα
Δακτυλικά αποτυπώματα των μυστικών μιας μηχανής, για σκανάρισμα σε άλλη, χωρίς τις τιμές.
Απομακρυσμένες σαρώσεις
Τα ίδια αρχεία ελέγχονται σε κάθε μηχανή που φιλοξενεί μυστικά, μαζί με τους κανόνες του έργου σας.
Ρύθμιση και CI
Ένας εντοπιστής για τα αρχεία μυστικών σας, git hooks και ένα workflow GitHub Actions για αρχεία εκδόσεων.
Απαιτήσεις
- Linux ή macOS με Python 3.9 ή νεότερη έκδοση· τίποτα προς εγκατάσταση από το pip.
- Git για τα hooks, SSH για απομακρυσμένες σαρώσεις.
Χρήσιμο να γνωρίζετε
- Διαβάζει τα αρχεία όπως είναι τώρα. Ένα μυστικό που υπάρχει ήδη στο git history παραμένει εκεί: περιστρέψτε το.
- Τα αρχεία μέσα σε έναν φακέλο που σκανάρεται δεν ανοίγουν· σαρώστε κάθε αρχείο ξεχωριστά.
- Κρατήστε τα αρχεία δακτυλικών αποτυπωμάτων εξίσου ιδιωτικά με τα μυστικά: περιέχουν τους πρώτους 4 χαρακτήρες κάθε τιμής με 16 χαρακτήρες ή περισσότερους.
Ερωτήσεις
Πώς διαφέρει από τα gitleaks ή TruffleHog;
Αυτά αναζητούν πώς συνήθως μοιάζουν τα μυστικά και τα καταφέρνουν καλά. Το Secret Gate γνωρίζει επίσης ποια είναι πραγματικά τα μυστικά σας: διαβάζει τα δικά σας αρχεία μυστικών και αναζητά αυτές τις ακριβείς τιμές, ώστε να εντοπίζεται και ένας κωδικός βάσης δεδομένων ή ένα εσωτερικό token χωρίς αναγνωρίσιμη μορφή. Είναι σχεδιασμένο για μία στιγμή, πριν κυκλοφορήσει κάτι, και αποτυγχάνει κλειστά.
Στέλνει κάπου τα μυστικά μου;
Όχι. Οι τιμές διαβάζονται από τα αρχεία σας στη μνήμη για τη σάρωση και δεν εκτυπώνονται, δεν γράφονται ούτε στέλνονται ποτέ· ένα αρχείο δακτυλικών αποτυπωμάτων, αν δημιουργήσετε ένα, περιέχει ένα hash και τους πρώτους 4 χαρακτήρες του καθενός. Οι απομακρυσμένες σαρώσεις στέλνουν τα αρχεία που πρόκειται να κυκλοφορήσετε στη δική σας μηχανή· τα μυστικά της μηχανής αυτής παραμένουν σε αυτήν.
Τι γίνεται με τις ψευδείς ειδοποιήσεις;
Μια εύρεση σημαίνει «κοίταξε αυτό». Αν είναι εντάξει, προσθέστε έναν περιορισμένο κανόνα επιτροπής για αυτόν τον τύπο εύρεσης στη διαμόρφωση του έργου, για παράδειγμα τη δική σας διεύθυνση υποστήριξης. Δεν υπάρχει διακόπτης που να απενεργοποιεί έναν έλεγχο.
Μπορεί να σαρώσει το git history μου;
Όχι. Ελέγχει αυτό που πρόκειται να κυκλοφορήσετε: έναν φάκελο, ένα αρχείο ή την επόμενη δέσμευση. Για ένα μυστικό που υπάρχει ήδη στο ιστορικό, περιστρέψτε το μυστικό.
Ενημερώθηκε: