FixVibe
Covered by FixVibehigh

API Uhajanje ključa: Tveganja in sanacije v sodobnih spletnih aplikacijah

Trdo kodirane skrivnosti v kodi čelnega vmesnika ali zgodovini repozitorija omogočajo napadalcem, da se lažno predstavljajo kot storitve, dostopajo do zasebnih podatkov in imajo stroške. Ta članek obravnava tveganja uhajanja skrivnosti ter potrebne korake za čiščenje in preprečevanje.

CWE-798

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 .env dodane 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-repo ali 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.