Indvirkning
Lækkende hemmeligheder såsom API nøgler, tokens eller legitimationsoplysninger kan føre til uautoriseret adgang til følsomme data, tjenesteefterligning og betydeligt økonomisk tab på grund af ressourcemisbrug [S1]. Når en hemmelighed først er forpligtet til et offentligt lager eller bundtet i en frontend-applikation, bør den betragtes som kompromitteret [S1].
Grundårsag
Grundårsagen er inkluderingen af følsomme legitimationsoplysninger direkte i kildekoden eller konfigurationsfiler, der efterfølgende er forpligtet til versionskontrol eller serveret til klienten [S1]. Udviklere koder ofte nøgler for nemheds skyld under udvikling eller inkluderer ved et uheld .env-filer i deres commits [S1].
Konkrete rettelser
- Roter kompromitterede hemmeligheder: Hvis en hemmelighed er lækket, skal den tilbagekaldes og erstattes med det samme. Blot at fjerne hemmeligheden fra den aktuelle version af koden er utilstrækkelig, fordi den forbliver i versionskontrolhistorikken [S1][S2].
- Brug miljøvariabler: Gem hemmeligheder i miljøvariabler i stedet for at hardkode dem. Sørg for, at
.env-filer føjes til.gitignorefor at forhindre utilsigtede commits [S1]. - Implementer hemmelig styring: Brug dedikerede hemmelige administrationsværktøjer eller vault-tjenester til at injicere legitimationsoplysninger i applikationsmiljøet ved runtime [S1].
- Purge Repository History: Hvis en hemmelighed blev begået til Git, skal du bruge værktøjer som
git-filter-repoeller BFG Repo-Cleaner til permanent at fjerne de følsomme data fra alle grene og tags i lagerhistorikken [S2].
Hvordan FixVibe tester for det
FixVibe inkluderer nu dette i live-scanninger. Passiv secrets.js-bundle-sweep downloader JavaScript-bundter med samme oprindelse og matcher kendte API nøgle-, token- og legitimationsmønstre med entropi- og pladsholderporte. Relaterede live-tjek inspicerer browserlagring, kildekort, godkendelses- og BaaS-klientbundter og GitHub-repokildemønstre. Omskrivning af Git-historik forbliver et afhjælpningstrin; FixVibe's live-dækning fokuserer på hemmeligheder, der findes i afsendte aktiver, browserlagring og aktuelt repo-indhold.
