Spoofing DNS e cache poisoning: come funzionano e cosa li ferma
Lo spoofing DNS non richiede di intercettare traffico reale. Richiede di indovinare correttamente e arrivare per primi — la cache di un resolver accetta qualunque risposta arrivi prima di quella genuina.
Cos'è lo spoofing DNS
Lo spoofing DNS falsifica una risposta DNS in modo che un resolver metta in cache e serva un indirizzo IP scelto dall'attaccante invece di quello reale. Una volta che una risposta falsificata è in cache, ogni client che usa quel resolver la riceve finché il TTL non scade — senza bisogno di ulteriori azioni da parte dell'attaccante.
Il problema di essere fuori percorso
Un attaccante che non si trova sul percorso di rete tra il resolver e il vero server autoritativo non può semplicemente leggere o modificare il traffico genuino. La risposta falsificata deve invece essere indovinata e consegnata prima che arrivi la vera risposta autoritativa — è una corsa, non un'intercettazione.
Cosa bisogna indovinare
Un resolver identifica una risposta valida tramite un ID di transazione a 16 bit e la porta sorgente UDP da cui è stata inviata la query. L'attacco Kaminsky del 2008 ha mostrato come trasformare un singolo tentativo a bassa probabilità in un attacco praticabile: ingannare un resolver facendogli cercare molti sottodomini diversi e inesistenti dello stesso dominio dà a un attaccante molte corse indipendenti per vincere lo stesso slot di cache, poiché qualsiasi falsificazione riuscita avvelena i record del dominio superiore.
L'impatto di un avvelenamento riuscito
Una volta avvelenato, il resolver reindirizza silenziosamente ogni client che lo interroga — verso un sito di phishing, un punto di iniezione di annunci, qualsiasi cosa l'attaccante abbia scelto — senza toccare nemmeno uno dei sistemi delle vittime, per tutta la durata del TTL del record falsificato.
Perché il DNSSEC ferma questo
Un resolver che convalida controlla una catena di firme crittografiche fino a una radice fidata prima di accettare una risposta. Un attaccante che vince la corsa a indovinare non possiede comunque la chiave privata di firma della zona, quindi la risposta falsificata non può produrre una firma valida — indovinare correttamente ID di transazione e porta diventa irrilevante non appena è la convalida stessa a verificare l'autenticità.
Controlla il DNSSEC di un dominio
Vedi la teoria in pratica: esegui Verifica DNSSEC sul tuo dominio.