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.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Nome del dominio
Registrar di nomi di dominio
Sicurezza DNS: quali attacchi la minano
Record DNS, cos’è e come funziona
DNS inverso
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Il DNS cache poisoning, o "avvelenamento della cache DNS", è l'atto di inserire informazioni false in una cache DNS, in modo che le query DNS restituiscano una risposta errata e gli utenti vengano instradati verso i siti web sbagliati. Il DNS cache poisoning è anche noto come "DNS spoofing". Gli indirizzi IP sono i "numeri di telefono" di Internet, e permettono al traffico del web di arrivare nel posto giusto. Le cache del resolver DNS sono come un elenco telefonico, e quando memorizzano informazioni errate, il traffico viene indirizzato verso luoghi errati fino a che le informazioni memorizzate nella cache non vengono corrette. (Nota: ciò non disconnette effettivamente i siti web reali dai loro indirizzi IP reali.)
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.
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.
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 memorizzata nel 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:
Cache DNS "avvelenata":
Invece di utilizzare il TCP, che richiede a entrambe le parti comunicanti di eseguire un "handshake" per avviare la comunicazione, le richieste e le risposte DNS utilizzano l’UDP, User Datagram Protocol. Con UDP, non vi è alcuna garanzia che una connessione sia aperta o che il destinatario sia pronto a riceverla. L’UDP è vulnerabile alla falsificazione per questo motivo: un utente malintenzionato può inviare un messaggio tramite l’UDP e fingere che sia una risposta da un server legittimo falsificando i dati dell'intestazione.
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:
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.
*Nel gergo della rete, una porta è un punto virtuale di ricezione di una comunicazione. I computer dispongono di più porte, ognuna con il proprio numero, e affinché i computer possano comunicare tra loro, è necessario designare determinate porte per determinati tipi di comunicazione. Per esempio, le comunicazioni HTTP vanno sempre alla porta 80, mentre HTTPS utilizza sempre la porta 443.
Nei loro paesi, diversi governi hanno intenzionalmente "avvelenato" le cache DNS al fine di negare l'accesso a determinati siti o risorse web.
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.
Proprio come TLS/SSL, DNSSEC utilizza la crittografia a chiave pubblica (un modo per firmare digitalmente le informazioni) per verificare e autenticare i dati. Le estensioni DNSSEC sono state pubblicate nel 2005, ma il DNSSEC non è ancora ampiamente diffuso, lasciando il DNS ancora vulnerabile agli attacchi.