FixVibe
Covered by FixVibehigh

API Perdita chiave: rischi e soluzioni nelle moderne app Web

I segreti hardcoded nel codice frontend o nella cronologia del repository consentono agli aggressori di impersonare servizi, accedere a dati privati e sostenere costi. Questo articolo tratta i rischi di fughe di informazioni segrete e le misure necessarie per la pulizia e la prevenzione.

CWE-798

Impatto

La perdita di segreti come chiavi, token o credenziali API può comportare l'accesso non autorizzato a dati sensibili, furto d'identità del servizio e perdite finanziarie significative dovute all'abuso delle risorse [S1]. Una volta che un segreto è stato inserito in un repository pubblico o inserito in un'applicazione frontend, dovrebbe essere considerato compromesso [S1].

Causa principale

La causa principale è l'inclusione di credenziali sensibili direttamente nel codice sorgente o nei file di configurazione che vengono successivamente sottoposti al controllo della versione o forniti al client [S1]. Gli sviluppatori spesso codificano le chiavi per comodità durante lo sviluppo o includono accidentalmente i file .env nei loro commit [S1].

Correzioni concrete

  • Ruota segreti compromessi: se un segreto viene divulgato, deve essere revocato e sostituito immediatamente. La semplice rimozione del segreto dalla versione corrente del codice non è sufficiente perché rimane nella cronologia del controllo della versione [S1][S2].
  • Utilizza variabili di ambiente: archivia i segreti nelle variabili di ambiente anziché codificarle in modo rigido. Assicurati che i file .env vengano aggiunti a .gitignore per evitare commit accidentali [S1].
  • Implementare la gestione dei segreti: utilizzare strumenti di gestione dei segreti dedicati o servizi di protezione per inserire credenziali nell'ambiente dell'applicazione in fase di runtime [S1].
  • Elimina cronologia del repository: Se un segreto è stato assegnato a Git, utilizza strumenti come git-filter-repo o BFG Repo-Cleaner per rimuovere permanentemente i dati sensibili da tutti i rami e i tag nella cronologia del repository [S2].

Come lo esegue il test FixVibe

FixVibe ora lo include nelle scansioni in tempo reale. secrets.js-bundle-sweep passivo scarica bundle JavaScript della stessa origine e corrisponde a modelli di chiavi, token e credenziali API noti con entropia e porte segnaposto. I controlli in tempo reale correlati esaminano l'archiviazione del browser, le mappe di origine, i bundle client di autenticazione e BaaS e i modelli di origine del repository GitHub. La riscrittura della cronologia di Git rimane una fase di riparazione; La copertura in diretta di FixVibe si concentra sui segreti presenti nelle risorse spedite, nell'archiviazione del browser e sui contenuti del repository corrente.