Se c’è una cosa che i film di Hollywood ci insegnano, è che gli hacker sono intelligenti e hanno molti trucchi per aggirare la nostra sicurezza. Nel mondo reale, un problema di sicurezza spesso si riduce ad un’opportunità piuttosto che all’abilità sviluppata. Un attacco di “DNS poisoning” rientra in questa descrizione e, infatti, dovete avere le competenze per evitare che il vostro dominio sia soggetto a spoofing.

Il concetto è semplice: i visitatori vedono quello che sembra il vostro sito web, ma questo sito è fraudolento e dannoso, anche se è simile. Per questo motivo, dovrete ricorrere a diverse tecniche per assicurarvi che gli utenti siano al sicuro e che il vostro sito rimanga al sicuro da attacchi.

In questo articolo approfondiremo il concetto di DNS poisoning e domain spoofing. Illustreremo anche alcuni dei concetti collegati per aiutarvi a capire se la vostra eventuale risposta è la migliore.

Introduzione al Sistema dei Nomi di Dominio (DNS)

Prima di entrare nello specifico del DNS poisoning, parliamo del Domain Name System. Anche se la navigazione in un sito web sembra qualcosa di semplice, sotto il cofano del server cose accadono molte.

Per portarvi da ‘A’ a ‘B’ sono coinvolti molti elementi:

  • Indirizzo IP. È una stringa di numeri che rappresenta il vostro vero indirizzo web. Considerateli come le coordinate di casa. Per esempio, 127.0.0.1:8080 è un indirizzo standard “localhost” (cioè il vostro computer).
  • Nome di dominio. Se l’indirizzo IP rappresenta le coordinate, il nome di dominio è il vostro indirizzo come appare sulla busta. Naturalmente, “kinsta.com” è uno dei milioni di esempi.
  • Una richiesta DNS. È un eccellente esempio di un task frontend di alto livello con un complesso processo di basso livello. Per ora, pensate al vostro browser che chiede ad un server dedicato qual è l’indirizzo di una serie di coordinate.
  • Un server DNS. Questo è diverso dal server del vostro sito web in quanto sono quattro server in uno. Il suo compito è quello di elaborare le richieste DNS. Ne parleremo un po’ più nel dettaglio nelle sezioni successive.
  • Server ricorsivo. Questi server sono anche chiamati “resolving name server” e fanno parte del processo di risoluzione del DNS e sono responsabili dell’interrogazione dei server per la ricerca del nome di dominio relativo ad un indirizzo IP.

Nel complesso, un DNS semplifica la ricerca di un nome di dominio per l’utente finale. È una parte fondamentale del web e, come tale, è costutuito da molte parti mobili.

Analizzeremo il processo di ricerca in sé più avanti, anche se è già chiaro che il DNS ha un lavoro vitale da svolgere.

Il Processo di Ricerca del DNS

Scusateci se offriamo quella che sembra un’analogia astratta.

Le attività che portano le persone in luoghi remoti, come l’alpinismo o la vela, condividono un pericolo specifico: perdersi e non essere trovati in tempo. Il modo tradizionale di localizzare le persone bloccate è stato quello di utilizzare le coordinate. Sono esplicite e offrono una precisione millimetrica.

Tuttavia, questo processo ha degli svantaggi. In primo luogo, dovete sapere come calcolare le coordinate di qualsiasi luogo – difficile se siete in una parte remota del mondo. In secondo luogo, dovete articolare quelle coordinate per la squadra di soccorso. Un numero sbagliato e le conseguenze sono disastrose.

L’applicazione what3words prende il complesso processo di calcolo e trasmissione delle coordinate e lo trasforma in un riassunto in tre parole della vostra posizione generale. Per esempio, prendete il quartier generale di Automattic:

Gli uffici di Automattic in Apple Maps.
Gli uffici di Automattic in Apple Maps.

Le coordinate della posizione sono 37.744159, -122.421555. A meno che tu siate navigatori esperti, però, è improbabile che lo conosciate. Anche se lo conosceste, metterlo nelle mani di qualcuno che possa aiutarvi è una ipotesi poco probabile.

In poche parole, what3words prende un insieme astratto di coordinate e le traduce in tre parole memorizzabili. Nel caso degli uffici di Automattic, è decent.transfers.sleeps:

Il sito web what3words, che mostra gli uffici di Automattic.
Il sito web what3words, che mostra gli uffici di Automattic.

Questo mette il complesso posizionamento globale nelle mani di quasi chiunque abbia accesso all’applicazione. Ha già salvato molte vite.

Questo si collega ad una ricerca DNS perché il processo è simile. Nel caso di what3words, il soccorritore chiede all’app le coordinate di una stringa di parole. La richiesta viene inviata attraverso i server per cercare le coordinate e tornare all’utente finale una volta trovate.

Una ricerca DNS ha un flusso simile:

  • Il vostro browser richiede l’indirizzo IP corrispondente a un nome di dominio.
  • Il vostro sistema operativo (OS) chiede al server ricorsivo di trovare il nome di dominio e inizia a scorrere la sua collezione di server.
  • Quando trova il nome di dominio, lo restituisce al browser.

Uno degli svantaggi di what3words è che una stringa di parole non è accurata come un insieme di coordinate. Questo significa che potete individuare una posizione generale velocemente ma potreste impiegare più tempo per trovare la persona bloccata.

Anche una ricerca DNS ha degli svantaggi e gli attaccanti malintenzionati possono approfittarne. Prima di approfondire questo punto, però, facciamo una breve deviazione per parlare del caching e di come questo può velocizzare una ricerca.

Caching del DNS

Molto simile al web caching, il DNS caching può aiutarvi a richiamare le query regolari al server. Questo renderà più veloce il processo di ricerca di un indirizzo IP per ogni nuova visita.

In breve, la cache si trova all’interno del sistema del server DNS e taglia il viaggio extra verso il server ricorsivo. Questo significa che un browser può recuperare un indirizzo IP direttamente dal server DNS e completare la richiesta GET più velocemente.

Troverete cache DNS in tutto il vostro sistema. Per esempio, il vostro computer avrà una cache DNS, così come il vostro router e il vostro internet service provider (ISP). Spesso non vi rendete conto di quanto la vostra esperienza di navigazione si basi sulla cache del DNS – fino a quando non siete vittima di DNS poisoning, ecco.

Cos’è il DNS Poisoning

Ora che abbiamo chiarito il concetto di ricerca del DNS e l’intero processo di ricerca di un indirizzo IP, possiamo vedere come può essere sfruttato.

Sentirete spesso parlare di DNS poisoning come “spoofing” perché avere un sito “assomigliante” ma fraudolento nella catena fa parte dell’attacco.

Parleremo più in dettaglio di tutti questi aspetti, ma sappiate che il DNS poisoning o spoofing è un attacco dannoso che può causare problemi mentali, monetari e di risorse per gli utenti e per internet.

Prima, però, analizziamo l’avvelenamento della cache.

Come Funziona lo Spoofing del DNS e il Cache Poisoning

Dato che l’intero processo di spoofing è complesso, gli aggressori hanno creato molti metodi per raggiungere il loro obiettivo:

  • Machine-in-the-Middle. Questo è il caso in cui un attaccante si mette tra il browser e il server DNS, li avvelena entrambi e reindirizza un utente ad un sito fraudolento sul proprio server.
  • Dirottamento del server. Se un attaccante entra nel server DNS, può riconfigurarlo per inviare tutte le richieste al proprio sito.
  • Poisoning attraverso lo spam. In contrasto con un dirottamento del server (server hijacking), questo approccio avvelena il lato client (cioè il browser). L’accesso è spesso concesso attraverso link di spam, email e annunci fraudolenti.
  • “Attacchi di compleanno” Questo è un attacco crittografico complesso che richiede qualche spiegazione in più.

Un birthday attack si basa sul “problema del compleanno” Questo è uno scenario probabilistico che dice (in poche parole) che, se ci sono 23 persone in una stanza, c’è il 50% di probabilità che due condividano lo stesso compleanno. Se ci sono più persone nella stanza, le probabilità aumentano.

Un grafico che mostra il problema del compleanno.
Un grafico che mostra il problema del compleanno. (Fonte immagine: Wikipedia)

Questo si traduce in DNS poisoning basato sull’identificatore che collega la richiesta di ricerca del DNS alla risposta GET. Se l’attaccante invia un certo numero di richieste e risposte casuali, c’è un’alta probabilità che risulti una corrispondenza in un tentativo di avvelenamento riuscito. A partire da circa 450 richieste, la probabilità è di circa il 75%, e a 700 richieste, un attaccante è quasi garantito di craccare il server.

In breve, gli attacchi al server DNS avvengono nella maggior parte dei casi perché questo dà ad un utente malintenzionato una maggiore flessibilità per manipolare il vostro sito e i dati degli utenti. Non c’è anche una verifica dei dati del DNS perché le richieste e le risposte non usano il Transmission Control Protocol (TCP).

Il punto debole della catena è la cache del DNS perché questa funge da deposito per le voci del DNS. Se un attaccante può iniettare voci contraffatte nella cache, ogni utente che vi accede si troverà in un sito fraudolento fino alla scadenza della cache.

Gli attaccanti cercheranno spesso alcuni segnali, punti deboli e punti dati da colpire. Lavorano per individuare le query DNS che non sono state ancora memorizzate nella cache perché il server ricorsivo dovrà intraprendere la query ad un certo punto. Per estensione, un attaccante cercherà anche il nameserver a cui andrà una query. Una volta ottenuto questo, la porta che il resolver utilizza e il numero di ID della richiesta sono vitali.

Anche se non è necessario soddisfare tutti questi requisiti – dopo tutto, un attaccante può accedere ai server ricorrendo a diversi metodi – spuntare queste caselle gli semplifica il lavoro.

Esempi Reali di DNS Poisoning

Nel corso degli anni ci sono stati esempi importanti di DNS poisoning. In alcuni casi, si tratta di atti intenzionali. Per esempio, la Cina gestisce un firewall su vasta scala (il cosiddetto “Grande Firewall della Cina”) per controllare le informazioni ricevute dagli utenti di internet.

In poche parole, avvelenano i propri server reindirizzando i visitatori verso siti non approvati dallo Stato come Twitter e Facebook. In un caso, le restrizioni cinesi si sono persino fatte strada nell’ecosistema del mondo occidentale.

Un errore di rete di un ISP svedese ha servito informazioni di root DNS da server cinesi. Questo significava che gli utenti in Cile e negli Stati Uniti venivano reindirizzati altrove quando accedevano ad alcuni siti di social media.

In un altro esempio, gli hacker del Bangladesh che protestavano contro i maltrattamenti in Malesia hanno avvelenato molti domini risalenti a Microsoft, Google, YouTube e altri siti di alto profilo. Questo sembra essere stato un caso di dirottamento del server piuttosto che un problema lato client o spam.

Anche WikiLeaks non è immune da attacchi di DNS poisoning. Un potenziale dirottamento del server qualche anno fa ha fatto sì che i visitatori del sito fossero reindirizzati ad una pagina dedicata agli hacker.

Il DNS poisoning non deve essere necessariamente complicato. I cosiddetti “hacker etici” – cioè coloro che cercano di esporre le falle della sicurezza invece di infliggere danni – hanno metodi semplici per testare lo spoofing sui propri computer.

A parte essere reindirizzati, però, all’inizio non sembrano esserci effetti a lungo termine del DNS poisoning. In realtà, ci sono – e ne parleremo dopo.

Perché il Poisoning del DNS e lo Spoofing Sono Così Dannosi

Un attaccante che spera di eseguire il DNS poisoning su un server si pone tre principali obiettivi:

  • Per diffondere malware.
  • Reindirizzarvi ad un altro sito web che li avvantaggerà in qualche modo.
  • Rubare informazioni, sia da voi che da altre entità.

Naturalmente, non è difficile capire perché il DNS poisoning e lo spoofing costituiscono un problema per gli ISP, gli operatori server e gli utenti finali.

Come abbiamo notato, lo spoofing è un problema enorme per gli ISP, tanto che ci sono strumenti come CAIDA Spoofer per aiutarvi.

Il sito di CAIDA.
Il sito di CAIDA.

Qualche anno fa, le statistiche mostravano che c’erano circa 30.000 attacchi al giorno. Da quando il rapporto è stato pubblicato, il numero sarà quasi certamente aumentato. Inoltre, come nel caso dell’esempio della sezione precedente, la consegna di siti oggetto di spoofing attraverso una rete porta in primo piano i problemi di fiducia degli utenti, con tutte le preoccupazioni sulla privacy.

Indipendentemente da chi siete, le vittime di poisoning e spoofing corrono diversi rischi:

  • Come per il Great Firewall of China, potreste essere soggetti a censura. Questo significa che le informazioni che ottenete non saranno accurate, il che ha un effetto a catena su molte aree sociali e politiche.
  • Il furto di dati è una delle principali preoccupazioni, ed è un’impresa lucrativa per coloro che vogliono ottenere le informazioni bancarie degli utenti e altri dati sensibili.
  • Potreste subire attacchi a diversi tipi di malware e altri virus Trojan sul vostro sistema. Per esempio, attraverso un sito spoofed un attaccante potrebbe iniettare un keylogger o altre forme di spyware sul vostro sistema.

Ci sono anche altri effetti correlati all’avvelenamento del DNS. Ad esempio, potreste non essere in grado di applicare alcun aggiornamento di sicurezza al vostro sistema mentre il processo di recupero è in pieno svolgimento. Questo lascia il vostro computer vulnerabile più a lungo.

Inoltre, considerate il costo e la complessità di questo processo di pulizia, dato che interesserà tutti lungo la catena. I prezzi più alti per tutti i servizi collegati sono solo uno degli aspetti negativi.

Lo sforzo per eliminare il DNS poisoning è enorme. Dato che lo spoofing colpisce sia le configurazioni lato client che lato server, eliminarlo da una non significa che sia sparito da tutte.

Come Prevenire il DNS Poisoning

Ci sono due aree colpite dal DNS poisoning – client e server. Daremo un’occhiata a quello che si può fare per prevenire questo dannoso attacco su entrambe le facce della medaglia.

Iniziamo con quello che Internet nel suo complesso sta facendo lato server.

Come Internet Cerca di Prevenire il DNS Poisoning e lo Spoofing Lato Server

Anche se abbiamo parlato molto di DNS in questo articolo, non abbiamo fatto notare quanto sia antiquata questa tecnologia. In breve, il DNS non è la tecnologia più adatta per una moderna esperienza di navigazione web per l’incidenza di alcuni fattori. Per cominciare, non è criptato e, senza alcune considerazioni essenziali di convalida, questo fermerebbe molti attacchi di DNS poisoning.

Un modo rapido per evitare che gli attacchi diventino più forti è attraverso una semplice strategia di registrazione. Questo esegue un confronto diretto tra la richiesta e la risposta per verificarne la corrispondenza.

Tuttavia, la risposta a lungo termine (secondo gli esperti) è l’utilizzo del Domain Name System Security Extensions (DNSSEC). Si tratta di una tecnologia progettata per combattere il DNS poisoning e, in termini semplici, mette in atto diversi livelli di verifica.

Andando più a fondo, il DNSSEC utilizza come verifica la “crittografia a chiave pubblica”. Questo è un modo per firmare i dati come genuini e degni di fiducia. Viene memorizzato insieme alle vostre altre informazioni DNS e il server ricorsivo lo usa per controllare che nessuna delle informazioni che riceve sia stata alterata.

Rispetto ad altri protocolli e tecnologie internet, il DNSSEC è relativamente nuovo – ma è abbastanza maturo da essere implementato nel livello principale di internet, anche se non è ancora mainstream. Il Public DNS di Google è un servizio che supporta pienamente il DNSSEC, ma ne spuntano altri in continuazione.

Anche così, ci sono ancora vari inconvenienti del DNSSEC che vale la pena notare:

  • Il protocollo non cripta le risposte. Questo significa che gli aggressori possono comunque “ascoltare” il traffico, anche se gli attacchi dovranno essere più sofisticati per bypassare il DNSSEC.
  • Dato che il DNSSEC utilizza record extra per raccogliere dati DNS, c’è un’altra vulnerabilità chiamata “zone enumeration”. Questa utilizza un record per “camminare attraverso” e raccogliere tutti i record DNS all’interno di una specifica “zona”. Alcune versioni di questo record criptano i dati, ma altre non lo fanno ancora.
  • Il DNSSEC è un protocollo complesso e, poiché è anche nuovo, a volte può essere mal configurato. Naturalmente, questo può erodere i benefici del suo utilizzo e presentare ulteriori problemi in futuro.

Anche così, il DNSSEC è il futuro, sul lato server, almeno. Per quanto riguarda voi come utenti finali, avete a disposizione alcune misure preventive.

Come Prevenire il DNS Poisoning Lato Client

Ci sono più modi per prevenire l’avvelenamento del DNS sul lato client, anche se nessuno da solo sarà solido come il DNSSEC lato server implementato da un esperto. Tuttavia, ci sono alcune semplici cose che può fare il proprietario di un sito:

  • Usare la crittografia end-to-end per qualsiasi richiesta e risposta. I certificati Secure Sockets Layers (SSL) qui fanno un buon lavoro.
  • Impiegare strumenti di rilevamento dello spoofing. Questi scansionano i pacchetti di dati ricevuti prima di inviarli. Questo mitiga qualsiasi trasferimento di dati malevolo.
  • Aumentare i valori del Time-To-Live (TTL) per la cache DNS contribuisce ad eliminare le voci dannose prima che possano raggiungere gli utenti finali.
  • Dovreste avere una buona strategia DNS, DHCP e IPAM (DDI) in atto. Questa consiste nella vostra strategia DNS, nel Dynamic Host Configuration Protocol e nella gestione degli indirizzi IP. È una procedura complessa ma necessaria, gestito da sysadmin ed esperti di sicurezza del server.

Come utenti finali, potete fare anche altre cose per prevenire il poisoning e lo spoofing:

  • Utilizzare una rete privata virtuale (VPN), in quanto i vostri dati saranno criptati da un capo all’altro. Avrete anche l’uso di server DNS privati, sempre con crittografia end-to-end.
  • Prendere semplici precauzioni, come non cliccare su link non riconosciuti ed effettuare regolari scansioni di sicurezza.
  • Svuotare regolarmente la cache del vostro DNS per eliminare i dati dannosi anche dal vostro sistema. È qualcosa che richiede pochi secondi ed è semplice da eseguire.

Mentre non potete sbarazzarvi del tutto del DNS poisoning, potete evitare che accada il peggio. Come utenti finali, non avete un gran controllo su come il server gestisce gli attacchi. Allo stesso modo, i sysadmin non hanno il controllo su ciò che accade nel browser. Dunque, è un lavoro di squadra per impedire che il più dannoso degli attacchi colpisca l’intera catena.

Riepilogo

Gli attacchi Internet sono frequenti. Il DNS poisoning (o spoofing) è un attacco comune che può colpire milioni di utenti se non controllato. Questo perché il protocollo DNS è vecchio e inadatto alla moderna navigazione web – anche se nuove tecnologie sono all’orizzonte.

In breve, il DNS poisoning reindirizza un utente finale ad una versione fraudolenta di un sito web esistente. È un modo per rubare dati e infettare i sistemi con malware. Non c’è un modo infallibile per prevenirlo del tutto, ma potete contenerlo adottando alcune semplici contromisure.

Siete mai stati vittime di DNS poisoning o spoofing e, se sì, qual è stata la causa? Condividete la vostra esperienza con noi nella sezione dei commenti qui sotto!

Jeremy Holcombe Kinsta

Content & Marketing Editor presso Kinsta, web developer di WordPress e content writer. Al di fuori di tutto ciò che riguarda WordPress, mi piacciono la spiaggia, il golf e il cinema. Ho anche i problemi di tutte le persone più alte della media ;).