Che cos'è il DNS cache poisoning? | DNS spoofing

Gli aggressori possono avvelenare una cache DNS ingannando i resolver DNS facendogli memorizzare delle informazioni false, portando al resolver che invia l'indirizzo IP errato ai client e gli utenti che tentano di navigare su un sito Web verranno indirizzati nel posto sbagliato.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire il DNS Cache Poisoning
  • Scoprire come funziona la memorizzazione nella cache DNS
  • Spiegare come gli aggressori possono avvelenare una cache DNS
  • Comprendere come il DNSSEC aiuta a prevenire attacchi di DNS poisoning

Argomenti correlati


Vuoi saperne di più?

Ricevi un riepilogo mensile degli approfondimenti Internet più popolari!

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Free DNS included with any Cloudflare plan

Cos'è il DNS cache poisoning?

DNS cache poisoning is the act of entering false information into a DNS cache, so that DNS queries return an incorrect response and users are directed to the wrong websites. DNS cache poisoning is also known as 'DNS spoofing.' IP addresses are the 'phone numbers' of the Internet, enabling web traffic to arrive in the right places. DNS resolver caches are like a directory that lists these phone numbers, and when they store faulty information, traffic goes to the wrong places until the cached information is corrected. (Note that this does not actually disconnect the real websites from their real IP addresses.)

Poiché in genere non è possibile per i resolver DNS verificare i dati nelle loro cache, le informazioni DNS errate rimangono nella cache fino alla scadenza del time to live (TTL) o fino a quando non vengono rimosse manualmente. Esistono varie vulnerabilità che rendono possibile il DNS poisoning, ma il problema principale è che il DNS è stato creato per un Internet molto più piccolo, basato su un principio di fiducia (molto simile al BGP. Un protocollo DNS più sicuro, chiamato DNSSEC, mira a risolvere alcuni di questi problemi, ma non è stato ancora ampiamente adottato.

Cosa fanno i resolver DNS?

I resolver DNS forniscono ai client l'indirizzo IP associato a un nome di dominio. In altre parole, prendono indirizzi di siti web leggibili dall'uomo come "cloudflare.com" e li traducono in indirizzi IP leggibili automaticamente. Quando un utente tenta di accedere a un sito web, il loro sistema operativo invia una richiesta a un resolver DNS. Il resolver DNS risponde con l'indirizzo IP e il browser prende questo indirizzo e avvia il caricamento del sito web.

Come funziona il caching DNS?

Un resolver DNS salverà le risposte alle richieste di indirizzi IP per un certo periodo di tempo. In questo modo, il resolver può rispondere alle query future molto più rapidamente, senza la necessità di comunicare con i numerosi server coinvolti nel tipico processo di risoluzione DNS. I resolver DNS salvano le risposte nella loro cache fino a quando lo consente il TTL (time-to-live) designato associato a quell'indirizzo IP.

Risposta non memorizzata nel DNS:

Risposta non memorizzata nel DNS

Risposta memorizzata nel DNS:

Risposta memorizzata nel DNS

In che modo gli aggressori "avvelenano" le cache DNS?

Gli aggressori possono avvelenare le cache DNS impersonando i nameserver DNS, facendo una richiesta a un resolver DNS e quindi falsificando la risposta quando il resolver DNS interroga un nameserver. Ciò è possibile perché i server DNS utilizzano UDP invece di TCP e perché al momento non esiste verifica per le informazioni DNS.

Processo di cache poisoning del DNS:

Processo di cache poisoning del DNS

Cache DNS "avvelenata":

Cache DNS "avvelenata"

Instead of using TCP, which requires both communicating parties to perform a 'handshake' to initiate communication, DNS requests and responses use UDP, or the User Datagram Protocol. With UDP, there is no guarantee that a connection is open or that the recipient is ready to receive. UDP is vulnerable to forging for this reason – an attacker can send a message via UDP and pretend it is a response from a legitimate server by forging the header data.

Se un resolver DNS riceve una risposta falsa, accetta e memorizza nella cache i dati in modo acritico, perché non è possibile verificare se le informazioni sono accurate e provengono da una fonte legittima. Il DNS è stato creato agli albori di Internet, quando gli unici enti ad esso collegati erano università e centri di ricerca. Non c'era motivo di aspettarsi che qualcuno potesse provare a diffondere false informazioni DNS.

Nonostante questi punti principali di vulnerabilità nel processo di memorizzazione nella cache DNS, gli attacchi di DNS poisoning non sono semplici. Poiché il resolver DNS in realtà esegue una query sul nameserver autoritativo, gli aggressori hanno solo pochi millisecondi per inviare la risposta falsa prima che arrivi la risposta reale dal nameserver autoritativo.

Per eseguire attacchi di DNS spoofing, gli aggressori devono anche conoscere o supporre una serie di fattori:

  • Quali query DNS non vengono memorizzate nella cache dal resolver DNS di destinazione, in modo che il resolver interroghi il nameserver autoritativo
  • What port* the DNS resolver is using – they used to use the same port for every query, but now they use a different, random port each time
  • Il numero identificativo della richiesta
  • A quale nameserver autoritativo andrà la query

Gli aggressori possono ottenere l'accesso al resolver DNS anche in altri modi. Se una parte dannosa opera, compromette od ottiene l'accesso fisico a un resolver DNS, può facilmente modificare i dati memorizzati nella cache.

*In networking, a port is a virtual point of communication reception. Computers have multiple ports, each with their own number, and for computers to talk to each other, certain ports have to be designated for certain kinds of communication. For instance, HTTP communications always go to port 80, and HTTPS always uses port 443.

Spoofing e censura DNS

Nei loro paesi, diversi governi hanno intenzionalmente "avvelenato" le cache DNS al fine di negare l'accesso a determinati siti o risorse web.

In che modo DNSSEC contribuirà a impedire il DNS poisoning?

DNSSEC è l'acronimo di “Domain Name System Security Extensions” ed è un mezzo per verificare l'integrità e l'origine dei dati DNS. Il DNS è stato progettato originariamente senza tale verifica, motivo per cui è possibile il DNS poisoning.

Much like TLS/SSL, DNSSEC uses public key cryptography (a way of digitally signing information) to verify and authenticate data. DNSSEC extensions were published in 2005, but DNSSEC is not yet mainstream, leaving DNS still vulnerable to attacks.