C’è un cambiamento tettonico nelle “officine software” del MOIS iraniano. MuddyWater (alias Mango Sandstorm), storicamente noto per l’uso di script PowerShell e strumenti “Living off the Land”, sta migrando attivamente verso linguaggi compilati moderni. Dopo una breve parentesi con Go (Golang), il gruppo ha virato decisamente su Rust.
Questa non è una scelta stilistica, ma una mossa di sopravvivenza operativa. Per gli analisti di threat intelligence e i SOC militari, l’avvento di quello che potremmo chiamare “RustyWater” rappresenta un problema significativo: Rust offre capacità di offuscamento intrinseco e portabilità che rendono le vecchie firme di rilevamento obsolete.
Detection Statica
Il motivo principale del passaggio a Rust è l’evasione. I motori antivirus tradizionali e gli EDR (Endpoint Detection and Response) basati su firme faticano enormemente contro i binari compilati in questo linguaggio.
- Complessità del codice: Il compilatore di Rust produce un codice macchina altamente ottimizzato e strutturalmente diverso rispetto a C o C++. Questo altera la “firma visiva” del malware, rendendo inefficaci le regole YARA scritte per le versioni precedenti degli impianti di MuddyWater.
- Analisi statica e bloat: I binari Rust includono staticamente molte librerie standard. Questo aumenta la dimensione del file e introduce un notevole “rumore” nel codice. Per un analista o un sistema automatico, distinguere il payload malevolo (pochi kilobyte) all’interno di megabyte di librerie legittime è come cercare un ago in un pagliaio.
- Cross-Platform nativo: Il settore militare e governativo utilizza infrastrutture eterogenee (server Linux per i database, Windows per le workstation). Rust permette a MuddyWater di scrivere il codice una volta e compilarlo per entrambe le architetture. Un singolo impianto ora minaccia l’intero spettro dell’infrastruttura target.
Reverse Engineering
Per i ricercatori di malware che disassemblano gli attacchi iraniani, Rust è notoriamente ostico. A differenza di linguaggi come C# o Java, che possono essere decompilati in un codice quasi leggibile, Rust perde quasi tutte le informazioni di alto livello durante la compilazione. Inoltre, la gestione della memoria in Rust (il suo famoso ownership model) genera pattern di assemblaggio inusuali che confondono strumenti standard come IDA Pro o Ghidra, rendendo l’attribuzione e l’analisi forense molto più lente e costose.
Implicazioni per la Difesa
L’adozione di Rust segnala che MuddyWater sta elevando il livello di sofisticazione (OPSEC) per garantire una maggiore persistenza. Per le reti della difesa, questo significa che:
- I rilevamenti basati su hash sono inutili: Basta una ricompilazione minima per cambiare completamente l’impronta del file.
- Necessità di analisi comportamentale: La detection deve spostarsi dall’analisi del file statico all’analisi del comportamento in memoria (es. chiamate API sospette, traffico di rete anomalo).
- Focus su Linux: Con Rust, ci aspettiamo un aumento delle backdoor silenziose sui server Linux perimetrali, spesso meno monitorati dagli EDR rispetto ai client Windows.
Il passaggio a “RustyWater” è la risposta di Teheran ai miglioramenti della cybersecurity occidentale. Non potendo competere in risorse brute, puntano sull’invisibilità tecnica. La nuova frontiera della difesa non sarà bloccare uno script PowerShell, ma identificare un binario “esotico” che si comporta in modo troppo perfetto per essere legittimo.