Repository di Codice: Code Repositories (T1213.003)

La tecnica T1213.003 - Code Repositories rientra nella tattica TA0009 (Collection) del framework MITRE ATT&CK e descrive l'abuso, da parte di attori malevoli, di piattaforme di gestione del codice sorgente come GitHub, GitLab, Bitbucket e SourceForge, sia in versione self-hosted che SaaS. L'obiettivo è duplice: da un lato l'esfiltrazione di codice proprietario, dall'altro la raccolta di credenziali non protette — token API, chiavi cloud, stringhe di connessione a database — spesso committate per errore all'interno di file di configurazione, script di deploy o notebook.

L'accesso ai repository avviene tipicamente dopo una fase di compromissione iniziale, sfruttando Valid Accounts oppure token OAuth rubati. Una volta dentro, l'attaccante può clonare interi progetti, enumerare la history dei commit alla ricerca di segreti rimossi ma ancora presenti negli oggetti Git, e utilizzare il codice sorgente per sviluppare exploit mirati contro l'infrastruttura della vittima.

L'impatto è significativo: 3 gruppi APT documentati (APT41, LAPSUS$, Scattered Spider) hanno fatto della raccolta da repository un pilastro delle loro operazioni, e la campagna C0024 SolarWinds Compromise ha dimostrato come il download di codice sorgente possa alimentare attacchi di supply chain di portata globale. Il framework MITRE elenca 4 mitigazioni primarie, tutte incentrate su hardening degli accessi e review sistematiche dei contenuti pubblicati.

In un ingaggio di red teaming, la fase di raccolta da repository di codice interni si articola in tre momenti: accesso, enumerazione e harvesting dei segreti. L'accesso presuppone credenziali valide o un token — spesso ottenuto via phishing, session hijacking o abuso di OAuth app con scope eccessivi (pattern osservato in operazioni LAPSUS$).

Una volta dentro un tenant GitHub Enterprise o GitLab self-hosted, l'enumerazione inizia dall'API. Con un Personal Access Token si può elencare i repository accessibili tramite gh repo list --limit 1000 --json name,visibility,url usando la GitHub CLI (open source), oppure interrogare direttamente l'endpoint REST con curl -H "Authorization: token $TOKEN" ... verso il path user/repos. Per GitLab, l'equivalente è il comando glab repo list (open source) o l'API projects.

Il clone massivo è il passo successivo. Uno script bash che itera git clone --mirror su ogni URL è sufficiente: l'opzione --mirror è cruciale perché scarica anche i branch remoti e la reflog, dove spesso vivono commit "rimossi" contenenti segreti. APT41, secondo la documentazione MITRE, ha clonato repository Git delle vittime esattamente con questa logica.

Per l'harvesting delle credenziali su repository clonati localmente, gli strumenti di riferimento sono:

  • TruffleHog (open source, versione enterprise a pagamento) — scansiona la storia Git con detector specifici per AWS, GCP, Slack, Stripe e centinaia di altri servizi. Sintassi tipica: trufflehog git file://./repo --only-verified, dove il flag --only-verified riduce drasticamente i falsi positivi validando i token contro le API reali.
  • Gitleaks (open source) — più leggero, orientato a integrazione CI/CD: gitleaks detect --source . --report-format json --report-path leaks.json.
  • noseyparker (open source) — molto rapido su repository di grandi dimensioni grazie al motore di scansione basato su Hyperscan.

Oltre alle credenziali, in un red team si cercano file di configurazione IaC (Terraform state, Ansible vault, Helm values), notebook Jupyter con connessioni a data warehouse, e workflow YAML di GitHub Actions che referenziano segreti di ambiente. La history dei workflow, accessibile via gh run list, spesso rivela nomi di ambienti di produzione e naming convention utili per movimento laterale.

Un pattern documentato per Scattered Spider è l'enumerazione mirata di repository interni per identificare credenziali ad alto privilegio: in laboratorio si simula creando un tenant GitHub Enterprise di test con seeding controllato di segreti fittizi, così da validare le catene di detection senza rischi.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.