Archiviazione Personalizzata: Archive via Custom Method (T1560.003)
La tecnica T1560.003 – Archive via Custom Method descrive l'uso di routine di compressione o cifratura implementate ad-hoc dall'attaccante per confezionare i dati raccolti prima dell'esfiltrazione. A differenza delle sotto-tecniche che sfruttano utility standard come 7-Zip o WinRAR, qui l'avversario ricorre a operazioni bitwise elementari (XOR a singolo byte, sostituzioni, rotazioni) oppure a implementazioni proprietarie di algoritmi noti come LZW, Blowfish, RC4 o AES-CBC.
La collocazione tattica è TA0009 (Collection), la fase in cui l'attaccante consolida le informazioni di valore — credenziali, documenti, dati di carta di credito, PII — in un formato compatto e opaco all'ispezione superficiale. L'obiettivo è duplice: ridurre il volume da trasmettere via C2 e neutralizzare i controlli DLP che si basano su firme di contenuto o su riconoscimento di header noti di archivio.
I numeri raccontano una tecnica matura e diffusa: 7 gruppi APT documentati, 31 famiglie malware e 1 campagna (C0017, attribuita ad APT41 tra maggio 2021 e febbraio 2022 contro sei reti di governo statale USA). L'ampiezza dell'adozione — da Stuxnet a FoggyWeb, passando per Duqu, NETWIRE e SombRAT — dimostra come routine crittografiche minimaliste restino uno strumento economico ed efficace per aggirare le detection basate su pattern statici, imponendo ai difensori un approccio comportamentale e basato su entropia.
In un ingaggio red team, la simulazione di T1560.003 richiede di evitare librerie standard e produrre un artefatto che replichi il comportamento osservato in malware come SPACESHIP o Reaver. L'obiettivo del test è verificare se il SOC rileva l'anomalia entropica e la creazione di file senza header riconoscibili, non dimostrare abilità crittografiche.
Una routine XOR a singolo byte in PowerShell che imita lo schema di Agent.btz può essere costruita con poche righe. Su un file di staging ipotetico, la logica è: leggere i byte, applicare XOR con una chiave hardcoded e scrivere l'output senza estensione nota.
$data = [IO.File]::ReadAllBytes("C:\Temp\collected.bin"); for($i=0;$i -lt $data.Length;$i++){$data[$i] = $data[$i] -bxor 0x23}; [IO.File]::WriteAllBytes("C:\Temp\stage.dat",$data)
Per replicare la catena di SPACESHIP — zlib più rotazione di 4 bit più XOR 0x23 — si aggiunge un passaggio di compressione con la classe System.IO.Compression.DeflateStream, evitando invocazioni di Compress-Archive che generano firme ZIP standard. Su Linux la simulazione tipica passa da Python con il modulo zlib built-in e una comprehension che applica XOR byte per byte; l'artefatto va scritto in /tmp o in una home utente per verificare la copertura auditd sui path sensibili.
Per emulare UNC3886 — che ha combinato XOR e Gzip su credenziali catturate — su un host ESXi o Linux il flusso è: catturare l'output di un dump credenziali, comprimerlo con gzip -9 e applicare XOR con una chiave breve, salvando il risultato con estensione non archivio (es. .log, .tmp).
Sul fronte tooling, framework come Atomic Red Team (open source) e Caldera (open source) di MITRE consentono di orchestrare i test in modo ripetibile. Per generare payload custom in memoria, Sliver (open source) offre stager che possono integrare routine di encoding personalizzate lato implant. Per validare la resistenza dei controlli, DidierStevens tools (open source), in particolare byte-stats.py, permettono di misurare l'entropia dei file prodotti e confrontarla con la soglia che il SOC dovrebbe adottare.
La raccomandazione operativa per l'esercizio è documentare tre metriche: tempo tra creazione del file cifrato e primo alert, capacità del DLP di ispezionare payload ad alta entropia senza magic bytes noti, e presenza di regole EDR che correlano CryptoAPI o operazioni bitwise ripetute in loop stretti con successiva creazione di file.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo