Cos’è il DNS e come funziona?
Il Domain Name System (DNS) è una delle fondamenta di internet, eppure la maggior parte delle persone al di fuori del networking probabilmente non si rende conto di usarlo ogni giorno per fare il proprio lavoro, controllare la posta elettronica o perdere tempo con il proprio smartphone.
Alla base, il DNS è un elenco di nomi che corrispondono a numeri. I numeri, in questo caso sono indirizzi IP, che i computer usano per comunicare tra loro. La maggior parte delle descrizioni del DNS usano l’analogia di un elenco telefonico, che va bene per le persone oltre i 30 anni che sanno cos’è un elenco telefonico.
Se hai meno di 30 anni, pensa al DNS come alla lista dei contatti del tuo smartphone, che abbina i nomi delle persone con i loro numeri di telefono e indirizzi e-mail. Poi moltiplicate quella lista di contatti per tutti gli altri sul pianeta.
Una breve storia del DNS
Quando internet era molto, molto piccolo, era più facile per le persone far corrispondere specifici indirizzi IP con specifici computer, ma questo non è durato a lungo, dato che più dispositivi e persone si sono uniti alla rete in crescita. È ancora possibile digitare un indirizzo IP specifico in un browser per raggiungere un sito web, ma allora, come oggi, la gente voleva un indirizzo composto da parole facili da ricordare, del tipo che oggi riconosciamo come nome di dominio (come networkworld.com). Negli anni ’70 e nei primi anni ’80, questi nomi e indirizzi erano assegnati da una persona – Elizabeth Feinler a Stanford – che manteneva una lista principale di ogni computer connesso a Internet in un file di testo chiamato HOSTS.TXT.
Questa era ovviamente una situazione insostenibile con la crescita di Internet, non ultimo perché Feinler gestiva le richieste solo prima delle 18:00 ora della California, e si prendeva il tempo libero per Natale. Nel 1983, Paul Mockapetris, un ricercatore della USC, fu incaricato di trovare un compromesso tra molteplici suggerimenti per affrontare il problema. In pratica li ignorò tutti e sviluppò il suo sistema, che chiamò DNS. Sebbene sia ovviamente cambiato parecchio da allora, a livello fondamentale funziona ancora come quasi 40 anni fa.
Come funzionano i server DNS
La directory DNS che abbina il nome ai numeri non si trova tutta in un posto in un angolo buio di internet. Con più di 332 milioni di nomi di dominio elencati alla fine del 2017, una singola directory sarebbe davvero molto grande. Come Internet stesso, la directory è distribuita in tutto il mondo, memorizzata su server di nomi di dominio (generalmente indicati come server DNS in breve) che comunicano tutti tra loro su base molto regolare per fornire aggiornamenti e ridondanze.
Server DNS autoritativi contro server DNS ricorsivi
Quando il tuo computer vuole trovare l’indirizzo IP associato a un nome di dominio, fa prima la sua richiesta a un server DNS ricorsivo, noto anche come resolver ricorsivo. Un resolver ricorsivo è un server che di solito è gestito da un ISP o da un altro fornitore di terze parti, e sa a quali altri server DNS deve chiedere per risolvere il nome di un sito con il suo indirizzo IP. I server che hanno effettivamente le informazioni necessarie sono chiamati server DNS autoritativi.
Server DNS e indirizzi IP
Ogni dominio può corrispondere a più di un indirizzo IP. Infatti, alcuni siti hanno centinaia o più indirizzi IP che corrispondono a un singolo nome di dominio. Per esempio, il server che il vostro computer raggiunge per www.google.com è probabilmente completamente diverso dal server che qualcuno in un altro paese raggiungerebbe digitando lo stesso nome del sito nel suo browser.
Un’altra ragione per la natura distribuita della directory è la quantità di tempo che impieghereste per ottenere una risposta quando cercate un sito se ci fosse un solo luogo per la directory, condiviso tra milioni, probabilmente miliardi, di persone che cercano informazioni nello stesso momento. È una lunga fila per usare l’elenco telefonico.
Che cos’è il DNS caching?
Per aggirare questo problema, le informazioni DNS sono condivise tra molti server. Ma le informazioni per i siti visitati di recente sono anche memorizzate nella cache locale dei computer client. È probabile che tu usi google.com diverse volte al giorno. Invece di interrogare il server dei nomi DNS per l’indirizzo IP di google.com ogni volta, questa informazione viene salvata sul tuo computer in modo da non dover accedere a un server DNS per risolvere il nome con il suo indirizzo IP. Un ulteriore caching può avvenire sui router usati per connettere i clienti a internet, così come sui server dell’Internet Service Provider (ISP) dell’utente. Con così tanto caching in corso, il numero di query che effettivamente arrivano ai server dei nomi DNS è molto più basso di quanto sembri.
Come faccio a trovare il mio server DNS?
In generale, il server DNS che usate sarà stabilito automaticamente dal vostro provider di rete quando vi collegate a internet. Se volete vedere quali server sono i vostri nameserver primari – generalmente il resolver ricorsivo, come descritto sopra – ci sono utility web che possono fornire una serie di informazioni sulla vostra attuale connessione di rete. Browserleaks.com è una buona, e fornisce un sacco di informazioni, compresi i vostri attuali server DNS.
Posso usare 8.8.8.8 DNS?
È importante tenere a mente, però, che mentre il vostro ISP imposterà un server DNS di default, non avete alcun obbligo di usarlo. Alcuni utenti possono avere motivo di evitare i DNS del loro ISP – per esempio, alcuni ISP usano i loro server DNS per reindirizzare le richieste per indirizzi inesistenti a pagine con pubblicità.
Se volete un’alternativa, potete invece puntare il vostro computer a un server DNS pubblico che agirà come un resolver ricorsivo. Uno dei server DNS pubblici più importanti è quello di Google; il suo indirizzo IP è 8.8.8.8. I servizi DNS di Google tendono ad essere veloci, e mentre ci sono alcune domande sui secondi fini di Google per offrire il servizio gratuito, non possono davvero ottenere più informazioni da voi che non abbiano già ottenuto da Chrome. Google ha una pagina con istruzioni dettagliate su come configurare il vostro computer o router per connettersi al DNS di Google.
Come il DNS aggiunge efficienza
Il DNS è organizzato in una gerarchia che aiuta a far funzionare le cose velocemente e senza problemi. Per illustrare, facciamo finta che tu voglia visitare networkworld.com.
La richiesta iniziale per l’indirizzo IP viene fatta a un resolver ricorsivo, come discusso sopra. Il resolver ricorsivo sa a quali altri server DNS deve chiedere per risolvere il nome di un sito (networkworld.com) con il suo indirizzo IP. Questa ricerca porta a un root server, che conosce tutte le informazioni sui domini di primo livello, come .com, .net, .org e tutti quei domini nazionali come .cn (Cina) e .uk (Regno Unito). I root server si trovano in tutto il mondo, quindi il sistema di solito ti indirizza a quello più vicino geograficamente.
Una volta che la richiesta raggiunge il root server corretto, va a un server di nomi di dominio di primo livello (TLD), che memorizza le informazioni per il dominio di secondo livello, le parole usate prima di arrivare al .com, .org, .net (per esempio, quelle informazioni per networkworld.com sono “networkworld”). La richiesta va poi al Domain Name Server, che detiene le informazioni sul sito e il suo indirizzo IP. Una volta scoperto l’indirizzo IP, viene rimandato al client, che ora può usarlo per visitare il sito web. Tutto questo richiede pochi millisecondi.
Perché il DNS funziona da oltre 30 anni, la maggior parte delle persone lo dà per scontato. Anche la sicurezza non è stata considerata quando si è costruito il sistema, quindi gli hacker ne hanno approfittato, creando una varietà di attacchi.
Attacchi DNS reflection
Gli attacchi DNS reflection possono sommergere le vittime con messaggi ad alto volume dai server DNS resolver. Gli attaccanti richiedono grandi file DNS da tutti i resolver DNS aperti che possono trovare e lo fanno utilizzando l’indirizzo IP spoofed della vittima. Quando i resolver rispondono, la vittima riceve un flusso di dati DNS non richiesti che sommerge le sue macchine.
Avvelenamento della cache DNS
L’avvelenamento della cache DNS può deviare gli utenti verso siti web dannosi. Gli attaccanti riescono a inserire falsi record di indirizzi nel DNS in modo che quando una potenziale vittima richiede la risoluzione di un indirizzo per uno dei siti avvelenati, il DNS risponde con l’indirizzo IP di un sito diverso, uno controllato dall’attaccante. Una volta su questi siti fasulli, le vittime possono essere indotte a fornire le password o subire il download di malware.
Esaurimento delle risorse DNS
Gli attacchi di esaurimento delle risorse DNS possono intasare l’infrastruttura DNS degli ISP, bloccando i clienti dell’ISP dal raggiungere i siti su Internet. Questo può essere fatto dagli aggressori che registrano un nome di dominio e usano il name server della vittima come server autoritativo del dominio. Quindi, se un resolver ricorsivo non può fornire l’indirizzo IP associato al nome del sito, chiederà al name server della vittima. Gli attaccanti generano un gran numero di richieste per il loro dominio e ci buttano dentro sottodomini inesistenti, il che porta a un torrente di richieste di risoluzione che viene sparato al server dei nomi della vittima, sopraffacendolo.
Che cos’è DNSSec?
DNS Security Extensions è uno sforzo per rendere più sicura la comunicazione tra i vari livelli di server coinvolti nei lookup DNS. È stato ideato dalla Internet Corporation for Assigned Names and Numbers (ICANN), l’organizzazione responsabile del sistema DNS.
ICANN si è resa conto delle debolezze nella comunicazione tra i server di directory di primo livello, di secondo livello e di terzo livello del DNS che potrebbero consentire agli aggressori di dirottare le ricerche. Questo permetterebbe agli aggressori di rispondere alle richieste di lookup a siti legittimi con l’indirizzo IP di siti malevoli. Questi siti potrebbero caricare malware agli utenti o effettuare attacchi di phishing e pharming.
DNSSEC affronterebbe questo problema facendo in modo che ogni livello di server DNS firmi digitalmente le sue richieste, il che assicura che le richieste inviate dagli utenti finali non siano requisite dagli attaccanti. Questo crea una catena di fiducia in modo che ad ogni passo nella ricerca, l’integrità della richiesta è convalidata.
Inoltre, DNSSec può determinare se i nomi di dominio esistono, e se uno non esiste, non permetterà che quel dominio fraudolento sia consegnato a richiedenti innocenti che cercano di avere un nome di dominio risolto.
Come più nomi di dominio vengono creati, e più dispositivi continuano ad unirsi alla rete attraverso l’internet delle cose e altri sistemi “intelligenti”, e come più siti migrano a IPv6, sarà necessario mantenere un ecosistema DNS sano. La crescita dei big data e dell’analisi porta anche una maggiore necessità di gestione DNS.
SIGRed: Una falla wormable DNS rialza la testa
Il mondo ha recentemente dato una buona occhiata al tipo di caos che le debolezze nel DNS potrebbero causare con la scoperta di una falla nei server DNS di Windows. La potenziale falla di sicurezza, soprannominata SIGRed, richiede una complessa catena di attacchi, ma può sfruttare i server DNS di Windows senza patch per installare ed eseguire potenzialmente codice maligno arbitrario sui client. E l’exploit è “wormable”, il che significa che può diffondersi da computer a computer senza intervento umano. La vulnerabilità è stata considerata abbastanza allarmante che alle agenzie federali statunitensi sono stati dati solo pochi giorni per installare le patch.
DNS su HTTPS: un nuovo panorama della privacy
Al momento della stesura di questo articolo, DNS è sul punto di uno dei suoi più grandi cambiamenti nella sua storia. Google e Mozilla, che insieme controllano la parte del leone del mercato dei browser, stanno incoraggiando uno spostamento verso DNS su HTTPS, o DoH, in cui le richieste DNS sono criptate dallo stesso protocollo HTTPS che già protegge la maggior parte del traffico web. Nell’implementazione di Chrome, il browser controlla se i server DNS supportano DoH, e se non lo fanno, reindirizza le richieste DNS a 8.8.8.8.
È una mossa non priva di controversie. Paul Vixie, che ha fatto molto del lavoro iniziale sul protocollo DNS negli anni ’80, chiama la mossa un “disastro” per la sicurezza: l’IT aziendale avrà un tempo molto più difficile per monitorare o dirigere il traffico DoH che attraversa la loro rete, per esempio. Eppure, Chrome è onnipresente e DoH sarà presto attivato di default, quindi vedremo cosa ci riserva il futuro.
(Keith Shaw è un ex redattore senior per Network World e un premiato scrittore, editore e recensore di prodotti che ha scritto per molte pubblicazioni e siti web in tutto il mondo.)
(Josh Fruhlinger è uno scrittore ed editore che vive a Los Angeles.)