DNS cache poisoning

di: Francesco Caccavella     30 Luglio 2008

Per danni possibili e ampiezza dei dispositivi e dei software coinvolti, la vulnerabilità del sistema DNS venuta alla luce ad inizio luglio è una delle più pericolose mai comparse su Internet. Ad essere coinvolto, e non è la prima volta, è il sistema DNS, ossia il servizio che, gestito da sistemi operativi, strumenti hardware, software, provvede a convertire un indirizzo Web nel corrispondente indirizzo internet numerico. Il DNS è una delle componenti fondamentali dell'infrastruttura della rete: senza di essa non potremmo navigare, né mandare e-mail, né usare nessun servizio Web.

I pericoli causati da una manomissione del servizio DNS sono diversi, tutti comunque riconducibili ad uno scenario comune: il rindirizzamento di una richiesta verso un altro server. In questo caso è possibile che, ad esempio, digitando il nome della nostra banca veniamo indirizzati ad un sito Web che non corrisponde a quello originale; è possibile che connettendoci ad un servizi di chat vengano visualizzati falsi utenti nella propria lista dei contatti; è possibile che inviando una mail questa vada a finire nella casella di posta del pirata informatico che ha manomesso il servizio e non in quella del destinatario.

Al momento di scrittura di questo articolo sono circa 90 i produttori software o hardware probabilmente vulnerabili inclusi nella lista preparata dallo US-Cert. Molti di loro, come Microsoft, varie distribuzioni Linux, FreeBSD, hanno già pubblicato delle patch correttive. Altri, tra cui Apple, non lo hanno ancora fatto. Da fine luglio è anche disponibile un exploit funzionante in grado di rendere automatica lo sfruttamento della vulnerabilità.

I Servizi DNS

Per capire la vulnerabilità è in primo luogo necessario capire come funziona il DNS. L'acronimo DNS (Domain Name System) indica il protocollo, ossia il set di istruzioni condivise, con cui comunicano i name server e i resolver. I name server sono i software, e per estensione anche i computer, che si occupano di sostituire i numeri ai nomi: sono coloro che traducono il nome www.google.it che digitiamo sul browser nell'indirizzo IP 209.85.135.104 comprensibile dalle macchine. Ogni provider, ma è facile trovarli anche in reti aziendali o grandi server farm, ha il suo name server. I name server sono strutturati ad albero: per semplificare basti dire che all'apice vi sono quelli che appartengono alle zone più "generali" e, scendendo verso i rami più bassi, quelli più specifici per dominio.

Figura 1: Il sistema ad albero del DNS

Il sistema ad albero del DNS

Quando digitiamo sul browser www.google.it, il client DNS che è incluso nel nostro Pc (chiamato resolver) chiede al name server del nostro provider l'indirizzo IP di quel particolare dominio. Il nostro provider, se non conosce l'indirizzo, esegue una cosiddetta ricerca ricorsiva: chiede al name server autorevole l'indirizzo di quel determinato dominio, il name server autorevole indica in quale altro name server si trova quell'informazione, il nostro provider invia la richiesta a quest'altro name server, recupera l'indirizzo IP e lo restituisce al nostro sistema operativo che a sua volta lo rende disponibile al browser. La procedura è ricorsiva perché, in base all'indirizzo digitato, può prevedere due, tre o molti altri passaggi. Nella figura qui sotto è visualizzato graficamente il processo:

Figura 2: Una richiesta ricorsiva

Una richiesta ricorsiva

Un sistema di questo genera garantisce l'accuratezza dei risultati ma non la velocità. Ecco perché ogni client o server DNS, compreso quello del computer e ad esclusione di quelli autorevoli, include un sistema di cache: memorizza le richieste già eseguite per renderle disponibili più velocemente agli altri computer che le dovessero richiedere. Se un pirata potesse includere nella cache risultati artefatti, sarebbe semplice rindirizzare le richieste legittime verso qualsiasi altro sito. Ed è quello che è accaduto con la vulnerabilità citata all'inizio dell'articolo.

Figura 3: Una richiesta in cache

Una richiesta in cache

Guide Sicurezza

Guida SQL Injection con Sqlmap

Scopriamo se le nostre applicazioni web sono vulnerabili alle SQL...

Guida sicurezza applicazioni Web

Le tecniche di attacco più comuni, i metodi per verificare la...

Guida Sicurezza wireless

Quali sono i pericoli di sicurezza di una rete senza filo e quali...

Altre guide

Newsletter @Sicurezza

Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto