Vplyv
Únik tajomstiev, ako sú kľúče, tokeny alebo poverenia API, môže viesť k neoprávnenému prístupu k citlivým údajom, odcudzeniu identity služby a značným finančným stratám v dôsledku zneužívania zdrojov [S1]. Keď je tajomstvo odovzdané do verejného úložiska alebo zviazané do klientskej aplikácie, malo by sa považovať za napadnuté [S1].
Hlavná príčina
Hlavnou príčinou je zahrnutie citlivých poverení priamo v zdrojovom kóde alebo konfiguračných súboroch, ktoré sú následne odovzdané do správy verzií alebo doručené klientovi [S1]. Vývojári často napevno kódujú kľúče pre pohodlie počas vývoja alebo náhodne zahrnú súbory .env do svojich odovzdaní [S1].
Opravy betónu
- Rotate kompromitované tajomstvá: Ak dôjde k úniku tajomstva, musíte ho okamžite odvolať a nahradiť. Jednoduché odstránenie tajomstva z aktuálnej verzie kódu je nedostatočné, pretože zostáva v histórii kontroly verzií [S1][S2].
- Použite premenné prostredia: Ukladajte tajomstvá do premenných prostredia, a nie ich pevne zakódujte. Uistite sa, že súbory
.envsú pridané do.gitignore, aby ste predišli náhodným potvrdeniam [S1]. - Implementujte správu tajomstiev: Použite vyhradené nástroje na správu tajných informácií alebo služby úschovne na vloženie poverení do prostredia aplikácie za behu [S1].
- Vyčistenie histórie úložiska: Ak bolo tajomstvo odovzdané Gitu, použite nástroje ako
git-filter-repoalebo BFG Repo-Cleaner na trvalé odstránenie citlivých údajov zo všetkých vetiev a značiek v histórii úložiska [S2].
Ako to testuje FixVibe
FixVibe to teraz zahŕňa v živých skenoch. Pasívne secrets.js-bundle-sweep sťahuje zväzky JavaScriptu rovnakého pôvodu a zhoduje sa so známymi kľúčmi, tokenmi a vzormi poverení API s entropickými a zástupnými bránami. Súvisiace živé kontroly kontrolujú úložisko prehliadača, zdrojové mapy, overenie a klientske balíky BaaS a vzory zdrojov repo zdrojov GitHub. Prepisovanie histórie Git zostáva krokom nápravy; Živé spravodajstvo FixVibe sa zameriava na tajomstvá prítomné v dodaných aktívach, úložisku prehliadača a aktuálnom obsahu repo.
