Secret Gate
Kontrola izdanja koja poznaje vaše stvarne tajne: ništa se ne šalje dok se ništa ne pronađe.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Šta radi
Secret Gate odgovara na jedno pitanje pre nego što bilo šta napusti vaše ruke, bilo da je u pitanju release zip, kopija za kupca, push ka open-source repozitorijumu ili sledeći commit: da li ovo sadrži neku moju tajnu? On zna koje su vaše tajne, jer čita fajlove u kojima se nalaze, i nikada ih ne prikazuje: nalaz navodi fajl, liniju i odakle je vrednost došla.
- Vaše tačne vrednosti. Svaka vrednost u vašim env fajlovima, JSON i YAML konfiguracijama,
.netrci key fajlovima, tražena onako kako je napisana, base64-kodirana i URL-kodirana. Lozinka koja izgleda kao obična reč ili interni token bez poznatog prefiksa uhvaćena je kao i svaka druga. - Tajne sa mašina na kojima se ne izvršava. Napravite otiske na svom laptopu; build server pronalazi te vrednosti a da ih nikada ne drži.
- Druge mašine proveravaju prema svojim tajnama. Fajlovi se šalju na svaku mašinu preko SSH-a, skeniraju se tamo i brišu. Tajne se nikada ne pomeraju, a mašina koja ne može da odgovori blokira release.
- Oblici, imena i šum takođe. 25 formata tokena, vaša imena, hostovi, domeni i account id-ovi, privatne IP adrese, lične mejl adrese, brojevi telefona, IBAN-ovi, putanje do home foldera i nasumični nizovi pored imena koja podsećaju na tajne.
- Dokazuje se svaki put. Svako skeniranje počinje postavljanjem kanarince svih vrsta; ako bilo koja provera promaši svog kanarinca, skeniranje se ne izvršava.
- Gde već radite. Folderi, zip i tar arhive, git pre-commit ili pre-push hook, izlazni kodovi za CI, JSON izveštaj.
Testirano na onome što isporučujemo
- Svaki komplet koji prodajemo: 8 objavljenih arhiva skenirano u odnosu na 133 tajne vrednosti na našem build mašini i 16.259 otisaka sa našeg laptopa. Sve je prošlo, ukupno za 5,4 sekunde.
- Prava tajna ubačena u release kopiju uhvaćena je u čistom i base64-kodiranom obliku, svaki put imenovana po fajlu iz koga je došla. Vrednost se nije pojavila nigde u izlazu ili izveštaju.
- Udaljeno skeniranje preko SSH-a proverilo je release u odnosu na 499 tajnih vrednosti druge mašine za 1,4 sekunde, i uhvatilo token ubačen u kopiju koja je postojala samo na toj mašini.
Šta je unutra
Kapija
Četiri provere, samotest, skeniranje arhiva i git-staged fajlova, čitljiv izveštaj i JSON izveštaj.
Otisci
Otisci tajni jedne mašine, za skeniranje na drugoj, bez vrednosti.
Udaljena skeniranja
Isti fajlovi proveren na svakoj mašini koja čuva tajne, uz pravila vašeg projekta koja se šalju zajedno sa njima.
Postavljanje i CI
Alat za pronalaženje fajlova sa tajnama, git kuke i GitHub Actions workflow za arhive izdanja.
Zahtevi
- Linux ili macOS sa Python 3.9 ili novijom verzijom; ništa se ne instalira preko pip-a.
- Git za kuke, SSH za udaljena skeniranja.
Dobro je znati
- Čita fajlove onakve kakvi su sada. Tajna koja je već u vašoj git istoriji ostaje tamo: rotirajte je.
- Arhive unutar skenirane fascikle se ne otvaraju; skenirajte svaku arhivu posebno.
- Držite fajlove sa otiscima prstiju jednako privatnim kao i tajne: oni sadrže prva 4 karaktera svake vrednosti duže od 16 karaktera.
From our field notes
Pitanja
Čime se ovo razlikuje od gitleaks ili TruffleHog?
Oni traže ono na šta tajne obično liče i dobro u tome uspevaju. Secret Gate takođe zna koje su vaše tajne zapravo: čita vaše sopstvene fajlove sa tajnama i traži te tačne vrednosti, pa se hvata i lozinka za bazu podataka ili interni token koji nema prepoznatljiv oblik. Napravljen je za jedan trenutak, pre nego što nešto krene u produkciju, i zatvara se u slučaju greške.
Da li šalje moje tajne negde?
Ne. Vrednosti se čitaju iz vaših fajlova u memoriju radi skeniranja i nikada se ne štampaju, ne upisuju niti šalju; fajl sa otiscima prstiju, ako ga napravite, sadrži heš i prva 4 karaktera svake vrednosti. Udaljena skeniranja šalju fajlove koje ste spremni da otpremite na vašu mašinu; tajne te mašine ostaju na njoj.
Šta sa lažnim alarmima?
Nalaz znači "pogledaj ovo". Ako je sve u redu, dodajte usko definisano pravilo dozvole za tu vrstu nalaza u konfiguraciji projekta, na primer vašu adresu za podršku. Ne postoji prekidač koji isključuje proveru.
Da li može da skenira moju git istoriju?
Ne. Proverava ono što ste spremni da otpremite: fasciklu, arhivu ili sledeći commit. Za tajnu koja je već u istoriji, rotirajte tajnu.
Ažurirano: