Vpliv
Uhajanje skrivnosti, kot so ključi, žetoni ali poverilnice API, lahko vodi do nepooblaščenega dostopa do občutljivih podatkov, lažnega predstavljanja storitve in znatne finančne izgube zaradi zlorabe virov [S1]. Ko je skrivnost posredovana javnemu repozitoriju ali združena v čelno aplikacijo, jo je treba obravnavati kot ogroženo [S1].
Temeljni vzrok
Glavni vzrok je vključitev občutljivih poverilnic neposredno v izvorno kodo ali konfiguracijske datoteke, ki so naknadno predane nadzoru različic ali postrežene odjemalcu [S1]. Razvijalci pogosto vdelajo ključe v kodo zaradi priročnosti med razvojem ali pomotoma vključijo datoteke .env v svoje objave [S1].
Betonski popravki
- Izmenjava ogroženih skrivnosti: Če skrivnost razkrije, jo je treba takoj preklicati in zamenjati. Preprosto odstranjevanje skrivnosti iz trenutne različice kode ne zadošča, ker ostane v zgodovini nadzora različic [S1][S2].
- Uporabite spremenljivke okolja: Shranite skrivnosti v spremenljivke okolja, namesto da bi jih trdo kodirali. Zagotovite, da so datoteke
.envdodane v.gitignore, da preprečite nenamerne objave [S1]. - Implementirajte tajno upravljanje: Uporabite namenska tajna orodja za upravljanje ali storitve trezorja za vnos poverilnic v okolje aplikacije med izvajanjem [S1].
- Počisti zgodovino skladišča: Če je bila skrivnost predana Gitu, uporabite orodja, kot sta
git-filter-repoali BFG Repo-Cleaner, da trajno odstranite občutljive podatke iz vseh vej in oznak v zgodovini skladišča [S2].
Kako ga FixVibe testira
FixVibe to zdaj vključuje v skeniranje v živo. Pasivni secrets.js-bundle-sweep prenese svežnje JavaScript istega izvora in se ujema z znanimi vzorci ključev, žetonov in poverilnic API z entropijskimi vrati in ogradami za mesto. Povezana preverjanja v živo pregledujejo shrambo brskalnika, izvorne zemljevide, pakete odjemalcev auth in BaaS ter izvorne vzorce repo GitHub. Ponovno pisanje zgodovine Git ostaja korak popravka; FixVibe poročanje v živo se osredotoča na skrivnosti, ki so prisotne v poslanih sredstvih, shrambi brskalnika in trenutni vsebini repoja.
