Crate Rust evm-units nasconde payload maligni

di Redazione
0 commenti

L’ecosistema open-source subisce un nuovo attacco alla supply chain con il crate Rust evm-units, un componente che si presenta come libreria per gestire versioni della Ethereum Virtual Machine ma che in realtà integra un payload maligno cross-platform, progettato per esecuzione silente e furto di criptovalute. Il pacchetto, scaricato oltre 7000 volte prima della rimozione, sfrutta una dipendenza transitiva con uniswap-utils per attivare automaticamente il codice dannoso, senza alcuna azione diretta da parte degli sviluppatori. La tecnica impiega offuscamento Base64, download runtime, bypass SSL, esecuzione nascosta di script e controlli mirati sugli antivirus più diffusi nei mercati asiatici come Qihoo360. Attraverso questa infrastruttura, gli attaccanti garantiscono che il comportamento malevolo rimanga invisibile durante l’analisi statica. I ricercatori di Socket Threat Research identificano l’anomalia comportamentale e segnalano rapidamente il crate a Crates.io, che procede alla rimozione immediata. La catena di infezione, basata su URL offuscati, su domini come videotalks.xyz e hash marcati come maligni da VirusTotal, rivela una campagna sofisticata che sfrutta la fiducia degli sviluppatori nei repository pubblici. Il caso conferma come la combinazione tra dipendenze transitive e offuscamento renda possibile distribuire malware altamente evasivi nell’ecosistema Rust, imponendo controlli continui e scanner comportamentali basati su AI per mitigare rischi sempre più complessi.

Catena di infezione del crate evm-units

La catena di infezione ruota attorno alla funzione get_evm_version, che restituisce un valore legittimo per mascherare la presenza del codice maligno. La routine decodifica una stringa Base64 che ricostruisce un URL per il download del payload. Se la conversione fallisce, la funzione ritorna un semplice zero così da evitare sospetti; in caso positivo, il runtime Tokio blocca sul controllo dell’URL, rappresentato come primo passo dell’infezione. Da qui la campagna si biforca in base al sistema operativo, mantenendo comportamenti specifici e silenziosi per Linux, macOS e Windows.

image 101
Crate Rust evm-units nasconde payload maligni 7

Su Linux il malware scarica uno script temporaneo in /tmp/init e lo esegue con Bash attraverso un comando nohup, ottenendo un avvio in background senza output visibile. Su macOS salva il file nella directory temporanea e lo avvia con osascript, sfruttando AppleScript per aggirare notifiche o finestre di dialogo. Su Windows salva il componente malevolo come init.ps1 nella cartella %TEMP% e verifica la presenza del processo qhsafetray.exe dell’antivirus Qihoo360, particolarmente diffuso in Asia. Se il processo non risulta attivo, crea un file VBS che lancia PowerShell con execution policy bypass e interfaccia nascosta; se invece Qihoo360 è attivo, esegue comunque PowerShell ma con flag no-window per evitare che l’utente noti l’apertura della console. In tutti i casi il malware utilizza impostazioni che eliminano log, rimuovono output e occultano processi, garantendo una persistenza iniziale completamente invisibile. Il codice, inoltre, bypassa la validazione dei certificati tramite il parametro danger_accept_invalid_certs, così da poter comunicare con server remoti che utilizzano certificati self-signed e possono ruotare rapidamente per eludere blacklisting. La scelta di non includere alcun payload statico nel crate originale riduce ulteriormente la possibilità di rilevamento, perché il comportamento malevolo emerge solo a runtime. Il ruolo della dipendenza con uniswap-utils è centrale. Il pacchetto benigno sfrutta un hook di inizializzazione fornito dal costrutto Rust ctor, che invoca automaticamente la funzione get_evm_version all’avvio, attivando così la catena infettiva senza che lo sviluppatore interagisca direttamente con il codice. Questo meccanismo rende la compromissione transitiva, coinvolgendo chiunque utilizzi uniswap-utils nei propri progetti.

Tecniche di evasione nel malware evm-units

Le tecniche di evasione impiegate rendono evm-units un esempio avanzato di attacco mirato alla supply chain. Il codice utilizza offuscamento multistrato, con stringhe Base64 che nascondono l’URL C2 e che vengono decodificate solo durante l’esecuzione. L’uso del componente DecoderReader impedisce a molti scanner statici di individuare pattern noti associati al traffico malevolo. Il payload viene scaricato dinamicamente, evitando qualunque riferimento all’interno del crate e livellando ulteriormente il profilo di rischio. Su sistemi Unix-like, l’esecuzione silente tramite nohup o processi background elimina qualunque feedback visivo. Su Windows il malware impiega flag no-window e convoglia lo stream di input e output su canali null così che non compaiano finestre nere né messaggi di errore. Il controllo specifico sul processo Qihoo360 indica un targeting regionale, suggerendo che gli attaccanti abbiano calibrato la campagna per colpire sviluppatori e utenti dei mercati asiatici interessati a strumenti legati alle criptovalute. AppleScript su macOS fornisce un ulteriore livello di stealth, sfruttando le funzionalità native del sistema per avviare script senza notifiche. Il bypass SSL tramite certificati invalidi consente l’uso agile di endpoint remoti che cambiano rapidamente dominio o indirizzo IP. La funzione get_evm_version, già integrata nel flusso legittimo della libreria, permette infine un efficace mascheramento: l’utente riceve il valore EVM atteso, ignorando che in parallelo viene avviata la sequenza malware. Gli strumenti di rilevamento di Socket segnalano anche pattern comportamentali pericolosi: download specifici per sistema operativo, esecuzione di script in modalità nascosta, spawn di processi figli invisibili e scrittura di file nelle directory temporanee. L’assenza di bundle statici permette al malware di sfuggire sia ai controlli di contenuto sia a molte firme tradizionali. La combinazione di anti-forensic, bypass regionali e offuscamento dinamico colloca questo attacco tra quelli di maggiore sofisticazione nella recente storia delle minacce open-source.

Implicazioni supply chain dell’attacco evm-units

Il caso evm-units evidenzia come le supply chain open-source rappresentino uno dei punti più vulnerabili dell’ecosistema software moderno. La dipendenza transitiva con uniswap-utils amplifica la portata dell’attacco, perché sviluppatori ignari integrano la libreria nel proprio progetto senza notare alcun comportamento sospetto. Con oltre 7400 download del pacchetto benigno, la superficie di esposizione risulta ampia e distribuita. Il crate resta online per otto mesi, una durata significativa che consente alla campagna di raggiungere sviluppatori in più regioni. La presenza di componenti specifici per mercati asiatici suggerisce una motivazione finanziaria orientata ai furti di criptovalute, coerente con il nome della libreria collegato a Ethereum e al mondo blockchain. Gli strumenti di rilevamento comportamentale, come quelli integrati nei workflow CI/CD, emergono come fattore decisivo per impedire che pacchetti apparentemente innocui diffondano malware in progetti più ampi. Socket segnala la compromissione a Crates.io, che procede alla rimozione immediata del componente. VirusTotal conferma la natura malevola dell’hash del payload scaricato dal dominio videotalks.xyz. La rotazione frequente dei domini di comando e controllo dimostra un’attenzione strategica alla resilienza dell’infrastruttura C2, elemento tipico delle campagne mirate alla supply chain. Gli sviluppatori implementano controlli più rigoriosi sulle dipendenze, con particolare attenzione ai pacchetti legati al mondo crypto, spesso sfruttati dagli attaccanti per beneficiare dell’interesse elevato degli utenti e della rapidità con cui tali progetti vengono integrati nei flussi di lavoro. L’integrazione di scanner AI nei processi di build permette di verificare pattern sospetti, inclusi hook nascosti, download runtime e funzioni che utilizzano offuscamenti non giustificati. Questo approccio contrasta anche le mutazioni post-pubblicazione, uno dei metodi più frequenti di compromissione.

Indicatori di compromissione per evm-units

Gli indicatori di compromissione associati alla campagna comprendono URL, hash, nomi di file e comportamenti runtime. L’URL principale, https://download.videotalks.xyz/gui/6dad3/id=5244544112427978&secret=NByUZrutDGoS, appare all’interno della stringa Base64 decodificata dal codice. Il payload associato possiede l’hash 6d09e646856aa96fd118f9e5725dc8565deac4b441a96a011e528c0732db9c51, marcato come maligno. L’autore utilizza l’alias ablerust, già noto per aver pubblicato altri pacchetti benigni al fine di costruire fiducia. La presenza di file temporanei come /tmp/init o init.ps1 nella cartella %TEMP%, l’esecuzione di init.vbs su Windows e processi Bash, osascript o PowerShell in background costituiscono segnali d’infezione. Il controllo sul processo Qihoo360 rafforza l’ipotesi del targeting geografico. Gli strumenti di sicurezza identificano pattern come download condizionali basati sul sistema operativo, assenza di output e presenza di processi figli indipendenti. Questi elementi aiutano analisti e team di incident response a riconoscere infezioni attive.

Raccomandazioni contro attacchi come evm-units

La campagna evm-units mette in evidenza l’importanza di strumenti comportamentali basati su AI, capaci di rilevare attività anomale senza affidarsi unicamente all’analisi statica. L’utilizzo di scanner in pipeline CI/CD contrasta download sospetti, esecuzioni invisibili e hook nascosti. Gli sviluppatori verificano attentamente gli autori dei pacchetti e monitorano eventuali modifiche post-pubblicazione, pratica essenziale quando si utilizzano componenti che ruotano attorno al mondo crypto. Le estensioni per editor come VS Code, così come le integrazioni browser, avvisano in tempo reale della presenza di pacchetti maligni nei repository pubblici. La consapevolezza degli indicatori di compromissione e la verifica costante dell’intera catena di dipendenze rappresentano elementi essenziali per prevenire ulteriori casi simili.