MuddyWater evolve il proprio arsenale con RustyWater, segnando un cambio di fase netto nel tooling dell’APT iraniano noto anche come Earth Vetala e Mango Sandstorm. Il gruppo abbandona progressivamente script PowerShell e VBS a favore di un RAT modulare compilato in Rust, progettato per operazioni a basso rumore, maggiore resilienza operativa e riduzione degli artefatti forensi. L’evoluzione è stata documentata da CloudSEK TRIAD, che ha identificato una nuova campagna di spear-phishing mirato contro settori sensibili del Medio Oriente.
Il passaggio a Rust non è un dettaglio tecnico marginale, ma un indicatore strategico. MuddyWater si allinea a una tendenza già osservata in altri gruppi APT avanzati: l’uso di linguaggi compilati moderni per migliorare stealth, portabilità e controllo del ciclo di vita del malware, rendendo più complessa la detection basata su firme statiche.
Cosa leggere
MuddyWater e il contesto operativo dell’APT iraniano
MuddyWater è attivo da anni come gruppo APT sponsorizzato dall’Iran, con un focus costante su intelligence gathering. I settori colpiti includono ambito diplomatico, marittimo, finanziario, telecomunicazioni ed educativo, con particolare attenzione a Paesi del Medio Oriente, inclusi UAE. L’accesso iniziale avviene quasi sempre tramite spear-phishing, con documenti Word malevoli costruiti per apparire credibili e contestuali.

Nella campagna analizzata da CloudSEK, i lure impersonano entità legittime come TMCell e L.M. Group, sfruttando credenziali email leakate per aumentare la credibilità dei messaggi. Questo approccio combina social engineering mirato e riuso di infrastrutture compromesse, riducendo i segnali tipici delle campagne di massa.
RustyWater come salto evolutivo nel tooling
RustyWater rappresenta uno shift strutturale rispetto ai loader precedenti di MuddyWater. Non si tratta più di una catena di script interpretabili, ma di un Remote Access Trojan completo, modulare e progettato per operare in modo persistente. L’implant implementa un C2 asincrono, utilizza jitter temporale per rendere irregolare il traffico di rete e adotta cifratura multilivello per l’esfiltrazione dei dati.

CloudSEK evidenzia come RustyWater riduca drasticamente il footprint su disco e in log di sistema. Le operazioni post-compromissione vengono eseguite privilegiando in-memory execution, con un modello che punta a mantenere l’accesso nel tempo piuttosto che a movimenti rumorosi immediati.
Sviluppo in Rust e architettura dell’implant
RustyWater è compilato come PE Windows in Rust, mascherato con nomi e icone fuorvianti, come reddit.exe con icona Cloudflare. Il malware utilizza librerie comuni dell’ecosistema Rust come reqwest per la comunicazione HTTP e tokio per la gestione asincrona multi-thread.
Questa scelta consente a RustyWater di gestire contemporaneamente comunicazioni C2, operazioni sui file e comandi remoti senza blocchi evidenti. Le stringhe sensibili sono offuscate con XOR position-independent, complicando l’analisi statica. L’uso di Rust, inoltre, introduce pattern binari meno familiari ai motori di detection tradizionali, aumentando la probabilità di bypass iniziale.
Capacità operative e post-compromissione
Dal punto di vista funzionale, RustyWater raccoglie informazioni di sistema, inclusi username, nome del computer e membership di dominio. Una delle componenti più rilevanti è il modulo di rilevamento AV ed EDR, che scansiona file, servizi e path noti, coprendo oltre 25 soluzioni di sicurezza.

L’implant supporta esecuzione di comandi remoti, listing dei file e furto di credenziali, con capacità di process injection in processi legittimi come explorer.exe tramite VirtualAllocEx e WriteProcessMemory. Questo approccio consente di operare sotto il contesto di processi fidati, riducendo ulteriormente la visibilità.
Persistenza e controllo del sistema
La persistenza di RustyWater è volutamente semplice ma efficace. Il malware scrive se stesso in una chiave di registro SOFTWARE\Microsoft\Windows\CurrentVersion\Run sotto il profilo dell’utente corrente, evitando la necessità di elevazione dei privilegi. Il payload viene salvato come C:\ProgramData\CertificationKit.ini, un path e un’estensione pensati per non attirare attenzione immediata.
CloudSEK segnala che l’implant verifica attivamente il successo della scrittura nel registro, terminando l’esecuzione in caso di fallimento. Questo comportamento indica un’attenzione particolare alla stabilità operativa, riducendo scenari di esecuzione parziale che potrebbero lasciare tracce anomale.
Comunicazione C2 e tecniche di evasione
La comunicazione C2 avviene su HTTP, con encoding dei dati che combina JSON, Base64 e XOR in tre livelli distinti. L’uso di retry, timeout e pooling rende il traffico più simile a quello di applicazioni legittime. L’introduzione di jitter casuale sugli intervalli di comunicazione riduce l’efficacia delle signature basate su beaconing regolare.
Sul fronte evasione, RustyWater implementa anti-debug, anti-tampering e controlli sull’ambiente di esecuzione. L’uso di callback randomizzati e macro VBA offuscate nella fase di delivery completa un quadro pensato per resistere sia all’analisi automatica sia a quella manuale.
Attribution e targeting secondo CloudSEK
L’attribuzione a MuddyWater si basa su più fattori convergenti. CloudSEK individua riuso di codice VBA già osservato in campagne precedenti, pattern di targeting coerenti con operazioni storiche del gruppo e tecniche di impersonation già documentate. I settori colpiti e l’area geografica rafforzano ulteriormente il legame con l’APT iraniano.

L’analisi evidenzia come RustyWater condivida alcune somiglianze concettuali con altri RAT modulari, ma presenti una documentazione pubblica molto più limitata, suggerendo uno sviluppo relativamente recente e un uso ancora selettivo.
Implicazioni per la difesa e risposta agli incidenti
L’evoluzione verso RustyWater complica sensibilmente la incident response. La riduzione degli artefatti su disco e l’uso estensivo di memoria rendono insufficienti approcci basati su IOC statici. CloudSEK raccomanda un rafforzamento della behavioral detection, con attenzione a eventi come VirtualAllocEx, remote thread injection e anomalie nel registro.
Il caso MuddyWater conferma una tendenza più ampia: gli APT stanno adottando tool low-noise, progettati per eludere difese tradizionali e mantenere accesso persistente. Per le organizzazioni target, soprattutto in settori strategici, diventa essenziale investire in memory forensics, correlazione comportamentale e monitoraggio continuo delle attività di sistema.
Domande frequenti su MuddyWater e RustyWater
Cos’è RustyWater nel contesto di MuddyWater?
RustyWater è un nuovo RAT modulare scritto in Rust, utilizzato da MuddyWater per operazioni di spionaggio con maggiore stealth e resilienza rispetto ai tool precedenti.
Perché l’uso di Rust è rilevante per gli APT?
Rust consente di creare malware compilato, performante e meno riconoscibile, riducendo l’efficacia delle firme statiche e complicando l’analisi forense.
Quali sono i principali vettori di infezione osservati?
La campagna documentata utilizza spear-phishing mirato con documenti Word malevoli e spoofing di entità legittime tramite credenziali email compromesse.
Come possono difendersi le organizzazioni?
È fondamentale puntare su behavioral detection, monitoraggio della memoria, controllo delle chiavi di persistenza nel registro e analisi del traffico C2 irregolare, andando oltre i semplici IOC statici.