Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Quando un impianto malevolo comunica con il proprio server di comando e controllo, l'ultima cosa che l'attaccante vuole è che un analista di rete riconosca facilmente la struttura dei messaggi. La tecnica Junk Data risolve questo problema nel modo più diretto possibile: iniettare dati casuali, privi di significato, all'interno del traffico C2 per rendere inefficaci firme statiche e tentativi di decodifica banali.
Si colloca nella fase di Command and Control (tattica TA0011), cioè nel momento in cui l'avversario ha già compromesso il bersaglio e deve mantenere un canale di comunicazione affidabile ma opaco agli occhi dei difensori. L'inserimento di byte casuali tra i caratteri significativi, il prepending o l'appending di sequenze spazzatura, e la generazione di richieste HTTP fittizie di copertura sono tutte varianti della stessa logica: alzare il costo dell'analisi per chi difende.
I numeri confermano la popolarità della tecnica: 16 famiglie malware documentate la impiegano, 1 gruppo APT di primo piano ne fa uso strutturale, e la mitigazione indicata è una sola — il filtraggio a livello di rete. Questo squilibrio tra adozione offensiva e contromisure suggerisce che la difesa debba puntare più sull'analisi comportamentale che sulle firme tradizionali.
Simulare l'iniezione di junk data in laboratorio è fondamentale per validare la capacità del SOC di distinguere traffico C2 offuscato da traffico legittimo rumoroso. L'obiettivo non è semplicemente "aggiungere byte": è farlo in modo che le firme IDS esistenti falliscano, replicando i pattern documentati nelle campagne reali.
Il punto di partenza più diretto è Cobalt Strike (a pagamento), che permette di personalizzare i profili Malleable C2. All'interno di un profilo, i blocchi http-get e http-post accettano direttive come prepend e append per iniettare stringhe arbitrarie prima e dopo il payload codificato. Questo replica esattamente il comportamento documentato per SUNBURST, che aggiungeva junk bytes al traffico HTTP verso il C2, e per BeaverTail, che anteponeva caratteri dummy alle stringhe codificate.
Per chi preferisce un framework open source, Sliver (open source) offre la possibilità di configurare trasporti HTTP personalizzati. Attraverso il file di configurazione del profilo HTTP è possibile definire header aggiuntivi e padding nel body delle richieste, ottenendo un effetto simile.
Un approccio più granulare prevede l'uso di script Python con la libreria scapy (open source) per costruire pacchetti UDP con padding casuale, replicando il pattern di P2P ZeuS che aggiungeva junk data ai pacchetti UDP tra peer. Un esempio minimale:
*python3 -c "from scapy.all import ; send(IP(dst='
Per simulare il pattern di Downdelph — che inseriva caratteri pseudo-casuali tra ogni carattere originale — basta uno script che intercali byte random nella stringa di comando prima dell'invio:
python3 -c "import random,string; cmd='whoami'; print(''.join(c + random.choice(string.ascii_lowercase) for c in cmd))"
Il framework Caldera (open source) di MITRE consente di definire ability custom che implementano T1001.001, schedulandole in un adversary profile completo per testare l'intera catena di detection.
Durante l'esercizio, monitorate tre metriche chiave: quante sessioni C2 il NIDS ha intercettato, quanto tempo ha impiegato il SOC a correlare il traffico anomalo, e se le signature Suricata o Snort esistenti hanno generato almeno un alert. Se nessuna regola ha reagito, il test ha dimostrato esattamente il valore di questa tecnica per l'avversario.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo