Qualcuno potrebbe spiegare come potrebbe verificarsi l'avvelenamento del DNS in questo scenario?

10

Ho letto la seguente dichiarazione in un blog sulla sicurezza

using the same source port over and over again for dns queries instead of randomizing them is a vulnerability for dns poisoning

Qualcuno potrebbe approfondire come questa sia una vulnerabilità e come possa essere sfruttata?

    
posta DaTaBomB 24.05.2012 - 06:50
fonte

2 risposte

13

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.

    
risposta data 24.05.2012 - 11:27
fonte
1

Ci sono molti fattori che giocano un ruolo importante nell'avvelenamento da DNS, ma molto probabilmente il principale è timing . L'uso della stessa porta di origine più e più volte conferisce all'aggressore un enorme vantaggio in termini di tempo, poiché conosce già la porta alla quale ha bisogno di inviare le sue richieste. Se un utente malintenzionato, con un server DNS canaglia, è in grado di rispondere alla richiesta in modo più veloce rispetto al server DNS effettivo, può reindirizzare la query (ad esempio www.esempio.com) a un indirizzo IP da lui controllato. Se ha configurato un sito web identico a www.example.com, non noteresti alcuna differenza tra i due.

Ecco perché, come tecnica di prevenzione e mitigazione, le richieste DNS avranno porte sorgente casuali. Questo e altri meccanismi (l'uso di numeri casuali protetti da crittografia per selezionare sia la porta di origine che il nonce di crittografia a 16 bit) riducono notevolmente la probabilità di avvelenamento da DNS e altri attacchi DNS.

    
risposta data 24.05.2012 - 10:19
fonte

Leggi altre domande sui tag