Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione consideriamo che accetti il loro uso.

Abbiamo aggiornato la Privacy Policy e la Cookie Policy per renderle più chiare e trasparenti e per introdurre i nuovi diritti che il Regolamento ti garantisce.

GARR, Servizi, GARRNews, Approfondimenti

DNS: dietro i nomi e i numeri di Internet

DNS: dietro i nomi e i numeri di Internet

È considerato l’elenco telefonico del web, usato tutti i giorni ma molto poco conosciuto. Guida ad un servizio essenziale per il funzionamento di Internet

In rete sono connessi miliardi di dispositivi e se dovessimo utilizzare il linguaggio delle macchine, cioè i numeri, per raggiungere i servizi e le risorse che mettono a disposizione sarebbe davvero un’impresa ardua. Per questo è stato ideato il Domain Name System (DNS), ovvero il meccanismo che traduce gli indirizzi Internet dalla forma testuale “umana” (ad esempio, www.garr.it) a quella numerica utilizzabile dalle apparecchiature di rete, ovvero gli indirizzi IP, e viceversa. Il DNS è solo uno dei tanti protocolli di rete e per questo invisibile per gli utenti finali, ma è sicuramente uno degli elementi essenziali per il funzionamento di Internet.

Il principio di funzionamento del DNS è simile a quello dell’elenco telefonico. Se disponessimo di un elenco di numeri di telefono senza nomi dovremmo provarli tutti per trovare il numero giusto oppure essere in grado di ricordarli uno per uno. L’associazione dei numeri ai nomi, invece, ci consente una semplice e rapida consultazione dell’elenco per l’individuazione del numero cercato.

Marco GalloMarco Gallo
Consortium GARR
Coordinatore Internet Registration Services
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Come funziona il DNS

Il DNS è un protocollo, utilizzato come sistema di comunicazione da un’architettura di macchine collegate ad Internet, che permette di tradurre nomi in indirizzi di rete e viceversa. Il servizio funziona interrogando un database distribuito geograficamente, in grado di essere aggiornato da più persone contemporaneamente.

Il DNS è suddiviso gerarchicamente in domini (com, org, it, ecc.) mediante una struttura ad albero rovesciato. Ad ogni dominio o nodo corrisponde un nameserver, che detiene un database con le sole informazioni di alcuni domini di cui è responsabile e si rivolge ai nodi successivi quando deve trovare informazioni che appartengono ad altri domini tramite interrogazioni ad una delle foglie dell’albero.

Nel protocollo standard del DNS vengono individuate e distinte due tipologie di risoluzioni: la risoluzione diretta, ovvero la corrispondenza tra nome del computer ed indirizzo IP e la risoluzione inversa, ovvero la corrispondenza tra indirizzo IP e nome del computer.

Non tutti sanno che ogni nome a dominio esistente su Internet in realtà termina con un “.” (punto): ad esempio l’indirizzo garr.it. termina con il punto e la stringa vuota che segue il punto finale è chiamata dominio radice (DNS root zone). I nameserver responsabili del dominio radice sono i cosiddetti root nameservers. Essi possiedono l’elenco dei server autoritativi di tutti i domini di primo livello (TLD) riconosciuti e lo forniscono in risposta a ciascuna richiesta. I root nameserver sono 13 in tutto il mondo, di cui 10 presenti negli USA, due in Europa (Inghilterra e Svezia) ed uno in Giappone.

Data l’esiguità del loro numero, la ISC (Internet Software Consortium) ha adottato un sistema che permette di replicarli in modo da renderli più accessibili anche da località fisicamente lontane. I presupposti a questa soluzione sono quelli di configurare dei cloni in grado di contenere gli stessi dati dei root nameserver globali e di utilizzare lo stesso indirizzo IP (metodo Anycast). Le repliche dei root nameserver vengono generalmente installate in luoghi dove gli operatori scambiano traffico con le reti di altri operatori: i cosiddetti Internet Exchange Point (IXP). Ciò consente sia ai vari provider interconnessi attraverso gli IXP di trarre enormi vantaggi abbassando notevolmente i tempi di risposta sia di disporre di un’architettura meno vulnerabile ad attacchi diretti ai root nameservers.

Il servizio di DNS secondario erogato da GARR

GARR mette a disposizione dei propri utenti il servizio di DNS secondario per garantire il funzionamento del DNS anche in caso di guasti del primario

Tutti gli enti connessi alla rete GARR, per poter gestire i propri nomi a dominio istituzionali o per registrare nuovi nomi a dominio, devono essere in grado di erogare un servizio di DNS primario all’interno della propria infrastruttura di rete. Ciò consente ad ogni organizzazione di essere totalmente autonoma ed indipendente sulla gestione del servizio.

GARR è disponibile a fornire a tutti gli enti della propria comunità un nameserver secondario al fine di consentire ridondanza al servizio DNS. Il vantaggio di avere un secondo DNS è quello di permettere la risoluzione dei propri nomi a dominio anche in caso di guasto sul nameserver primario. Tale servizio vale sia per la risoluzione diretta che per quella inversa, sia su protocollo IPv4 che IPv6. Sono diverse centinaia le organizzazioni (Università ed Enti di Ricerca) che già usufruiscono di questo servizio.
Inoltre, il GARR offre assistenza sulla configurazione del DNS in fase di registrazione di nuovi domini e in occasione di attività di manutenzione sui nameserver degli utenti.

Il DNS e la sicurezza

Come ogni servizio che si affaccia al mondo esterno, anche il DNS è soggetto ad eventuali problemi relativi alla sicurezza. Esistono diverse tecniche per attaccare un namesever alterandone il comportamento. Una di esse è il DDoS (Distributed Denial of Service). Questo tipo di attacco mira ad impedire il funzionamento del nameserver. Tipicamente, l’attacco viene condotto inviando delle richieste artefatte al server DNS vittima provocando in primo luogo la saturazione del collegamento del nameserver e, in alcuni casi, accessi errati ai dati in memoria.

L’attaccante non usa mai il proprio sistema in modo da ridurre il rischio di essere scoperto, così lancia l’attacco da sistemi su cui ha acquisito il controllo amministrativo non autorizzato. Ci sono molti modi per ottenere il controllo sui sistemi connessi in rete. Uno dei metodi utilizza un virus autoreplicante chiamato worm e tipicamente diffuso via mail, in modo da infettare il numero più elevato possibile di sistemi. Il worm installa un software, denominato zombie, che l’attaccante può controllare ed utilizzare per dirigere un attacco DoS da remoto. In particolare, vengono sfruttati nameserver mal configurati e viene fatto uso di amplificatori di traffico in grado di aumentare fino a settanta volte il volume del traffico dell’attacco, accelerando l’esaurimento delle risorse di banda del collegamento del nameserver vittima. Le contromisure, fornite anche dal GARR-CERT a tutti gli APM, al fine di contrastare questo tipo di attacco suggeriscono di applicare regole (rate-limit) che filtrano pacchetti DNS particolarmente grandi (superiori ai 512 bytes). I nameserver vanno sia configurati in modo da non diventare veicolo ideale per la propagazione di traffico malevolo (non consentire a tutti query ricorsive) sia aggiornati e manutenuti periodicamente. Inoltre, al fine di non propagare traffico di eventuali macchine compromesse (zombie), andrebbero configurati dei filtri sul proprio router o firewall che consentano traffico in uscita solo se i pacchetti contengono un IP sorgente appartenente alla propria infrastruttura di rete locale.

Contro il DNS Poisoning il vero antidoto è il DNSSEC che aggiunge funzionalità di sicurezza grazie ad una catena di fiducia

Altra tecnica di attacco è quella del DNS Poisoning. È una tecnica che non richiede grandi disponibilità di risorse di rete. L’obiettivo in questo caso è quello di modificare la memoria (cache) dei nameserver in modo da alterare l’associazione indirizzo IP/nome del server. Ciò consente di reindirizzare un nome a dominio web (ad esempio www.garr.it) verso un indirizzo IP diverso da quello vero. La tecnica consiste nell’ingannare un nameserver facendogli credere di ricevere delle informazioni autentiche, quando, in realtà sono informazioni create ad arte per modificarne il comportamento. In questo caso, diversamente dal phishing dove si viene invogliati a cliccare su un indirizzo fasullo, l’indirizzo è digitato correttamente ma è il sistema di traduzione (nome-indirizzoIP) che viene ingannato. Dato che le informazioni ricevute vengono conservate nella cache del DNS attaccato per un certo periodo di tempo (TTL), queste si diffondono a tutti gli utenti di quel nameserver. Più il dominio attaccato è noto più grande sarà l’impatto dell’attacco. Per evitare il problema del DNS Poisoning il vero antidoto è il DNSSEC che aggiunge funzionalità di sicurezza al DNS. Il DNSSEC controlla le risposte ad ogni livello della gerarchia dello spazio dei nomi. I nameserver di ogni livello garantiscono per quelli di livello superiore attraverso quella che è conosciuta come una “chain of trust”, catena di fiducia. Affinché sia garantita la massima sicurezza è fondamentale che tutti i TLD (Top Level Domain) supportino DNSSEC. Negli ultimi anni sono stati fatti molti passi in avanti e sono numerosi i TLD sui quali il servizio di DNSSEC viene già erogato. La lista completa è disponibile online (http://stats.research.icann.org/ dns/tld_report). Ben presto questa funzionalità sarà disponibile anche per il ccTLD .it come già ora lo è il .eu e tanti altri.

La struttura gerarchica ad albero rovesciato del Domain Name System

DNS
Per maggiori informazioni:

www.lir.garr.it