GitHub a rischio perdita di token di autenticazione
Negli ultimi tempi, sono stati scoperti rischi significativi legati alla perdita di token di autenticazione in GitHub Actions, che potrebbero mettere a rischio repository privati e codice sorgente. Questo problema è stato rilevato da Unit 42, un team di ricerca di Palo Alto Networks, che ha scoperto che molti progetti open-source di alto profilo, inclusi quelli di Google, Microsoft, AWS e Red Hat, sono vulnerabili a questo tipo di attacco.
Come funziona l’attacco
L’attacco, noto come “ArtiPACKED,” si basa su una combinazione di configurazioni non sicure, configurazioni errate da parte degli utenti e controlli di sicurezza insufficienti. Questi fattori possono portare alla perdita di token di autenticazione GitHub attraverso gli artefatti di GitHub Actions.
Fattori di rischio
- Azione “actions/checkout”: Questa azione è comunemente utilizzata nelle pipeline CI/CD per clonare il repository e rendere il codice disponibile durante l’esecuzione del workflow. Tuttavia, per le operazioni autenticate all’interno del workflow, l’azione persiste il token GitHub nel directory
.git
locale, che può essere esposto se l’utente carica l’intero directory di checkout come parte di un artefatto. - Generazione di artefatti durante il processo CI/CD: Gli artefatti generati durante il processo CI/CD, come output di costruzione e risultati dei test, possono essere conservati e accessibili per un massimo di tre mesi.
- Variabili di ambiente: Le pipeline CI/CD che utilizzano variabili di ambiente per memorizzare i token GitHub possono esporre questi token se le azioni o i script all’interno del workflow registrano queste variabili, intenzionalmente o per errore, e le carichiamo come artefatti.
Come gli attaccanti possono sfruttare la perdita di token
Gli attaccanti potrebbero sfruttare specifiche condizioni di corsa per estrarre i token GitHub dai log e utilizzarli prima che scadano. I token GitHub rimangono validi per la durata del lavoro del workflow, quindi il periodo di sfruttamento varia a seconda del caso. L'”Actions_Runtime_Token,” utilizzato internamente da GitHub per la gestione degli artefatti, è tipicamente valido per sei ore, quindi il periodo di sfruttamento è limitato.
Come proteggere gli artefatti
Per evitare la perdita di token e il rischio di compromissione del progetto, gli amministratori dei progetti open-source dovrebbero esaminare la creazione di artefatti e i livelli di privilegio all’interno delle pipeline CI/CD, assicurandosi che gli artefatti contenenti segreti non vengano pubblicati automaticamente e concedendo i permessi minimi necessari per i token runner durante il workflow.
Suggerimenti e consigli
- Revisione delle configurazioni: Assicurarsi che le configurazioni delle pipeline CI/CD siano sicure e che i token di autenticazione non vengano esposti.
- Controllo delle variabili di ambiente: Verificare che le variabili di ambiente non vengano registrate e caricate come artefatti.
- Utilizzo di strumenti di sicurezza: Utilizzare strumenti come VirusTotal per analizzare i contenuti degli artefatti protetti.
- Utilizzo di VM: Estrarre gli artefatti protetti su una macchina virtuale e analizzarne i contenuti con software antivirus per individuare eventuali malware.
La perdita di token di autenticazione in GitHub Actions è un problema serio che può mettere a rischio repository privati e codice sorgente. Gli amministratori dei progetti open-source devono essere consapevoli dei rischi e prendere misure per prevenirne la perdita. GitHub ha deciso di non affrontare il problema, lasciando agli utenti la responsabilità di configurare e proteggere correttamente gli artefatti.