Spesso non ci rendiamo conto di essere reindirizzati a un altro server. Questo ci rende vulnerabili

Leggendo un articolo di Zbigniew Banach sul blog di Netsparker, è emerso un problema serio: secondo il funzionamento del DNS, se un attaccante riesce a riempire la cache di dati falsi, il resolver potrebbe restituire un indirizzo contraffatto invece di eseguire una query per quello reale.

Di conseguenza, l'utente potrebbe connettersi a un sito dannoso all'indirizzo restituito dalla cache. Sebbene relativamente difficile da eseguire, tali attacchi di spoofing DNS non possono essere completamente evitati con le attuali tecnologie web, rendendoli quindi uno strumento pericoloso nelle mani dei criminali informatici.

Banach, giocando con le parole, definisce il Caching DNS "Insecure by Design": Il Domain Name System (DNS) fornisce un servizio di directory gerarchico e distribuito per mappare i nomi dei domini Internet agli indirizzi.

Richiedi ora una demo gratuita one-to-one di Netsparker, il Web Application Security Scanner che scopre le vulnerabilità dei tuoi siti


Il DNS è una parte fondamentale dell'infrastruttura Internet, ma è anche uno dei più antichi protocolli Internet ancora in uso. In effetti, DNS risale al lontano RFC 882 e RFC 883 del 1983, dove fu proposto per la prima volta il concetto stesso di nomi di dominio per ARPANET. La progettazione decentralizzata di DNS ha introdotto una struttura gerarchica di query combinata con più livelli di memorizzazione nella cache per accelerare l'elaborazione delle richieste.

La sicurezza, tuttavia, non era una considerazione vitale nella nascente Internet. Il DNS è stato progettato per essere il più semplice ed efficiente possibile in un ambiente limitato di attori fidati che comunicavano su collegamenti lenti con aggiornamenti di nomi di dominio non frequenti. Oggi, con accesso pubblico a Internet su vasta scala, il sistema dei nomi di dominio è fondamentalmente vulnerabile. Il protocollo originale non proteggeva dallo spoofing e mentre RFC 5452 (Misure per rendere il DNS più resiliente contro le risposte contraffatte) ha introdotto una certa protezione, DNS non fornisce ancora controlli sulla privacy. Le comunicazioni DNS vengono generalmente inviate non crittografate nei pacchetti UDP senza alcuna autenticazione (a meno che DNSSEC non sia abilitato per l'autenticazione), rendendo relativamente semplice lo spoofing delle risposte DNS. 

 

DNS Spoofing

Gli attacchi di spoofing DNS sfruttano l'ampia dipendenza dai dati memorizzati nella cache per la risoluzione dei nomi di dominio. Funzionano riempiendo (avvelenando) la cache del resolver con false informazioni DNS nella speranza che vengano inviate come risposte valide ai client richiedenti.

Di seguito sono descritti due approcci di attacco principali. 

Basic Cache Poisoning

Il più semplice attacco di avvelenamento DNS inizia con l'attaccante che invia una query al risolutore mirato, chiedendo l'indirizzo del dominio che vogliono falsificare. Supponendo che il dominio non sia già memorizzato nella cache, il resolver inizia il suo ciclo di query nella gerarchia DNS.

Prima che possa arrivare una risposta valida, l'attaccante bombarda il risolutore con risposte contraffatte contenenti informazioni DNS false per il dominio.

Questo attacco di avvelenamento di base è possibile solo se il dominio non è già memorizzato nella cache, quindi di solito non funziona per domini popolari che rendono gli obiettivi più interessanti. Sebbene sia possibile sovrascrivere i record DNS memorizzati nella cache, ciò richiede un attacco separato contro un'implementazione specifica del resolver.

Cache Poisoning avanzato utilizzando ulteriori informazioni

Un altro tipo di attacco più avanzato utilizza informazioni aggiuntive nelle risposte DNS per indurre il risolutore a considerare la macchina dell'attaccante come il server dei nomi autorevole.

L'attacco inizia in modo simile all'esempio di base, ma l'attaccante chiede deliberatamente un sottodominio inesistente, costringendo il risolutore a cercare invano un server autorevole. Le risposte falsificate contengono informazioni aggiuntive, fingendo di provenire da server che non hanno la risposta ma indicano l'indirizzo IP dell'attaccante come server autorevole per il dominio principale.

In caso di successo, questo attacco può preparare il terreno per ulteriori spoofing, poiché il risolutore della vittima ora tratta la macchina dell'attaccante come server DNS autorevole per questo dominio, sostituendo potenzialmente quello valido nella sua cache. 

 

Come affrontare la minaccia del DNS Poisoning?

La risoluzione dei nomi di dominio è una parte cruciale del funzionamento di Internet, quindi qualsiasi attacco riuscito può sfruttare la fiducia dell'utente in un dominio noto per installare malware, eseguire phishing, impostare attacchi man-in-the-middle e così via. Sfortunatamente, poiché il DNS è fondamentalmente insicuro, non esiste una protezione universale da tutti i vettori di attacco avvelenamento da cache.

Tuttavia, sono possibili alcune operazioni (almeno fin quando non saranno adottati protocolli più sicuri).

Il Cache Poisoning si basa sull'attaccante che ritarda le risposte del server DNS, quindi l'utilizzo di un risolutore DNS veloce e resistente al DoS può fare molto per prevenire attacchi di successo.

Per gli utenti finali, ciò significa che è molto più sicuro utilizzare un server DNS sicuro gestito da un importante fornitore di servizi Internet, come il DNS pubblico di Google a 8.8.8.8 e 8.8.4.4 o il resolver DNS pubblico di Cloudflare all'1.1.1.1. Questi grandi player dispongono del know-how tecnico e delle risorse per configurare in modo sicuro il DNS e assorbire anche i tentativi DoS su larga scala. 

Mentre la randomizzazione delle porte e altre pratiche consigliate in RFC 5452 hanno reso molto più difficile lo spoofing DNS, rimane una minaccia praticabile fino all'adozione di tecnologie più sicure.

Attualmente nelle notizie è prevista l'adozione del DNS su HTTPS (DoH), già supportato da attori del calibro di Google, Microsoft e Mozilla. Ciò incapsulerà l'attuale protocollo DNS all'interno della comunicazione HTTPS sicura e imporrà l'uso dei principali resolver DNS. Mentre DoH è controverso per molte ragioni, attualmente sembra il modo più pratico per portare sicurezza e privacy al DNS per il pubblico in generale. Per includere funzionalità di sicurezza nel protocollo stesso, DNSSEC viene anche gradualmente adottato dai principali ISP.

 

Scopri le vulnerabilità dei tuoi siti: richiedi ora una DEMO GRATUITA ONE-TO-ONE DI NETSPARKER, il Web Application Security Scanner.

 

Leggi l'articolo originale di Zbigniew Banach: How DNS Cache Poisoning Attacks Work