Impact
Propuštanje tajni kao što su API ključevi, tokeni ili vjerodajnice može dovesti do neovlaštenog pristupa osjetljivim podacima, lažnog predstavljanja usluge i značajnog finansijskog gubitka zbog zloupotrebe resursa [S1]. Jednom kada se tajna preda javnom spremištu ili ukomponira u prednju aplikaciju, treba je smatrati ugroženom [S1].
Osnovni uzrok
Osnovni uzrok je uključivanje osjetljivih vjerodajnica direktno u izvorni kod ili konfiguracijske datoteke koje se naknadno predaju kontroli verzija ili služe klijentu [S1]. Programeri često tvrdo kodiraju ključeve radi praktičnosti tokom razvoja ili slučajno uključuju .env datoteke u svoje urezivanje [S1].
Betonski popravci
- Rotirajte ugrožene tajne: Ako je tajna procurila, mora se odmah opozvati i zamijeniti. Jednostavno uklanjanje tajne iz trenutne verzije koda nije dovoljno jer ostaje u istoriji kontrole verzija [S1][S2].
- Koristite varijable okruženja: Čuvajte tajne u varijablama okruženja umjesto da ih čvrsto kodirate. Osigurajte da su datoteke
.envdodane u.gitignoreda spriječite slučajna urezivanja [S1]. - Implementirajte tajno upravljanje: Koristite namjenske alate za upravljanje tajnim podacima ili usluge trezora za ubacivanje vjerodajnica u okruženje aplikacije u vrijeme izvođenja [S1].
- Očisti historiju spremišta: Ako je tajna predana Gitu, koristite alate poput
git-filter-repoili BFG Repo-Cleaner da trajno uklonite osjetljive podatke iz svih grana i oznaka u historiji spremišta ZXCVFIXVIBETOKEN1ZX.
Kako FixVibe testira za to
FixVibe sada uključuje ovo u skeniranje uživo. Pasivni secrets.js-bundle-sweep preuzima JavaScript pakete istog porijekla i odgovara poznatim API obrascima ključa, tokena i vjerodajnica s entropijom i kapijama za čuvanje mjesta. Povezane provjere uživo provjeravaju pohranu pretraživača, izvorne mape, auth i BaaS klijentske pakete i GitHub izvorne obrasce repo. Ponovno pisanje Git historije ostaje korak sanacije; FixVibe prenosi uživo fokusira se na tajne prisutne u isporučenoj imovini, skladištu pretraživača i trenutnom repo sadržaju.
