Breve introduzione al DNS (passa a una lunga spiegazione del DNS)

Ai dispositivi connessi a Internet sono assegnati numeri unici chiamati indirizzi IP. Conoscete questo sito come RouterSecurity.org e il suo indirizzo IP è 216.92.136.14. Tutte le comunicazioni su Internet si basano su questi numeri unici, i nomi dei siti web e dei computer sono solo una comodità. Il sistema che traduce i nomi nei sottostanti indirizzi IP numerici è chiamato DNS (Domain Name System) e i computer che fanno la traduzione sono chiamati server DNS.

I server DNS sono estremamente importanti. Probabilmente il 99% di tutte le comunicazioni tra due computer su Internet, inizia con una chiamata a un server DNS per tradurre il nome di un computer in un indirizzo IP.

I server DNS malevoli possono fare ciò che qualsiasi traduttore malevolo può fare: mentirvi. Per esempio, potrebbero inviarvi a una copia truffaldina di un sito web. Come per il cibo, non dovresti prendere i server DNS da uno sconosciuto.

Puoi controllare un computer o un router per vedere quali dovrebbero essere i tuoi server DNS, ma le pagine qui sotto mostrano quali sono effettivamente. Riportano i server DNS che il vostro dispositivo informatico sta attualmente utilizzando. Abbiamo bisogno di test come questi perché ci sono quattro posti da cui i server DNS potrebbero provenire: il router a cui è collegato un dispositivo informatico, il dispositivo informatico stesso, il software client VPN in esecuzione sul dispositivo informatico o un browser web configurato per utilizzare DNS criptato (DoH o DoT). Per saperne di più sul DNS criptato vedi l’argomento Encrypted DNS sul mio sito Defensive Computing Checklist.

Nota: Se un browser web sta usando il DNS criptato mentre un altro, sullo stesso dispositivo informatico, non lo fa, allora aspettatevi che i test qui sotto mostrino risultati diversi in ogni browser.

Scopri i tuoi attuali server DNS

  • DNS Leak Test è sponsorizzato dal provider VPN IVPN. Offre un rapido test standard e un test esteso più lento. Entrambi riportano l’indirizzo IP, il nome dell’host, l’ISP e il paese per ogni server DNS rilevato (nessuna città).
  • DNS Leaktest del provider VPN Perfect Privacy riporta l’indirizzo IP, il nome dell’host, l’ISP e il paese dell’host per ogni server DNS rilevato.
  • A browserleaks.com/ip è necessario scorrere in basso per vedere i server DNS. Riporta l’indirizzo IP, ISP, città e paese dei server DNS. Non riporta gli hostname dei server DNS. La pagina mostra anche molte altre informazioni utili come il tuo indirizzo IP pubblico, il nome dell’host, la posizione e l’ISP.
  • DNS Leak Test del provider VPN ExpressVPN riporta l’indirizzo IP, il Paese e il “Provider” per ogni server DNS rilevato. Non riporta l’hostname o la città. Nota che avverte sempre che “Il tuo DNS è esposto!” che in realtà significa che non sei connesso a ExpressVPN.
  • Se stai usando OpenDNS, puoi verificarlo su www.opendns.com/welcome/. Piuttosto che mostrare tutti i server DNS rilevati, riporta semplicemente uno stato SI/NO sul fatto che OpenDNS sia in uso.
  • Cloudflare ha una pagina per i tester su cloudflare-dns.com/help. Un URL più memorabile che funziona anche è 1.1.1.1/help. La cosa più importante che riporta sembra essere “Connected to 1.1.1.1.1” che è SI/NO. Se stai usando Cloudflare, mostra lo stato di DNS su HTTPS e DNS su TLS. Il “AS Name” identifica l’ISP del tuo provider DNS. Probabilmente non è utile quando si usa una VPN ma dirà “Cloudflare” se si usa il loro servizio. Testa anche la capacità del tuo computer di connettersi a 1.1.1.1 e 1.0.0.1 e ai loro fratelli IPv6. Solo un’altra cosa: forniscono anche www.cloudflarestatus.com che riporta lo stato generale del loro servizio. Ironicamente, se il loro servizio è giù, bloccherà i loro utenti dal vedere questo sito web. Non è possibile accedere a cloudflarestatus.com dall’indirizzo IP (216.146.46.11). Ho provato.
    Aggiornamento. 2 aprile 2020: Cloudflare ha appena annunciato due nuovi servizi DNS di filtraggio. Quello ancorato a 1.1.1.2 (il backup è 1.0.0.2) filtra il malware e quello ancorato a 1.1.1.3 (il backup è 1.0.0.3) filtra sia il malware che il porno. Ad oggi, non sembrano avere tester specifici per questi nuovi servizi. A partire da luglio 2020, questi nuovi servizi non sono disponibili come DNS criptato.
    Aggiornamento. 27 maggio 2020: Si noti che la pagina di test di Cloudflare è interessata solo a Cloudflare. Quindi, quando dice che né DoH né DoT vengono utilizzati, significa che non vengono utilizzati con Cloudflare. Un browser web che sta usando DoH o DoT con un altro provider DNS, sarà segnalato come non sta usando DoH o DoT.
  • NextDNS non ha una pagina web dedicata ai tester, ma il loro sito web ha lo stesso scopo. Per testare NextDNS, andate sul loro sito web e cliccate sul grande pulsante blu che dice “Provalo ora gratuitamente”. La parte superiore della pagina risultante dirà: “Tutto bene! Questo dispositivo sta usando NextDNS con questa configurazione” se NextDNS viene usato. In caso contrario, la pagina dirà: “Questo dispositivo non sta usando NextDNS. Questo dispositivo sta usando xxxxxx come risolutore DNS”. Si noti che entrambi i messaggi sono formulati male. Il test non si applica necessariamente a tutto il sistema, è garantito solo per il browser web attualmente in uso. Altri browser sullo stesso sistema e il sistema operativo stesso potrebbero utilizzare diversi provider DNS.
    Aggiornamento. 14 giugno 2020: Grazie a Reddit, ho appreso oggi che NextDNS ha una pagina di tester: test.nextdns.io. Tuttavia, non ho trovato alcuna documentazione su di essa. Giocando con esso ho scoperto che uno stato di “ok” e un protocl di “DOH” significa che il browser/OS sta usando NextDNS. Uno stato di “unconfigured” significa che non sta usando NextNDS.Quando NextDNS è in uso, mostra anche il tuo indirizzo IP pubblico (IP client) e l’indirizzo IP del server NextDNS.
  • Il Tenta VPN tester riporta più dettagli sui tuoi server DNS di qualsiasi altro posto che io conosca. Per ogni server DNS rilevato riporta l’indirizzo IP, l’ISP, la città, lo stato e il paese. Non mostra l’hostname. Mostra se TLS è abilitato, se DNSSEC è abilitato e molti altri attributi di ogni server DNS che sono, francamente, sopra la mia testa e non spiegati. Dà anche un voto al server DNS. La pagina testa anche molte altre cose.
  • ipx.ac è del provider VPN VPN.ac. Clicca sul grande fondo arancione in fondo alla pagina per vedere l’indirizzo IP, il paese e l’ISP dei server DNS rilevati. Non mostra i nomi di ogni server DNS. Testa molto di più dei soli DNS.
  • Sono Mullvad? è una pagina di tester VPN per la VPN Mullvad. Oltre a confermare che sei connesso alla loro VPN, mostra anche l’indirizzo IP, il nome e il paese dei tuoi server DNS. E testa anche WebRTC.
  • Se usi AdGuard per i DNS, la loro pagina panoramica include un tester e confermerà/negherà l’uso del loro servizio (è da qualche parte a metà della pagina molto lunga. Inoltre hanno una pagina dedicata al tester che testa sia il loro servizio DNS che altri loro software.
  • dnsleak.com è sponsorizzato e gestito da London Trust Media, la società dietro il provider VPN Private Internet Access. Riporta l’indirizzo IP, l’hostname, la città e il paese per ogni server DNS rilevato, ma non l’ISP. Una cosa carina dei risultati del test è che mostra il tuo indirizzo IP pubblico proprio accanto all’indirizzo IP del server DNS. Se sei su una VPN che usa il server VPN come server DNS, puoi facilmente verificare che sia così. Tuttavia, quando ho provato l’ultima volta nel settembre 2020, il test si è bloccato e non ha riportato nulla. Ho provato più computer, più browser.
  • www.whatsmydnsserver.com è di Sericon Technology. Riporta un singolo server DNS anche quando altri tester ne riportano più di uno. Mostra l’indirizzo IP e il “Proprietario” del server DNS.
  • F-Secure Router Checker non controlla realmente i router, semplicemente riporta un server DNS. Tutti gli altri controllori di server DNS riportano su più server DNS rilevati, ma F-Secure riporta solo su uno. L’azienda dice che il loro obiettivo è quello di assicurare che il router stia utilizzando un “server DNS autorizzato”, ma non esiste una cosa del genere e non la definiscono.
  • ipleak.net è del provider VPN AirVPN. Per ogni server DNS, riporta l’indirizzo IP e la posizione. Nessun ISP o hostname. Riporta anche molte altre cose come WebRTC e la tua risoluzione dello schermo. Questa è l’opzione che preferisco di meno perché il carattere utilizzato per gli indirizzi IP è quasi illeggibile. È anche disponibile sulle porte 8000 e 62222.

TEST DI SISTEMA OPERATIVO

Per vedere cosa sta usando il sistema operativo per il DNS, al di fuori di qualsiasi browser web, possiamo usare il comando nslookup sui sistemi operativi desktop (Windows, macOS, Linux). La sintassi del comando è molto semplice: “nslookup domainname”. La prima cosa restituita dal comando è il nome e l’indirizzo IP del server DNS predefinito. Qui sotto c’è uno screenshot di Windows 7 che mostra che il sistema sta usando il server DNS dns9.quad9.net all’indirizzo IP 9.9.9.9.

comandonslookup su Win7

Le configurazioni DNS nel sistema operativo possono essere tutte diverse. Ci possono essere diversi server DNS configurati per Ethernet vs. Wi-Fi. E, ogni rete wireless (SSID) può essere configurata per utilizzare diversi server DNS. Android 9, 10 e 11 permettono un’impostazione DNS globale per l’intero sistema operativo.

Se una specifica connessione di rete/SSID specifica i suoi server DNS desiderati, allora il router le assegna i server DNS. Ma, di nuovo, una complicazione. Il router può funzionare come un server DNS stesso, o può semplicemente passare le richieste DNS a un server DNS su Internet.

Nell’esempio sopra, la connessione di rete è stata specificamente configurata per usare Quad9. Nell’esempio qui sotto, un computer Windows 10 sta usando il router stesso come server DNS.

comandonslookup che mostra il router in carica

Si pensa comunemente che se il sistema operativo specifica i server DNS, questi verranno utilizzati. Questo non è sempre il caso. Alcuni router (come il Pepwave Surf SOHO) possono forzare i client a usare i server DNS specificati nel router. Detto questo, la mia esperienza è stata che questo si applica solo ai vecchi DNS. I browser che hanno specificato server DNS di tipo DoH hanno avuto le loro richieste onorate.

Questo significa che il server DNS riportato da nslookup non può essere affidabile. Nel primo screenshot sopra, sembra che Windows stia usando 9.9.9.9 per la risoluzione DNS. Ma, se Windows è configurato per usare 9.9.9.9 e il router è configurato per usare 1.1.1.1 (per esempio) e il router sta imponendo la sua volontà su tutti i dispositivi collegati (una caratteristica offerta da Peplink e altri router), nslookup riporterà che sta usando 9.9.9.9. Non sta mentendo di proposito, il router lo sta falsificando. I pacchetti che lasciano la porta WAN saranno inviati a 1.1.1.1 come da router. L’ho imparato a mie spese, facendo tracce pcap dei pacchetti di dati in uscita dalla porta WAN. Presumo che lo stesso sia vero con il comando dig su Linux e macOS.

E, naturalmente, una VPN complica ulteriormente la cosa. Di seguito è riportato uno screenshot di nslookup fatto mentre un computer Windows 10 era collegato a una VPN. In questo caso, nslookup restituisce l’indirizzo IP del server DNS sulla rete interna del provider VPN. Il server non è sconosciuto, lo è solo il suo nome.

nslookup che mostra la VPN responsabile dei DNS

Gli utenti Windows possono rintracciare tutte le istanze dei DNS legacy utilizzando il programma gratuito e portatile DNSQuerySniffer di Nir Sofer (vedi uno screenshot). Eseguitelo prima di usare un browser per vedere se il browser sta usando DNS vecchi o nuovi. Chiudete tutti i browser, eseguite DNSQuerySniffer e aspettate, per vedere le richieste legacy DNS generate da Windows stesso.

Un altro approccio, per Windows, è stato suggerito da Sergiu Gatlan nel suo articolo di agosto 2020 Microsoft aggiunge Windows 10 DNS su HTTPS sezione impostazioni. Suggerisce di utilizzare il comando pktmon per tracciare tutte le attività sulla porta TCP/IP 53. Il comando pktmon non può visualizzare solo le richieste in uscita, include sempre anche le risposte, quindi genera un sacco di attività nella finestra di comando. Ma confermerà l’uso del vecchio DNS. I comandi che Gatlan suggerisce sono:

pktmon filter remove
pktmon filter add -p 53
pktmon start –etw -l real-time

Io suggerisco di fare prima una lista di filtri pktmon solo per vedere se qualche filtro è attivo. La registrazione può essere fermata con Ctrl+C.

Su Linux e macOS, puoi usare il comando dig per vedere quale server DNS viene usato. Su macOS, fare Applicazioni -> Utilità -> Terminale. Per Linux vedere Come usare il comando dig su Linux di Dave McKay (aprile 2020). Un semplice comando dig somedomain.com dovrebbe visualizzare il server DNS usato per rispondere alla domanda. Cercate “SERVER:” nell’output.

SAD DNS

Un nuovo attacco ai server DNS, chiamato SAD DNS è stato reso pubblico nel novembre 2020. L’attacco cerca di avvelenare i risultati del DNS, cioè di puntare le vittime ad un server maligno all’indirizzo IP sbagliato per un dominio. L’attacco è stato creato da sei accademici della University of California, Riverside e della Tsinghua University. Vedi il loro documento e le diapositive.

È possibile verificare se si sta utilizzando un server DNS vulnerabile utilizzando il link “Clicca per verificare se il tuo server DNS è interessato” sulla pagina SAD DNS. Avvertono, tuttavia, che il loro test non è accurato al 100%.

Il 12 novembre 2020 ho eseguito alcuni test. Cloudflare, Google e Quad9 erano tutti vulnerabili. Il DNS del mio provider VPN non lo era. NextDNS inizialmente non poteva risolvere la pagina DNS SAD. Il registro ha mostrato che stava bloccando saddns.net perché era un dominio appena registrato. Non c’è bisogno di fare una lista bianca del dominio. Anche NextDNS è stato segnalato come vulnerabile.

Perché preoccuparsi

Hackerare un router e cambiare i server DNS è un tipo di attacco molto popolare. Alcuni rapporti nelle notizie:

  • Il Brasile è in prima linea per un nuovo tipo di attacco ai router da Catalin Cimpanu per ZDNet 12 luglio 2019
  • Gli attacchi drive-by ai router sono vivi e vegeti. Ecco cosa fare di Dan Goodin 11 luglio 2019
  • NCSC Issues Alert About Active DNS Hijacking Attacks di Ionut Ilascu per Bleemping Computer 14 luglio 2019
  • Gli hijacking DNS in corso prendono di mira Gmail, PayPal, Netflix, banche e altro ancora di Dan Goodin di Ars Technica 5 aprile 2019

E…

Avviso agli utenti Windows: C’è un problema di caching o buffering che coinvolge le VPN. Dopo la connessione a una VPN, i siti di cui sopra mostrano tipicamente sia i server DNS pre-VPN che il server DNS attuale del provider VPN. Su iOS 12 e Android 7.1 tutti i tester di cui sopra funzionano bene, solo Windows è buggato. Non ho testato altri sistemi operativi. Nello screenshot qui sotto, dalla pagina del tester Express VPN, i quattro server OpenDNS erano in uso prima che la connessione VPN fosse effettuata e il server di Leaseweb USA è del provider VPN. Ho provato il comando “ipconfig /flushdns” ma non ha aiutato.

Express VPN tester mentre è connesso a una VPN
Express VPN tester mentre è connesso a una VPN

Su Windows, l’unica pagina del tester sopra che è stata a prova di proiettile nella mia esperienza è quella per OpenDNS. Riporta semplicemente un SI/NO sul fatto che OpenDNS sia usato e non è ingannato da qualsiasi problema di caching che confonde gli altri tester. Come nota a margine, tutti i servizi VPN che ho usato assegnano un singolo server DNS. Al di fuori di una VPN, ci sono normalmente due o più server DNS in uso.

Un altro problema è che diversi tester DNS riportano un numero diverso di server DNS. Alcuni riportano un solo server DNS, altri riportano più server DNS. Non so perché questo sia.

I server DNS di Cloudflare sono 1.1.1.1 e 1.0.0.1. Nel novembre 2018, Cloudflare ha rilasciato app per iOS e Android che configurano quei sistemi per utilizzare i loro server DNS. Funziona creando una pseudo connessione VPN. I tester di cui sopra non riportano né 1.1.1.1 né 1.0.0.1 come server DNS in uso. L’app Cloudflare mostrerà che è in uso, e sono sicuro che lo sia, ma i tester DNS di cui sopra riportano altri indirizzi IP. E non si può nemmeno andare in base all’hostname, i server usati da Cloudflare non hanno nomi di host. L’unico indizio di questi tester è che Cloudflare è l’ISP.

Una caratteristica di Cloudflare DNS è la crittografia. La connessione tra il vostro computer e il loro server DNS è criptata utilizzando uno dei due approcci abbastanza nuovi: DNS su TLS o DNS su HTTP. Questo è un problema solo quando non stai usando una VPN. Una VPN cripta tutto (quando funziona correttamente) in entrata e in uscita dal computer, quindi non c’è bisogno di prestare particolare attenzione alla crittografia dei DNS.

Avviso ai lettori di WIRED: L’articolo You Know What? Go Ahead and Use the Hotel Wi-Fi di Brian Barrett (18 novembre 2018) arriva a una conclusione molto sbagliata. Il punto principale dell’articolo è che l’uso diffuso di HTTPS (siti web sicuri) elimina i vecchi pericoli di sniffing e snooping sui dati non criptati. Per prima cosa, questo dimostra una mancanza di comprensione dei limiti di HTTPS. I siti web sicuri non meritano così tanta fiducia. Tuttavia, il pericolo maggiore è che su una rete pubblica wireless si ha una connessione criptata con i cattivi. HTTPS non fa nulla per proteggervi da un sito web truffaldino che sembra abbastanza reale, mostra l’URL corretto nella barra degli indirizzi, ma il cui unico scopo è quello di raccogliere le password. Extended Validation potrebbe offrire questa protezione, ma nel mondo reale non lo fa. Per prima cosa, i browser web cambiano costantemente il modo in cui indicano EV vs. DV (Domain Validation). E alcuni browser non danno alcuna indicazione visiva della differenza. E sospetto che nessun non tecnico sia consapevole del concetto di EV/DV. Ancora più insidioso è usare il DNS non per falsificare il nome di dominio principale/visualizzato, ma per puntare il browser a una copia truffaldina del codice incluso da una terza parte. Molti siti sono compromessi includendo codice maligno da terze parti violate. DNS significa che la terza parte non ha nemmeno bisogno di essere hackerata. Quindi, usare server DNS affidabili, non quelli degli hacker, di un bar o di un hotel, è fondamentale per computare in modo sicuro. L’articolo ignora anche la questione delle reti gemelle malvagie, un attacco per il quale non esiste (per quanto ne so) alcuna difesa.

Chiunque esegua una VPN su Windows 8 o 10 deve essere consapevole di una situazione in cui le richieste DNS possono essere inviate al di fuori del tunnel VPN. Per saperne di più, vedi Guida: Prevenire la perdita di DNS mentre si utilizza una VPN su Windows 10 (e Windows 8).

Nel maggio 2017, Trend Micro ha fatto un ottimo punto: “Purtroppo, i test basati su siti web potrebbero non essere affidabili una volta che un router domestico è stato compromesso.” Con questo in mente, ha senso controllare direttamente con il router, sia con un’interfaccia web o un’app, per verificare due volte i server DNS.

Gli utenti Windows hanno un’altra eccellente opzione, il programma DNS query sniffer di Nir Sofer. Il programma è gratuito, portatile e da una fonte affidabile. Traccia semplicemente le richieste e le risposte DNS. Prima di connetterti a una VPN, digli di esaminare la tua connessione Wi-Fi o Ethernet per confermare che il programma funziona. Poi connettiti alla VPN e non dovresti vedere altre attività DNS. Come ulteriore prova che la VPN sta gestendo le cose, dite al programma di esaminare la vostra connessione VPN (Options -> Capture Options) e dovreste vedere tutte le vostre richieste DNS.

Per quanto riguarda se un server DNS sta effettivamente lavorando bene, abbiamo il test di spoofabilità DNS di Steve Gibson. La pagina non ha una data di creazione e una data di ultimo aggiornamento, ma è stata in giro per molto tempo.

Categorie: Articles

0 commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *