Secret Gate
En releasestyrning som känner till dina faktiska hemligheter: inget skickas förrän den inte hittar något.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Vad det gör
Secret Gate besvarar en enda fråga innan något lämnar dina händer, oavsett om det är en release-zip, en kunds kopia, en push till öppen källkod eller nästa commit: innehåller detta en av mina hemligheter? Den vet vilka dina hemligheter är, eftersom den läser filerna där de finns, och den visar aldrig någon: ett fynd anger filen, raden och var värdet kommer ifrån.
- Dina exakta värden. Alla värden i dina env-filer, JSON- och YAML-konfigurationer,
.netrcoch nyckelfiler, sökta som de är skrivna, base64-kodade och URL-kodade. Ett lösenord som ser ut som ett vanligt ord, eller en intern token utan känd prefix, fångas upp som alla andra. - Hemligheter från maskiner den inte kör på. Skapa fingeravtryck på din laptop; byggservern hittar dessa värden utan att någonsin hålla i dem.
- Andra maskiner kontrollerar mot sina egna hemligheter. Filerna skickas till varje maskin över SSH, skannas där och raderas. Hemligheterna rör sig aldrig, och en maskin som inte kan svara blockerar releasen.
- Former, namn och brus också. 25 token-format, dina namn, värdar, domäner och kontoid:n, privata IP-adresser, personliga e-postadresser, telefonnummer, IBAN, sökvägar till hemmapp och slumpsträngar bredvid hemlighetsliknande namn.
- Den bevisar sig själv varje gång. Varje skanning börjar med att plantera canaries av alla slag; om någon kontroll missar sin canary körs inte skanningen.
- Där du redan arbetar. Mappar, zip- och tar-arkiv, en git pre-commit- eller pre-push-hook, exit-koder för CI, en JSON-rapport.
Testat på det vi levererar
- Alla verktygspaket vi säljer: de 8 släppta arkiven skannade mot de 133 hemliga värdena på vår byggmaskin och 16 259 fingeravtryck från vår laptop. Alla godkända, på 5,4 sekunder totalt.
- En riktig hemlighet planterad i en releasekopia fångades upp både som ren text och base64-kodad, och namngavs varje gång av filen den kom från. Värdet dök inte upp någonstans i utdatan eller rapporten.
- En fjärrskanning över SSH kontrollerade en release mot en andra maskins 499 hemliga värden på 1,4 sekunder, och fångade upp en token planterad i en kopia som bara fanns på den maskinen.
Vad ingår
Grinden
De fyra kontrollerna, självtestet, skanning av arkiv och git-staged filer, en läsbar rapport och en JSON-rapport.
Fingeravtryck
Fingeravtryck av en maskins hemligheter, för en skanning på en annan, utan värdena.
Fjärrskanningar
Samma filer kontrolleras på varje maskin som innehåller hemligheter, med dina projekts regler skickade med.
Installation och CI
En sökare för dina hemlighetsfiler, git hooks och ett GitHub Actions-workflow för releasearkiv.
Krav
- Linux eller macOS med Python 3.9 eller nyare; inget att installera från pip.
- Git för hooks, SSH för fjärrskanningar.
Bra att veta
- Den läser filerna som de ser ut nu. En hemlighet som redan finns i din git-historik stannar där: rotera den.
- Arkiv i en skannad mapp öppnas inte; skanna varje arkiv separat.
- Håll fingeravtrycksfilerna lika privata som hemligheterna: de innehåller de första 4 tecknen i varje värde på 16 tecken eller fler.
From our field notes
Buggen i vår hemliga skanner som canaries inte kunde hitta
Vår release-gate planterar canaries före varje skanning, och de klarade alltid testet. Buggen låg ett steg tidigare: ett hemligt värde inom citattecken följt av en kommentar lästes in med sina citattecken. Så hittade vi det, varför canaries missar den här typen av bugg, och vilka tester som finns nu.
Leveranskod från en fungerande fordonsflotta utan att skicka med dess hemligheter
Varje verktygspaket vi säljer genomgår hemlighetskontroller på tre maskiner innan det zippas. Vad de letar efter, och de falska larmen som lärde oss mest.
Frågor
Hur skiljer sig detta från gitleaks eller TruffleHog?
De letar efter hur hemligheter vanligtvis ser ut, och de är bra på det. Secret Gate känner också till vad dina hemligheter faktiskt är: den läser dina egna hemlighetsfiler och letar efter just dessa värden, så ett databaslösenord eller en intern token utan igenkännlig form fångas också. Den är byggd för ett ögonblick, innan något skickas iväg, och misslyckas säkert (fail closed).
Skickar den mina hemligheter någonstans?
Nej. Värdena läses från dina filer in i minnet för skanningen och skrivs aldrig ut, sparas eller skickas; en fingeravtrycksfil, om du skapar en, innehåller en hash och de första 4 tecknen i varje värde. Fjärrskanningar skickar filerna du är på väg att skicka iväg till din egen maskin; den maskinens hemligheter stannar kvar på den.
Vad gör ni med falsklarm?
En träff betyder "titta på detta". Om det är okej, lägg till en smal tillåtna-regel för den typen av träff i projektets konfiguration, till exempel din egen supportadress. Det finns ingen strömbrytare som stänger av en kontroll.
Kan den skanna min git-historik?
Nej. Den kontrollerar vad du är på väg att skicka iväg: en mapp, ett arkiv eller nästa commit. För en hemlighet som redan finns i historiken, rotera hemligheten.
Uppdaterad: