DNS Security Percorso Introduzione al DNS Ordinamento

Transcript

DNS Security Percorso Introduzione al DNS Ordinamento
Percorso
DNS Security
♦ Il DNS
♦ I problemi relativi alla sicurezza
Università degli studi di Salerno
Anno Accademico 2001/2002
Sistemi di Elaborazione:
Sicurezza su Reti
♦ Il Domain Name System (DNS)
– Cos’è il DNS
– Il funzionamento
– Vulnerabilità del DNS
• DNS Spoofing
• Cache poisoning
– Estensioni DNSSEC
♦ L’architettura DNSSEC
Introduzione al DNS
♦ Domain Name System – Un database
gerarchico distribuito, che associa nomi
degli host a indirizzi IP
– Permette ad un utente di trovare un sistema
senza conoscere il suo indirizzo IP
(convenienza)
silicon.cs.umn.edu
128.101.35.181
– Organizza l’interrete in domini
Ordinamento gerarchico
♦ I domini sono organizzati logicamente
Struttura Gerarchica del DNS
come un albero invertito
– capri.dia.unisa.it – specifica completa della
macchina di nome capri
– dia.unisa.it – il dominio dia
– unisa.it – il dominiodell’ Università di Salerno
– it - sottodominiodel dominioroot
♦ Suddivisione in zone, responsabilità
delegate
♦ L’Internet Corporation for Assigned
Names and Numbers (ICANN)
sovraintende agli assegnamenti dei nomi
di dominio
Autorità centrale responsabile
per la delegazione dei top-level
com
edu
org
it
Autorità italiana
per i nomi sotto il
dominio it
mit
Autorità locale responsabile
per i nomi sotto il dominio
unisa.it
Autorità locale responsabile
per i nomi sotto il dominio
dia.unisa.it
unisa
dia
libero
dmi
1
Ogni zona ha un Name Server
(NS)
Resource Record
♦ Mantiene un database delle informazioni sugli
♦ Mantiene tutti i dati DNS
host per la sua zona
♦ Contatta l’ NS autoritativo della zona per
prendere informazioni sull’ host (come l’ IP)
♦ Le informazioni devono essere aggiornate
quando quelle dell’ host cambiano nella zona
♦ Aggiornamenti dinamici cambiano i dati del
DNS senza la necessità di ricostruire ogni altra
parte dell’ albero DNS
Il Problema : “Dirottamento” di un
dominio
♦ Gli indirizzi IP nel database del DNS vengono
cambiati da host non autorizzati
♦ Diversi modi per fare ciò
1. DNS Spoofing – “Ingannare” il server DNS con
informazioni ritenute sicure, ma che in realtà non
lo sono
2. Cache Poisoning – Falsarel’ IP con un alto TTL,
cosicchè il server DNS lo conserveràin cache per
molto tempo
3. Errore umano – L’ Amministratoreinserisce le
informazioni DNS in modo scorretto
♦ DNSSEC può aiutare a contrastare i primi due
♦ Alcuni esempi
– NS – Definisce il Name Server della zona
– A – Mappa un hostname in un indirizzo IP
♦ Gli RR possono essere messi in cache per
motivi di performance
– Il campo TTL di un RR specifica quanto
tempo deve essere memorizzato
DNS Security
♦ DNSSEC Extensions
– Obiettivi
• Protezione trasferimenti DNS
– Servizi
• Key Distribution
• Data Origin Authentication
• Transaction and Request Authentication
attacchi
DNS Security
Cosa DNSSEC non garantisce
♦ DNSSEC Extensions
♦ I dati DNS sono pubblici
– Nessuna differenziazione di risposte in base
a differenti provenienze delle richieste
– Non garantisce confidenzialità
– Chain of trust
– Utilizzo di crittografia a chiave pubblica
♦ Nessuna protezione contro un attacco di
tipo Denial of Service
2
DNSSEC autentica le richieste e
le risposte DNS
♦ Usa la crittografia a chiave pubblica per
implementare le firme digitali
♦ Racchiude i dati relativi alla sicurezza del
DNS in nuovi record di risorse nei server
e negli host
DNS Security
Nella seconda parte vengono descritte e classificate
le debolezze del DNS: sono descritti alcuni attacchi
basati sul Dns.
DNS Security
Verranno ora considerate tre
parti, in maniera più
approfondita
Nella prima parte si citano i concetti generali
introduttivi del DNS. La paronamica rapida intende
familiarizzare il lettore con le nozioni basilari usate
in seguito.
DNS Security
Nella terza parte si procede con le soluzioni che si
riferiscono alla cosidetta architettura DNSSEC, e
all’insieme di documenti che includono le
Request For Comment.
•Ind
•Sp irizzi IP
azio
dei
nom
i
3
Differenza fra indirizzi IP e Nomi
mnemonici
Indirizzo IP:
Esempio
Rappresentazione binaria
:
:
stringa di 32 bit
192 .
41
.
218
.
1
11000000 00101001 11011010 0000001
Facile da manipolare per un computer
• Difficile da ricordare per una persona
Nome mnemonico: stringa di caratteri
Esempio: vogclub.com
(Sito per giocare a dama e scacchi on line)
• Facile da ricordare per una persona
• Difficile da manipolare per un computer
•
Gestione dello Spazio dei Nomi
Si deve garantire che ogni nome mnemonico
identifichi univocamente un host:
• Si fissa una politica di gestione dello spazio dei nomi
• Un’autorità garantisce l’applicazione della politica
Due possibili soluzioni:
• Spazio dei nomi piatto (flat)
• Spazio dei nomi gerarchico
E’ possibile associare nomi a indirizzi IP
• l’associazione deve essere 1 - a - 1 per evitare ambiguità
• serve un’applicazione che effettui le conversioni
Spazio dei Nomi Piatto
Una lista di nomi senza una particolare struttura
• Una funzione associa ogni nome univocamente ad
un indirizzo IP
soluzione
semplice
ma con problemi
router
164.1.1.1
pippo
18.12.222.3
macchina2 192.41.218.2
macchina1 192.41.218.1
Gestione centralizzata
• La tabella di conversione deve essere nota a tutti i
computer della rete
• Difficile da gestire e da consultare quando la rete è
grande
•
Idea della Struttura Gerarchica
Struttura di un’azienda
• Direttore generale
• Vari reparti, ognuno con un capo reparto
Il direttore generale ha piena responsabilità ma
garantisce ad ogni reparto autonomia
• nomina un capo per ogni reparto
• il capo reparto ha la responsabilità del suo reparto e può
prendere decisioni autonome
• le relazioni tra i reparti sono gestite dal direttore
generale
Spazio dei Nomi Gerarchico
Lo spazio dei nomi viene diviso in zone dette domini
• per ogni dominio viene definita un’autorità di dominio
Consente la decentralizzazione della gestione della tabella
• l’autorità centrale si occupa solo di coordinare le autorità
di zona
• ogni autorità di dominio è delegata a gestire
l’assegnazione dei nomi della sua zona ed effettuare le
corrispondenze tra indirizzi e nomi
• ogni dominio può essere diviso in sottodomini affidati ad
autorità di sottodominio
Le autorità di dominio sono autonome
• lo stesso nome può essere usato in domini diversi
Struttura dei Nomi Gerarchici
Un nome gerarchico è formato da vari campi,
detti etichette
• le etichette sono separate da punti
Ogni etichetta è assegnata da un’autorità ed
identifica una zona
• l’autorità garantisce che nella sua zona quel nome è
unico
Es. dia.unisa.it
• it è unico a livello globale
• unisa è unico nel dominio it
• dia è unico nel dominio unisa.it generale
1° Livello
2° Livello
3° Livello
4
DNS
•DN
S
•Dom
ini
Il Domain Name System implementa uno spazio
dei nomi gerarchici per le interreti TCP/IP
• utilizzato su Internet
• E’ utilizzato da molte altre applicazioni e protocolli che
interagiscono con la comunicazione in un interrete
(Web browsing, Ftp, Telnet, utility TCP/IP su internet)
• basato su un database distribuito
Il DNS provvede a
• specificare la sintassi dei nomi e le regole per
delegare l ’autorità sulle zone
• implementare il sistema di calcolo distribuito per
convertire nomi in indirizzi e viceversa
Ad esempio DeSantis@dia si riferisce a dia.unisa.it
Regole Sintattiche
Esempio
Il nome coppi.dia.unisa.it. identifica l’indirizzo 192.168.203.1
Il “.” rappresenta il livello più alto gestito dall’ICANN
L’intero spazio dei nomi è rappresentato come
una zona senza nome
Le etichette dei vari livelli gerarchici sono
separate con un “.”
• Non c’è differenza fra maiuscole e minuscole
I livelli gerarchici sono ordinati da destra a
sinistra
• il primo livello in genere è omesso
(Es. DIA.UNISA.IT._)
“it” rappresenta tutti i domini italiani
L’autorità centrale delega dei responsabili per la gestione dei
nomi sotto il dominio “it”
“unisa” rappresenta i nomi per l’università di Salerno
L’autorità di it delega dei responsabili per la gestione dei nomi
sotto il dominio unisa.it
“dia” rappresenta i nomi per il dipartimento di
Informatica ed Applicazioni
L’autorità di unisa.it delega dei responsabili per la gestione dei
nomi sotto il dominio dia.unisa.it
“coppi” è il nome di un host fissato dall’autorità di dia.unisa.it
Domini Top Level
L’autorità centrale ha individuato un insieme di domini di
primo livello
• individuati su base geografica o in base alla funzione
COM Organizzazioni commerciali
EDU Istituzioni didattiche
GOV Istituzioni statali (americane)
MIL Gruppi militari (americani)
NET Centri di supporto di Internet
ORG Altre organizzazioni
INT Organizzazioni internazionali
IT, US, UK, DE, RU Codici di nazione (due lettere)
Nuovi Domini Top Level
Recentemente sono stati introdotti nuovi domini
di primo livello
• necessari per soddisfare esigenze commerciali e
risolvere problemi di esaurimento dei nomi
Nuovi domini
BIZ
attività commerciali
INFO siti informativi
COOP siti di cooperative
AERO attività aerospaziali
MUSEUM musei
NAME siti personali
EU
codice dell’Unione Europea
5
Struttura dei Top Level Domain
Ogni dominio di primo livello è gestito secondo regole
proprie
• cambiano le regole ed i costi di registrazione
•Na
me
Serv
er
Alcuni domini geografici sono ripartiti secondo
uno schema simile a quello di primo livello
• ac.uk università inglesi
• ac.il università israeliane
• co.uk organizzazioni commerciali inglesi
Name Server
La risoluzione dei nomi è affidata ad un
sistema distribuito
• I membri del sistema sono detti Name Server
• ogni applicazione deve contattare un Name Server
per risolvere un nome
Ogni autorità deve avere almeno un name server
• gestisce la risoluzione dei nomi per quel dominio
• un’autorità è totalmente responsabile del
funzionamento dei suoi name server
I ROOT NAME SERVER
Struttura gerarchica dei Name Server
I name server possono essere classificati
secondo l’albero dei domini
• due name server collegati nell’albero si conoscono e
si scambiano informazioni
I name server collegati possono comunicare in
vari modi
• possono risiedere sullo stesso host o essere
collegati tramite un’interrete
• le relazioni nell’albero sono logiche e non fisiche
I name server associati alla radice dell’albero
sono detti root name server
• per ogni nome conoscono un name server in grado
di convertire quel nome
I Root Name Server
• L' elenco dei 13 root name servers attaccati l’11 Settembre dall’
organizzazione di Bin Laden può essere ottenuto utilizzando il
comando dig che è un evoluto comando di interrogazione DNS.
•
•
•
•
•
•
•
•
•
•
•
•
•
i.root-servers.net. 5d22h39m28s IN A 192.36.148.17
e.root-servers.net. 5d22h39m28s IN A 192.203.230.10
d.root-servers.net. 5d22h39m28s IN A 128.8.10.90
a.root-servers.net. 5d22h39m28s IN A 198.41.0.4
h.root-servers.net. 5d22h39m28s IN A 128.63.2.53
c.root-servers.net. 5d22h39m28s IN A 192.33.4.12
g.root-servers.net. 5d22h39m28s IN A 192.112.36.4
f.root-servers.net. 5d22h39m28s IN A 192.5.5.241
b.root-servers.net. 5d22h39m28s IN A 128.9.0.107
j.root-servers.net. 5d22h39m28s IN A 192.58.128.30
k.root-servers.net. 5d22h39m28s IN A 193.0.14.129
l.root-servers.net. 5d22h39m28s IN A 198.32.64.12
m.root-servers.net. 5d22h39m28s IN A 202.12.27.33
• Il tempo indicato è la validità della corrispondenza Nome <-> Ind. IP
6
Name Server per .it e .unisa.it
Zone di Autorità
Il sottoalbero di domini gestito da un name
server costituisce la sua zona di autorità
Per ottenere una zona di autorità
un’organizzazione deve soddisfare alcuni vincoli
fissati dall’autorità centrale
• supportare tutti i protocolli standard per le
interrogazioni e le risposte dal DNS
• conoscere almeno un root name server
• conoscere un name server per ciascuno dei suoi
sottodomini
• avere almeno due name server attivi che non hanno
punti di guasto comuni
• un name server primario ed uno di backup
it. 1D IN NS nameserver.cnr.it.
it. 1D IN NS server2.infn.it.
it. 1D IN NS ns2.psi.net.
it. 1D IN NS dns2.iunet.it.
it. 1D IN NS dns2.it.net.
it. 1D IN NS ns.ripe.net.
it. 1D IN NS dns.nic.it.
it. 1D IN NS ns.eu.net.
unisa.it. 2D IN NS capri.dia.unisa.it.
unisa.it. 2D IN NS server2.garr.net.
unisa.it. 2D IN NS ns.unisa.it.
;; ADDITIONAL SECTION:
capri.dia.unisa.it. 2D IN A 192.41.218.10
server2.garr.net. 1h30m26s IN A 131.154.1.11
ns.unisa.it. 2D IN A 193.205.160.3
Tipi di Nomi
•Tip
i
•Ris di nom
oluz
i
ione
di
Il DNS consente di incorporare nello stesso
sistema diverse gerarchie di nomi
nom
i
Ad ogni elemento denominato, memorizzato nel
sistema è associato un tipo
• Host
• Casella postale
• Un utente
Quando si interroga il DNS si deve specificare
che tipo di informazione si sta cercando e la
famiglia di protocolli da utilizzare
• Per default si assume che si stanno cercando i nomi
degli host e che si usano i protocolli TCP/IP
Risoluzione di un Nome
Individuazione del Name Server
La comunicazione con il name server è gestita
dal resolver
• Il Resolve r fa parte dell’applicazione ed è invocato
prima di contattare il livello di trasporto
• TCP e UDP non hanno nessuna relazione con i nomi
di domini
Es. un utente su A lancia
Server FTP
il comando ftp B
Name Server
• A richiede al name server
su S l’indirizzo di B
• S risponde con l’indirizzo
• A invia un messaggio FTP
all’indirizzo di B
S
B
A
Client FTP
Non esiste per gli host un metodo standard per
individuare un name server sulla rete locale
• in genere il nome del name server è memorizzato in
un file di configurazione oppure prelevato da un
server DHCP
• il name server si trova sulla porta 53 (sia UDP che TCP)
In ambiente Linux gli indirizzi dei name server
sono memorizzati in /etc/resolv.conf
• specifica fino a 3 name server in ordine di preferenza
• specifica una lista di suffissi per il completamento degli
indirizzi (consente ad esempio di scrivere
Desantis@nomehost, che verrà completato con
dia.unisa.it)
• Es. nameserver 192.168.203.2 domain dia.unisa.it
7
Modalità di Risoluzione
Completamento degli Indirizzi
Il name server accetta solo richieste per nomi
completamente qualificati
• specificano le etichette di tutti i livelli a partire dal
root level
Il resolver permette all’utente di specificare
nomi parziali
• prova ad estenderli per ottenere nomi
completamente qualificati
• aggiunge al nome i suffissi specificati nel file di
configurazione
• Es. ftp coppi ftp coppi.dia.unisa.it.
Il name server può utilizzare due diverse
modalità per rispondere ad una interrogazione
• modalità ricorsiva: se non conosce la risposta
interroga altri name server e poi passa la risposta al
client
• usata dai name server locali
• modalità iterativa: se non conosce la risposta passa
al client l’indirizzo di un altro name server
• usata dai name server di livello superiore
Il client sceglie la modalità di risposta
• setta un flag nel messaggio di richiesta
Funzionamento del DNS
•Dns
•Cac :Funzio
na
he
mes ,Forma mento
sagg
t
gi D o dei
ns
L’applicazione interroga il name server locale
• se il nome appartiene alla sua zona di autorità il
name server locale risponde direttamente
Altrimenti:
Il name server locale interroga un root name
server
• ottiene in risposta il nome di un name server che ha
l’autorità sul dominio di primo livello del nome richiesto
Il name server locale interroga il name server di
primo livello
• ottiene in risposta il nome di un name server di
secondo livello
Si procede ricorsivamente fino alla risoluzione del nome
Esempio di Risoluzione
Name Server per “.”
Name Server per “it”
Name
Server
locale
Cache
“.”
fr
it
unisa
libero
Name S. per “unisa.it”
Name S. per “dia.unisa.it ”
dia
Resolver
www.dia.unisa.it
dmi
Ogni name server mantiene in una cache tutte
le corrispondenze tra nomi e indirizzi di cui
viene a conoscenza
• nell’esempio il name server locale mette in cache i
name server di it, unisa.it e dia.unisa.it
• una richiesta per www.dmi.unisa.it viene risolta
direttamente dal name server locale
Ogni corrispondenza viene mantenuta nella
cache per un periodo fissato
• il tempo di validità è fissato dal name server che ha
l’autorità su quel nome nel messaggio inviato agli
altri name server
• per default il timeout è 2 giorni
8
Parametri
Formato dei Messaggi
0
16
32
Identification
Number of questions
Parameter
PARAMETER: contiene vari flag per specificare il tipo di
operazione richiesta
• Richiesta/risposta
• Corrispondenza indirizzo/nome o viceversa
• Messaggio troncato
• Risposta proveniente dalla autorità o indiretta
• Modalità ricorsiva disponibile
• Modalità ricorsiva richiesta
Number of answers
Number of Authorities Number of Additional
Question Section
Answer Section
Authority Section
Additional Information Section
Ogni messaggio consente di specificare più richieste
e risposte
Formato della Question Section
0
16
32
Query Domain Name
Query Type
IDENTIFICATION: consente di far corrispondere le
risposte alle richieste
Query Class
QUERY DOMAIN NAME: contiene il nome da
risolvere, rappresentato come sequenza di caratteri di
lunghezza variabile
• Es. dia.unisa.it à 3 d i a 5 u n i s a 2 i t 0
QUERY TYPE: specifica il tipo di informazione richiesta
QUERY CLASS: specifica la classe di indirizzi
Gli altri campi specificano quanti record sono contenuti
nelle quattro sezioni del messaggio
Formato della Answer Section
0
16
32
Resource Domain Name
Type
Class
Time to live
Resource Data Length
Resource Data
I primi tre campi sono uguali alla Question Section
TIME TO LIVE: tempo di validità della risposta
RESOURCE DATA: contiene la risposta del name server
• formata da vari record di risorse (RR)
Stesso formato per le altre due sezioni
Tipi degli Oggetti
•Tip
i
•Int degli og
er
g
inve rogazio etti
ni
rse
Il DNS può essere utilizzato per implementare
un qualsiasi spazio gerarchico dei nomi
Può implementare corrispondenze arbitrarie
• es. corrispondenze tra nomi e indirizzi IP e tra nomi
e caselle di posta
Il tipo di un oggetto definisce il tipo di
corrispondenza a cui si riferisce
• esistono circa 20 tipi di oggetti e ne vengono
introdotti continuamente di nuovi
9
Esempio di Utilizzo dei Tipi
Principali Tipi
A
Indirizzo di un host
PTR
Puntatore
CNAME
Nome canonico
MX
Mail exchanger
• Richiesta di tipo A per rossi.diareti.diaedu.unisa.it
à 193.205.161.171 (indirizzo IP associato al nome)
Indirizzo IP
Nome di un dominio
HINFO
CPU e SO
MINFO
Mailbox info
Nome principale di un dominio
Nome dell’host che agisce come
mail exchanger per il dominio
Nome della CPU e del SO
NS
Name Server
SOA
Start of authority
• Richiesta di tipo PTR per 192.168.203.2
à gimondi.dia.unisa.it (nome associato all’indirizzo)
• Richiesta di tipo MX per <nome host>.dia.unisa.it
à udsab.dia.unisa.it (mail exchanger per dia.unisa.it)
Informazioni su una mailbox
Nome del name server che ha
l’autorità sul dominio
Specifica la zona dell’autorità
• Richiesta di tipo NS per <nome host>.dia.unisa.it
à capri.dia.unisa.it (name server che ha l’autorità su
dia.unisa.it)
• Richiesta di tipo SOA per capri.dia.unisa.it
à dia.unisa.it (zona di autorità di capri.dia.unisa.it)
Formato Compresso dei Nomi
Interrogazioni Inverse
I messaggi di risposta del name server
contengono anche la query originaria
• i messaggi non possono essere più lunghi di 512
byte
• la risposta è troncata e il flag corrispondente è
settato
Utilizzata per recuperare il nome associato ad
un indirizzo IP
• utilizzata da alcuni server per verificare la
correttezza delle informazioni ottenute dal client
Per risparmiare spazio i nomi sono compressi
• la prima occorrenza è scritta normalmente
• le occorrenze successive sono sostituite da un
puntatore alla prima occorrenza
• l’indirizzo del puntatore è scritto nel byte precedente
il nome
• al posto della dimensione dell’etichetta (6 bit
meno significativi)
• il puntatore ha i primi due bit a 1
Implementata come la ricerca di un nome
• tutti gli indirizzi IP sono rappresentati come nomi
nel dominio in-addr.arpa
• Es. 192.168.203.2 2.203.168.192.in-addr.arpa
Riassumendo...
Riassumendo...
I root name server mantengono un database di
tutti gli indirizzi IP validi e dei name server che li
possono risolvere
Il DNS
Il Processo di risoluzione dei nomi
•
Query Ricorsiva Aggiornamento
System call
Programma
Utente
Name
resolver
Name
Server
Risposta Primario
Nome
Cache
IP
• Può utilizzare protocolli TCP oppure UDP
Riferimenti
Risposta del Resolver
• Componenti principali DNS:
Macchina Locale
Query Iterativa
Name
Server
E’ un sistema distribuito, gerarchico che provvede
principalmente all’ associazione
Query Iterativa
Risposta
Name
Server
Risposta
Lo Spazio del Nome di Dominio descritto dal tipo ovvero
dai Resource Record (RR) (per esempio, SOA, NS, A, MX)
• I
Name Server
•
•
I
Resolver
10
Perché la Sicurezza del DNS è importante?
Il DNS è utilizzato radicalmente da applicazioni Internet e
sorgono quindi i problemi di sicurezza DNS:
• I name server possono essere “truffati” facilmente
e sono vulnerabili a molti tipi di attacchi
(DoS, buffer overrun, replay).
• I Resolver possono essere indotti a “credere” in
informazioni false.
• Misure di sicurezza (per esempio, ACLs) e altri
meccanismi, rendono l’inganno, più difficile da
compiere, ma non impossibile!
• Nel Giugno del 1997, Eugene Kashpureff (fondatore
dell’Alternic) ha reindirizzato il dominio internic.net
ad alternic.net, mettendo in cache informazioni false,
sul Name Server di Internic
Destinazione errata indotta: Credere
in false informazioni
•DN
S SP
OOF
ING
Si supponga il seguente scenario:
• Un utente vuole connettersi ad un host A mediante
un Telnet Client
• Il Telnet Client chiede attraverso un resolver il
Name Server locale per risolvere il nome A in un
indirizzo IP.
• Esso riceve una informazione falsa e inizia una
connessione TCP al Server Telnet sulla macchina
A(almeno così crede).
• L'utente manda la sua login e password all'indirizzo falso.
Di conseguenza:
L’utente può ignorare ciò che è appena successo, ma
l'attaccante malizioso che si è spacciato con il nome
dell'host A, ha ora il controllo della login e della
password dell'utente.
• Ora la connessione salta, e l'utente ritenta l'intera
procedura questa volta al corretto indirizzo IP dell'host A.
11
•
Il problema è che i Router attuali non hanno
la capacità di respingere i pacchetti con falsi indirizzi
sorgenti.
•
• L'attaccante può instradare pacchetti a chiunque
e può indurre a farli considerare come pacchetti
provenienti da un host fidato.
•
L'attaccante prevede il momento in cui viene
mandata una query e inizia ad inondare il
Resolver con le sue false risposte.
• Con un Firewall per la rete dell'utente, il resolver non
sarebbe raggiungibile dal mondo esterno, ma il
suo Local Name Server si.
•Aut
en
Auto ticazio
n
r
basa izzazio i e
n
te s
ui n i
omi
Attenendosi a queste assunzioni, osserviamo che
parallelamente, c'è la possibilità di compiere
un attacco Denial of Service (DoS)
• Nel caso di un tale attacco, se il Name Server può essere
ingannato e l'host dell'attaccante può spacciarsi per
il vero name server, allora può maliziosamente imporre
che alcuni nomi nel dominio, non esistano.
Autenticazioni e Autorizzazioni
basate sui nomi
• Alcune applicazioni, sfortunatamente diffuse su
Internet, fanno uso di un meccanismo estremamente
insicuro:
L' Autenticazione e Autorizzazione basate sui nomi
• E' il caso, ad esempio, dell' "rlogin" di unix, o "rsh",
"rcp" che usano il concetto di equivalenza remota per
permettere l'accesso remoto ad un computer.
•
In queste reti, l'amministratore di sistema, o peggio
ancora, gli utenti, possono dichiarare(rendere nota)
l'equivalenza remota di 2 account su 2 differenti
macchine (ad esempio per mezzo dei file
/etc/hosts.equiv oppure .rhosts)
• Questa equivalenza associa due utenti di 2 differenti
host semplicemente sulla base dei loro nomi.
12
Ad esempio :
otherhost.mydomain.com
•
host.mydomain.com
L'accesso al computer remoto è allora garantito se
l'utente remoto è dichiarato equivalente all'utente
locale e se la richiesta dell'hostname coincide con
quella contenuta nella definizione equivalente.
• Nessun altro tipo di identificazione è usata, e perciò
parliamo di autenticazione (debole)basata su nomi.
si collega come…
Joe
Doe
L'utente “joe” può loggarsi come l'utente
“doe” al computer “host.mydomain.com”,
se il file /etc/hosts.equiv contiene l'equivalenza tra
l'utente locale “doe” e l'utente
“[email protected]”
semplicemente sulla base dei loro nomi.
•
•
I comandi Remoti sono stati progettati quando nacque
Internet, per l'uso di reti locali fidate, dove tutti gli utenti
erano conosciuti dall'amministratore di sistema, e la rete
non era connessa al grande Internet. Sfortunatamente, i
comandi remoti sopravvissero alla crescita di Internet e
essi sono ancora presenti e usati in molte reti.
L'attaccante può monitorare il traffico di rete venendo a
conoscenza dell'equivalenza usata in quella rete, e operare
con l'indirizzo IP di un host equivalente (ad esempio
compiendo un attacco DoS, o semplicemente aspettando lo
shutdown della macchina).
•
Se viene usata l'autenticazione basata sul nome, è
possibile accedere ad una macchina remota
semplicemente truffando il nome di un host.
• Anche se la rete locale è protetta da un firewall, tutti gli
host che usano l’autenticazione basata sui nomi, rischiano
poichè un attaccante può prendere il controllo di
una singola macchina della rete protetta dal firewall.
•At
tac
info co alle
r
sup mazion
plem
i
enta
ri
• A questo punto l'host dell'attaccante è completamente
equivalente all'host attaccato per tutti i computer che
usano l'equivalenza remota.
13
Attacco alle informazioni
supplementari
•
Questo è un altro lato della debolezza del DNS.
Per motivi di efficienza il DNS fu progettato in modo da
avere una sezione addizionale nel suo formato standard
dei messaggi.
• Di conseguenza in alcuni casi quando un’ informazione
supplementare è considerata urgente da spedire, per
velocizzare la risposta per una data query, essa è inclusa
nella sezione addizionale.
•
Per esempio, se interroghiamo il nostro Name Server cioè
ns.mydomain.com, per recuperare la RR mail exchange
per il dominio comp-craiova.ro, il Server risponde con un
RR mail.gate.comp-craiova.ro nella sezione answer del
messaggio del DNS e nella sezione additional viene
incluso il nome e l'IP del name Server autoritativo per il
dominio comp-craiova.ro.
• Questa informazione non era stata esplicitamente chiesta
da noi, piuttosto era stata messa in cache, per evitare una
lunga ricerca per il name server autoritativo per quel
dominio.
CACHE POISONING
•CA
CHE
POI
SON
ING
•
Consideriamo ora l’attacco che evidenzia sempre più
la necessità di un meccanismo di autenticazione più
forte.
Esso viene chiamato :
“Cache poisoning" (Avvelenamento della cache).
DNS cache poisoning attack
Scenario
broker.com
evil.com
2. anyhost.evil.com?
1.anyhost.evil.com?
ns.evil.com
5.anyhost.evil.com=A.B.C.E
3. Memorizza
query ID
4.anyhost.evil.com=A.B.C.E
Host
Attaccante
A.B.C.D
6. www.bank.com?
ns.broker.com
cache
9. www.bank.com =
A.B.C.D
10.www.bank.com?
any.broker.com
8. www.bank.com=A.B.C.D
11.Risposta
Inondare con false risposte il N.Server
errata della cache
12.Connessione errata all’host attaccante!
bank.com
7. www.bank.com
ns.bank.com
14
Introduzione
Verifica Autenticità e Integrità dei
dati
♦ Ogni insieme di RR mandato come risposta a una DNS
•
Con l'RFC 2065 e dopo con la sua successiva 2535,
l'estensione per la sicurezza del DNS fu ammessa e
standardizzata in modo organizzato con il gruppo di
lavoro DNSSEC IETF .
query sarà accompagnato da una firma digitale generata
insieme alla chiave privata del mandante
♦ Il ricevente può verificarel’autenticità e l’integrità dei
messaggi verificando la firma
1. Richiesta DNS
• Il primo passo è provvedere all'autenticazione dei
dati per gli RR che vanno avanti e indietro in
Internet.
• Con l'autenticazione si ottenne anche integrità dei
dati e l'autenticazione dei dati sorgenti.
Host A
3. L’ Host A verifica la firma
NS for
Host B
♦ DNSSEC specifica un nuovo RR chiamato KEY, la
chiave pubblica di un sistema
– Occorre avere una chiave pubblica autentica
– Il SIG RR è la firma digitale di una risposta/richiesta
• L'autenticazione è ottenuta per via della firma digitale
crittografica.
Definizioni DNSSEC
Le caratteristiche del DNSSEC
– DNS le estensioni per la sicurezza (RFC 2535 - 2537):
•
•
•
2. Risposta DNS || Firma(Risposta DNS)
SIG - memorizza le firme digitali(asymmetric keys)
KEY - memorizza le chiavi pubbliche
NXT - autentica la non-esistenza di nomi o
tipi di RR in un dominio
I KEY RR specificano :
• Il tipo di chiave (zona, host, utente)
• Il protocollo (DNSSEC, IPSEC, TLS, ecc.)
• L’algoritmo (RSA/MD5, DSA, ecc.)
– DNSSEC agisce su insiemi di RR e non su singoli RR
I SIG RR specificano :
• Il tipo nascosto degli RR (SOA, A, NS, MX, ecc.)
• L’algoritmo (RSA/MD5, DSA, ecc.)
• I tempi di inizio e scadenza (della validità )
• La firma
– DNSSEC intende provvedere a:
Autenticare l’origine dei dati e all’integrità di essi
• Fornire la distribuzione delle chiavi
• Autenticare le transizioni e le richieste
Le caratteristiche del DNSSEC
Le caratteristiche del DNSSEC
I NXT RR specificano :
• Il prossimo nome nella zona
• Tutti I tipi di RR coperti dal nome corrente
• La chiave privata non è visibile in linea ed è usata per
firmare gli insiemi di RR del file di zona .
•
Per una zona firmata, c'è una KEY RR e ogni RR nella
zona è firmata con la corrispondente chiave privata
della zona.
• La chiave pubblica è pubblicata nel KEY RR
• Per capire meglio questa affermazione, mostreremo
nelle due figure le differenze di un file di zona fra
DNS standard e DNS sicuro.
• La chiave pubblica della zona è firmata usando la
chiave privata del padre di zona
• Per il DNS standard, abbiamo gli RR nel semplice file
dati di zona (figura 1)...
• La firma del padre di zona sulla chiave pubblica della
zona è aggiunta al file di zona.
15
File di Zona
File di Zona
Abbiamo anche l'IP di un host in mydomain.com,
per il name server e l'IP del mail exchange box
dato dall’ RR di tipo A.
Un semplice file dati di zona nel quale sono
presenti gli RR che specificano l'inizio dei
parametri (SOA), il Name Server(NS), la mail
exchange(MX) per il dominio mydomain.com
(linee 1-9).
Figura 1:Un file di zona nel classico DNS
File di Zona
•
File di Zona
Quando DNSSEC è usato, il file di zona è modificato
come presentato in figura 2 (per ogni RR
di figura 1 abbiamo un SIG RR in figura 2) ...
Figura 2 : Lo stesso file di zona nel DNSSEC
Ogni RR nel vecchio file di zona è firmato
mediante la chiave privata della zona. L’RR SIG lega
crittograficamente un insieme di RR al firmatario e
ad un intervallo di validità.
Nel nostro esempio, l'intervallo di validità
della firma è segnato dai valori
19991023133034
(il tempo di scadenza 13:30:34 del 23
Ottobre 1999) e 19990923133046 (il
tempo in cui venne firmata la zona
13:30:46 del 23 Settembre 1999).
Questo nuovo SIG AXFR permette di assicurare efficientemente
l'integrità e la sicurezza dei trasferimenti della zona.
La firma AXFR deve essere calcolata dopo che tutti gli RR nel file
di zona sono firmati e inseriti.
Infatti esso appartiene a tutta la zona non solo
al nome della zona.
The zone signer
•
Le firme degli RR e dei file di dati di zona, sono
generati da uno speciale programma: The zone signer
(il firmatario di zona).
• Il compito di fare la firma è demandato all'amministratore
di zona.
• Il programma legge tutti i dati nel file di zona, li
organizza in un ordine canonico, sistema i relativi record
in gruppi, li firma e aggiunge gli RR SIG e NXT nei loro
posti appropriati.
• Infine questa informazione è scritta in un file che sarà
usato dopo dal Name Server primario di zona.
16
DNSSEC chain of trust
La chiave pubblica del dominio radice
è ritenuta fidata a priori da tutti i
name server
it.
KEY
.
DNS Transaction security
Root name server
dell’albero DNS
m. ?
per co
m.
of co
RRs
Y, SIG
E
K
ve
Rice
host.foo.com. ?
com.
name server
polito.it.
Local name server
foo.com.
name server
Riceve gli RRs: A, SIG, KEY
host.foo.com
.
131.195.21.25
•
Transaction Signature (TSIG) è un’ altra estensione che
usa le chiavi segrete condivise
• Una soluzione miglioreper avere sicurezza nella
comunicazione fra name server e resolver
• TSIG autentica le query DNS e le risposte
• TKEY è un meta RR contenente la chiave segreta
• TKEY – non è memorizzata nei file di zona e nella
cache
• HMAC-MD5 provvede all’ autenticazione e al controllo
per l’integrità per la transazioni
Osservazioni su DNSSEC
DNS come un PKI
•
Il DNS con queste estensioni di sicurezza può diventare
la prima implementazione mondialedi un PKI disponibile
• DNSSEC “chain of trust” è un modello di certificazione
• Per memorizzarei certificati un nuovo RR è aggiunto
al DNS - il CERT RR definito nell’RFC 2538
• CERT può memorizzare i certificati PGP, X.509, SPKI
• La RFC 2538 raccomanda che la dimensione dei certificati
dovrebbe essereridotta al massimo - se possibile,
nessuna estensione
•
Nel DNS, la crittografia è usata per l’autenticazione e
l’integrità dei dati, non per la confidenzialità
• L’attenzione deve essere spostata alla generazione
delle chiavi, memorizzazione delle chiavi, e al life
time (RFC 2541)
• La dimensione dei file di zona cresce drammaticamente
• Aumento dei dati trasferiti, dei messaggi
(quindi tcp e non udp) e del numero di
computazioni (cicli cpu)
• La responsabilità degli amministratori aumenta!
Conclusioni
•
INDICE
Le Estensioni per la sicurezza provvedono:
• Protezione dei trasferimenti su Internet
• I dati sono firmati con chiavi pubbliche
(SIG, KEY)
• L’assenza di dati DNS è notificata (NXT)
• Protezione per i traferimenti DNS locali
• I messaggi fra name server e resolver sono
autenticati (TSIG)
• Trasferimenti di zona fra name server primari e
secondari
• Infrastruttura a chiave pubblica
• Distribuzione di chiavi pubbliche per altri
protocolli di sicurezza (KEY)
• Distribuzione di differenti tipi di certificati (CERT)
Introduzione generale
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Parte Prima: DNS
Introduzione
Differenza fra indirizzi IP e Nomi mnemonici
Gestione dello Spazio dei Nomi
DNS
Regole Sintattiche
Struttura Gerarchica del DNS, esempio
Domini Top Level
Name Server, Struttura gerarchica, Root Name Server
Zone di Autorità
Tipi di nomi
Risoluzione dei nomi, Resolver
Individuazione del Name Server
Completamento degli indirizzi
Modalità di risoluzione, Funzionamento del DNS
Cache, Formato dei messaggi
Tipi degli oggetti, Esempio di utilizzo dei tipi
Formato compresso dei nomi, Interrogazioni inverse
17
INDICE
INDICE
Riassumendo i concetti principali da conoscere...
Parte Terza: Estensioni per la Sicurezza del DNS
Parte Seconda: Attacchi e debolezze del DNS
•
•
•
•
•
•
•
•
•
•
•
• Introduzione
• Perché la Sicurezza del DNS è importante?
• Dns Spoofing. Destinazione errata indotta: Credere
in false informazioni
• Attacco Denial of Service
• Autenticazioni e Autorizzazioni basate sui nomi
• Esempio di attacco
• Comandi remoti, Equivalenza dei nomi
• Attacco alle informazioni supplementari
• Cache Poisoning
• Esempio di attacco
Introduzione
Definizioni DNSSEC
Caratteristiche DNSSEC
File di Zona
La firma
Tempo di validità
The Zone Signer
DNSSEC Chain of Trust
DNS Transaction Security
Osservazioni su DNSSEC
Conclusioni
Name Server
Formato della Answer Section
0
16
32
I Name Server sono programmi server che mantengono
informazioni sulla struttura ad albero del DNS e possono
settare tali informazioni.
Un Name server puo’ memorizzare in una cache qualsiasi
informazione del domain tree ma in generale ha
informazioni complete su una specifica parte del DNS.
Questo significa che il Name Server ha autorità per quel
sottodominio dello spazio dei nomi.
Per tale motivo è chiamato authoritative.
Resource Domain Name
Type
Class
Time to live
Resource Domain Name
Resource Data Length
Resource Data
RESOURCE DATA: contiene la risposta del name server
• formata da vari record di risorse (RR)
I Resource Record quindi rappresentano l’associazione fra
la struttura ad albero dello spazio dei nomi e i dati associati
a questi nomi.
DNS cache poisoning attack
Resolver
Scenario
I Resolver sono programmi che estraggono le informazioni
dai Name Server in risposta alle richieste del Client.
Esso può variare dalla semplice System call
(gethostbyname() o gethostbyaddress()) a più complesse
applicazioni con capacità di memorizzare informazioni in
cache (nslookup, dig, host).
Quando un programma utente deve risolvere un nome, esso
richiama il Resolver che esegue la seguente procedura:
Formula una Query e contatta il suo Name Server locale che
è preconfigurato (ad esempio in un file resolve.config).
Questa Query può essere sia Iterativa che Ricorsiva.
evil.com
Dalla sua macchina, l'attaccante chiede al name
server ns.broker.com di risolvere un nome sotto
l'autorità del suo name server, per esempio
broker.com
anyhost.evil.com.
1.anyhost.evil.com?
ns.evil.com
ns.broker.com
cache
Host
Attaccante
A.B.C.D
any.broker.com
bank.com
ns.bank.com
18
DNS cache poisoning attack
Supponiamo di considerare la
seguente situazione descritta
in figura.
Un attaccante che controlla il
name server per il suo
dominio evil.com vuole
avvelenare la cache di un
altro name server chiamato
ns.broker.com usato
da un'agenzia di brokers per
impersonare la macchina
www.bank.com che è spesso
accessibile dagli utenti del
dominio broker.com.
Scenario
evil.com
ns.evil.com
DNS cache poisoning attack
Scenario
broker.com
ns.broker.com
broker.com
evil.com
2. anyhost.evil.com?
1.anyhost.evil.com?
cache
Host
Attaccante
A.B.C.D
ns.evil.com
ns.broker.com
Il name server ns.broker.com
contatterà il name server
dell'attaccante, autoritativo
per quel nome.
Host
Attaccante
A.B.C.D
any.broker.com
bank.com
cache
any.broker.com
bank.com
ns.bank.com
ns.bank.com
DNS cache poisoning attack
Scenario
DNS cache poisoning attack
Scenario
broker.com
evil.com
2. anyhost.evil.com?
1.anyhost.evil.com?
ns.evil.com
3. Memorizza
query ID
ns.broker.com
2. anyhost.evil.com?
1.anyhost.evil.com?
cache
Questo name server risponderà alla query e prenderà
anche la query ID e la memorizza per un uso futuro.
Questa query ID è piazzata nell'header section di
qualsiasi messaggio Dns ed è assegnata dal programma
che ha generato la query (cioè dal Target name Server,
ovvero il name server attaccato )
Questo identificatore è copiato nel corrispondente
messaggio replay e può essere usato dal richiedente per
verificare i messaggi di replay per le query insospese
come menzionato nella RFC 1035.
Host
Attaccante
A.B.C.D
broker.com
evil.com
bank.com
ns.evil.com
cache
3. Memorizza
query ID
4.anyhost.evil.com=A.B.C.E
Host
Attaccante
A.B.C.D
6. www.bank.com?
L'attacco continua con un'altra query dal lato dell'attacante .
Egli sa che l'agenzia è frequentemente contattata da siti di
alcune banche, siti che verranno attacati. Egli chiederà al
ns.broker.com l'indirizzo www.bank.com. Normalmente, il
name server ns.broker.com contatterà il sever Dns autoritativo
per il dominio bank.com (ad esempio ns.bank.com).
bank.com
ns.bank.com
ns.broker.com
5.anyhost.evil.com=A.B.C.E
ns.bank.com
DNS cache poisoning attack
A questo punto, l'attaccante inizierà ad
inondare il server ns.broker.com con msg di
replay nel quale l'indirizzo della macchina
attaccante è mappato con www.bank.com prima
ns.evil.comche la vera risposta possa arrivare dal name
server autoritativo (che è ns.nbank.com).
Egli può anche predire correttamente il query
ID, poichè ha l'ultimo query ID generato da
ns.broker.com e quindi riesce a dedurlo (il
successivo, oppure secondo l'algoritmo spiegato
nelle RFC)
evil.com
Host
Attaccante
A.B.C.D
broker.com
ns.broker.com
cache
broker.com
evil.com
In questo modo il server
ns.broker.com riceve un
informazione che non è giusta e
la memorizza dopo aver risposto
alla query dell‘ attaccante per
www.bank.com.
ns.evil.com
ns.broker.com
cache
9.www.bank.com=
A.B.C.D
Host
Attaccante
A.B.C.D
8. www.bank.com=A.B.C.D
Inondare con false risposte il N.Server
bank.com
ns.bank.com
8. www.bank.com=A.B.C.D
Inondare con false risposte il N.Server
bank.com
ns.bank.com
19
Denial of Service (DoS)
Ora la trappola è scattata e tutto ciò che l'attaccante
evil.com
deve fare è aspettare fino a che una connessione dal
dominio broker.com viene fatta a www.bank.com.
Poichè l'IP della macchina attaccante è mappata
scorrettamente, nella cache del server( ns.broker.com),
ns.evil.com
al nome www.bank.com, tutte le connessioni alla banca
saranno dirette verso la macchina dell'attaccante. Il
name server non tenterà di chiedere dinuovo per il nome
www.bank.com, poichè userà solo l'informazione
memorizzata durante la precedente ricerca.
Questa è un'altra ragione per cui i dati ricevuti dai name
server
Host nel DNS hanno bisogno di un'autenticazione di
origine e di una verifica dell'integrità.
Attaccante
A.B.C.D
broker.com
ns.broker.com
cache
9.www.bank.com=
A.B.C.D
NEGAZIONE DEL SERVIZIO.
Un host viene “inondato” da un numero elevato di richieste
di un certo tipo, in modo da tenerlo occupato per un lasso di
tempo.
In questo modo viene negato il servizio che normalmente
compie l’host, per gli altri
10.www.bank.com?
bank.com
ns.bank.com
20