Da oggi i root server K DNS gestiti dal RIPE europeo (una delle cinque organizzazioni mondiali che ha ricevuto delega per l’assegnazione degli indirizzi IPv4 ed IPv6) hanno iniziato ad abbracciare il protocollo DNSSEC. Via a via la novità sarà portata sui server E-Root gestiti dalla NASA e i D-Root dell’Università del Maryland, negli Stati Uniti.
Sette dei tredici server DNS centrali, stanno quindi cominciando a restituire – in risposta alle query inviate loro – dei messaggi firmati digitalmente. Si tratta di un epocale cambio di rotta perché contribuirà a porsi alle spalle attacchi basati sulla modifica dei dati conservati dai server DNS garantendo massima sicurezza ed affidabilità nelle transazioni.
Il protocollo DNSSEC (DNS Security Extensions) è stato studiato per migliorare la sicurezza dei server DNS attraverso l’impiego di firme crittografate per l’autenticazione delle risposte alle interrogazioni inviate dagli utenti. L’utilizzo di DNSSEC consente di prevenire “aggressioni” come quelle descritte in passato da Dan Kaminsky (“cache poisoning”), esperto in materia di sicurezza informatica con un lungo curriculum di collaborazione con le più famose società a livello mondiale.
Già anni fa Kaminsky osservò come sfida di oggi consista nel rendere l’implementazione di DNSSEC non più difficile dell’utilizzo casuale delle porte durante le transazioni DNS. Il ricercatore aveva infatti dimostrato come fosse possibile porre in essere attacchi “cache poisoning” in grado di modificare (“avvelenare”) la cache dei server DNS associando ad esempio l’indirizzo di un sito web “benigno” con un IP facente capo ad una macchina gestita dall’aggressore. Il “cache poisoning” consiste infatti nell’ingannare un server DNS inducendolo a ritenere di ricevere delle informazioni autentiche quando in realtà si tratta di dati generati ad arte per modificarne il comportamento.
La scoperta della vulnerabilità, avvenuta nel 2008, ha indotto decine di produttori a rilasciare patch destinate ai rispettivi prodotti. Con uno sforzo pressoché simultaneo, senza precedenti, ad esempio, Microsoft, Cisco, Sun, Internet Systems Constortium, hanno rilasciato aggiornamenti in grado di introdurre un più elevato grado di casualità durante le transazioni DNS.
Una guida illustrata (in inglese) che mostra i concetti di base della vulnerabilità messa a nudo quasi due anni fa da Kaminsky, è disponibile a questo indirizzo.
Riassumiamo comunque i concetti di base. Con l’obiettivo di evitare la risoluzione ripetuta del medesimo nome a dominio, molti sistemi memorizzano i risultati ricevuti precedentemente all’interno di un’area cache. I dati vengono conservati per un periodo di tempo fissato. Nel caso in cui un aggressore riesca ad inserire indirizzi “fasulli” all’interno della cache, egli può deviare tutto il traffico verso server “maligni”. A questo punto, digitando l’indirizzo di un sito web famoso e ritenuto fidato, l’utente – senza accorgersene – si ritroverebbe reindirizzato su un server amministratore dall’aggressore. Quest’ultimo può così mettere in atto attacchi “phishing” sottraendo password e dati personali.
Il problema risiede nel fatto che le risposte alle query DNS possono essere falsificate. Per questo motivo, i sistemi più moderni impiegano un identificativo univoco (“trasaction ID”) di 16 bit per ogni singola interrogazione.
Se la risposta alla query contiene il corretto “transaction ID” significa che il messaggio proviene dal server giusto.
Molti ricercatori hanno però più volte mostrato come errori nell’implementazione del servizio DNS ed, in particolare, nel meccanismo di generazione del numero casuale, possano essere sfruttati per lanciare attacchi (“DNS poisoning”).
Kaminsky ha scoperto una metodologia a validità generale che consente di sferrare efficaci attacchi “DNS poisoning”. I server DNS traducono indirizzi “mnemonici” (per esempio, www.ilsoftware.it
) in indirizzi IP. L’attacco in questione permette ad un malintenzionato di modificare la cache di un server DNS inserendovi dei dati falsi. In questo modo, tutti gli utenti dei sistemi che si appoggiano al DNS attaccato, digitando nel loro browser gli URL di siti web conosciuti, si vedranno reindirizzati altrove – generalmente su pagine contenenti materiale ostile o comunque pericoloso (malware) -.
Con le patch rilasciate dai vari produttori circa due anni orsono, è stata introdotta la scelta automatica – in modo casuale – della porta UDP da utilizzare per le varie query DNS.
Il protocollo DNSSEC, invece, consente di superare i rischi derivanti da attacchi come quello illustrato in passato da Kaminsky: le risposte alle query DNS sono in questo caso accettate solo se una chiave pubblica può essere fatta corrispondere ad una chiave privata. Ogni risposta DNS include delle informazioni aggiuntive quali, ad esempio, un record RRSIG DNS ossia una firma digitale. La correttezza della firma digitale può essere verificata dal sistema client controllandone la chiave pubblica salvata nel nuovo record DNSKEY. Grazie all’uso della firma digitale, quindi, si hanno garanzie circa l’integrità dei dati ottenuti e si può autenticare la sorgente delle informazioni DNS.