Se è possibile raccogliere preventivamente le informazioni sul DNS, impostare tali dati in un file host prioritario. In caso contrario, dovresti forzare le query a server DNS quasi casuali su Internet, idealmente da una rete completamente separata per evitare modifiche man in the middle (possibilmente tramite un telefono cellulare su una rete carrier) e confrontare i risultati con quello che hai ottenuto dal server DNS discutibile.
Per informazioni su come raccogliere informazioni DNS / IP sicure, verificare i Certificati tramite TLS / SSL se i sistemi remoti supportano TLS / SSL (possibilmente altri protocolli che utilizzano anche certificati).
Un'implementazione Split DNS ben configurata, in cui i server DNS interni non effettuano il pull dai server DNS esterni, previene l'avvelenamento esterno delle risoluzioni DNS interne.
È una grande domanda e un difetto di design interessante con cui tutti dobbiamo lavorare.
Penso che la parte importante sia sapere come implementare Split DNS in modo corretto in modo che i tuoi host interni non vengano avvelenati.
Potresti anche eseguire il tunneling di tutte le tue richieste DNS verso un server fidato o un set di server per evitare il problema dell'uomo nel mezzo.
La soluzione più complicata è riscrivere il client DNS per interrogare vari server DNS affidabili per confrontare i risultati con quelli locali per rilevare l'avvelenamento DNS.