Tecnologie di Sicurezza in Internet APPLICAZIONI AA 2009-2010 Ingegneria Informatica e dell’Automazione Domain Name System DNS Il Domain Name System è: • la sintassi per specificare in modo gerarchico le entità in Internet • le regole per delegare l'autorità sui nomi • i sistemi che mappano i nomi sugli indirizzi e viceversa Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/2 Concetti fondamentali Il Domain Name System è un database gerarchico e distribuito. Memorizza informazioni per mappare i nomi host di Internet in indirizzi IP e vice versa, informazioni per spostare correttamente la posta elettronica e altro. I computer (clients) cercano informazioni nel DNS tramite una libreria di sistema (resolver) che manda query a uno o più name server e interpreta le risposte. Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/3 Domain names Le informazioni contenute nel DNS sono identificate da domain names organizzati ad albero, secondo criteri organizzativi o amministrativi. Ogni nodo dell'albero ha un'etichetta (domain) che, concatenata a tutte le etichette fino al nodo root, forma il domain name del nodo. Es.: mail.example.com Il nodo root può essere indicato esplicitamente con un trailing ‘.’ Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/4 Domain names L’ultima etichetta di un domain name si chiama top level domain (TLD); i TLD possono essere generici o regionali. I principali TDL generici sono: com, net, org, edu, mil, biz, info, name, ecc… I TDL regionali seguono invece lo standard ISO 3166-1 (alpha-2: codici di paese a due caratteri): it, de, se, es, ecc… Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/5 Domain names La struttura tipica di un domain name completo inizia con il nome di un host e termina con un TLD. Questo è solitamente denominato FQDN, cioè fully qualified domain name. www.microsoft.com mail.us.company.net tenge2-1-54.cr3.FRA3.content-core.net Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/6 Zones Lo spazio dei nomi nel DNS, gerarchico nella sua struttura logica, è fisicamente suddiviso in partizioni, dette zone; ciascuna zona è amministrata indipendentemente. Le informazioni che caratterizzano la zona sono contenute in un name server nella forma di resource records (RRs); il name server risponde a queries. queries e answers sono effettuate come descritto nel DNS protocol. Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/7 Zones Una zona è un point of delegation nell'albero dei nomi DNS e al contempo container per tutti i nomi gestibili da quel nodo dell’albero in giù, ma non contenuti in ulteriori zone di livello inferiore (la cui gestione è stata per definizione delegata) Il punto di delega è caratterizzato dalla dichiarazione di uno o più NS records che asseriscono l'esistenza di name server che servono i nomi di quella zona. Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/8 Resource Records A IPv4 Address record. An IPv4 address for a host. PTR IP address (IPv4 or IPv6) to host. Used in reverse maps. CNAME Canonical Name. An alias name for a host. SOA Start of Authority. Defines the zone name, an e-mail contact and various time and refresh values applicable to the zone. NS Name Server. Defines the authoritative name server(s) for the domain (defined by the SOA record) or the subdomain. MX Mail Exchanger. A preference value and the host name for a mail server/exchanger that will service this zone. SPF, SRV, TXT, … Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/9 Servers Ciascuna zona è servita da almeno un authoritative name server. Possono essercene più di uno, per ridondanza. Le risposte provenienti da tale name server hanno il bit AA posto a 1 nel pacchetto di risposta a una query. Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/10 Servers Il name server dove una zona è gestita è detto primary. Un amministratore provvede all'editing di un file contenente le informazioni della zona (zone file). Gli altri server autoritativi per una zona (detti secondary servers) ne ricevono i dati (dal server primario o da un secondario) con un processo di replica denominato zone transfer. Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/11 Servers Caching Name Servers I name server possono anche rispondere con informazioni sulle quali non hanno autorità e che devono richiedere ad altri name server, seguendo ricorsivamente l'albero fino al name server autoritativo. Forwarders Il complesso processo ricorsivo di risoluzione del nome può essere inoltre delegato interamente ad altri server, detti forwarders. Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/12 Servers Recursive queries Per risolvere un FQDN, i server percorrono l’albero corrispondente nel seguente modo. Esempio: Receive Query for resolving “www.ibm.com“ Query NS(‘.’) for ‘com’ NS(‘com’) Query NS(‘com’) for ‘ibm’ NS(‘ibm’) Query NS(‘ibm’) for ‘www’ A(‘www’) ... Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/13 Clients Il client DNS si chiama in realtà resolver. Si tratta di un componente del sistema operativo che richiede un minimo di configurazione: serve almeno un IP address del DNS server da contattare per risolvere i nomi Opzionalmente è possibile specificare il dominio di default, ovvero il domain name da aggiungere alla query nel caso il nome non sia un FQDN Nei sistemi Microsoft esiste anche il DNS Client, che oltre a fare cacheing locale dei nomi DNS (funzionalità spesso dannosa) fa anche altro “Risolve e salva nella cache nomi DNS per il computer. Se il servizio è stato arrestato, il computer non sarà in grado di risolvere i nomi DNS e di individuare i controller di dominio Active Directory…” Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/14 BIND Berkeley Internet Name Domain Software storico, la più diffusa realizzazione di name server, sviluppato da Internet Systems Consortium. BIND tools • dig • host • nslookup Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/15 Ridondanze Single Point of Failures • name server unico • dietro a un singolo router • a valle di un singolo collegamento • in uno stesso AS • afferenti a uno stesso BB Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/16 Ridondanze Primario e secondario • è la ridondanza più comune, eventualmente con primario e secondario presso due Provider diversi o in punti diversi della rete • sia per DNS interni che per DNS pubblici Load balancing con DNS • Più RR relativi allo stesso nome vengono risolti ciclicamente (round-robin) --> server farm, server di posta… esempio www A 100.102.88.1 www A 100.102.88.2 www A 100.102.88.3 www A 100.102.88.4 Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/17 Protezioni Evitare il DNS cache poisoning • Se possibile non usare la ricorsione • ACL sui client che possono fare query di qualunque tipo • ACL sui client che possono fare query ricorsive • Usare le viste (BIND 9) Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/18 Protezioni Usare sistemi separati • Advertising name server risponde solamente alle query per le quali ha informazioni autoritative (non esegue query ricorsive), che gli arrivano da tutti • Resolving name server risponde alle query che gli arrivano solamente dall'interno della rete e può o meno contenere informazioni autoritative per zone interne • Internal-only name server si può anche isolare completamente, a livello DNS, la rete interna da quella pubblica evitando di risolvere i nomi esterni Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/19 Protezioni Filtrare opportunamente il traffico • Name server multiruolo dedicato se il sistema fa solo da name server, si può filtrare tutto il traffico non-DNS. Esempio di DNS installato sulla DMZ SRCADDR SRCPORT DSTADDR DSTPORT Inbound qry * * NS 53/udp Inbound AXFR Secondary-DNS * NS 53/tcp Queries from internal network Internal net * NS 53/udp Outbound recursive qrys NS * * 53/udp Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/20 Protezioni Proteggere il zone transfer nel file di configurazione del server • Anche nei secondari! • Esempio options { allow-transfer { 192.116.8.1 }; }; • Usare TSIG key tsig-signing. { algorythm hmac-md5; secret "kas4ALDjalsjda=)da39WJD,W"; }; server 192.116.8.1 { keys { tsig-signing.; }; Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/21 Protezioni Eseguire con utente non-root Si crea un utente non privilegiato che ha accesso solo ai file contenenti i dati delle zone. Eseguire in chroot() jail Una compromissione di named risulterà in un accesso al sistema limitato a un ambiente e un filesystem ristretti Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/22 DNSSEC Il 2008 è stato un anno critico per il DNS: in febbraio Dan Kaminski si recò in ISC per mostrare una importante lacuna nel protocollo (non nelle implementazioni) DNS, il cui exploit poteva portare alla perdita dell’intero database a livello mondiale! Per la prima volta ISC, Microsoft, Cisco e altri vendor si attivarono e pubblicarono contemporaneamente alcune patch per i loro prodotti prima che venissero pubblicati dettagli sulla scoperta di Kaminski Le patch comunque non impedivano l’exploit ma ne rendevano solo più difficile l’esecuzione Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/23 DNSSEC In realtà il dettaglio alla base di questa lacuna era noto ad altri (D.J. Bernstein) dal 1999, ma nessuno in ISC si era reso conto del problema; comunque nel 2008 si mosse con urgenza perfino il management IT del governo americano! DNSSEC: consente • ai server autoritativi di aggiungere firme digitali ai RR • ai resolver di validare crittograficamente le risposte Alternative: djbdns Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/24 Esercizio: Enterprise DNS Configurazione dello spazio dei nomi di un DNS interno “enterprise”, ossia che serve la name resolution in tutti i siti dell’organizzazione • Full mesh Ciascun DNS fa da primario per i nomi locali, ma sa risolvere tutti i nomi dell’organizzazione perché li riceve con zone transfer in qualità di secondario A E B D C DNS-A è primario per A e riceve le mappe B .. E come secondario DNS-B è primario per B e riceve le mappe A, C .. E come secondario ... DNS-E è primario per E e riceve le mappe A .. D come secondario Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/25 Esercizio: Enterprise DNS Quando l’organizzazione è molto frammentata, i siti sono numerosi e piccoli e le risorse sono per lo più centralizzate, è più adatta una soluzione generalmente • Hub’n’spokes A B E HQ D C Ciascun DNS fa da primario per i nomi locali, che trasferisce al DNS-HQ e risolve anche i nomi dell’HQ DNS-HQ è primario per HQ e riceve le mappe A .. E come secondario; conosce quindi tutti i nomi dell’intera organizzazione DNS-A .. -E sono primari per A .. E e ricevono le mappe di HQ come secondari; conoscono quindi i nomi locali e i nomi della struttura centrale Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/26 Esercizio: ISP change Cambio di ISP ISP1 INTERNET ISP2 R2 R1 WWW DNS MAIL EXT2 EXT1 Firewall LAN Si devono cambiare gli indirizzi IP delle macchine pubbliche, in particolare quello del DNS Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/27 Esercizio: public subnet change Cambio di subnet pubblica INTERNET ISP R EXT WWW Firewall DNS MAIL DMZ NEW DMZ OLD LAN Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/28 Riferimenti • Domain Administrators Operations Guide RFC 1033 • Domain Names - Concepts and Facilities RFC 1034 • Domain Names - Implementation and Specification RFC 1035 • BIND 9 Administrator Reference Manual • Securing an Internet Name Server CERT Coordination Center A. Householder, B. King • DNS Cache Poisoning - the next generation J. Stewart Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C10/29