{"id":52,"date":"2008-07-24T19:26:17","date_gmt":"2008-07-24T17:26:17","guid":{"rendered":"http:\/\/www.fantascienza.com\/blog\/blackpig\/?p=52"},"modified":"2008-07-24T19:26:17","modified_gmt":"2008-07-24T17:26:17","slug":"il-problema-dei-dns-e-la-soluzione","status":"publish","type":"post","link":"https:\/\/luigirosa.com\/index.php\/2008\/07\/24\/il-problema-dei-dns-e-la-soluzione\/","title":{"rendered":"Il problema dei DNS (e la soluzione)"},"content":{"rendered":"<p>Probabilmente avrete sentito parlare di una falla di sicurezza dei DNS che \u00e8 stata scoperta all&#8217;inizio dell&#8217;anno e tenuta segreta fino a pochi giorni fa (in teoria non sarebbe dovuta scappare fino all&#8217;inizio di agosto, ma si sa come vanno queste cose), dopo che tutte le maggiori entit\u00e0 interessate hanno rilasciato degli aggiornamenti.<\/p>\n<p>Prima un preambolo introduttivo, chi conosce gi\u00e0 come funzionano i DNS pu\u00f2 saltare i due capoversi che seguono.<\/p>\n<p><!--more-->Ogni macchina su Internet \u00e8 identificata da un indirizzo numerico (per ora nella forma a.b.c.d dove le lettere rappresentano dei numeri da 0 a 255 decimale), ma sono difficili da ricordare; \u00e8 stato quindi creato un sistema che associa delle sequenze pi\u00f9 facili da ricordare ad un indirizzo numerico: \u00e8 pi\u00f9 facile ricordare www.fantascienza.com piuttosto che 83.103.96.96. Il sistema per passare dal nome usato dagli umani all&#8217;indirizzo numerico utilizzato dalle macchine \u00e8 detto <em>risoluzione del nome<\/em>. Il sistema attraverso cui si risolvono i nomi \u00e8 il DNS.<\/p>\n<p>Quando voglio risolvere www.fantascienza.com, il mio computer genera un numero <em>di sicurezza<\/em> a caso tra 0 e 65.535 e lo scrive in una richiesta che invia al server DNS di riferimento (quello definito nelle impostazioni del TCP\/IP del computer). Il server DNS, elabora la richiesta e risponde allegando quel numero nella risposta per fare in modo che io abbia la (relativa) sicurezza che mi ha risposto il server legittimo e non un malintenzionato. Prima del 1995 i numeri erano scelti in sequenza e, quindi, facilmente indovinabili; ora tutti i computer li scelgono a caso, ma la bont\u00e0 della casualit\u00e0 della scelta dipende dalla piattaforma che la esegue e, quindi, potrebbe essere facilmente indovinabile.<\/p>\n<p>Ma cosa potrebbe fare un malintenzionato? Essenzialmente due cose: (1) rispondere che l&#8217;IP di www.fantascienza.com \u00e8 66.6.0.66 e farmi andare su un server trappola oppure (2) rispondermi che la fonte che ha autorit\u00e0 per risolvere i nomi di fantascienza.com non \u00e8 quella vera (register.it) bens\u00ec un server trappola che, a questo punto, \u00e8 in grado di falsificare tutti gli indirizzi di fantascienza.com.<\/p>\n<p>A peggiorare le cose c&#8217;\u00e8 una caratteristica del DNS tale per cui ogni informazione acquisita ha una scadenza prima della quale non bisognerebbe richiedere in rete la medesima informazione. Nell&#8217;esempio di cui sopra, quando chiedo a register.it l&#8217;indirizzo di www.fantascienza.com, mi viene risposto che quell&#8217;informazione vale per i prossimi 900 secondi. Un attaccante pu\u00f2 quindi falsificare le informazioni per il tempo che lui stesso imposta: anche dopo la conclusione dell&#8217;attacco, le informazioni rimarranno nella memoria del computer finch\u00e9 non si riavvia il sistema o non scade la validit\u00e0 dell&#8217;informazione.<\/p>\n<p>Il problema di sicurezza di cui si parla ultimamente si basa su tutte le vulnerabilit\u00e0 descritte sopra utilizzate contemporaneamente (la novit\u00e0 sta proprio nell&#8217;uso contemporaneo delle vulnerabilit\u00e0): se i server erano protetti contro gli attacchi portati singolarmente, fino a pochi giorni fa non lo erano per un attacco che tento di descrivere con parole semplici:<\/p>\n<ol>\n<li>Un malintenzionato bombarda il server DNS a cui voi fate riferimento (immaginiamo quello del vostro provider) con richieste che si sa a priori che hanno come risposta &#8220;nessun indirizzo associato a quel nome&#8221;; le richieste possono essere la risoluzione di nomi tipo aaa123.fantascienza.com, aaa124.fantascienza.com, aaa125.fantascienza.com, aaa126.fantascienza.com e cos\u00ec via.<\/li>\n<li>Ovviamente a ciascuna di queste richieste il server DNS del provider continua a rispondere &#8220;nessun indirizzo associato a quel nome&#8221;. Ma l&#8217;attaccante prosegue imperterrito.<\/li>\n<li>Per come funziona il sistema, ogni volta il DNS server del provider deve contattare register.it per verificare se effettivamente esista o no il nome richiesto ed attendere una risposta; ogni richiesta conterr\u00e0 un numero casuale tra 0 e 65.535 come spiegato sopra.<\/li>\n<li>L&#8217;attaccante tenta di intromettersi e falsificare la risposta di register.it tentando di indovinare il numero casuale. Data la velocit\u00e0 delle connessioni attuali (qui sta un altra novit\u00e0), il numero di tentativi che si possono fare \u00e8 veramente elevato e le probabilit\u00e0 di indovinare il numero giusto sono pi\u00f9 alte di quello che si pensa.<\/li>\n<li>Dopo un po&#8217;, ipotizziamo quando ha inviato la richiesta di risolvere lr47666.fantascienza.com, l&#8217;attaccante riesce nel suo intento: il provider riceve una risposta dall&#8217;attaccante che riconosce come valida e, per come \u00e8 strutturato il pacchetto di risposta, l&#8217;attaccante non solo fa credere al server che lr47666.fantascienza.com esista davvero ma anche che www.fantascienza.com abbia come indirizzo 66.6.0.66; ovviamente la risposta contiene una scadenza relativamente alta, in modo tale che la contaminazione di www.fantascienza.com duri il pi\u00f9 a lungo possibile. Il gioco \u00e8 fatto e <a title=\"Esseasterisco\" href=\"http:\/\/www.fantascienza.com\/blog\/esseasterisco\/\" target=\"_blank\" rel=\"noopener\">S*<\/a> non pu\u00f2 farci nulla perch\u00e9 il problema non dipende da lui, ma da voi (o dal vostro provider).<\/li>\n<\/ol>\n<p>La soluzione a questo problema? Due: aggiornare le proprie piattaforme con le ultime patch disponibili e fare una doppia verifica sul DNS che si sta utilizzando per vedere se \u00e8 quello effettivamente consigliato dal proprio provider. La cosa migliore sarebbe avere un DNS server proprio per non dipendere da terzi, ma bisogna anche essere in grado di mantenerlo in salute, cosa non semplice.<\/p>\n<p><a title=\"DNS bug leaks\" href=\"http:\/\/beezari.livejournal.com\/141796.html\" target=\"_blank\" rel=\"noopener\">Su questa pagina di beezari trovate una spiegazione pi\u00f9 tecnica del problema e dello schema di attacco.<\/a><\/p>\n<p><strong>Aggiornamento<\/strong>: ho notato che alcuni provider stanno disabilitando al pubblico alcuni DNS. Se non avete un DNS <em>in house<\/em> o se il vostro DNS inoltra tutte le richieste al server del provider, consiglio di verificare sul sito del provider (o da fonte similare) che stiate utilizzando i DNS giusti.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Probabilmente avrete sentito parlare di una falla di sicurezza dei DNS che \u00e8 stata scoperta all&#8217;inizio dell&#8217;anno e tenuta segreta fino a pochi giorni fa (in teoria non sarebbe dovuta scappare fino all&#8217;inizio di agosto, ma si sa come vanno queste cose), dopo che tutte le maggiori entit\u00e0 interessate hanno rilasciato degli aggiornamenti. Prima un [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"local","activitypub_max_image_attachments":3,"footnotes":""},"categories":[11,12],"tags":[189,249,259,265,269,348],"class_list":["post-52","post","type-post","status-publish","format-standard","hentry","category-informatica","category-internet-informatica","tag-dns","tag-hack","tag-informatica","tag-internet-informatica","tag-it","tag-patch"],"_links":{"self":[{"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/posts\/52","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/comments?post=52"}],"version-history":[{"count":0,"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/posts\/52\/revisions"}],"wp:attachment":[{"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/media?parent=52"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/categories?post=52"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/luigirosa.com\/index.php\/wp-json\/wp\/v2\/tags?post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}