Massiccio attacco alla catena di approvvigionamento PyPI raccoglie credenziali cloud tramite hook di avvio Python
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Un’operazione coordinata nella supply chain nota come Campagna Hades ha compromesso 26 pacchetti PyPI per rubare credenziali cloud. L’attacco sfrutta file .pth per attivare codice malevolo durante l’avvio dell’interprete, utilizzando il runtime JavaScript Bun per eseguire il payload. È progettato per raccogliere segreti legati a AWS, GCP, Azure, Kubernetes, e GitHub su diversi sistemi operativi.
Indagine
Orca Security ha identificato 37 file wheel malevoli diffusi tra gli ecosistemi di bioinformatica e strumenti per sviluppatori. La loro analisi ha rivelato una tecnica cross-runtime in cui il malware scarica Bun per eseguire payload JavaScript offuscati. La campagna genera anche traffico diversivo verso i servizi di Anthropic AI e utilizza tecniche di prompt injection per ridurre l’efficacia delle revisioni di sicurezza basate su LLM.
Mitigazione
Le organizzazioni dovrebbero immediatamente rimuovere i pacchetti affetti o fissare versioni sicure e ruotare tutte le credenziali potenzialmente esposte. Questo include token di accesso al cloud, token di accesso personale di GitHub, chiavi SSH e credenziali del registro Docker. I team di sicurezza dovrebbero anche cercare i noti artefatti di persistenza su host Linux, macOS e Windows.
Risposta
Quando si sospetta una compromissione, isolare il sistema affetto prima di ruotare le credenziali per ridurre il rischio di estorsione tramite il daemon gh-token-monitor . Ricostruire qualsiasi workstation per sviluppatori e runner CI/CD che hanno eseguito i pacchetti avvelenati. Revisare i repository GitHub per commit non autorizzati e per nuovi repository creati che corrispondono ai modelli di denominazione degli attaccanti.
Flow d’attacco
Rilevamenti
Creazione sospetta di file Plist in LaunchAgents o LaunchDaemons (via file_event)
Visualizza
Processi grafici NodeJS sospetti [Linux] (via cmdline)
Visualizza
Creazione di file di servizio nella cartella Systemd (via file_event)
Visualizza
Possibile creazione di un file di hook di configurazione sito-specifico (via file_event)
Visualizza
Script Linux creato in cartelle temporanee (via file_event)
Visualizza
IOCs pacchetti Python malevoli (via cmdline)
Visualizza
Rilevamento del scraping dei token di autenticazione di GCP da parte della Campagna Hades [Google Cloud Platform]
Visualizza
Campagna Hades – Esfiltrazione dei token di autenticazione di Azure [Azure Activity Logs]
Visualizza
Raccolta di credenziali cloud AWS tramite attacco alla supply chain PyPI [AWS Cloudtrail]
Visualizza
Esecuzione simulazione
Prerequisito: Il Telemetry & Baseline Pre-flight Check deve essere passato.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e il racconto DEVONO riflettere direttamente i TTP identificati e mirare a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.
-
Narrativa e Comandi dell’Attacco: L’avversario ha compromesso con successo la workstation di uno sviluppatore tramite un pacchetto PyPI malevolo (Campagna Hades). Un hook di avvio di Python è stato eseguito, effettuando con successo lo scraping di un token di autenticazione Azure dalla memoria/cache locale. Per simulare il rilevamento di questa attività nei Log di Audit di Azure, simuleremo la generazione di una voce di Log di Audit che contiene la stringa specifica “token di autenticazione Azure” nel campo descrittivo, imitando la telemetria dell’evento che un sistema automatico potrebbe riportare quando rileva tale esfiltrazione.
-
Script Test di Regressione: Poiché non possiamo facilmente forzare il backend di Azure reale a generare una stringa descrittiva malevola specifica senza una violazione reale, simuleremo la presenza del log nel flusso di telemetria (spesso fatto in BAS iniettando un log sintetico nello spazio di lavoro).
# Synthetic Log Injection to simulate the detection of token exfiltration # This simulates the 'Description' field being populated with the target string. $LogEntry = @{ TimeGenerated = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ssZ") OperationName = "TokenExfiltrationDetected" Result = "Success" Description = "Malware activity detected: Azure authentication tokens were exfiltrated from a local process." Identity = "malicious-python-hook@attacker.com" } Write-Host "Injecting synthetic telemetry to validate detection rule..." # In a real BAS, this would call the Log Analytics Data Collector API # For simulation purposes, we represent the resulting log entry: $LogEntry | ConvertTo-Json -
# Iniezione di Log Sintetici per simulare il rilevamento dell’esfiltrazione di token # Questo simula il campo ‘Descrizione’ che viene popolato con la stringa target. $LogEntry = @{ TimeGenerated = (Get-Date).ToString(“yyyy-MM-ddTHH:mm:ssZ”) OperationName = “TokenExfiltrationDetected” Result = “Success” Description = “Attività malevola rilevata: token di autenticazione Azure erano esfiltrati da un processo locale.” Identity = “malicious-python-hook@attacker.com” } Write-Host “Iniettando telemetria sintetica per convalidare la regola di rilevamento…” # In un vero BAS, si chiamerebbe l’API del Log Analytics Data Collector # Per scopi di simulazione, rappresentiamo la voce di log risultante: $LogEntry | ConvertTo-Json
# Se i log sintetici sono stati iniettati tramite API, cancellare l'ID di correlazione specifico # Per questa simulazione, non sono state effettuate modifiche persistenti al Tenant di Azure. Write-Host "Pulizia completa. Nessun artefatto di avversario persistente rimane."