Archiviazione via Libreria: Archive via Library (T1560.002)
La tecnica T1560.002 — Archive via Library descrive l'uso di librerie di terze parti per comprimere o cifrare dati raccolti prima dell'esfiltrazione. A differenza della variante che invoca utility da riga di comando, qui l'attaccante si collega direttamente a librerie come zlib, libzip, bzip2, rarfile (Python) o classi .NET come GZipStream, evitando la creazione di processi figli e riducendo così la superficie di rilevamento comportamentale.
Collocata nella tattica TA0009 (Collection), la tecnica si posiziona nella fase finale della kill chain, immediatamente prima dell'esfiltrazione. L'obiettivo è duplice: ridurre il volume del payload da trasferire e occultarne il contenuto tramite compressione ed eventuale cifratura, ostacolando l'ispezione DLP sui canali di uscita.
I numeri forniti dal framework parlano di 13 famiglie malware documentate che implementano questa tecnica e 2 gruppi APT noti per adottarla operativamente. Il dato più significativo è la prevalenza di zlib come libreria di elezione: appare in almeno otto famiglie distinte, da SeaDuke a BBSRAT, da InvisiMole a Denis, fino a LunarWeb e FunnyDream. Questa convergenza tecnologica non è casuale — zlib è portabile, statica, ben documentata e produce output ad alta entropia che si mimetizza nel traffico C2 cifrato. Il risultato per il difensore è un artefatto sottile: nessun processo 7z.exe o rar.exe nella telemetria EDR, ma solo chiamate in-memory difficili da distinguere dal comportamento legittimo di compressione applicativa.
Sul piano offensivo, l'archiviazione via libreria si presta a operazioni red team che vogliono massimizzare la stealth evitando spawn di processi ausiliari. In un lab controllato, la simulazione più immediata sfrutta Python (open source) con moduli standard: zipfile, gzip, bz2 o tarfile consentono di produrre archivi cifrati e compressi senza mai invocare binari esterni.
Uno script emulativo minimale in Python può raccogliere file da una directory target e serializzarli in un blob compresso zlib in memoria, poi cifrarli con AES via PyCryptodome (open source) prima di consegnarli al canale di esfiltrazione. La logica ricalca fedelmente quanto documentato per IndiaIndia del Lazarus Group, che comprime con Zlib, cifra e invia al C2.
Su Windows, un payload .NET può richiamare direttamente System.IO.Compression.GZipStream e DeflateStream senza dipendenze esterne — è l'approccio adottato da FoggyWeb tramite il metodo Common.Compress. In C# la costruzione è di poche righe e non genera child process, rendendo la telemetria Sysmon EventCode 1 completamente muta. Frame di post-exploitation come Covenant (open source) o Sliver (open source) permettono di eseguire assembly .NET riflessivi che incorporano questa logica.
Su Linux e macOS, un binario compilato che linka dinamicamente libz.so o libbz2.so replica il pattern di Epic (bzip2) o dei tanti sample che sfruttano zlib. Con gcc si compila collegando -lz e l'operazione di compressione avviene interamente in user-space senza fork.
Per scenari più realistici, Atomic Red Team (open source) di Red Canary include test per la famiglia T1560 che possono essere estesi con script custom per coprire la variante library-based. Caldera (open source) di MITRE offre ability programmabili in cui inserire moduli Python compressione+cifratura come step di una operazione automatizzata.
Una catena d'attacco tipica in esercitazione: dopo l'accesso iniziale, il payload enumera documenti in Documents, Desktop e share di rete accessibili, filtra per estensione (.docx, .pdf, .xlsx), aggrega in un buffer memory-mapped, comprime con zlib a livello 9, cifra AES-256-GCM con chiave derivata da PBKDF2 e stream il risultato in chunk verso un C2 HTTPS. L'obiettivo formativo è dimostrare che nessuna delle fasi genera artefatti di processo visibili — solo pattern di accesso file e connessioni di rete.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo