DNS Cache Poisoning Explained
Upcoming SlideShare
Loading in...5
×
 

DNS Cache Poisoning Explained

on

  • 2,330 views

DNS Cache Poisoning Explained (Italian)

DNS Cache Poisoning Explained (Italian)
Demo video: http://vimeo.com/11511275

Statistics

Views

Total Views
2,330
Views on SlideShare
2,318
Embed Views
12

Actions

Likes
1
Downloads
41
Comments
0

1 Embed 12

http://www.slideshare.net 12

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    DNS Cache Poisoning Explained DNS Cache Poisoning Explained Presentation Transcript

    • Pescara, 22/08/2008
      MOCA 2008
      DNS Cache Poisoning Explained
      Ivan Giacomelli
    • 2
      Pescara, 22/08/2008
      MOCA 2008
      DNS Cache Poisoning Explained
      Cover dellapresentazione
      Domain Name System – Analisi e dettagliimplementativi
      DNS Cache Poisoning – Internals & Exploiting
      Ivan Giacomelli
    • 3
      # whoami
      IT Security Researcher / Security Software Developer
      @ Emaze Networks S.p.A.
      http://www.emaze.net
      IT Security Analyst / Penetration Tester
      Security Operation Center – Finance & Top Clients
      @ Telecom Italia S.p.A.
      http://www.telecomitalia.it
    • 4
      Security Operation Center
      “Un Security Operation Center (SOC) è un centro che eroga servizi di sicurezza informatica, implementa processi, procedure per la prevenzione e gestione degli incidenti. Il compito dell’infrastruttura è la gestione preventiva del rischio il che significa centralizzare e analizzare tutte le attività di sicurezza informatica sfruttando l’insieme delle risorse umane, hardware e software dedicate alla gestione del sistema di sicurezza.”
      Fonte: http://it.wikipedia.org/wiki/Security_Operation_Center
    • 5
      Domain Name SystemCos’e’?
      • Protocollo per la risoluzionedinomi host in indirizzi IP e viceversa
      • Realizzatotramite un database distribuitocostituitodai server DNS
      • Nasce in seguitoall’esigenzadiassociare un indirizzo IP ad un nometestualedi facile memorizzazione per l’uomo
      • Ha un vantaggio. E’ flessibile:
      • Gestionecentralizzatadelleassociazioni IP / nometestuale.
      • Possibilita’ diassegnarepiu’ nomi ad unostesso IP
      • Bilanciamentocaricodilavorosupiu’ IP
    • 6
      Domain Name SystemTerminologia
      • Zona : gruppodiassociazioni IP / nome.
      • Authoritative Nameserver : server master diunazona.
      • Resolver : DNS client.
      • Recursive Nameserver : DNS server con risoluzionericorsivadelle zone per ilquale non e’ Authoritative Server.
      • Resource Record : A, CNAME, NS, MX, TXT, SOA.
      • Delegation : delega ad un altro DNS Server per la risoluzionedi un nome non disponibilesul DNS server danoiinterrogato.
    • 7
      Domain Name SystemCome funziona una query DNS
      Quando un sistemacollegato in rete ha la necessita’ dicontattarne un altro, inviauna query contenente la richiesta al suo server DNS, attendendounarispostacontenentel’indirizzo IP corrispondente al nomedaluirichiesto.
    • 8
      Domain Name SystemCome funziona una query DNS
      I casi sono 2:
      • Il nostro server DNS ha gia’ in cache la corrispondenza e ce la fornisce senza dover cercarla lui stesso.
      • La risposta non e’ nella cache e il server DNS parte alla ricerca della risposta che deve fornire.
      Per primo viene contattato un Root Server.
    • 9
      Domain Name SystemCome funziona una query DNS
      Il root server non conosce la risposta alla nostra domanda, ma sa indirizzarci a qualcuno che puo’ darci informazioni maggiori.
      A questo punto la richiesta viene effettuata nuovamente al DNS server indicatoci dal root server.
      I server che conoscono I domini di 1 livello sono I GTLD nameserver.
    • 10
      Domain Name SystemCome funziona una query DNS
      Il GTLD nameserversaindirizzarci verso in nameserverautoritativo per ildominioche mi interessa.
      Questonameserverautoritativo mi safornire la giustaassociazione.
      Oltreallacoppia IP/nomepuo’ fornirmiancheinformazioniaggiuntive, postocheappartenganoallostessodominio (bailiwickedcheck).
    • 11
      Domain Name SystemAnalisi del pacchetto
      Campi importanti per la nostra disquisizione:
      • Source IP Address
      • Destination IP Address
      • Source Port
      • Destination Port
      • Query ID (a.k.a Transaction ID a.k.a TXID)
    • 12
      Domain Name SystemIl pacchetto UDP che contiene la query
      Altricampicontenutinelpacchetto:
      • QR (Query/Response): 0 query / 1 response
      • Opcode: settatodal client a 0 per una query standard
      • AA (Authoritative Answer): 0 non autoritativa / 1 autoritativa
      • TC (Truncated): settata a 1 in unarisposta se ilcontenutosuperai 512 byte limitedi un pacchetto UDP. In caso e’ necessariaunarichiesta in TCP
      • RD (Recursion Desired): 1 se sidesidera la ricorsione / 0 altrimenti
      • RA (Recursion Available): 1 se la ricorsione e’ disponibile / 0 altrimenti
      • Z: flag riservato. Deveessere 0.
      • RCODE (Response Code): indicaesitopositivo o negativo. Settatodal server.
      • Question Record Count: quasi sempre 1. Sianellerichiestechenellerisposte.
      • Answer/authority/additional record count: settate dal server. Contengono varie informazioni riguardanti la risposta che viene data al client. Vedremo fra un po’ il dettaglio.
      • DNS Question/Answer data: Area contenente la domanda effettiva e la risposta effettiva.
    • 13
      Domain Name SystemResource Records
    • 14
      Domain Name SystemResource Records
      Esistono molti altri tipi di Resource Records.
      Per ulteriori approfondimenti:
      http://www.dns.net/dnsrd/rr.html
    • 15
      Domain Name SystemAnalisi di una query DNS
      Richiesta dal mio nameserver verso il GTLD nameserver.
    • 16
      Domain Name SystemAnalisi di una query DNS
      Risposta dal GTLD nameserver verso il nameserver del mio ISP.
    • 17
      Domain Name SystemAnalisi di una query DNS
      Richiesta dal nameserver del mio ISP verso l’authoritative server del dominio di mio interesse.
    • 18
      Domain Name SystemAnalisi di una query DNS
      Risposta dall’authoritative nameserver contenente le informazioni che mi servono.
      Nella risposta sono contenute informazioni aggiuntive. I ‘glue-records’.
    • 19
      Domain Name SystemQuali risposte devo accettare?
      • Le risposte valide arrivano sulla stessa porta dalle quali sono state inviate. In caso contrario lo stack di rete non e’ in grado di inviare il pacchetto al processo del demone DNS
      • La sezione ‘question’ e’ duplicata anche nella risposta e deve essere uguale alla medesima sezione del pacchetto contenente la richiesta.
      • Il Query ID e’ uguale a quello della richiesta.
      • Le sezioni ‘Authority’ e ‘Additional’ rappresentano nomi che appartengono al dominio della richiesta. Questo meccanismo viene chiamato "baliwick checking". Questo impedisce ad un nameserver di rispondere con informazioni fraudolente oltre alla reale risposta.
    • 20
      DNS Cache Poisoning
      Perche’?
    • 21
      DNS Cache PoisoningIndividuazione del query ID
      Nel caso il DNS server sia configurato per utilizzare un Query ID sequenziale e’ sufficiente fare una richiesta che verra’ risolta da un nostro nameserver autoritativo per sapere il Query ID attuale del nameserver che vogliamo attaccare.
    • 22
      DNS Cache Poisoning
      Unavoltaguessatoil Query ID della nostra vittimasara’ sufficientefarglirisolvere un nome e floodarlo con risposte ‘fasulle’ per averequalchepossibilita’ diinserire record falsificati.
    • 23
      DNS Cache PoisoningRequisiti
      • Il nome non puo’ essere gia’ contenuto nella cache del server DNS. Se una corrispondenza IP/nome e’ gia’ presente nella cache del DNS server che vogliamo poisonare non sara’ possibile completare l’attacco fino alla sua scadenza.
      • L’attaccante deve trovare il corretto Query ID. Nel caso di DNS server vecchi o configurati male non e’ un gran problema. Abbiamo visto in precedenza che con un po’ di perseveranza la cosa e’ fattibile.
      • L’attaccante deve essere piu’ veloce del vero DNS. Dipende molto dalle prestazioni della rete.
    • 24
      DNS Cache PoisoningPossibile soluzione
      Una soluzione ovvia al problema e’ quella di randomizzare il TXID.
      Con Query ID sequenziali l’attaccante ha un range limitato di valori da tentare. Se viene individuato il valore 1000 come Query ID sara’ sufficiente tentare I valori da 1001 a 1050 per avere buone possibilita’ di successo.
      Se il DNS server randomizza I Query ID I valori che l’attaccante deve provare sono necessariamente 64k.
      Molto piu’ difficile!
    • 25
      E loro che ne dicono?
    • 26
      DNS Cache Poisoning
    • 27
      DNS CachePoisoningThe Dan’s Way
      Richieste verso hostname fasulli per aumentare i tentativi possibili nel minore tempo possibile.
    • 28
      DNS Cache Poisoning
      E nel caso il Query ID sia randomizzato?
      L’attaccante deve inviare moltissime ‘fake reply’.
      Randomizzando l’hostname nella richiesta le probabilita’ aumentano.
      50 pacchetti per ogni richiesta = ~ 10s per un attacco con successo.
    • 29
      DNS Cache Poisoning
      Grazie alla scoperta di Dan Kaminsky ora sappiamo che e’ molto piu’ semplice riuscire ad effettuare un DNS Cache Poisoning nei confronti di un DNS server vulnerabile. E’ possibile inserire in un server DNS vulnerabile non solo corrispondenze tra IP/nome ma addirittura diventare nameserver autoritativi per qualsiasi dominio.
      La cosa si fa piu’ interessante…
      Cosa succederebbe se venisse rediretto l’intero dominio google.com?
      Cosa succederebbe se venisse rediretto l’intero TPL .com?
      Sarebbe teoricamente possibile ma e’ necessaria parecchia capacita’ di calcolo per fingersi un GTLD 
    • 30
      DNS Cache PoisoningLa soluzione – DJB Was Right
      QID Randomization + Source PortRandomization
    • 31
      DNS Cache PoisoningRimedi
      Aggiornate I vostri DNS servers! Esistono tool ed exploit pubblicidisponibilicherendono molto facile l’operazionedi poisoning neiconfrontidi un server vulnerabile.
      I DNS Server configurati in mododaessere SOLO autoritativi non sonovulnerabili. Non hannouna cache. State attenti a chi offrite la vostraricorsione.
      Un server DNS correttamentepatchatopuo’ esserevulnerabile lo stesso. Come?
      Se in mezzo troviamo un firewall cheeffettua un ‘Port Address Translation’ cherende la randomizzazionedelleporteinefficace.
      DNSSEC e IPv6 ? Potrebberorisolvereilproblema. Ma non sonouno standard. E prima che lo diventinopassera’ parecchio tempo.
      SSL? Puo’ essere utile. Sempre che si controllino i certificati dei siti che visitiamo.
    • 32
      DNS Cache Poisoning
      DEMO
    • 33
      DNS Cache Poisoning
      ?
    • 34
      DNS Cache Poisoning
      References:
      http://www.doxpara.com/DMK_BO2K8.ppt
      http://www.unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html
      DNS and BIND - http://oreilly.com/catalog/9780596100575/index.html
      TCP/IP Illustrated, Volume 1 - http://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0201633469
      http://www.isc.org/sw/bind/
      http://cr.yp.to/djbdns.html
      US-CERT Vulnerability Note VU#800113 - http://www.kb.cert.org/vuls/id/800113
      US-CERT Vulnerability Note VU#484649 - http://www.kb.cert.org/vuls/id/484649
      US-CERT Vulnerability Note VU#252735 - http://www.kb.cert.org/vuls/id/252735
      US-CERT Vulnerability Note VU#927905 - http://www.kb.cert.org/vuls/id/927905
      US-CERT Vulnerability Note VU#457875 - http://www.kb.cert.org/vuls/id/457875
      Internet Draft: Measures for making DNS more resilient against forged answers - http://tools.ietf.org/html/draft-ietf-dnsext-forgery-resilience
      RFC 3833 - http://tools.ietf.org/html/rfc3833
      RFC 2827 - http://tools.ietf.org/html/rfc2827
      RFC 3704 - http://tools.ietf.org/html/rfc3704
      RFC 3013 - http://tools.ietf.org/html/rfc3013
      Microsoft Security Bulletin MS08-037 - http://www.microsoft.com/technet/security/bulletin/ms08-037.mspx
      Internet Systems Consortium BIND Vulnerabilities - http://www.isc.org/sw/bind/bind-security.php
      US-CERT - http://www.kb.cert.org/vuls/id/800113
      DNSSEC - http://en.wikipedia.org/wiki/DNSSEC
    • 35
      EOF