venerdì 29 aprile 2022

Introduzione al DNS tunneling e come gli atttaccanti ne possono aproffittare

traduzione del contributo di Rahul Pawar, Security Researcher di Quick Heal

Che cosa è il DNS?

Il DNS, Domain Name System, è un servizo che converte gli hostname in indirizzi IP. E' un protocollo a livello applicativo che consente ad utenti e server di scambiare messaggi. Ogni host è identificato dal proprio indirizzo IP, ma è molto complesso per gli umani memorizzare una serie di numeri. Inoltre gli indirizzi IP non sono statici. Di conseguenza, il DNS converte il nome di dominio di un sito nel suo indirizzo IP numerico, così da rendere possibile per umano contattare un server usando il nome dominio e non l'indirizzo IP. Non a caso il sistema DNS viene definito anche "l'elenco telefonico di Internet", associando "un nome" ad un numero.  


Che cosa è il DNS Tunneling?

Il protocollo DNS ha un difetto: è stato sviluppato senza tenere di conto il paradigma della security by design. La sua centralità in Internet lo rende quindi uno dei target preferiti degli attaccanti. Il DNS tunneling, se utilizzato a fini dannosi, usa il protocollo DNS per distribuire malware ed esfiltrare dati. Questa tipologia di attacco esiste da oltre 20 anni, ma è tutt'ora un pericolo.

Un attaccante imposta un server dove è in esecuzione un malware e vi punta un dominio. Usando poi un server precedentemente infettato, l'attaccante ricerca il dominio sotto il proprio controllo. Il resolver DNS crea un tunnel tra l'attaccante e il suo target quando instrada la query. E' in queste query che gli attaccanti nascondono i dati necessari a perpetrare l'attacco. L'utente non ha cognizione di star "dialogando" con un server infetto.

Una tipologia di attacco siffatta ha un grande vantaggio per gli attaccanti: le query DNS sono quasi sempre autorizzate a transitare attraverso i firewall e le varie misure di sicurezza. Ne consegue che le query DNS sono corsie preferenziali che gli attaccanti possono sfruttare per eseguire attività dannose aggirando le difese.

Come funziona un attacco DNS tunneling?

L'immagine sotto rappresenta, passo passo, il funzionamento di un attacco DNS tunneling.



Come si vede:

  • l'attaccante gestisce un server sul quale è in esecuzione un malware. Possiede anche un dominio che punta su questo server;
  • l'attaccante usa un host infettato col malware per inviare una query al proprio dominio controllato;
  • quando il resolver DNS instrada la query, crea un tunnel tra l'attaccante e il suo target, consentendogli di rubare dati, controllare l'host da remoto e eseguire altri attacchi.

DNS tunneling: quali rischi?

Il DNS Tunneling comporta una serie di rischi:

  • esfiltrazione dei dati: gli attaccanti usano i DNS per rubare informazioni sensibili. Va detto che usare il DNS tunneling per rubare informazioni non è il mezzo più comodo per gli attaccanti, richiedendo infrastrutture ad hoc e un certo sforzo dal punto di vista della programmazione di codice. Resta il fatto che è però un metodo funzionante, anche se non efficiente;
  • controllo da remoto: gli attaccanti possono usare il protocollo DNS per inviare dei comandi ad un Remote Access Trojan (RAT) tramite il server di comando e controllo (detto C2 o C&C);
  • IP-Over-DNS Tunneling: alcune utilities hanno implementato lo stack IP nel protocollo domanda-risposta DNS. Usare software di comunicazione standard come FTP, Netcat e ssh può rendere il trasferimento dei dati relativamente semplice.


Toolkit più comuni e diffusi per il DNS tunnmeling

DNSCat2 si divide in due sezioni, client e server. Il server può mantenere le connessioni con molti client, rendendolo una componente C&C essenziale. Criptazione, sessioni come Metasploit e tunnel per il TCP forwarding sono solo alcune delle nuove funzioni. Tuttavia questo tool presenta inconvenienti come performance ridotte, sessioni limitate e limitazioni al tunneling.

Una volta completata l'installazione di DNScat2, il server eseguirà i seguenti comandi


Per eseguire una connessione tra client e server, si possono usare i seguenti comandi sulla macchina client:


Anche Wireshark può essere utilizzato per verificare che una sessione sia stata creata con successo. La porta 53 gioca un ruolo centrale nell'ottenere la shell inversa, perchè i dispositivi di sicurezza raramente la bloccano.

Il protocollo DNS si basa principalmente su UDP. Non c'è alcuna garanzia che i messaggi arrivino nell'ordine in cui sono stati spediti. Sono proprio gli strumenti di DNS tunneling che gestiscono questo processo sia inviando comunicazioni TCP atttraverso il DNS sia inviando continui e costanti messaggi ping tra le richieste per garantire il corretto ordine. Applicare questi metodi per l'integrità incrementa inevitabilmente il numero dei messaggi sul protocollo DNS. Inoltre, se  un tool DNS Tunneling viene usato sia per il browsing web che per il trasferimento di file, il volume e la dimensione dei messaggi sarà molto più alto rispetto al comportamento osservabile in caso di normale traffico DNS.

Insomma c'è da aspettarsi che la presenza del tunneling DNS causi un cambiamento significativo del traffico DNS per quanto riguarda;

  • volume
  • lunghezza dei messaggi
  • tempo medio (più breve) tra i messaggi.

 



Una volta stabilita la connessione, vedremo una sessione sul server, come mostrato nella foto sotto. E' possibile usare il comando "sessions" per verificare se è stata creata una nuova sessione.


Ecco che a questo punto è possibile accedere alla sessione e interagirvi con molte opzioni. Così verrà creata una ulteriore sessione e si potrà interagirvi: avremo quindi la shell tradizionale.


Individuare il DNS Tunneling:

I metodi principali per monitorare e individuare attacchi DNS sono l'analisi dei payload e l'analisi del traffico.

  • Analisi del Payload: è utile analizzare il contenuto delle richieste DNS e le risposte. Attività sospette possono essere individuate tramite fattori come la differenza di dimensioni tra richiesta e risposta ecc...
  • Analisi del Traffico: per distinguere il traffico DNS regolare da quello dannoso, si utilizzano informazioni come il numero di richieste, la localizzazione geografica delle stesse, la cronologia del dominio. Il rilevamento e la risposta di rete, ad esempio, usano il machine learnng per stabilire "l'aspetto base" di un traffico definibile come normale in un determinato ambiente, quindi inviano avvisi quando viene individuato un traffico anomalo che diverge dall'aspetto base. Questa divergenza potrebbe indicare appunto un attacco in corso.


Quick Heal protegge i propri clienti...

Il modulo Host Based Intrusion Prevention System di Quick Heal individua e blocca attività dannose come il DNS Tunneling.

Nessun commento:

Posta un commento