ABC della sicurezza: Domain Name System

Potrebbe sembrare meno immediato di altri “casi” più celebri, ma anche i nomi di dominio possono essere oggetto di attacchi e violazioni andando a determinare rischi per utenti e imprese. Perché attaccare i cosidetti DNS, ovvero i domain name System? Tra i servizi di rete il Domain Name System è uno dei più attaccati proprio grazie alla sua infrastruttura distribuita che permette di raggiungere tutta internet. Non è tanto il servizio stesso ad interessare gli attaccanti ma la possibilità di sfruttarlo per renderlo uno strumento con cui ridirezionare le sessioni http, mail e di molti altri protocolli verso domini fake e host malevoli. O piuttosto usarlo per potenziare degli attacchi verso altri computer su internet.

Vediamo come.

Accenni storici

arpanetNei primi anni di ARPANet e successivamente di Internet la risoluzione dei nomi non esisteva ma bensi venivano usatati esclusivamente indirizzi IP (es: 192.168.1.1) per identificare nella rete un computer. Con il crescere dell’uso dei servizi online fu chiaro che l’uso di indirizzi numerici non era affatto user friendly e decisamente poco mnemonico e fu scelto di affidare il servizio di gestione dei nomi macchina al NIC (Network Information Center), che lo gestiva mediante l’utilizzo di un file host.txt condiviso da tutti i nodi presenti in rete. Tale file conteneva la lista completa degli indirizzi di tutte le macchine con i relativi nomi associati. Successivamente, nel 1983, Paul Mockapetris insieme a Jon Postel, amministratore dello IANA Internet Assigned Numbers Authority, proposero un nuovo servizio che avrebbe rivoluzionato il modo di gestire la risoluzione dei nomi e che avrebbe contribuito in maniera decisa a rendere Internet quello che oggi tutti conosciamo: il Domain Name System.  La descrizione del servizio, la sua implementazione e le specifiche furono descritte nelle RFC (Request for Comments)  882 e 883 oggi sostituite dalle attuali RFC 1034 e 1035.

Semplificando il Domain Name System

Tale servizio si basa sul concetto di database distribuito e gestisce in maniera scalabile la risoluzione di un indirizzo IP con un nome host e viceversa. I nomi macchina gestiti dal DNS vengono indicati come nomi FQDN (Fully Qualified Domain Name). Tale oggetto è costituito dal nome dominio e dal nome host suddivisi da dei punti. Tale servizio essenso appunto scabile è in grado di gestire più livelli di dominio, dove per dominio si intende un insieme di host o servizi identificabili in rete tramite lo stesso suffisso.  Un nome di dominio o record DNS è costituito quindi da una serie di stringhe alfanumeriche separate da punti, dove l’indentificativo dei domini è a partire da destra, dove il primo sarà un dominio di primo livello (.it, .com, .org, etc..). Tra le varie tipologie di nomi dominio utilizzabili in un DNS le più usate sono sicuramente il record A, il quale indica la corrispondenza di un nome host con un indirizzo IP, il record PTR, che indica la risoluzione  inversa partendo dal nome, il CNAME, usato per creare degli alias permettendo ad un host che gestisce più servizi di avere più nomi associati, il record MX, identico al record A ma specifico per Mail Exchanger ovvero server di  posta. Ad ognuno di questi record viene associato un TTL (Time to Live), ovvero valore che indica il periodo di validità oltre il quale quel record verrà reso inutilizzabile dal server DNS dove è stato registrato.

Semplificando, la richiesta di risoluzione di un nome effettuata ad un DNS avviene solitamente tramite protocollo UDP sulla porta 53 al primo DNS presente nella configurazione di rete. Se questo non conosce l’indirizzo IP associato all’host richiesto viene interrogato solitamente il DNS del provider della linea dati, poi successivamente il DNS radice dei vari .it o .com etc, o chiedendo l’informazione direttamente al server autoritativo, ovvero il gestore dei nomi di quel dominio specifico.

Tra le varie funzionalità i server DNS sono in grado di effettuare caching, cioè possono ricordare le interrogazioni effettuate più di recente e le relative risposte in modo da rendere la risoluzione di un nome più rapida senza dover inoltrare la domanda ad altri DNS. Tutto molto semplificato, mi perdonerete, ma necessario per introdurre la parte che a noi interessa di più: i rischi di subire un attacco sull’infrastruttura DNS.

Quali rischi?

Sicurezza2Come già spiegato in apertura, i DNS attirano l’attenzione dei cybercriminali per la portata molto ampia della loro azione hacker portata avanti sfruttando le caratteristiche stesse del DNS.

Uno degli attacchi più usati verso questo tipo di servizio è il cache poisoning, ovvero un attacco che prevede la modifica di uno o più record della cache utilizzata da un DNS per velocizzare i tempi di risposta, per dirottare la risoluzione di un nome host verso un indirizzo diverso. Uno dei casi più famosi della storia fu il Kaminsky Bug del 2008. Questo tipo di attacco è spesso legato al phishing, dato che una volta cambiata la risoluzione del nome macchina è possibile indirizzare un utente verso un sito fake dal quale rubare i dati personali o aziendali. Solitamente i DNS colpiti sono i DNS ricorsivi spesso usati da alcuni ISP. Infatti le vittime di questa tipologia d’attacco possono  spesso essere limitate ad alcuni ISP o ad aziende specifiche che usano caching nel DNS. Nel caso di un azienda è conigliabile limitare la recursion del DNS ad i soli client interni proprio per limitare il rischio di poisoning dall’esterno. Doverosa l’applicazione delle specifiche DNSSEC.

Più difficile da indentificare e quindi da risolvere risulta l’attacco di tipo Man in the Middle. Come per molti altri servizi questo tipo d’attacco consiste in una terza parte che manipola i dati e si pone nel mezzo della comunicazione, alterandola. Nel caso specifico del DNS i campi contenuti nella richiesta di risoluzione nome e nella risposta vengono modificati opportunamente simulando una risposta ufficiale. Tale tipo di attacco può essere mirato ad un client solo o riportato più largamente ad una rete di computer. L’attacco può essere portato da una persona fisica o da un virus. L’utilizzo  di sessioni https e di certificati oltre che di VPN per i servizi aziendali può fare rendere più complicato subire un attacco di questo tipo. Un controllo sul traffico di rete, magari facendo verifiche approfondite sui pacchetti, può senza dubbio risultare utile come allarme per questo tipo di azioni malevole.

Un terzo tipo, per il quale è doveroso scrivere qualche riga in più, è il DNS Reflection o Amplification. Sfruttando la composizione della richiesta DNS, viene inserito il richiedente indicando l’host vittima dell’attacco, inoltre nella query viene richiesto non un singolo indirizzo ma la risoluzione di un intero dominio generando così una risposta notevolmente più grande. Tutto questo inoltrato da un intera botnet può arrivare a causare un Denial of Service sull’host vittima. Di fronte a questo tipo di attacco una delle opzioni possibili è sicuramente l’analisi preventiva dei pacchetti tramite l’utilizzo di firewall di nuova generazione.

E non finisce qui: sono molti i tipi di attacco DNS possibili come, ad esempio, la modifica della registrazione del dominio, come avvenne per Twitter nel 2009 da parte dell’Iranian Cyber Army, i quali redirezionarono le connessioni al colosso informatico verso i propri siti di propaganda. Anche in quel caso l’azione fu possibile grazie ad un account email compromesso di un dipendente con il quale furono autorizzati i cambiamenti del DNS.

Questo esempio ci dimostra una cosa che è anche un monito per le imprese: oltre a mantenere sicura tecnicamente l’infrastruttura e alzare il livello di guardia sui controlli nella rete, risulta fondamentale mantenere uno standard di sicurezza elevato anche sui dati aziendali più comuni come le e-mail, con una particolare attenzione alla sensibilizzazione sui temi di social engineering.

Facebook Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here