dns poisoning

Tradotto in italiano, DNS Poisoning significa letteralmente “avvelenamento del DNS” e si tratta di una tecnica che ovviamente rientra nella categoria degli attacchi informatici DNS.

In sostanza, l’attacco DNS Poisoning è una tecnica di hacking che compromette l’accesso ad un sito web, dirottando il traffico dell’utente ignaro su un sito web identico ma fraudolento.

In questo senso, il DNS Poisoning s’identifica come una precisa sottocategoria di spoofing, noto proprio con la denominazione di DNS Spoofing. L’avvelenamento del DNS è un processo che viene impiegato non soltanto dagli hacker, ma anche da enti governativi che desiderano oscurare l’accesso a determinati siti internet reputati non adeguati per legge.

Ad esempio, tra gli Stati che adottano maggiormente questa tecnica per oscurare precise categorie di siti web vi è proprio la Cina. Tra tutti, a livello mondiale l’azione del governo cinese volta a rendere inaccessibili alcuni siti web viene denominata come: operazione Grande Firewall Cina.

Ma prima di spendere due parole su come si svolge un attacco DNS Poisoning focalizziamoci su come funziona esattamente il DNS e di che cosa si tratta.

DNS, che cos’è e come funziona

Il DNS (Domain Name System), traducibile in italiano come Sistema dei Nomi di Dominio, è il protocollo di conversione di un hostname (www.onoratoinformatica.it) in un indirizzo IP (una complessa stringa numerica che identifica ogni singolo nodo della rete).

Lo si potrebbe definire una sorta di rubrica telefonica del web, che agisce da intermediario tra linguaggio macchina e linguaggio umano.

In gergo tecnico viene identificato come un database distribuito e gerarchico che, proprio grazie a queste sue caratteristiche, offre vantaggi come:

  • risposta efficiente all’enorme carico di lavoro
  • sicurezza, poiché, non essendo centralizzato, riesce a gestire settorialmente eventuali compromissioni.

Come funzionano le ricerche sul web

Apriamo una piccola parentesi e analizziamo com’è strutturata la stringa di un URL.

Prendiamo come esempio il nostro sito web: https://www.onoratoinformatica.it/

Questa stringa di testo (l’URL) risulta composta da diverse componenti:

  • https://, che identifica il protocollo di comunicazione tra due nodi della rete (il server su cui è localizzata la pagina e il proprio device)
  • /www.onoratoinformatica.it, identifica l’host specifico su cui si è connessi, ovvero lo specifico terminale su cui è ospitata la pagina web.

A sua volta, quest’ultima porzione di stringa è divisibile nelle rispettive tre componenti, ovvero:

  • .it, composto da una root ‘.’, e ‘it’ dominio di primo livello (o Top Level Domain, TLD)
  • onoratoinformatica, dominio di secondo livello
  • www, dominio di terzo livello

L’organizzazione gerarchica ad albero del DNS fa sì che, quando si immette una query di ricerca, questa venga elaborata ricorsivamente.

In sostanza, il punto di partenza è rappresentato sempre dalla root (radice), che divide le diramazioni dell’albero. Ogni ramo è rappresentato da uno dei tre livelli di dominio poc’anzi menzionati.

Quindi, ogniqualvolta si effettuerà una nuova ricerca su Internet, verrà prima analizzato il dominio di primo livello e via via fino all’ultimo layer, così da fornire la corrispondenza esatta tra la query di ricerca e la pagina web corrispondente.

In termini tecnici ogni passaggio che il DNS effettua per portare a termine la ricerca è denominato processo di risoluzione DNS, mentre un record DNS è un nome di dominio corrispondente a un indirizzo IP.

Cache e file host

Andiamo ora a osservare come funziona il sistema di cache e file host, entrambi strumenti che il DNS sfrutta per ottimizzare le ricerche in termini di velocità ed efficienza.

Nel paragrafo precedente, abbiamo fornito una breve descrizione di quello che è il meccanismo alla base di una ricerca DNS.

Nel farlo, però, abbiamo specificato l’aggettivo ‘nuova’.
Questo perché i passaggi illustrati sono indicativi di una ricerca mai effettuata in precedenza o molto indietro nel tempo.

Qualora, invece, si stia cercando un sito recentemente visitato, l’iter risulta leggermente diverso.

In questo contesto, entrano in scena i file hosts e la cache.
Rispettivamente, i primi indicano dei file di testo che associano i nomi degli host e gli indirizzi IP in un determinato sistema operativo, mentre la seconda indica un database di dati temporanei archiviati su una risorsa hardware o software.

Qualora quindi la query DNS fosse già stata fatta in precedenza, il percorso consisterà in una ricerca preliminare all’interno della cache, che certamente ottimizza i tempi di ricerca.

In realtà il sistema di caching DNS consente di disseminare i percorsi di navigazione un po’ ovunque: dal browser web, al router, fino al provider di servizi internet (ISP).

Altro fattore da tener presente in questo contesto è il tempo di vita di questi dati (time-to-live o TTL).
Ogni IP, infatti, ha preimpostato un determinato TTL, al termine del quale espirerà dalla cache.

DNS: componenti hardware

Facciamo un ulteriore passo indietro, e analizziamo quali sono le risorse hardware coinvolte nella meccanica DNS:

  • resolver DNS

    Funge da intermediario tra il dispositivo utente da cui è partita la query e gli altri server DNS.
    Dapprincipio effettua una ricerca nella cache e, nel caso in cui non dovesse trovare corrispondenze, inoltra la richiesta al root nameserver.

  • Root nameserver

    Può essere metaforicamente identificato come un bibliotecario o un portinaio, poiché indirizza il resolver verso il dominio di primo livello presente nell’URL.

  • TLD nameserver

    Indirizza il resolver DNS verso il server autoritativo in cui è allocato l’IP che si sta ricercando.

  • Server DNS autoritativo (Authoritative nameserver)

    al cui interno sono memorizzate tutte le informazioni relative al nome di dominio e al corrispondente IP.

E’ a questo punto che il resolver memorizza le ricerche nella cache DNS.
Vediamo ora quali sono le mosse che gli hacker mettono in campo per compromettere questo meccanismo.

DNS Poisoning: quali sono i meccanismi d’attacco

Il principale fattore di vulnerabilità legato al DNS è il protocollo che ne è alla base.

Anziché essere basato sul TCP (Trasmission Control Protocol), orientato alla connessione, utilizza l’UDP (User Diagram Protocol) che non garantisce lo stesso standard di sicurezza. In altre parole, attraverso l’UDP si inviano pacchetti di dati da un mittente a un destinatario, ma non c’è alcun tipo di controllo sull’identità e autenticità del trasmettitore.

Questo è il principale fattore di vulnerabilità da tenere presente.

Prima, però, di passare alla descrizione di un attacco DNS vero e proprio, è necessario puntualizzare un aspetto. Ogni volta che si effettua una query di ricerca, a questa operazione viene associato un ID, ovvero un numero identificativo composto da 16 cifre.

E’ necessario che l’ID di richiesta del resolver sia identico all’ID di risposta inviato dal server autoritativo. Ma ciò non basta: oltre all’identità dell’ID, le risposte devono arrivare attraverso la stessa porta sorgente da cui sono pervenute le richieste.

Le tecniche utilizzate dai pirati informatici per mettere a segno un avvelenamento del DNS sono molteplici.
Tra le più gettonate si rincontrano:

  • Birthday Attack, basato sulla generazione casuale di ID

  • Man-in-the-Middle: in cui l’attaccante si frappone tra il browser web e il server DNS

  • Server Hijacking (dirottamento del server), che comporta una vera e propria riconfigurazione del server DNS al fine scombinare tutti i record registrati e reindirizzarli verso siti fraudolenti

  • e Poisoning attraverso lo Spam, che compromette invece il client attraverso e-mail o link fraudolenti.

Il Birthday attack

In un attacco di DNS Poisoning, dunque, l’attaccante approfitta delle criticità insite nel sistema UDP.

Per poter portare a compimento la minaccia, però, deve necessariamente compiere le seguenti azioni preliminari:

  • registrare un dominio esempio.it con IP a.b.c.d e attivare un server DNS
  • inviare un numero elevato di richieste fasulle al server vittima per intercettarne l’ID
  • ricercare le query che non sono ancora state memorizzate nella cache. Un attacco di questo tipo, infatti, può essere messo a segno soltanto quando la richiesta al server è ricorsiva. Nel caso in cui la query fosse già registrata nella cache, la richiesta sarebbe di tipo iterativo, ovvero non avrebbe bisogno di inoltrare ulteriori richieste ad altri server, e l’operazione si concluderebbe senza particolari complicanze.
  • una volta ottenuto l’ID corretto, il DNS creato dall’hacker si finge un server autoritativo
  • a questo punto, l’attaccante ha soltanto pochi millisecondi per far sì che il proprio server che rimanda al sito web fraudolento preceda la risposta del server autoritativo originale
  • una volta compiuto con successo questo passaggio, l’ID avvelenato verrà memorizzato nella cache DNS per un determinato TTL e, ogni volta che l’utente richiederà l’accesso a quel determinato sito, verrà dirottato sul portale fraudolento

E’ questa una vera e propria strategia di DNS Poisoning nota come Birthday Attack e basata sul paradosso del compleanno.

In sostanza tutto si gioca su scenari probabilistici in cui l’aumentare dei tentativi fa aumentare le probabilità che l’ID falso dell’hacker corrisponda a quello reale.

A ciò si uniscono due criticità legate al software BIND, utilizzato dalla maggioranza dei server DNS per generare gli ID:

  • l’impossibilità di generare ID totalmente casuali

  • e il fatto che a un numero n di richieste simultanee a un server DNS vittima per uno stesso dominio, corrispondono sempre n richieste ad un altro server, sebbene gli ID siano sempre differenti

Effetti di un attacco DNS Poisoning

Una delle principali motivazioni che spingono gli hacker ad avvelenare il DNS è essenzialmente il furto di dati. Spesso, infatti, le vittime di DNS poisoning prese di mira sono portali di banche e istituti che gestiscono dati particolarmente sensibili degli utenti, tra cui figurano in primis gli estremi dei metodi di pagamento.

Dirottando il traffico su siti fraudolenti creati ad hoc, l’attaccante può facilmente impossessarsene e utilizzarli a proprio piacimento.

In quest’ottica, ben si comprende il meccanismo combinato di

  • hijacking (dirottamento)

  • e spoofing (falsificazione)

che si accompagna indissolubilmente a un DNS poisoning.

Un altro importante aspetto da non sottovalutare è il danno di visibilità che il portale subisce. Non venendo visualizzato per un determinato periodo di tempo, infatti, il ranking della pagina sui motori di ricerca cala inesorabilmente.

L’ulteriore principale fattore di compromissione investe, dunque, anche il posizionamento SEO.

DNSSEC: il protocollo sicuro per i DNS

Come accennato in precedenza, il protocollo su cui poggia il DNS

  • non essendo crittografato
  • e non contemplando un sistema di validazione degli indirizzi IP verso cui viene reindirizzato il traffico

si rende particolarmente vulnerabile ad attacchi di tipo DNS Poisoning.

La ragione è dovuta al fatto che questa tecnologia è stata implementata agli albori della rete internet, quando ad utilizzarla erano solo centri di ricerca universitari. Quando, insomma, il problema di infiltrazioni da parte di pirati informatici non era nemmeno contemplato.

Nonostante il DNS sia la tecnologia ad oggi più diffusa, sono state implementate tutta una serie di specifiche per renderlo più sicuro.

DNSSEC (Domain Name System Security Extensions) è il frutto di questo lavoro di messa in sicurezza del sistema dei nomi di dominio.

Il suo principale punto di forza sta nell’utilizzo della crittografia asimmetrica, grazie alla quale viene messa in atto una vera e propria procedura di convalida. Questa consiste nella richiesta della chiave crittografica che consentirà al server di verificare se il record sia stato inviato dal server autoritativo legittimo o se abbia subito modificazioni durante il tragitto.

Nonostante gli indubbi vantaggi del DNSSEC, non mancano sottili inconvenienti, come:

  • il complicato processo di configurazione, che spesso porta a configurazioni errate ed è causa principale della sua mancata diffusione su larga scala

  • inoltre, il protocollo non cripta direttamente le informazioni, ma utilizza la crittografia soltanto per verificarne la provenienza. Ciò, quindi, consente all’hacker di intercettare il flusso di dati e captarne le informazioni.

Come prevenire un avvelenamento del DNS

Il DNSSEC rappresenta un meccanismo di salvaguardia dagli attacchi di DNS Poisoning lato server, quindi una strategia prettamente dedicata agli addetti ai lavori.

Quel che il proprietario di un portale web può fare è mettere in atto una serie di strategie per far diminuire le probabilità che record del proprio sito web venga compromesso.

Per poter raggiungere tale obiettivo è necessario:

  • acquistare una certificazione SSL
  • dilatare il TTL dei dati della cache, così da impedire che possano esservi registrate voci fraudolente
  • affidare la gestione dei propri servizi di hosting (Dynamic Host Configuration Protocol e gestione degli indirizzi IP) ad esperti, o comunque implementarli all’interno di una ben precisa strategia di management del DNS
  • Affidarsi a strumenti di rilevamento dello spoofing

Mentre agli utenti è demandato il compito di:

  • Pulire regolarmente la cache del proprio device
  • E utilizzare VPN cosicché il proprio flusso di dati sul web venga debitamente criptato.

Chi è Onorato Informatica?

Azienda specializzata in sicurezza informatica da oltre 15 anni, certificata ISO 9001 e 27001

Onorato Informatica è un’azienda informatica, specializzata in sicurezza informatica, da oltre 15 anni.
Forniamo servizi di Vulnerability Assessment e Penetration Test a oltre 4500 clienti in tutta Italia.

Ci occupiamo di Cyber Security dalle nostre sedi di Mantova, Parma, Milano e Los Angeles. Siamo un’azienda certificata ISO 9001ISO 27001 e azienda etica.

Se vuoi conoscere i servizi di sicurezza informatica e sapere come possiamo aiutarti, contattaci.