Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Arile! Scopri di più
Quando un avversario ottiene un punto d'appoggio nella rete di un'organizzazione, una delle prime mosse ad alto rendimento è esplorare i repository di codice interni. La tecnica T1213.003 descrive proprio questo scenario: l'attaccante accede a piattaforme come GitHub Enterprise, GitLab self-hosted, Bitbucket Server o analoghe, per raccogliere codice sorgente proprietario, credenziali hard-coded, token API, chiavi SSH e qualunque altro segreto sepolto nei commit.
Questa tecnica si colloca nella fase di Collection (TA0009), il momento in cui l'attaccante ha già compromesso account o segmenti di rete e passa a raccogliere dati di valore strategico. Il bottino è duplice: da un lato il codice sorgente fornisce la mappa logica dell'applicazione — superfici d'attacco, vulnerabilità, dipendenze — dall'altro le credenziali scoperte nei file di configurazione o nella cronologia dei commit aprono porte laterali attraverso Valid Accounts.
L'impatto operativo è rilevante. Dai dati disponibili, 3 gruppi APT documentati sfruttano questa tecnica, 1 campagna di alto profilo (la SolarWinds Compromise, C0024) la include nel proprio playbook, e il framework difensivo prevede 4 mitigazioni dedicate. Il fatto che gruppi con motivazioni e sponsor diversi convergano tutti sui repository di codice conferma che si tratta di un bersaglio universale: chi controlla il codice, controlla il prodotto.
La simulazione di questa tecnica in un esercizio red team si articola in tre fasi: scoperta dei repository, estrazione massiva e ricerca di segreti. L'obiettivo è dimostrare al cliente quanto sia semplice, una volta ottenuto un account valido, saccheggiare l'intero patrimonio software.
Fase 1 — Enumerazione dei repository. Dopo aver compromesso un account con accesso alla piattaforma Git interna, il primo passo è mappare tutti i repository visibili. Su GitHub Enterprise si sfrutta l'API REST autenticata:
curl -s -H "Authorization: token <PAT>" "
Su GitLab self-hosted il comando equivalente usa l'API v4:
curl -s --header "PRIVATE-TOKEN:
Questi comandi restituiscono l'elenco completo dei repository a cui l'account ha accesso, compresi quelli privati. La paginazione va gestita iterando sui parametri page per coprire organizzazioni con centinaia di repository.
Fase 2 — Clonazione massiva. Una volta ottenuta la lista, uno script Bash può clonare tutti i repository in parallelo. Un approccio minimal:
for repo in $(cat repo_list.txt); do git clone "$repo" & done
Per operazioni più controllate, il tool ghorg (open source) consente di clonare un'intera organizzazione GitHub o GitLab con un singolo comando:
ghorg clone
Fase 3 — Ricerca di segreti. Qui entra in gioco il vero valore dell'operazione. TruffleHog (open source) scansiona l'intera cronologia dei commit alla ricerca di credenziali, token e chiavi:
trufflehog git file://
Il flag --only-verified tenta la validazione attiva delle credenziali trovate, restituendo solo quelle effettivamente funzionanti. In alternativa, Gitleaks (open source) offre un'analisi rapida con regole personalizzabili:
gitleaks detect --source
Un aspetto spesso trascurato è la scansione dei file di configurazione CI/CD — pipeline YAML di GitHub Actions, GitLab CI o Jenkins — che frequentemente contengono variabili d'ambiente con credenziali in chiaro o riferimenti a vault mal configurati.
Per il report, documentate il numero di repository accessibili, il volume di codice scaricabile e la quantità di segreti validi trovati. Queste metriche sono estremamente efficaci nel comunicare il rischio al management.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo