ChainVeil torna a colpire l’ecosistema Vite
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Un nuovo cluster npm malevolo identificato come ViteVenom sta prendendo di mira l’ecosistema dello strumento di build Vite. La campagna utilizza nomi di pacchetti con scope attentamente progettati per impersonare strumenti legittimi e consegna un trojan di accesso remoto da 77 KB. Si basa anche su un’architettura di comando e controllo a quattro livelli resiliente basata su blockchain che copre Tron, Aptos e Binance Smart Chain.
Indagine
I ricercatori hanno identificato sette pacchetti npm malevoli che condividevano le stesse chiavi di decrittazione XOR e indirizzi di portafoglio blockchain di livello 2 precedentemente visti nella campagna ChainVeil. La loro indagine ha rivelato una catena di esecuzione multistadio in cui le posizioni dei payload vengono risolte tramite transazioni blockchain, aiutando gli operatori a evitare il sequestro tradizionale di domini. Il malware utilizza anche mischiamento delle stringhe indicizzate sugli array per complicare l’analisi statica.
Mitigazione
Le organizzazioni dovrebbero esaminare gli alberi delle dipendenze per pacchetti con scope sospetti come @vite-pro/*, @vitets/*, e @vite-ts/*. I passaggi immediati di mitigazione includono la rimozione dei pacchetti malevoli identificati, la rotazione di tutte le credenziali esposte come chiavi SSH, token npm e chiavi API, e il blocco degli indirizzi IP di comando e controllo correlati al livello di rete. Gli sviluppatori dovrebbero anche verificare che le dipendenze di Vite provengano dallo @vitejs/* namespace ufficiale.
Risposta
Se questa attività viene rilevata, rimuovere immediatamente i pacchetti malevoli identificati e effettuare una revisione completa dei file di blocco, inclusi package-lock.json, pnpm-lock.yaml, e yarn.lock. I team di sicurezza dovrebbero terminare qualsiasi nodo -e processi in esecuzione come processi figlio staccati. Una rotazione completa delle credenziali dovrebbe seguire per ogni ambiente a cui hanno avuto accesso i sistemi interessati, e i file di configurazione della shell come .bashrc and .zshrc dovrebbero essere ispezionati per codice di persistenza iniettato.
Flusso di Attacco
Rilevamenti
Possibile Tentativo di Abuso di Ethereum Publicnode Come Canale C2 (via dns_query)
Visualizza
IOC (HashMd5) per rilevare: Seguito al Malware ChainVeil npm mira all’ecosistema Vite
Visualizza
IOC (SourceIP) per rilevare: Seguito al Malware ChainVeil npm mira all’ecosistema Vite
Visualizza
IOC (DestinationIP) per rilevare: Seguito al Malware ChainVeil npm mira all’ecosistema Vite
Visualizza
Rilevamento del Blocco IP per le Campagne ViteVenom e ChainVeil [Firewall]
Visualizza
Rilevamento dell’Attività di Rete del Malware ViteVenom [Connessione di Rete Windows]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo Pre-volo di Telemetria e Baseline deve essere superato.
Motivo: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (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 di Attacco: L’avversario ha distribuito un pezzo di malware (simulando la campagna ViteVenom) che tenta di stabilire una connessione heartbeat/C2 al suo server di comando. Il malware tenta di connettersi all’IP hardcoded
43.249.154.132. Poiché questo IP è già nella lista nera del firewall aziendale, il firewall elimina il pacchetto e genera un evento di ‘blocco’. Questa simulazione utilizzacurlper tentare una connessione a uno degli IP specifici identificati nella logica di rilevamento per attivare l’allerta. -
Script di Test di Regressione: [Provide the exact, self-contained, and executable code snippet for the simulation.]
#!/bin/bash # Simulazione di un avversario che tenta di connettersi a un noto IP C2 di ChainVeil # IP di destinazione: 43.249.154.132 (dalla logica di rilevamento) TARGET_IP="43.249.154.132" echo "[*] Simulando tentativo di connessione a $TARGET_IP..." # Usiamo curl per tentare una connessione. # Il firewall dovrebbe intercettare questo e registrare un'azione di 'blocca'. curl -m 5 http://$TARGET_IP/ping > /dev/null 2>&1 if [ $? -ne 0 ]; then echo "[+] Connessione fallita come previsto (Il firewall dovrebbe averla bloccata)." else echo "[!] Avviso: Connessione riuscita. Il firewall non ha bloccato l'IP." fi -
Comandi di Pulizia:
# Nessuna modifica persistente effettuata al sistema. # Assicurarsi semplicemente che qualsiasi file di test temporaneo venga rimosso se creato. rm -f /tmp/sim_test_result.txt