I ricercatori di Truffle Security hanno calcolato che nei repository pubblici su GitHub sono stati pubblicati 543.699 credenziali uniche e ancora attive. Alcuni di questi segreti sono accessibili da anni: il tempo medio di vita di tali perdite è di 784 giorni, mentre il segreto più vecchio (ancora funzionante) risale al 2009.
Lo studio degli esperti si basa su un dataset progettato per l’addestramento di grandi modelli linguistici. Questo set di dati è stato raccolto attraverso il crawling di GitHub, conclusosi il 7 agosto 2025. Per condurre l’analisi, l’azienda ha esaminato circa 224 milioni di repository e oltre 58 miliardi di file.
In totale, 543.699 segreti unici sono stati trovati in più di 1,1 milioni di file e repository, incluse le copie nei fork. Inoltre, circa il 10% delle credenziali attive risulta avere più di 6,3 anni.
L’azienda ha evidenziato che, nel caso di GitHub, l’entità del problema si è rivelata doppia rispetto a un analogo studio di Hugging Face. In quell’occasione, gli esperti avevano trovato sulla piattaforma 221.303 segreti funzionanti.
Inoltre, nel rapporto si sottolinea che nel tempo nei repository aumenta il numero di segreti attivi. Ad esempio, se nel 2015 per un milione di file si contavano 3,72 segreti attivi, nel 2025 questo indicatore ha raggiunto il picco con 11,62 segreti.
I ricercatori hanno anche valutato l’efficacia del meccanismo GitHub Push Protection, che cerca nel codice chiavi API, token di accesso e altri segreti, bloccandone la pubblicazione. La funzione è stata presentata per gli utenti Advanced Security ad aprile 2022, resa disponibile per tutti i repository pubblici a maggio 2023, e attivata per impostazione predefinita per tutti gli utenti a febbraio 2024.
Tuttavia, i ricercatori hanno rilevato che, nonostante il funzionamento di GitHub Push Protection, 199.843 (36,8% del totale) segreti sono trapelati in pubblico già dopo l’attivazione predefinita di Push Protection.
Gli esperti spiegano che il problema non risiede tanto nell’inefficacia del meccanismo di protezione, quanto nella sua copertura. Infatti, circa il 51,8% di tutti i segreti attivi trovati appartiene a categorie che la configurazione standard di Push Protection non blocca affatto. Tra queste, ad esempio, ci sono le stringhe di connessione ai database e le chiavi API di Google. Al contrario, le perdite sono diminuite del 53% per le categorie che Push Protection protegge effettivamente, dopo l’attivazione della funzione per impostazione predefinita.
La frequenza di revoca dei segreti compromessi dipende fortemente dal servizio specifico. Ad esempio, tra i 101.886 token npm divulgati, i ricercatori ne hanno trovato solo uno funzionante. Tuttavia, la situazione è molto diversa nel caso delle credenziali per gli account di servizio Google Cloud: su 126.963 segreti rilevati, 69.041 risultano ancora attivi.
I ricercatori consigliano agli sviluppatori di cambiare immediatamente i segreti pubblicati accidentalmente online, pulire i repository e la loro storia, nonché limitare automaticamente la durata di validità di tutte le credenziali.
Carolina Vivianti è consulente/Advisor autonomo in sicurezza informatica con esperienza nel settore tech e security. Ha lavorato come Security Advisor per Ford EU/Ford Motor Company e Vodafone e ha studi presso la Sapienza Università di Roma.
Aree di competenza: Cybersecurity, IT Risk Management, Security Advisory, Threat Analysis, Data Protection, Cloud Security, Compliance & Governance