Il Domain Name System, noto anche come DNS, viene utilizzato globalmente per convertire domini Internet in indirizzi IP. Il processo di “risoluzione dei nomi” consente di tradurre un nome dominio in un indirizzo IP. Il terminale, per poter risolvere correttamente i nomi, deve possedere un server DNS in grado di restituire risposte corrette. 

Il processo di risoluzione dei nomi viene eseguito correttamente quando il terminale invia le richieste DNS al server di riferimento, il quale si occupa di tradurre i nomi offrendo una risposta immediata. Qualora al terminale non sia stato assegnato nessun server DNS, esso utilizzerà in automatico quello messo a disposizione dal router locale. 

Il processo di risoluzione dei nomi, però, è spesso preda di attacchi da parte dei criminal hacker. L’attacco più diffuso al giorno d’oggi prende il nome di DNS spoofing. Durante questo attacco vengono falsificati gli indirizzi IP e la risposta del server risulta inappropriata. 

Ma cos’è esattamente il DNS spoofing e come è possibile proteggere il terminale dagli attacchi di questo tipo? Scopriamo tutto quel che c’è da sapere sul DNS spoofing e sui metodi più efficaci per garantire maggiore sicurezza al terminale e alla navigazione Internet. 

Cos’è un attacco DNS spoofing?

Il DNS spoofing, detto anche DNS poisoning o DNS cache poisoning, avviene quando vi è una manipolazione nel processo di risoluzione dei nomi DNS. Il protocollo DNS permette all’utente di atterrare su una determinata pagina web digitando il nome dominio, anziché l’indirizzo IP (composto generalmente da una serie di numeri e lettere, difficilmente memorizzabili). 

Nel momento in cui viene inserito un nome dominio, viene inviata una richiesta di risoluzione al server DNS che si occupa di tradurre il nome dominio in un indirizzo IP, consentendo così la navigazione. 

Quando l’indirizzo IP di un dominio viene falsificato, avviene il DNS spoofing. Il terminale orienta l’utente verso un indirizzo IP falso, deviando il traffico dei dati su un server fittizio. Trattasi di una manipolazione piuttosto fine, in quanto l’utente visualizza il nome dominio corretto. Ciò impedisce all’utente di capire che ha subito un attacco DNS spoofing: l’inganno è totalmente invisibile all’utente e difficilmente percepibile.

L’attacco DNS spoofing può avere diverse finalità, che si trasformano in seri rischi per l’utente. I criminal hacker indirizzano l’utente verso siti web fraudolenti o dannosi con l’obiettivo di rubare i dati sensibili, oppure per tracciare le informazioni o per mettere in atto delle frodi. I criminali utilizzano il DNS spoofing anche per eseguire attacchi pharming o phishing. Il criminale illude l’utente di trovarsi su un sito web legittimo, esponendolo così a un malware e costringendolo a installare un software dannoso che andrà quindi a infettare il sistema. 

DNS spoofing e DNS poisoning spesso vengono confusi: trattasi di due frangenti distinti. Il DNS poisoning consiste nella metodologia adottata dai criminal hacker per compromettere i dati DNS, sostituendoli e reindirizzando l’utente verso un indirizzo IP fraudolento. Si parla di DNS spoofing quando, invece, l’utente viene effettivamente reindirizzato al sito web dannoso mediante una cache fraudolenta. Mentre il DNS poisoning è il metodo, il DNS spoofing è il risultato finale.

Come viene condotto un attacco DNS spoofing?

Per sapere come proteggersi da un attacco DNS spoofing, è bene conoscere come esso viene condotto e quali sono gli scenari di rischio. Un attacco DNS spoofing può essere condotto attraverso la connessione di rete, il server DNS, il router locale oppure dal client (il browser installato sul terminale). 

Il DNS spoofing comprende una serie di possibili manipolazioni, traducibili nei seguenti esempi:

  • esempio 1. Il browser chiede al server DNS di tradurre il nome dominio in un indirizzo IP. Il client ottiene una risposta e viene indirizzato verso un indirizzo IP falso. Il client si connetterà a un server fasullo, non stabilendo la connessione al server legittimo;
  • esempio 2. Il cliente invia una richiesta a un host fraudolento, che si presenta sotto le mentite spoglie dell’indirizzo IP. L’host falso indirizza il client su un indirizzo IP apparentemente legittimo. Il dominio, però, non presenta il certificato di sicurezza. In questo caso è possibile comprendere che è stato sferrato un attacco. 

Il criminal hacker può impersonare i nameserver DNS avvelenando così la cache. Può così effettuare una richiesta a un resolver DNS e falsificare la risposta, nel momento in cui il resolver DNS interroga il nameserver. 

Valutiamo ora le varianti di un attacco DNS spoofing.

Attacco al router locale o al client

In questo caso, il criminale tenta di manipolare il router domestico o il dispositivo locale. L’utente non può accorgersi che sta subendo un attacco DNS spoofing, in quando il dispositivo si connette al server DNS senza problematiche. Quando, però, richiede il nome dominio, riceve un indirizzo IP falso. 

Questo tipo di attacco può persistere qualora la manipolazione non venga rimossa. Il criminale necessita di un vettore di attacco per procedere con la manipolazione. Il vettore può essere di tipo tecnico, ovvero l’accesso come amministratore, oppure una password troppo debole. Il criminal hacker può fare leva mediante il social engineering per convincere l’utente a cambiare la password o il server di risoluzione dei nomi. 

Attacco al server DNS

In questo caso, l’attacco DNS spoofing viene diretto verso un server DNS legittimo. Trattasi di una tipologia di attacco più complesso, che richiede il superamento di una serie di meccanismi di protezione. Nonostante il criminal hacker debba superare vari step per poter manipolare il server, questo tipo di attacco permette di colpire un numero particolarmente elevato di utenti. 

Attacco alla risposta del server DNS

Quando l’aggressore attacca la risposta del server, vi è un attacco “man in the middle”. Ovvero, il criminale prende il posto del server DNS trasmettendo risposte errate. Il traffico DNS, passando attraverso il protocollo UPD (User Datagram Protocol), non può essere garantito dall’utente che non ha modo di assicurarsi che la risposta del DNS sia valida.

Gli attacchi “man in the middle” vengono utilizzati per accedere alla rete locale. Generalmente è possibile proteggere il terminale da questo tipo di attacco utilizzando specifiche tecniche di crittografia

Come proteggersi e prevenire il DNS spoofing

Questa tipologia di attacco informatico può tradursi in rischi piuttosto seri sia per l’utente che per il terminale interessato. Per garantire maggiore sicurezza alla cache e alla navigazione Internet, è bene prendere delle semplici misure di protezione.

La più valida è la crittografia contro il DNS spoofing. Le metodologie di crittografia permettono di proteggere i dati dall’accesso di persone non autorizzate. I dati non potranno essere ottenuti da parti terze, se non previa autorizzazione da parte del proprietario dei dati stessi. 

I metodi di crittografia permettono di garantire l’autenticità del partner di comunicazione: molto spesso, infatti, il criminale finge di essere un host legittimo. Quando ciò avviene, grazie alla crittografia è possibile individuare il tentativo di frode, in quanto viene trasmesso un errore di certificato da parte dell’utente. 

Tre le principali metodologie per proteggersi e prevenire il DNS spoofing: scopriamo più dettagli nei paragrafi seguenti.

Crittografia di trasmissione

Grazie alla crittografia di trasmissione è possibile difendere la propria connessione, offrendo alla navigazione una protezione di livello basic. In questo caso è preferibile utilizzare HTTPS per accedere ai siti web. L’estensione HTTPS Everywhere permette di proteggere la connessione tramite HTTP e HTTPS. È bene utilizzare protocolli sicuri quali SSL o TLS anche per la configurazione di programmi di posta elettronica come IMAP, SMTP e POP3. 

La connessione protetta da crittografia di trasmissione impedisce l’esito positivo di un attacco DNS spoofing. L’host fraudolento, infatti, non può ottenere il certificato di sicurezza dell’host autentico. Pertanto, sia il programma di posta elettronica che il browser allerteranno l’utente in caso di tentato attacco. L’utente può, quindi, interrompere la connessione e mettere in atto altre misure di sicurezza in modo da annullare i rischi legati al DNS spoofing. 

Crittografia del traffico DNS 

La crittografia di trasmissione permette di proteggere il traffico dati, ma non la connessione al server DNS, che rimane vulnerabile e ancora troppo sensibile a un potenziale attacco. Per crittografare le richieste DNS possono essere utilizzati vari strumenti, tra cui:

  • DNS over HTTPS (DoH);
  • DNS over TLS (DoT);
  • DNSCrypt.

Questi prodotti proteggono il server DNS dai possibili attacchi di tipo “man in the middle”. Ognuno di questi approcci, però, non essendo integrato di default all’interno dei sistemi operativi più utilizzati, deve essere applicato e occorre assicurarsi che il server DNS supporti tali tecnologie di sicurezza.

Rete virtuale privata

L’ultima delle metodologie utili a proteggere il proprio server e la connessione da un possibile attacco DNS spoofing è la VPN (Virtual Private Network). Utilizzare una rete virtuale privata, infatti, permette di incanalare tutte le connessioni in un tunnel crittografato

Nonostante la VPN offra un buon grado di protezione, è possibile che un indirizzo IP fraudolento venga archiviato all’interno del server. Questo avviene quando un indirizzo IP viene archiviato direttamente nel programma VPN e, in questo caso, anche la rete virtuale privata non può più proteggere la connessione. 

Simona
Federica è un'esperta di sicurezza informatica specializzata in cybersecurity, infrastrutture IT e cloud computing. Con una vasta esperienza nel settore, si impegna a proteggere le organizzazioni dagli attacchi informatici e a garantire la sicurezza dei dati sensibili. Oltre alla sua carriera nella sicurezza informatica, Federica dedica il suo tempo libero allo sport, alimentando la sua energia e determinazione.