Subdomain Encoding in dettaglio: flusso operativo e indicatori di compromissione

L’attaccante controlla un server DNS autoritativo

Il setup richiede la registrazione di un dominio e la configurazione dei record NS verso un server controllato dall’attaccante. Questo server logga ogni query ricevuta e può rispondere con comandi di controllo.

<img src=“../diagrams/lesson-03-subdomain-encoding-flusso-ioc_slide-01.png” alt=‘Diagramma: L’attaccante controlla un server DNS autoritativo’ style=“max-width: 90%; height: auto; border-radius: 12px; border: 2px solid #005588;”>

I dati vengono suddivisi in chunk da 50-63 caratteri

Il limite di 63 caratteri per label DNS (RFC 1035) impone la frammentazione dei dati. Ogni chunk viene codificato separatamente e inviato come query individuale.

Diagramma: I dati vengono suddivisi in chunk da 50-63 caratteri

Base32 è preferito per la compatibilità DNS

Base32 utilizza solo caratteri A-Z e 2-7, tutti validi nei nomi di dominio e case-insensitive. Base64 standard include + e / che non sono ammessi nelle label DNS.

Diagramma: Base32 è preferito per la compatibilità DNS

La struttura della query include metadati di ricostruzione

Ogni query contiene il chunk codificato, un session ID per identificare l’operazione e un chunk number per ricostruire l’ordine. Esempio: [chunk].[session_id].[chunk_num].[dominio_c2].

Diagramma: La struttura della query include metadati di ricostruzione

Il resolver aziendale è un intermediario inconsapevole

Il resolver ricorsivo aziendale inoltra la query verso il server autoritativo malevolo senza alcuna consapevolezza del contenuto. Dal suo punto di vista, è una normale risoluzione DNS.

Diagramma: Il resolver aziendale è un intermediario inconsapevole

Volume anomalo: >400-800 query/ora verso lo stesso dominio

Questo è l’IOC più facilmente rilevabile. Un endpoint legittimo non genera centinaia di query verso un singolo dominio sconosciuto in un’ora.

Diagramma: Volume anomalo: >400-800 query/ora verso lo stesso dominio

FQDN >180-220 caratteri è quasi certamente malevolo

Le query DNS legittime raramente superano 60-80 caratteri totali. Una lunghezza superiore a 180 caratteri indica con alta probabilità dati codificati nei subdomini.

Diagramma: FQDN >180-220 caratteri è quasi certamente malevolo

Entropia di Shannon elevata nei subdomini indica dati codificati

Stringhe pseudo-random nei subdomini producono un’entropia di Shannon superiore a 4.0-4.5, molto più alta rispetto a nomi di dominio leggibili dall’uomo che tipicamente hanno entropia tra 2.5 e 3.5.

Diagramma: Entropia di Shannon elevata nei subdomini indica dati codificati

Basso tasso di NXDOMAIN è un indicatore sottile ma potente

Se un server autoritativo malevolo risponde a qualsiasi subdominio, il tasso di NXDOMAIN per quel dominio sarà anomalamente basso. In condizioni normali, query verso subdomini casuali genererebbero molti errori.

Diagramma: Basso tasso di NXDOMAIN è un indicatore sottile ma potente

Padding Base64 (= o ==) nelle query è un segnale evidente

La presenza ricorrente di caratteri di padding alla fine delle label è un indicatore diretto di dati codificati in Base64, facilmente rilevabile con regex anche basilari.

Diagramma: Padding Base64 (`=` o `==`) nelle query è un segnale evidente