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
.envvengano aggiunti a.gitignoreper 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-repoo 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.
