Risoluzione Dinamica: Dynamic Resolution (T1568)
La tecnica Dynamic Resolution descrive l'insieme di metodi con cui un attaccante stabilisce dinamicamente le coordinate di rete della propria infrastruttura di comando e controllo, evitando di codificare in modo statico domini o indirizzi IP all'interno del malware. La logica è semplice: se il canale C2 può cambiare posizione a ogni esecuzione, il difensore ha molta più difficoltà a bloccarlo con liste statiche o a smantellare l'infrastruttura con un singolo takedown.
La tecnica ricade interamente nella tattica TA0011 (Command and Control) e serve tipicamente come meccanismo di Fallback Channel: quando il server primario diventa irraggiungibile, il malware ricalcola o richiede nuove destinazioni. Le implementazioni variano dai classici Domain Generation Algorithm (DGA) all'uso di provider Dynamic DNS come No-IP, Duck DNS, ClouDNS o 3322, fino a soluzioni esotiche come la lettura di indirizzi codificati in transazioni blockchain Bitcoin o Namecoin.
I numeri raccontano la diffusione del fenomeno: 6 gruppi APT, 8 famiglie di malware e 6 campagne documentate, tra cui la SolarWinds Compromise, Night Dragon, Operation Dust Storm e le intrusioni contro le infrastrutture critiche indiane. Gli attori spaziano da gruppi statali russi come APT29 a operatori pakistani come Transparent Tribe e cinesi come RedEcho, a conferma che la risoluzione dinamica è ormai un elemento standard nel toolkit di quasi ogni threat actor persistente.
Per un red team, simulare Dynamic Resolution significa costruire un canale C2 che non si appoggi a un singolo dominio statico. L'approccio più semplice replica ciò che fanno gruppi come BITTER o TA2541: registrare un sottodominio su un provider Dynamic DNS (No-IP, Duck DNS, ClouDNS offrono tier gratuiti o freemium) e configurare il proprio implant per risolverlo a ogni beacon. Il vantaggio operativo è che si può ruotare l'IP di destinazione senza toccare il payload sull'endpoint compromesso.
Per implementazioni più sofisticate stile SUNBURST, si costruisce un generatore di sottodomini pseudo-casuali sotto un parent domain controllato. In laboratorio si può usare un semplice script Python per generare label con distribuzione entropica controllata:
python -c "import random,string; print(''.join(random.choices(string.ascii_lowercase, k=16))+'.lab.example')"
Il framework Sliver (open source) e Mythic (open source) supportano nativamente profili C2 con rotazione dei domini via HTTP profiles configurabili. In Cobalt Strike (a pagamento) lo stesso risultato si ottiene con Malleable C2 profiles e la direttiva dns-beacon combinata con multipli domini di fallback. Per emulare l'approccio blockchain di RTM, si può leggere transazioni testnet Bitcoin con librerie come python-bitcoinlib (open source) ed estrarre ottetti IP dai campi OP_RETURN.
Una catena d'attacco realistica in ambiente di training prevede:
- Deploy iniziale di un loader minimale che contatta un signalization server hardcoded (approccio Tomiris)
- Il server risponde con URL e porta del vero listener C2
- L'implant principale usa DDNS per la persistenza del canale, con fallback su un secondo provider
Per testare implementazioni DGA si può usare DGArchive (gratuito per ricerca) come repository di famiglie note, oppure generare varianti custom con dnstwist (open source) per verificare la capacità di detection della blue team. Su Linux, uno script bash che itera su domini generati e testa la risoluzione:
for d in $(cat generated_domains.txt); do dig +short $d @8.8.8.8; done
Su macOS l'equivalente sfrutta dscacheutil -q host -a name. Su ESXi, esxcli permette di modificare i resolver DNS con esxcli network ip dns server add --server=
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo