Secret Gate
Een releasepoort die je echte secrets kent: er gaat niets live totdat er niets meer wordt gevonden.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Wat het doet
Secret Gate beantwoordt één vraag voordat iets uw handen verlaat, of het nu een release-zip is, een kopie voor een klant, een open-source-push of de volgende commit: bevat dit een van mijn geheimen? Het weet wat uw geheimen zijn, omdat het de bestanden leest waarin ze staan, en toont er nooit één: een bevinding noemt het bestand, de regel en waar de vandaan komt.
- Uw exacte waarden. Elke waarde in uw env-bestanden, JSON- en YAML-configuraties,
.netrc- en sleutelbestanden, opgezocht zoals geschreven, base64-gecodeerd en URL-gecodeerd. Een wachtwoord dat op een gewoon woord lijkt, of een interne token zonder bekende prefix, wordt net als elk ander gevonden. - Geheimen van machines waar het niet op draait. Maak vingerafdrukken op uw laptop; de buildserver vindt die waarden zonder ze ooit in handen te hebben.
- Andere machines controleren tegen hun eigen geheimen. De bestanden gaan via SSH naar elke machine, worden daar gescand en verwijderd. De geheimen verplaatsen zich nooit, en een machine die niet kan antwoorden, blokkeert de release.
- Ook vormen, namen en ruis. 25 tokenformaten, uw namen, hosts, domeinen en account-id's, privé IP-adressen, persoonlijke e-mailadressen, telefoonnummers, IBAN's, paden naar home-mappen en willekeurige strings naast geheime namen.
- Het bewijst zichzelf elke keer. Elke scan begint met het plaatsen van canaries van elk type; als een controle zijn canary mist, draait de scan niet.
- Waar u al werkt. Mappen, zip- en tar-archieven, een git pre-commit- of pre-push-hook, exitcodes voor CI, een JSON-rapport.
Getest op wat we leveren
- Elke kit die we verkopen: de 8 uitgebrachte archieven gescand tegen de 133 geheime waarden op onze buildmachine en 16.259 vingerafdrukken van onze laptop. Allemaal geslaagd, samen in 5,4 seconden.
- Een echt geheim geplant in een releasekopie werd gevonden, zowel plat als base64-gecodeerd, en werd elke keer genoemd bij het bestand waar het vandaan kwam. De waarde kwam nergens voor in de uitvoer of het rapport.
- Een remote scan via SSH controleerde een release tegen de 499 geheime waarden van een tweede machine in 1,4 seconden, en ving een token in een kopie die alleen op die machine bestond.
Wat zit erin
De poort
De vier controles, de zelftest, archief- en git-gestage scanning, een leesbaar rapport en een JSON-rapport.
Vingerafdrukken
Vingerafdrukken van de geheimen van één machine, voor een scan op een andere, zonder de waarden.
Externe scans
Dezelfde bestanden gecontroleerd op elke machine die geheimen bevat, met de regels van je project erbij.
Instelling en CI
Een finder voor je geheime bestanden, git hooks en een GitHub Actions-workflow voor release-archieven.
Vereisten
- Linux of macOS met Python 3.9 of nieuwer; niets te installeren via pip.
- Git voor de hooks, SSH voor externe scans.
Goed om te weten
- Het leest bestanden zoals ze nu zijn. Een geheim dat al in je git-geschiedenis staat, blijft daar: roteer het.
- Archieven binnen een gescande map worden niet geopend; scan elk archief apart.
- Bewaar vingerafdrukbestanden net zo privé als de geheimen: ze bevatten de eerste 4 tekens van elke waarde van 16 tekens of meer.
Vragen
Hoe verschilt dit van gitleaks of TruffleHog?
Die zoeken naar wat geheimen er gewoonlijk uitzien, en zijn daar goed in. Secret Gate weet ook wat jouw geheimen daadwerkelijk zijn: het leest je eigen geheime bestanden en zoekt naar die exacte waarden, zodat ook een databasewachtwoord of een interne token zonder herkenbare vorm wordt gevonden. Het is gebouwd voor één moment, voordat iets wordt uitgebracht, en faalt gesloten.
Stuurt het mijn geheimen ergens heen?
Nee. Waarden worden uit je bestanden in het geheugen gelezen voor de scan en nooit afgedrukt, weggeschreven of verzonden; een vingerafdrukbestand, als je er een maakt, bevat een hash en de eerste 4 tekens van elk. Externe scans sturen de bestanden die je op het punt staat uit te brengen naar je eigen machine; de geheimen van die machine blijven daar.
Wat dacht je van valse alarmen?
Een bevinding betekent "kijk hier eens naar". Als het goed is, voeg je een smalle allow-regel toe voor dat soort bevindingen in de projectconfiguratie, bijvoorbeeld je eigen supportadres. Er is geen schakelaar die een controle uitzet.
Kan het mijn git-geschiedenis scannen?
Nee. Het controleert wat je op het punt staat uit te brengen: een map, een archief of de volgende commit. Voor een geheim dat al in de geschiedenis staat, roteer je het geheim.
Bijgewerkt: