FixVibe
Covered by FixVibehigh

API Nøglelækage: Risici og afhjælpning i moderne webapps

Hårdkodede hemmeligheder i frontend-kode eller lagerhistorik gør det muligt for angribere at efterligne tjenester, få adgang til private data og pådrage sig omkostninger. Denne artikel dækker risikoen for hemmelig lækage og de nødvendige skridt til oprydning og forebyggelse.

CWE-798

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 .gitignore for 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-repo eller 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.