Virkning
Lekking av hemmeligheter som API-nøkler, tokens eller legitimasjon kan føre til uautorisert tilgang til sensitive data, tjenesteetterligning og betydelig økonomisk tap på grunn av ressursmisbruk [S1]. Når en hemmelighet er forpliktet til et offentlig depot eller buntet inn i en frontend-applikasjon, bør den anses som kompromittert [S1].
Grunnårsak
Grunnårsaken er inkludering av sensitiv påloggingsinformasjon direkte i kildekoden eller konfigurasjonsfiler som senere blir forpliktet til versjonskontroll eller servert til klienten [S1]. Utviklere koder ofte nøkler for enkelhets skyld under utvikling eller inkluderer ved et uhell .env-filer i deres commits [S1].
Betongrettinger
- Roter kompromitterte hemmeligheter: Hvis en hemmelighet lekkes, må den oppheves og erstattes umiddelbart. Bare å fjerne hemmeligheten fra den gjeldende versjonen av koden er utilstrekkelig fordi den forblir i versjonskontrollhistorikken [S1][S2].
- Bruk miljøvariabler: Lagre hemmeligheter i miljøvariabler i stedet for å hardkode dem. Sørg for at
.env-filer legges til.gitignorefor å forhindre utilsiktede commits [S1]. - Implementer hemmelig administrasjon: Bruk dedikerte hemmelige administrasjonsverktøy eller hvelvtjenester for å injisere legitimasjon i applikasjonsmiljøet ved kjøretid [S1].
- Purge Repository History: Hvis en hemmelighet ble begått til Git, bruk verktøy som
git-filter-repoeller BFG Repo-Cleaner for å permanent fjerne sensitive data fra alle grener og tagger i depothistorikken [S2].
Hvordan FixVibe tester for det
FixVibe inkluderer nå dette i live-skanninger. Passiv secrets.js-bundle-sweep laster ned JavaScript-bunter med samme opprinnelse og matcher kjente API-nøkkel-, token- og legitimasjonsmønstre med entropi- og plassholderporter. Relaterte live-sjekker inspiserer nettleserlagring, kildekart, auth- og BaaS-klientbunter og GitHub-repokildemønstre. Omskriving av Git-historikk forblir et utbedringstrinn; FixVibes livedekning fokuserer på hemmeligheter som finnes i leverte eiendeler, nettleserlagring og gjeldende repo-innhold.
