PyStoreRAT: Malware della catena di fornitura guidato dall’AI che prende di mira professionisti IT e OSINT
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Morphisec ha scoperto un’operazione malware coordinata che abusa di account GitHub dormienti per ospitare repository generati dall’AI, che alla fine consegnano una backdoor JavaScript/HTA chiamata PyStoreRAT. Il caricatore profila l’host, distribuisce più payload, incluso il ladro Rhadamanthys, e adatta dinamicamente il suo comportamento quando vengono rilevate soluzioni AV specifiche. Può propagarsi tramite media removibili e si affida a un’infrastruttura C2 rotante per aggiornare i suoi moduli. La campagna è rivolta ad amministratori IT, analisti di sicurezza e professionisti OSINT in tutto il mondo.
Indagine
I ricercatori hanno esaminato i progetti GitHub malevoli, isolato i componenti della backdoor e documentato l’intera catena di esecuzione, inclusi il profiling di sistema, la consegna susseguente dei payload, l’elusione AV, la diffusione tramite unità removibili e il caricamento di moduli su richiesta. Il rapporto descrive ulteriormente l’architettura dei nodi C2 circolari che aumenta la resilienza, così come l’uso di stringhe in lingua russa per convalidare il locale del bersaglio. L’analisi collega il loader al ladro Rhadamanthys e mette in evidenza la sua capacità di alterare i percorsi di avvio.
Mitigazione
Morphisec consiglia l’uso della Difesa Automatica a Bersagli Mobili per destabilizzare l’ambiente di runtime del loader, bloccare percorsi di esecuzione inaffidabili e fermare la distribuzione dei payload. Poiché i controlli tradizionali basati su firme sono inefficaci, i difensori dovrebbero fare affidamento su protezioni basate sui comportamenti e sulla virtualizzazione. Anche limitare l’esecuzione di script da origini non attendibili e monitorare attentamente l’attività delle unità removibili sono raccomandati.
Risposta
Quando viene identificata l’attività di PyStoreRAT, isolare immediatamente l’endpoint impattato, terminare il processo della backdoor e rimuovere eventuali moduli persistenti. Eseguire un’analisi forense per raccogliere IOC, inclusi domini C2, hash di file e attività pianificate. Patchare il software vulnerabile, applicare rigorose politiche di esecuzione di minor privilegio e monitorare continuamente GitHub per attività di repository malevoli o sospette.
“graph TB %% Class Definitions classDef technique fill:#99ccff %% Node definitions technique_supply_chain[“<b>Tecnica</b> – <b>T1195.002 Compromissione della Catena di Fornitura</b><br /><b>Descrizione</b>: Compromettere un repository pubblico GitHub per iniettare codice malevolo nei progetti che le vittime clonano.<br /><b>Sotto‑tecnica</b>: Repository GitHub malevoli”] class technique_supply_chain technique technique_user_exec[“<b>Tecnica</b> – <b>T1204 Esecuzione Utente</b><br /><b>Descrizione</b>: La vittima esegue il progetto generato dall’AI che contiene il payload malevolo”] class technique_user_exec technique technique_obfuscation[“<b>Tecnica</b> – <b>T1027 File o Informazioni Offuscate</b><br /><b>Sotto‑tecnica</b>: T1027.009 Payload Incorporati<br /><b>Descrizione</b>: Il payload è nascosto all’interno di file legittimi per evitare il rilevamento”] class technique_obfuscation technique technique_system_info[“<b>Tecnica</b> – <b>T1082 Scoperta delle Informazioni di Sistema</b><br /><b>Descrizione</b>: Raccogliere la versione del sistema operativo, dettagli hardware e altre informazioni sull’host”] class technique_system_info technique technique_software_disc[“<b>Tecnica</b> – <b>T1518 Scoperta del Software</b><br /><b>Descrizione</b>: Enumerare le applicazioni installate e le versioni del software”] class technique_software_disc technique technique_c2_https[“<b>Tecnica</b> – <b>T1071.001 Protocolli Web</b><br /><b>Descrizione</b>: Stabilire comunicazioni di comando e controllo su HTTPS”] class technique_c2_https technique technique_removable_media[“<b>Tecnica</b> – <b>T1092 Comunicazione Tramite Media Removibili</b><br /><b>Descrizione</b>: Propagare il payload malevolo a sistemi aggiuntivi tramite unità USB”] class technique_removable_media technique %% Connections technique_supply_chain u002du002d>|porta_a| technique_user_exec technique_user_exec u002du002d>|porta_a| technique_obfuscation technique_obfuscation u002du002d>|porta_a| technique_system_info technique_system_info u002du002d>|porta_a| technique_software_disc technique_software_disc u002du002d>|porta_a| technique_c2_https technique_c2_https u002du002d>|porta_a| technique_removable_media “
Flusso di Attacco
Rilevamenti
Comportamento di Evasione Difesa MSHTA LOLBAS Sospetto tramite Rilevamento di Comandi Associati (via process_creation)
Visualizza
Attività Sospetta Pianificata (via audit)
Visualizza
Comando e Controllo Sospetti tramite Richiesta DNS con Dominio di Livello Superiore (TLD) Inusuale (via dns)
Visualizza
Esecuzione di Python da Cartelle Sospette (via cmdline)
Visualizza
Esecuzione di Mshta Sospetta Senza File HTA (via cmdline)
Visualizza
Rilevamento di PyStoreRAT tramite Infrastruttura C2 Circolare e Rotante e Download Dinamico di Moduli [Connessione di Rete Windows]
Visualizza
Rilevamento della Riattivazione di Account GitHub Dormienti per Progetti Malevoli [GitHub – Webserver]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Controllo Pre-operativo di Telemetria e Baseline deve essere passato.
-
Narrativa di Attacco & Comandi:
- Riattivare un account dormiente – l’avversario utilizza l’interfaccia utente o l’API GitHub per cambiare lo stato dell’account da “dormiente” a “attivo”.
- Pubblicare un repository malevolo generato dall’AI – immediatamente dopo la riattivazione, viene creato un nuovo repository chiamato
ai‑osint‑toolkit, contenente un README che pubblicizza “progetti generati dall’AI”. - Aggiungere un commit di “manutenzione” che incorpora la backdoor PyStoreRAT; il messaggio di commit include intenzionalmente la parola “manutenzione” per soddisfare la regola di rilevamento.
- Spingere il codice malevolo – il push genera un evento di
pushaudit, ma la regola che stiamo testando monitora solo l’account_reactivationentrata dell’audit, quindi il trigger primario è l’entrata del log di riattivazione con la descrizione segnalata.
-
Script di Test di Regressione: (Bash con GitHub CLI
gh– presuppone che l’attore attaccante abbia un token di accesso personale con ambitoadmin:org)# simulate_attack.sh # Prerequisiti: gh CLI installato e autenticato come l'attaccante # 1. Riattivare account dormiente (simulato aggiornando un campo utente) gh api -X PATCH /admin/users/attacker_user -f state=active -f note="reactivation: AI-generated projects; maintenance commits scheduled" # 2. Creare repository malevolo gh repo create attacker_user/ai-osint-toolkit --public --description "Strumenti OSINT generati dall'AI" # 3. Aggiungere file malevolo (PyStoreRAT) e commit cd ai-osint-toolkit echo "# PyStoreRAT backdoor" > pystorerat.py git add pystorerat.py git commit -m "Commit iniziale - commit di manutenzione: incorpora backdoor" git push origin main # 4. Opzionale: creare un secondo commit di manutenzione per imitare l'attività del mondo reale echo "# Aggiornare README" >> README.md git add README.md git commit -m "commit di manutenzione: aggiornare la documentazione" git push origin main -
Comandi di Pulizia:
# cleanup_attack.sh # Eliminare il repository malevolo gh repo delete attacker_user/ai-osint-toolkit -y # Facoltativo, impostare l'account dell'attaccante di nuovo su dormiente (se l'API lo permette) gh api -X PATCH /admin/users/attacker_user -f state=dormant