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
Scarica

260 C10 DNS