Poiché il DNS di solito funziona su UDP, i pacchetti di risposta possono essere facilmente falsificati. I pacchetti UDP sono identificati dalla combinazione di indirizzo IP di origine e di destinazione e numeri di porta di origine e destinazione.
Il classico attacco di avvelenamento DNS consiste nell'inviare a un server DNS una query che, a tuo avviso, farà sì che il server esegua una ricerca ricorsiva e poi esploda sul server con pacchetti di risposta falsificati per la richiesta secondaria che il server si aspetta . Se ottieni le giuste combinazioni IP / porta e ID transazione e la tua risposta arriva per prima, la tua risposta simulata potrebbe essere accettata e inserita nella cache.
Bene, conosciamo in anticipo l'indirizzo IP di origine e destinazione e sappiamo che il DNS gira sulla porta 53, quindi questo è uno dei numeri di porta. Supponendo che le query DNS vengano inviate dalla porta 53 e che vengano inviate alla porta 53, allora abbiamo tutto 4. Quindi tutto ciò di cui dobbiamo preoccuparci è l'ID della transazione, che è un numero di 16 bit. Ciò significa che ogni pacchetto che inviamo ha una probabilità di 1 su 65K di colpire l'oro. Potremmo facilmente spammare diverse migliaia di pacchetti in appena un secondo circa, il che ci dà una buona possibilità di avvelenare la cache del server. Se distribuiamo pacchetti di risposta 10K prima che arrivi la risposta "reale", ciò ci dà un 1 su 6 di probabilità complessiva di successo. E se fallisce, aspettiamo la scadenza e riprova.
Tuttavia, se il server utilizza un numero di porta in uscita casuale su query di ricerca ricorsive, aggiunge un altro valore di 16 bit di materiale che dobbiamo indovinare perché la nostra risposta sia accettata. Quindi questo è un totale di 32 bit, o circa 4 miliardi di possibilità. Ciò significa che le nostre quote per ogni pacchetto vanno da 1 a 65.536 a 1 su 4.294.967.296, che diventa un po 'proibitivo.
Quindi, mentre non puoi essere sicuro al 100% che una risposta non sia falsificata, le probabilità sono ponderate molto più a favore del difensore se randomizza le sue porte di origine per le sue ricerche secondarie; abbastanza da dissuadere la maggior parte degli attaccanti dall'investire le risorse per provare l'attacco.