DNS - DOMAIN NAME SYSTEM PRINCIPII, FUNCTIONARE, VULNERABILITATI AUTOR: TITURO 2013
DNS - DOMAIN NAME SYSTEM
PRINCIPII, FUNCTIONARE, VULNERABILITATI
AUTOR:
TITURO
2013
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
1
Cuprins:
1.Istoric…………………………………………………………………………………………………………………………..…2
2.Principii de functionare……………………………………………………………………………………….…………3
2.1.Spaţiul numelor de domenii………………………………………………………………………………..………5
2.2.Servere de nume………………………………………………………………………………………………….……..6
2.3.Resolvere…………………………………………………………………………………………………………………….9
3.Protocolul DNS…………………………………………………………………………………………………..………..12
3.1. Cautarile DNS inverse (Reverse DNS Lookups)……………………………………………..………...16
3.2.Zonele de transfer……………………………………………………………………………………………..……..17
3.3. Startul de autoritate (Start of Authority - SOA)………………………………………………..……..18
4. Algoritmul de dirijare…………………………………………………………………………………………..….….19
4.1.Dirijarea IP………………………………………………………………………………………………………..….……20
5. 5.Atacuri si Vulnerabilitati ale DNS……………………………………………………………………..………22
5.1.Atacuri de tip DoS impotriva retelelor de calculatoare cu ajutorul DNS…………..……….22
5.2. Atacuri de tip DoS impotriva DNS………………………………………………………………….………...23
5.3.Atacuri de tip DoS impotriva retelelor de calculatoare cu ajutorul DNS……….………..…23
5.4. Atacuri la nivel de aplicatie…………………………………………………………………………..………....24
5.5. Reducerea vulnerabilitatilor in DNS……………………………………………………….………………..25
5.5.1. Securizarea serverului si a sistemului de operare…………………………………….…………...25
5.5.2. Securizarea aplicatiei………………………………………………………………………….………………...25
5.5.3. Apararea impotriva atacurilor de tip DoS……………………………………………………………...26
5.5.4. Protejarea utilizatorilor serviciilor DNS………………………………………………………………...26
5.6. Studii si Cazuri recente……………………………………………………………………………………………..27
6.Bibliografie…………………………………………………………………………………………………………………..30
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
2
1.Istoric
In timpul Razbloiului Rece, la mijlocul anilor ’60, Departamentul Apararii al SUA
(Department of Defence) voia sa creeze o retea de comanda si control stabila si
invulnerabila in cazul declansarii unui razboi nuclear.In acest scop a fost creata Agentia
de Cercetare pentru Proiecte Avansate a Departamentului Apararii care a cerut sprijinul
universitatilor si firmelor private pentru dezvoltarea proiectului.
S-a pornit de la ideea implementarii retelei pe principiul comutarii de
pachete,reteaua urmand sa fie formata dintr-o subretea si calculatoare
gazda.Subreteaua urma sa fie alcatuita din minicalculatoare (IMP-Interface Message
Processors) conectate prin linii de transmisie, astfel încât fiecare calculator IMP să fie
legat la cel putin alte două, pentru a asigura mai multă sigurantă în comunicare. În caz
că unele linii si IMP-uri se defectau, mesajele puteau fi dirijate automat pe căi
alternative. Fiecare nod al retelei era format dintr-un IMP si o gazdă care transmitea
mesajele (ambele fiind conectate si situate în aceeasi încăpere).
În urma evaluării a 12 propuneri de implementare hard si soft a retelei, proiectul
a fost preluat de firma BBN din Massachusetts. Pe post de IMP-uri s-au folosit
minicalculatoare de tip Honeywell (special adaptate), fără discuri fiindcă în acea
perioadă părtile mobile erau considerate nesigure [Tan97] iar programele au fost scrise
separat pentru subretea si pentru gazde. Astfel a apărut prima configuratie a retelei
ARPANET.
Reteaua a fost dezvoltată continuu. ARPA a finantat cercetări în domeniul
retelelor de sateliti si retelelor mobile radio cu comutare de pachete. A avut loc o
faimoasă demonstratie în care un cercetător care călătorea într-un camion prin
California folosea un calculator din Londra (utilizând transmisiile radio si prin satelit).
Aceste evolutii au arătat că protocoalele ARPANET existente nu erau potrivite pentru a
rula pe mai multe retele. Cercetările axate pe protocoale mai performante au dus la
aparitia lui TCP/IP, care a fost proiectat special pentru comunicarea inter-retele, obiectiv
esential în conditiile în care tot mai multe retele erau legate la ARPANET. Pentru a
încuraja adoptarea noilor protocoale, ARPA a încheiat contracte cu BBN si cu
University of California din Berkeley, pentru integrarea protocoalelor în Berkeley Unix.
Cercetătorii de la Berkeley au dezvoltat o interfată de programare cu reteaua si au scris
numeroase aplicatii, utilitare si programe de administrare care să simplifice
interconectarea. Aceste produse soft au răspuns necesitătilor concrete ale multor
universităti care dispuneau de câteva minicalculatoare VAX conectate într-un LAN.
Integrarea protocolului TCP/IP în sistemul de operare UNIX, un sistem portabil, scris în
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
3
mare parte în limbajul C, dezvoltat cu mult entuziasm mai ales de programatori din
mediile universitare si ulterior distribuit gratuit, a avut un rol important în evolutia rapidă
si masivă a retelei.
În 1983, ARPANET continea peste 200 de IMP-uri si sute de gazde, era stabil si
se bucura de succes. În acest moment, ARPA a încredintat administrarea retelei
Agentiei de Comunicatii a Apărării (DCA - Defense Communications Agency), care a
izolat portiunea militară (aproximativ 160 IMP-uri , din care 110 în SUA si 50 în
străinătate) într-o retea numită Milnet si a prevăzut porti stricte între aceasta si
subreteaua de cercetare rămasă [Tan97]. Reteaua Milnet există si astăzi.
În anii '80, la ARPANET s-au conectat multe alte retele. Pentru o accesare cât
mai eficientă a gazdelor într-o inter-retea de dimensiuni tot mai mari s-a creat un sistem
care organiza masinile în domenii si punea în corespondentă numele gazdelor cu
adrese numelor de domenii IP.Acest sistem este Sistemul Numelor de Domenii (DNS -
Domain Naming System), la care voi face referirein continuarea lucrarii.
În 1990, ARPANET era deja surclasat de retelele mai moderne cărora le dăduse
nastere; a fost închis si demontat dar contributia sa covârsitoare în crearea retelei
globale Internet rămâne actuală.
2.Principii de functionare
DNS (Domain Name System) – este un serviciu care permite referirea
calculatoarelor gazdă cu ajutorul adresei literale.
Adresa literală conţine succesiuni de nume asociate cu domenii, subdomenii sau
tipuri de servicii. Acest mod de adresare este utilizat exclusiv de nivelul aplicaţie şi este
util deoarece permite operatorului uman să utilizeze o manieră prietenoasă şi comodă
de localizare a informaţiilor. Forma generala a unei astfel de adrese este:
[tip_serviciu].[nume_gazda].[subdomeniu2].[subdomeniu1].[domeniu].[tip_domeniu]
Practic, serviciul DNS transformă adresa IP într-o adresă literală, şi invers. Privit
în amănunt, DNS este un soft care gestionează şi controlează o bază de date
distribuită, constituită dintr-o sumă de fişiere memorate pe calculatoare diferite-
localizate în spaţii geografice diferite, ca pe o singură bază de date.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
4
Administrarea unui numar mare de nume este o problema complexa. In sistemul
postal, gestionarea numelor se realizeaza prin scrierea pe plic a numelui destinatarului,
adresei acestuia, orasului, statului, tarii in care acesta locuieste. Astfel, nu va exista o
confuzie intre adresa lui Ion Ardelean din Romania, Cluj Napoca, Str. Baritiu, respectiv
a lui Ion Ardelean tot din Cluj Napoca, Bd. Dorobantilor si nici al lui Ion Ardelean, New
York, SUA. DNS functioneaza folosind un principiu asemanator.
O shita a mecanismului prin care functioneaza acest sistem este reprezentata in
figura 2.1.
ClientDNS
server
Client
.roDNS
server
Radiomures.ro
DNS server
Ce IP are
radiomures.ro?
Nu am adresaceruta. cautserverul DNS ptadresa ceruta
DA,am detaliile
pt.serverul DNS cerut
stochez IP-ul pt radiomures.ro
Ca 89.238.227.148 pt utilizare viitoare?
IP-ul cerut este89.238.227.148
DA,am detaliile pt
radiomures.ro
Fig 2.1
Conform figurii de mai sus, clientul doreşte să acceseze de pe calculatorul său personal
pagina web www.radiomures.ro , această cerere este trimisă unui server DNS care o
analizează şi returnează ca rezultat adresa IP a staţiei care găzduieşte site-ul solicitat.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
5
În principiu, DNS este alcătuit din trei componente:
• Spaţiul numelor de domenii – reprezintă informaţia conţinută în baza de date,
structurată ierarhic.
• Servere de nume – programe server care stochează informaţia DNS şi răspund
cererilor adresate de alte programe
• Resolverele – programe care extrag informaţiile din serverele de nume ca
răspuns la cererile unor client
Pentru a stabili corespondenţa dintre un nume şi o adresă IP, programul de aplicaţie
apelează un resolver, transferându-I numele ca parametru, resolverul trimite un pachet
UDP (printr-un protocol de transport fără conexiune) la serverul DNS local, care caută
numele şi returnează adresa IP către resolver, care o trimite mai departe apelantului.
Înarmat cu adresa IP, programul poate stabili o conexiune TCP cu destinaţia sau îi
poate trimite pachete UDP.
2.1Spaţiul numelor de domenii
Internetul este organizat in 200 de domenii de nivel superior, fiecare continand mai
multe sisteme gazda. Domeniul este impartit in subdomenii, care la randul lor sunt
impartite, creind o ierarhie arborescenta dupa cum se poate observa in figura de mai
jos.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
6
Frunzele arborelui reprezinta domenii care nu au subdomenii, insa pot contine
mii de sisteme gazda. Domeniile din primul nivel al arborelui sunt de doua tipuri:
generice si specifice unor tari. Domeniile generice sunt de tip com (comercial), edu
(institutii educationale), gov (guvernul federal SUA), mil (militar), org (organizatii non-
profit), net (furnizori Internet). Domeniile de tari includ o intrare pentru fiecare tara,
dupa cum defineste standardul international ISO 3166. Pe masura ce retelele de
calculatoare se dezvolta se introduc nume noi de nivel superior.
Informatia continuta in baza de date cu structura arborescenta
-arpa(Address and Routing Parameter Area),domeniu special care transforma adresele
IP in nume folosit exclusiv in sopuri de infrastructura tehnica (ex: http://143.228.193.in-
addr.arpa)
-grupul generic sau al organizatiilor(contine 3 caractere:com,net,edu,gov)
-grupul geografic al tarilor (2 caractere:us,ro,fr…)
IANA (Internet Assigned Numbers Authority)este organismul care administrea za
numele de domenii la nivel mondial
Componentele unui nume pot avea max 64 caractere iar intreg sirul max 255caractere
Fiecarui domeniu i se asociaza anumite resurse(resurce records),care reprezinta datele
ce definesc continutul DNS,cea mai cunoscuta fiind adresa IP.
2.2Servere de nume
-Programe server care stocheaza informatia DNS si raspund cererilor adresate de alte
programe
-Contacteaza severele radacina care la randul lor trebuie sa stie numele si IP-uri le
tuturor serverelor de nivel 2
-Pt fiecara zona este un sever DNS principal si unul sau mai multe secundare (cu rol de
backup)
Teoretic un server de nume poate deservi intreaga baza de date de nume; totusi,
practic, el poate sa fie atat de ocupat, incat sa devina neutilizabil. Pentru a evita
limitarile aduse de existenta unei singure surse de informatie, s-a hotarat partajarea
spatiului de nume DNS in zone care nu se suprapun si nu se intretaie. O posibila
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
7
impartire a acestui domeniului este prezentata in Fig. 2.2.1. Fiecare zona contine cate
o parte a arborelui si numele serverelor care pastreaza informatia autorizata din acea
zona. Orice zona va avea un server de nume primar, care preia informatia dintr-un fisier
de pe discul propriu si unul sau mai multe servere secundare, care preiau informatiile
de pe serverul primar. Unele servere pot fi chiar plasate intr -o alta zona, ceea ce
imbunatateste fiabilitatea retelei.
Fig. 2.2.1 Fragment din spatiul de nume DNS partajat pe zone
Dimensiunea zonelor este la latitudinea administratorului, care decide cate
servere de nume sunt dorite si cum trebuie plasate. De exemplu, in Fig. 2.2.1, Yale are
un server pentru yale.edu care administreaza eng.yale.edu, dar nu si cs.yale.edu, care
este o zona separata cu propriile servere de nume. O asemenea situatie poate avea loc
in cazul in care departamentul de limba engleza nu doreste sa aiba propriul server de
nume, spre deosebire de departamentul de calculatoare, care doreste un asemenea
server. De aceea, cs.yale.edu este o zona separata, iar eng.yale.edu nu este separata.
Atunci cand un resolver are o cerere referitoare la un nume de domeniu, el va
transfera cererea la unul din serverele locale de nume. Daca domeniul cautat se afla
sub tutela serverelui de nume, cum ar fi ai.cs.yale.edu, care este sub cs.yale.edu, el va
intoarce inregistrari de resurse autorizate. O inregistrare autorizata este o informatie
care provine de la autoritatea care administreaza intregistrarea si este intotdeauna
corecta. Se mai pot primi inregistrari din memoria ascunsa, care pot fi eronate pentru ca
sunt expirate.
In cazul in care domeniul se afla la distanta si nu este disponibila nici o
informatie despre domeniul cerut, atunci, serverul de nume este nevoit sa trimita o
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
8
cerere la serverul de nume de pe primul nivel al domeniului in cauza. De exemplu, in
Fig. 2.2.2, flits.cs.vu.nl este initiatorul cautarii, iar cs.vu.nl, edu-server.net, yale.edu,
cs.yale.edu domenii cu serverele de nume VU CS, EDU, YALE, Yale CS. Resolverul
flits.cs.vu.nl doreste sa stie adresa IP a sistemului gazda amc.cs.yale.edu. In pasul 1,
trimite o cerere la serverul local cs.vu.nl, care contine numele de domeniu cautat, tipul
(A) si clasa (IN). Presupunem ca serverul local nu a mai intalnit o asemenea cerere si
nu are informatii despre domeniul cautat. Cu toate acestea, el poate trimite un pachet
UDP (User Datagram Protocol) la serverul EDU, specificat in baza sa de date. Cum nici
acest din urma server nu cunoaste adresa domeniului pentru amc.cs.yale.edu, va
accesa informatii despre adresele fiilor din subarbore; de aceea, va transmite cererea
catre serverul yale.edu, care, la randul sau, va avea inregistrari autorizate ale propriilor
resurse. Inregistrarea cautata a fost gasita si informatia va fi transmisa inapoi la
resolver prin aceleasi servere, in ordine inversa, adica prin yale.edu, apoi edu-
server.net, cs.vu.nl.
Fig. 2.2.2. Cautarea in 8 pasi a unui nume aflat la distanta de catre un resolver
Atunci cand inregistrarea ajunge la serverul de nume cs.vu.nl, ele vor fi depuse
in memoria ascunsa pentu o utilizare ulterioara. Totusi, informatia nu este autorizata si,
in cazul in care are loc o modificare in cs.yale.edu, aceasta nu se va propaga pana la
serverul cs.vu. De aceea, informatia salvata in memoria ascunsa nu trebuie pastrata
indelung. Campul Timp_de_viata este inclus in fiecare inregistrare de resursa si are
rolul de a informa fiecare server de nume cat timp sa mentina inregistrarile din memoria
ascunsa. In functie de stabilitatea adreselor IP, acestea pot fi stocate timp de cateva
secunde sau cateva zile.
Metoda de interogare descrisa mai sus se numeste metoda de interogare
recursiva, deoarece fiecare server care nu detine informatia ceruta este nevoit sa
intrebe alt dispozitiv din retea si sa furnizeze, in final, un raport. O alta posibilitate este
aceea in care atunci cand o cerere nu este rezolvata, ea esueaza, insa este intors
numele urmatorului server de pe calea care trebuie incercata.
Atunci cand un client DNS nu reuseste sa primeasca un raspuns intr-un timp de
cautare prestabilit, este eliminat din lista serverelor posibile, deoarece se presupune sa
flits.cs.vu.nl cs.vu.nl edu-server.net yale.edu cs.yale.edu
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
9
servelui este defect sau ca cererea ori raspunsul s-au pierdut; in acest sens, la o data
urmatoare, se incearca un alt server.
In concluzie, un server de nume este un proces care dispune de o baza de date
ce cuprinde inregistrari DNS. In general, un server de nume raspunde de o zona de
nume, detinand toate inregistrarile pentru numele din zona de responsabilitate, si, in
plus, poseda inregistrari suplimentare, legate in general de zonele adiacente - zona
parinte si zonele fii.
2.3.Resolvere
Fiecarui domeniu ii poate fi asociata o multime de inregistrari de resurse. Pentru
un singur sistem gazda, cea mai obisnuita asignare de resursa este adresa IP. Atunci cand un resolver trimite un nume de domeniu catre un DNS, priemste ca raspuns inregistrarile de resurse asociate acelui nume.
O inregistrare de resursa este un 5-tuplu cu formatul urmator: Nume_domeniu Timp_de_viata Clasa Tip Valoare
Nume_domeniu precizeaza domeniul caruia i se aplica inregistrarea.
Acest camp este o cheie de cautare primara in baza de date. Ordinea inregistrarilor nu este importanta.
Timp_de_viata da informatii despre cat de stabila este conexiunea
respectiva. Se acorda valori mari pentru cele stabile (de exemplu, 86400
secunde pentru durata unei zile) si valori mici pentru cele instabile (de exemplu, 30 secunde). Tip precizeaza tipul inregistrarii. Cele mai importanta tipuri sunt
prezentate in Tabelul 2.3.1.
Tip Semnificatie Valoare
SOA Start autoritate Parametrii zonei
A Adresa IP a unui sistem
gazda
Intreg pe 32 biti
MX Schimb de posta Prioritate, domeniu dispus sa accepte servicii de posta electronica
NS Server de Nume Numele serverului pe domeniu
CNAME Nume canonic Numele domeniului
PTR Pointer Alias pentru adresa IP
HINFO Descriere sistem gazda Sistem de operare ASCII
TXT Text Text ASCII neinterpretat
Tabelul 2.3.1 Principalele valori pentru campul Tip
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
10
Inregistrarea SOA poate furniza numele sursei primare de informatii
despre zona serverului de nume, adresa de email a administratorului, un identificator unic si diversi indicatori, contoare de timp etc.
Inregistrarea A pastreaza adresa IP pe 32 de biti a unui sistem gazda. Inregistrarea MX precizeaza numele sistemului gazda care este capabil
sa accepte posta electronica pentru domeniul respectiv. De exemplu, daca
cineva vrea sa trimita un email la adresa [email protected] , atunci trebuie sa gaseasca un server care sa accepte email.
Inregistrarea NS are rolul de a specifica serverele de nume. De exemplu,
fiecare baza de date DNS are o inregistrare NS pentru fiecare domeniu de pe primul nivel, astfel incat posta electronica sa poata trimite emailuri la nivele mult
inferioare unui subarbore. Inregistrarea CNAME permite folosirea alias-urilor. De exemplu, o
persoana care doreste sa trimita un mesaj unei persoane al carui nume de
conectare la un sistem din Radio Targu Mures este inginer1 poate presupune ca adresa de email este [email protected] adresa nu este cea corecta,
deoarece domeniul Radio Targu Mures este radiomures.ro.Totusi departamentul IT poate crea o intrare CNAME, pentru a dirija persoanele si programele catre directia corecta.Astfel, o intrare poate fi:
radioms.ro 86400 IN CNAME radiomures.ro PTR se refera la un alt nume, ca si CNAME. Deosebirea dintre cele doua
este data de faptul ca CNANE este doar un macro, pe cand PTR este un tip de date DNS a carui interpretare depinde de context. De obicei, se asociaza un nume cu o adresa IP, pentru a permite gasirea numelui masinii in functie de
adresa IP. Inregistrarea HINFO permite aflarea tipului de masina de si sistem de
operare carora le corespunde domeniul. Inregistrarea TXT permite domeniilor sa se autoidentifice intr-un mod
arbitrar. Valoare este un camp care poate fi un numar, un nume de domeniu sau
un sir de caractere ASCII.
Pentru fiecare din aceste cazuri se prezinta in Tabelul 2.3. o scurta descriere.
In Tabelul de mai jos se afla un exemplu de informatie care poate fi gasita
in baza de date DNS extrasa cu ajutorul utilitarului online http://network-tools.com
Retrieving DNS records for radiomures.ro...
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
11
DNS servers tag.euroweb.ro nsx.euroweb.ro
Answer records
radiomures.ro A 89.238.227.148 86400s
radiomures.ro IN SOA server: tag.euroweb.ro
email: [email protected] serial: 2012111400 refresh: 3600
retry: 7200 expire: 86400
minimum ttl: 86400
86400s
radiomures.ro MX preference: 5 exchange: mail.radiomures.ro
86400s
radiomures.ro MX preference: 10 exchange: radioms2.radiomures.ro
86400s
radiomures.ro NS nsx.euroweb.ro 86400s
radiomures.ro NS tag.euroweb.ro 86400s
Authority records
Additional records
mail.radiomures.ro A 89.238.227.147 86400s
tag.euroweb.ro A 193.226.61.1 120s
nsx.euroweb.ro A 193.230.183.201 120s
radioms2.radiomures.ro A 86.35.82.138 86400s
Explicatiile pentru linii sunt:
1. tag.euroweb.ro
nsx.euroweb.ro Serverele DNS folosite de radiomures.ro
2. radiomures.ro- indica serverul pentru domeniul radiomures.ro
3. IN –Indica Internet Name
4. SOA –indica serverul autoritate pentru domeniul radiomures.ro
-tag.euroweb.ro –numele serverului primar pt acest domeniu
- [email protected] adresa de email a administratorului domeniului
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
12
-2012111400 numarul serial
-3600 timpul de refresh in secunde intre serverul master si slave
-7200 timpul in secunde in care serverul slave interogheaza din nou serverul
master
-86400 timpul insecunde in care serverul slave raspunde chiar daca nu s-au
facut modificari in zona de update file
-86400 timpul de viata (TTL-Time to Live) in secunde in care resolverul foloseste
datele primite de la serverul de nume inainte de a-l interoga din nou asupra
modificarilor survenite
5. Serverul de posta electronica pr radiomures.ro este mail.radiomures.ro si
radioms2.radiomures.ro avand TTL 86400s (24H)
6. NS Name server nsx.euroweb.ro si tag.euroweb.ro
7. Restul liniilor sunt numele si maparea IP pentru masinile din organizatie
mail.radiomures.ro A 89.238.227.147 86400s
tag.euroweb.ro A 193.226.61.1 120s
nsx.euroweb.ro A 193.230.183.201 120s
radioms2.radiomures.ro A 86.35.82.138 86400s
3.Protocolul DNS
DNS foloseste numarul portului 53 si poate sa foloseasca fie UDP, fie TCP ca
protocoale pentru nivelul de transport. In general, UDP (limitat la 512 bytes) este
folosit pentru a trimite intrebari si raspunsuri. TCP trebuie folosit pentru zonele de
transfer, pentru ca datele transmise intre serverele autorizate trebuie sa fie cat
mai sigur transmise.
Formatul unui pachet DNS are aspectul prezentat in Fig. 3.1.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
13
Fig. 3.1 Formatul unui pachet DNS
ID – este un identificator creat de program pentru a reprezenta cererea. Raspunsul
foloseste acest identificator pentru ca raspunsul sa poata fi atasat cererii respective.
QR – este un bit care are valoarea 0 pentru o cerere, respectiv valoarea 1 pentru
raspuns.
OPcode – este un bit care are valoarea 0 pentru o cerere standard, valoarea 1 pentru o
cerere inverse, valoarea 2 pentru cererea unui status.
AA – daca acest bit este setat, atunci raspunsul provine de la un server autorizat.
TC – (Truncated) inseamna ca mesajul a fost mai lung decat permitea banda de
transmisie.
RD – (Recursive Desired) inseamna ca cererea este recursive
RA – raspunsul are acest bit setat daca serverul poate procesa o cerere rescursiva.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
14
Z – este un bit nefolosit si este zero pentru toate cererile si raspunsurile.
Rcode – (Response Code) are urmatoarele valori:
0 – nu sunt erori
1 – eroare: serverul nu a inteles cererea
2 – serverul nu functioneaza correct: fie pentru ca s-a defectat, fie nu a reusit sa obtina
un raspuns dup ace a trimis cererea.
3 – eroare de nume; aceasta eroare poate fi anuntata doar de catre serverele
autorizate.
4 – nu este implementata;
5 - refuz
QDcount – numarul de cereri din intrebarea care face parte din pachet.
ANcount – numarul de inregistrari de resurse din partea de raspunsuri din pachet.
NScount – numarul de inregistrari de resurse din serverul de nume in partea pachetului
care contine inregistrari de la servere autorizate
ARcount – numarul de inregistrari de resurse din partea de inregistrari aditionale ale
pachetului DNS.
Cererea
Qname – Numele de domeniu tinta se prezinta ca o succesiune de etichete,
fiecare eticheta continand un octet pentru lungime urmat de un alt numar de
octeti. Serverul DNS cauta inregistrarile de resurse care se potrivesc campului
Qtype si Qclass. Daca nici o potrivire nu este gasita, atunci se cauta un alt server
DNS care poate avea o astfel de potrivire.
Qtype – specifica tipul cererii; de exemplu: A, PTR, AXFR, MAILB etc.
Qclass – specifica clasa cererii; de exemplu: IN pentru Internet, CH pentru
Chaos.
Inregistrarile de resurse (Resource Record – RR)
Name – numele domeniului unde este localizata resursa.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
15
Type – un tip de cod care indica tipul de date din Rdata, care este un camp de
16 biti care defineste tipul de inregsitrare de resursa:
-A – adresa de statie-gazda (host); de exemplu: o inregistrare 'A' , sau 'Answer'.
-CNAME – nume canonic al unui alias (Canonical name of the Alias). Acesta
este folosit daca se doreste mai degraba realizarea unei asocieri gazda-la-gazda
decat de la gazda la adresa IP. Acest mecanism este util atunci cand un numar
mare de computere-gazda (hosts) sunt asociate cu o singura adresa IP. De
exemplu, un computer are mai multe nume associate, cum ar fi www.amc.com si
ftp.amc.com.
-HINFO – tipul unitatii centrale de prelucrare (CPU) si al sistemului de operare
folosit de calculatorul gazda.
-MX – (Domain Mail Exchange) – domeniu pentru email.
-NS – (Authoritative Name Server for the Domain) server de nume autorizat
folosit
-PTR – este un pointer spre alta zona a spatiului de domenii, localizat cu ajutorul
numelui calculatorului-gazda.
-SOA – (Start of a Zone of Authority), marcheaza inceputul unei zone autorizate.
-Class – clasa de date in Rdata, care reprezinta un camp de 16 biti identificand o
familie de protocoale, IN pentru Internet si CH pentru sistemul de haos
TTL – identifica in secunde cat de mult ar trebui pastrata inregistrarea de resursa
in memoria cache a serverelor neautorizate. Cu cat aceasta valoare este mai
mica, cu atat mai mare va fi banda utilizata pentru zona de informatie. De obicei,
cateva ore este un timp suficient de scurt.
RDlength –lungimea campului Rdata in octeti
Rdata – este o variabila de descriere a resursei:
A - pentru IN, o adresa IP pe 32 biti ; pentru CH, o adresa pe 16 bit
CNAME – un alias pentru un nume de domeniu
MX – o valoare pe 16 biti si o adresa a calculatorului gazda pentru un Mail
Exchange; cu cat acest numar este mai jos, cu atat mai preferat este schimbul
de mail. Inregistrarea MX se ocupa cu cererile de mail din serverul Mail. Daca un
server de mail trimite o cerere si nu exista nici o inregistrare MX, atunci resolver-
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
16
ul incepe o cautare a unei inregistarri de tip A si se realizeaza o conexiune spre
acea adresa IP pe portul 25 (SMTP).
NS – (Authoritative Name Server) reprezinta serverul de nume autorizat pentru
domeniul respectiv.
PTR – un pointer spre o alta zona a domeniului.
SOA – (Start of a Zone of Authority) reprezinta informatie despre inceputul unei
zone autorizate.
Pointer – din motive de comprimare, un poiner este folosit pentru a indica
prezentele multiple ale numelui de domeniu in date. Pointerul se afla la sfarsitul
listei de etichete. Etichetele sunt identificate drept 00, in timp de un pointer este
identificat de 11 urmat de o valoare de offset. Atunci cand se foloseste protocolul
UDP pentru transport mesajul nu poate avea mai mult de 512 bytes, de aceea,
mesajele mai lungi sunt trunchiate. In acest caz, mesajul DNS incepe cu un
camp de 2 octeti care da detalii despre lungimea mesajului pentru ca programul
aplicatiei sa il poata procesa.
3.1. Cautarile DNS inverse (Reverse DNS Lookups)
Cautarile DNS inverse sunt cererile menite sa gaseasca calculatorul-gazda cu o
anumita adresa IP. Acestea reprezinta elemente optionale ale unui server DNS;
totusi, daca un server nu poate procesa acest tip de cereri, ar trebui sa poata sa
raspunda printr-un mesaj de eroare. O cerere standard asociaza un nume de
domeniu SOA RR, pe cand o cerere inversa asociaza o SOA RR cu un nume de
domeniu. Pentru a realiza acest lucru, trebuie efectuata o cautare in intregul
spatiu de nume. Domeniul este numit in-addr.arpa si se afla intr-o Zona
Inversata. Aceasta Zona Inversata contine subdomenii cu adrese IP. Deoarece
domeniile sunt scrise in arbore intr-o ordine de la frunza spre radacina, pentru a
mentine consistenta in denumiri, numele adreselor IP sunt scrise, la randul lor, in
ordine inversa. De exemplu, adresa IP 162.230.95.4 ar avea numele intr-o zona
inversata astfel: 4.95.230.162. Intr-o cautare inversata, resolver-ul realizeaza o
cautare PTR (Pointer) pentru un calculator gazda specific in domeniul in-
addr.arpa. Daca utilizatorul se afla in reteaua 192.168.4.0/24, atunci resolver-ul
cere numele adreselor IP din subreteaua 192.168.4.0/24, dupa care, se vor
examina inregistrarile PTR din domeniul 4.168.192.in-addr.arpa, dintre care
doar octetii din masca vor determina numele IP.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
17
3.2. Zonele de transfer
Organizarea traditionala DNS presupunea o editare manuala a fisierelor text
numite Zone care formau baza de date de configurare. Aceasta metoda putea da
nastere usor la erori. Astazi, exista un manager de nume de domenii care
creeaza fisiere de zone in mod automat, verificand sintaxa si eventualele adrese
IP duplicate. Inregistrarile de tip pointer (PTR) sunt generate la randul lor
automat pentru a da posibilitatea existentei cautarilor DNS inverse (Reverse
DNS Lookup), cum ar fi, de exemplu, cautarea unui nume dintr-o cerere de
adresa IP.
Atunci cand se creeaza un server de nume autorizat, domeniul trebuie
intregistrat cu un Registru. Apoi trebuie creat un Dosar cu Zone (Zone file)
care contine toate inregistrarile DNS pentru zona respectiva. Dosarul cu Zone
contine Startul Autorizarii (Start of Authority - SOA), sectiune care contine
informatiile despre zone.
Serverele autorizate sunt responsabile pentru pastrarea informatiilor despre
zone. Atunci cand au loc schimbari, noduri sunt atasate sau eliminate, aceste
modificari trebuie propagate catre toate serverele de nume.
Intr-o anume zona, unul din serverele de nume este ales ca server Master sau
Primar. Un alt server de nume poate fi ales secundar pentru a verifica periodic
schimbarile in anumite zone, cu ajutorul campului SERIAL din SOA, car se
incrementeaza atunci cand versiuni de zone noi sunt create. Se poate utiliza
tehnica de polling periodic in SOA RR cu ajutorul unor parametri, printre care
sunt inclusi si REFRESH, RETRY si EXPIRE. Atunci cand o noua zona este
incarcata intr-un server secundar, acesta asteapta cateva secunde de
REFRESH inainte de a compara informatiile cu cele din serverul primar. Daca
aceasta verificare nu poate fi terminata complet, se vor face noi verificari la
fiecare cate RETRY secunde. Acest din urma tip de verificare etse o simpla
cerere de SOA RR al zonei, adresata serverului primar.
Dupa ce serverul de nume secundar a detectat o schimbare de zona, trimite un
AXFR, care reprezinta o cerere pentru o Zona de Transfer. Serverul primar
raspunde cu un sir de RR, care contin serverele de nume, serverele autorizate.
Primul si ultimul RR contine date pentru nodul cu autoritatea cea mai mare a
zonei. Zona de Transfer foloseste protocolul TCP pentru transportul acestor date
extrem de importante pentru functionarea DNS. In loc sa trimita un sir de RR,
serverul primar potae trimite de asemenea, un fisier text Master.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
18
3.3. Startul de autoritate (Start of Authority - SOA)
In Unix, SOA are urmatorul format:
@ IN SOA ns hostmaster (
2001112301
4H
1H
5D
24H)
@ - numele serverului de nume master.
ns – serverul de nume; acesta este numele serverului de nume care contine
informatia despre zona si este completat automat.
hostmaster – adresa de e-mail a celui care controleaza zona (de exemplu:
2001112301 – este un numar care indica statiilor – slave versiunea
informatiilor despre zona. Formatul este yyyymmddxx, cu ultimii digiti
reprezentand versiunea zilei. Daca acest numar este mai nou decat copia
detinuta, atunci informatia despre noua zona va fi incarcata in locul celei
vechi.
4H - 4 ore au fost alese pentru timpul de Refresh, care reprezinta timpul
pentru care zona este stocata in serverele–slave inainte ca acestea sa
verifice master-ul pentru o copie noua.
1H - 1 ora este timpul pentru Retry. Atunci cand un server–slave devine
activ, el incearca imediat sa obtina o copie cu informatiile despre zona de la
serverul master. Daca nu reuseste, atunci va reincerca cu o perioada data de
timpul de retry.
5D - 5 zile este timpul de expirare – Expire time. Daca serverul-master
devine inaccesibil pentru o perioada de timp, serverele -slave vor mentine
zona pentru o perioada de timp.
24H - 24 ore este timpul minim (Minimum time) pentru care zonele pot
exista pe seama serverelor-slave.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
19
NU
DA
DA
DA
DA
DA
NU
NU
NU
NU
Tabela locala are adresa
simbolica
(DNS local) Tabela locala nu are specificate
adrese de domeniu din adresa
simbolica
Domeniul specificat este
domeniul curent al DNS
Trimite cererea la un DNS
inregistrat ca DNS vecin
Ultimul DNS
DNS vecin rezolva
Trimite IP
Trimite adresa IP
Trimite cererea de
rezolutie la DNS
superior
Trimite cererea de
rezolutie la DNS din
domeniul gazda
Adresa simbolica
incorecta
4. Algoritmul de dirijare
DNS (Name Server – Server de nume) este responsabil cu gestionarea
automata a unor tabele de nume. Numele trebuie sa conţină o specificatie a
gazdei, a utilizatorului şi a unei entitati finale. Administrarea numelor simbolice
este o operaţie mai complicata decât administrarea adreselor numerice deoarece
adresele simbolice oferă mai multe grade de libertate. Acest tip de adresare este
specificat printr-o succesiune de campuri de lungime arbitrara separate prin
„.”(punct). Aceste campuri formeaza o ierarhie de domenii şi subdomenii.
Domeniile se inlanţuie de la stânga la dreapta formând o ierarhie (invers faţa de
ierarhiile date de DDN).
Operaţia de gestiune a adreselor simbolice de face pe principiul sistemului
domeniilor de nume (Domain Name System). Implementarea DNS se face prin
Domain Name Server, care gaseşte corespondentul unei adrese simbolice printr-
o adresa numerica si localizează sursa. Deci scopul DNS este localizarea unei
resurse simbolice.
Algoritmul de dirijare consta in urmatorii pasi prezentati in figura urmatoare.
Fig. 4.0. Algoritm de dirijare
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
20
4.1. Dirijarea IP
Este o actiune indeplinita de un DNS pentru a realiza rezolutie de adrese.
Aceasta se realizeaza si prin actiunea de dirijare prin router. Cand se doreste
aflarea adresei numerice corespunzatoare unei adrese simbolice, se face o
cautare intr-o baza de date.
Dirijarea poate fi:
1.locala;
2.indirecta;
3.directa.
In cazul dirijarii locale, ne bazam pe folosirea mastilor. Acestea indica
faptul ca sursa si destinatia se afla intr-o zona restransa identificata prin masca.
Se apeleaza la sisteme fizice pentru conectare. Se folosesc adrese statice
bazate pe o configuratie stabila.
In cazul dirijarii indirecte ne bazam pe un router adiacent, care semnifica
intermedierea de catre un reprezentant al retelei. Daca routerul este la randul lui
conectat direct atunci avem de a face cu o retea locala conectata cu o retea
locala. Toate accesele in reteaua locala exterioara sunt intermediate de routerul
local.
In cazul dirijarii directe, dirijarea se face direct de la o adresa la alta
adresa (ambele exprimate direct in DDN).
Dirijarea implicita se bazeaza pe DNS. DNS-urile au activitati mai complexe
decat cele suportate de routere. Acestea sunt responsabile de transferurile de date intre
domenii diferite. Se face o routare implicita, care reprezinta o forma de conectare spre
tot Internetul. DNS reprezinta mijlocul prin care o statie locala este legata la Internet.
Fiecare DNS reprezinta un hop in aceasta retea, hopul fiiind reprezent de traversarea
unui DNS. Aceasta dirijare este implicita pentru ca nu este locala, indirecta sau directa.
Aici este implicat orice domeniu care exista pe Internet.
Dirijarea implicita: se face pe baza de internet, conectarea a doua retele
neconectate direct. Se realizeaza un dialog intre o succesiune de rutere, fiecare trecere
printr-un ruter se numeste hop, prima trecere este prin ruterul care leaga reteaua, asa
numitul ruter intermediar.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
21
Algoritmul de dirijare este urmatorul:
Implementarea dirijarii cu DNS : este vorba de gestiune de baza de date care se
refera la noduri din domenii si subdomenii.Serverele DNS schimba intre ele tabele
despre topologia retelelor. In acest caz fiecare DNS poate sa gestioneze o parte din
retea dependenta de el prin tabela sa. Un calculator nou se introduce in evidenta astfel
: cand i se atribuie un nume acesta va trebui sa cunoasca DNS-ul care il conecteaza la
Internet. Serverul de nume sau de domenii, cand afla de acest nod nou, il va trece in
primul rand in tabelele proprii. DNS-ul verifica sa nu fie dublura de nume in cadrul
domeniului din care face parte.
Exemplu de dirijare IP prin adrese IP:
141.185.254.16
141.85.53.1 141.85.107.1
.53.13 .53.97 .107.9
.53.14 .53.100 .107.10
Tabela de rutare pentru 141.85.53.1:
141.85.53.1-local ;141.85.107.1-implicit;
141.85.53.13-local;141.85.107.9-implicit;
141.85.53.97-local;141.85.107.10-implicit;
141.85.53.14-indirect;141.85.53.100-indirect
Tabela de rutare pentru 141.85.107.1:
141.85.107.1-local;141.85.53.xxx–implicit(prin 141.85.256.16);
141.85.107.9-local;141.85.107.10-indirect
Tabela de rutare pentru 141.85.254.16:
141.85.53.1-local ;141.85.53.xxx-indirect;
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
22
141.85.xxx.xxx-implicite;141.85.107.1-local;
141.85.107.xxx - indirect
Exemplu de dirijare prin DNS:
141.85.254.16 - pub.ro
elia.pub.ro – .53.1 neuro.pub.ro (.107.1)
DNS:elia.pub.ro DNS: neuro.pub.ro
stst.elia.pub.ro - .53.20 xeno.neuro.pub.ro-.107.10
stst.elia.pub.ro ca cauta in elia.pub.ro care se duce la pub.ro apoi la .ro apoi la
.com apoi la intel.com apoi la www.intel.com.
5. Atacuri si Vulnerabilitati ale DNS
5.1.Atacuri de tip DoS impotriva retelelor de calculatoare cu
ajutorul DNS
Atacul de tip DoS reprezinta un incident pe timpul caruia un
utilizator/grup/organizatie nu poate accesa un serviciu care in mod normal ar trebui sa
fie functional. In acest context, termenul "serviciu" se refera punctual la o singura
aplicatie: software-ul serverului DNS. Atacuri le de tip DoS care implica si DNS-ul au
doua forme distincte: o forma in care atacul este directionat impotriva serverului DNS si
o alta in care mecanismul de functionare al DNS este folosit pentru a livra un atac de tip
DoS impotriva unei terte parti (prezentat in sectiunea urmatoare).
Un atac de tip DoS presupune in general trimiterea de mai mult trafic decat poate
procesa destinatia in orice moment de timp. In contextul prezentat aceasta inseamna
incapacitatea serverelor DNS de a mai traduce numele in adrese IP facand astfel
imposibila accesarea paginilor web sau trimiterea de e-mail-uri. Pentru a face atacul si
mai eficient, atacatorul isi poate construi o retea de calculatoare zombi (botnet)
generand astfel un atac de tip DDoS (Distributed Denial-of-Service). Atacurile de tip
DDoS folosind o retea de tip botnet sunt foarte puternice fiind dificil de contracarat.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
23
5.2. Atacuri de tip DoS impotriva DNS
Arhitectura DNS poate fi exploatata de catre un atacator pentru a executa un atac
de tip DoS (Denial of Service )impotriva altor servere sau retele de calculatoare. Acest
tip de atac depinde de unele pregatiri avansate ale atacatorului precum si de abili tatea
sa de a gasi un numar mare de servere DNS de tip open-recursive pentru care mai apoi
sa le foloseasca in cadrul atacului sau. Serverele de tip open-recursive sunt acele
servere care vor raspunde unui anume tip de interogare denumit interogare recursiva,
dar vor da acest raspuns oricarui client care face o astfel de interogare (recomandat
este sa raspunda doar unui anume set de clienti "de incredere").
Atacatorul executa atacul sau de tip DoS asupra victimei dupa un algortim similar cu
urmatorii pasi:
Atacatorul isi instruieste reteaua de tip botnet sa trimita interogari DNS catre
serverele de tip open-recursive
Aceste interogari sunt trimise folosind drept adresa IP sursa adresa serverului
DNS victima si portul sursa 53/UDP (spoofing)
Serverele open-recursive efectueaza propriile lor interogari catre serverul DNS
autorizat pentru zona respectiva, in acest caz serverul DNS compromis anterior
de catre atacator
Serverul DNS compromis trimite un raspuns
Serverele open-recursive trimit propriile raspunsuri DNS - aceste raspunsuri vor
fi trimise la adresa IP a serverului DNS victima
Aceasta metoda este foarte eficienta deoarece atacatorul creaza o cerere
DNS initiala foarte mica, dar raspunsul rezultat este foarte mare creandu-se
astfel un efect de amplificare. Serverul DNS victima este practic bombardat
cu trafic pe care nu l-a cerut si care nu are o sursa distincta fiind astfel dificil
de filtrat.
5.3.Atacuri de tip DoS impotriva retelelor de calculatoare cu ajutorul
DNS
Conceptele de baza ale unui astfel de atac pot fi rezumate in urmatorii pasi:
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
24
Un client are nevoie sa faca o interogare DNS si astfel o trimite catre serverul
DNS in mod normal si asteapta un raspuns
O terta parte trimite un raspuns clientului folosind drept adresa IP sursa adresa
serverului DNS, inainte ca serverul DNS real sa o faca
Clientul accepta acest raspuns ca fiind unul veritabil si retine raspunsul neavand
nici o metoda de a sti ca nu a venit de la sursa de la care se astepta. In acest fel,
terta parte poate "otravi" lista cu raspunsuri memorate ale clientului cu informatii
false
Pentru ca un atacator sa poata executa atacul cu succes are nevoie sa fie capabil
sa deduca o serie de informatii referitoare la interactiunea dintre client si server:
adresele IP sursa si destinatie, porturi le sursa si destinatie si ID-ul tranzactiei DNS.
Exista cateva lucrari in internet care descriu cum pot fi obtinute aceste informatii; nu
este foarte dificil, deci un atacator cu abilitati medii ar putea efectua acest atac cu
usurinta.
5.4. Atacuri la nivel de aplicatie
Vulnerabilitati in interiorul software-ului DNS au fost descoperite in mod regulat
pe parcursul a mai multor ani. Cel mai periculos tip de vulnerabilitate duce la
exploatarea de la distanta a unei situatii neprevazute cunoscuta drept "depasirea
bufferului de tip stiva".
Aceasta vulnerabilitate apare din cauza ca dezvoltatorul aplicatiei nu defineste si nu
filtreaza in mod corespunzator datele de intrare pe care un program le poate primi ( in
acest caz aplicatia serverului DNS). Aceasta permite unui atacator sa trimita
programului date special fabricate care vor avea ca rezultat o depasire a memoriei
alocate intr-o zona speciala numita "stiva". Cand acest lucru se intampla, atacatorul
poate redirectiona operatia programului catre o zona unde se afla propriul cod
executand astfel instructiunile alese de atacator. In acest moment atacatorul poate crea
propriul "backdoor" pe server, sa incarce programe daunatoare, sa descarce username -
uri si detalii de conturi de pe server, sa stearga date si inregistrari sau multe alte
activitati neautorizate.
Aceste vulnerabilitati au fost descoperite in multe versiuni ale diferitilor producatori.
Software-ul DNS este prezent in multe locatii nu doar pe serverele DNS. De exemplu,
aproape fara exceptie, routerele, switch-urile, firewall-urile, modem-urile au software
DNS preinstalat.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
25
5.5. Reducerea vulnerabilitatilor in DNS
5.5.1. Securizarea serverului si a sistemului de operare
Atacurile impotriva serverului DNS si/sau sistemului de operare pe care ruleaza
pot duce la intreruperea sau manipularea aplicatiei DNS. Din aceste motive este vital ca
atat serverul cat si sistemul de operare sa fie implementate intr -o configuratie sigura.
Toate implementari le ar trebui sa se ghideze dupa urmatoarele directive:
Securitatea fizica trebuie sa fie pe primul plan
Hardware-ul serverului ar trebui securizat pentru a impiedica accesul
neautorizat. Mecanismele de securitate logice (firewall/antivirus etc.) nu pot compensa
o slaba securitate fizica; daca o terta parte poate obtine accesul fizic la componentele
hardware atunci este posibila manipularea sistemului.
Separarea functionalitatii
Un server DNS prezinta o atat de mare importanta din punct de vedere al retelei incat
ar trebui sa fie tot timpul functional. O buna implementare a retelei de comunicatii ar
trebui sa separe aceasta functie in servere specifice care sa fie responsabile doar
pentru servicii DNS. In schimb, serviciile DNS ar trebui dezactivate sau indepartate din
sistemele care nu au nevoie de ele.
Actualizarea sistemului de operare
Indiferent de sistemul de operare folosit intotdeauna se vor gasi unele probleme,
astfel, configuratiile de securitate si un plan de instalare in mod regulat a patch-urilor de
securitate sunt esentiale. Pachete cu remedieri si patch-uri de securitate ar trebui
aplicate cat mai curand, dar doar dupa ce au fost testate; nu implementati actualizari
ale software-ului care nu au fost testate intr-un sistem aflat in exploatare.
Aceste masuri sunt departe de a fi suficiente; administratorii de retea ar trebui sa
urmareasca indrumarile de securitate ale distribuitorilor de hardware si sisteme de
operare specifice produselor lor. In plus ar trebui luata in considerare folosirea firewall -
urilor la nivel de aplicatie si a IDS-urilor (Intrusion Detection Systems).
5.5.2. Securizarea aplicatiei
Vulnerabilitatile aplicatiei (precum depasiri ale buffer-ului) din software-ul DNS pot
de asemenea duce la compromiterea sistemlui. Exista multe vulnerabilitati cunoscute si
fara indoiala altele vor fi descoperite de-a lungul timpului. Din acest motiv rulati
intotdeauna versiunea curenta a software-ului si asigurati-va ca actualizarile si patch-
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
26
urile de securitate furnizate de distribuitor sunt aplicate. Urmatoarele principii ar trebui
urmate:
-Adoptati principiul "cel mai mic privilegiu" cand instalati software-ul. Nu rulati
serviciul DNS cu privilegii de root sau administrator; daca sistemul este compromis,
atacatorul va avea aceleasi drepturi ca si procesul compromis - in acest caz
root/administrator.
-Implementati reteaua in asa fel incat DNS sa fie impartit sa proceseze cereri interne
si externe separat. In acest fel se evita ca domeniile interne ale organizatiei sa fie
pastrate intr-o locatie care sa fie accesibila si statiilor din exterior.
-Dezactivati interogarile de tip open-recursive.
-Acceptati cereri de transfer de zona doar de la statiile de incredere.
-Implementati tehnici criptografice de autentificare si integritate oriunde este posibil
(ex: DNSSEC sau TSIG).
-Verificati la distribuitori pentru recomandari cu privire la o instalare securizata.
5.5.3. Apararea impotriva atacurilor de tip DoS
Majoritatea operatorilor de servere root de internet au implementat aceste
servere folosind o tehnologie numita Anycast. Ideea din spatele Anycast consta in
implementarea nu doar a unui singur server fizic ci a mai multor servere fizice. Aceste
servere ruleaza toate aceeasi instanta a serverului DNS root pe care o reprezinta si vor
raspunde la interogari DNS care isi au originea in zona geografica desemnata.
In esenta, tehnologia Anycast se traduce prin faptul ca acum exista sute de servere
root in internet distribuite pe glob care asigura un grad mai mare de rezistenta la
atacuri le de tip DoS.
Si alti administratori de retea au nevoie de asemenea sa se protejeze impotriva
atacuri lor de tip DoS. Aceast lucru poate fi indeplinit prin implementarea de solutii de
filtrare a traficului de retea si printr-o colaborare cu furnizorii de servicii aflati pe o
treapta ierarhica superioara pentru o mai buna atenuarea a efectelor.
5.5.4. Protejarea utilizatorilor serviciilor DNS
Un utilizator de servicii DNS poate fi un individ sau o organizatie. Cel mai
important factor din punctul de vedere al utilizatorului este ca informatia obtinuta de la
DNS sa fie corecta si de incredere. In contextul securitatii aceasta se traduce prin
atenuarea atacurilor de tip cache poisoning.Atacurile de tip cache poisoning pot fi
atenuate prin folosirea DNSSEC ( Domain Name Systems Security Extensions) care
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
27
adauga autentificarea sursei datelor si integritatea datelor DNS. DNSSEC utilizeaza noi
tipuri de RR (Resource Records) impreuna cu criptografia cu chei publice pentru a
asigura utilizatorului un grad mai mare de incredere.
Exista si alte solutii ce pot fi implementate pentru a spori gradul de incredere in
serviciile DNS precum TSIG ( Transaction Signatures). Similar cu DNSSEC, TSIG de
asemenea foloseste un tip diferit de RR pentru a implementa o solutie criptografica.
Diferenta majora fata de DNSSEC este ca TSIG foloseste criptografia cu chei simetrice,
in timp ce DNSSEC implementeaza cheile publice/private, astfel incat DNSSEC nu se
confrunta cu problema distribuirii intr-un mod securizat al cheilor. Din acest motiv TSIG
este cel mai des intalnit in sisteme care impartasesc un control administrativ comun
fiind folosit in special la securizarea transferului de zone intre serverele DNS.
Organizatiile ar trebui sa se asigure ca toate echipamentele de retea capabile sa
ofere servicii DNS sunt corect configurate si actualizate cu ultimele remedieri si
actualizari ale software-ului. De cele mai multe ori aceasta se reduce doar la
securizarea configuratiilor implicite si la oprirea serviciilor care nu sunt folosite.
5.6. Studii si Cazuri recente
Cercetatorii de la Universitatea Oulu din Finlanda au descoperit o serie de
scapari in software -ul utilzat pentru administrarea Internet Domain Name System.
Vulnerabilitatile ar putea fi exploatate pentru a cauza o varietate de rezultate, precum
prabusirea serverului DNS sau posibilitatea de a oferi atacatorilor un mod de a rula
software-uri neautorizate, potrivit unui avertisment postat de National Infrastructure
Security Coordination Centre din Marea Britanie. Cercetatorii au creat o suita de teste
DNS care poate fi utilizata pentru a testa aceste vulnerabilitati, iar un numar de furnizori
de software DNS, precum Juniper Networks si Internet Software Consortium au
confirmat ca unele produse ale lor sunt vulnerabile.
Bug-ul descoperit in software-ul BIND ( Berkeley Internet Name Domain) al
Internet Software Consortium nu este cosiderat cu mare risc , potrivit cercetatorilor.
Hitachi si Wind River au declarat ca produsele lor nu sunt afectate. Microsoft, Cisco
Systems si Sun Microsystems isi testeaza produsele si nu au putut specifica daca sunt
sau nu afectate. Serverele DNS gestioneaza Sistemul Internet pentru a converti adrese
Web in adrese IP unice care sunt utilizate de computere.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
28
Aceste servere au intrat in atentie din cauza recentelor atacuri care au aratat ca
sistemul DNS poate fi potential compromis. De curand, VeriSign a dezvaluit ca atacatori
necunoscuti au utilizat computerele compromise si servere DNS pentru a lansa un atac
denial-of-service impotriva a aproximativ 1.500 de organizatii. La scurta vreme dupa
popularizarea atacului, hackerii au atacat serverele DNS ale Network Solutions si
Joker.com, ambele avand ca rezultat intreruperea activitatii acestora.
Dan Kaminsky, unul din expertii in securitate recunoscuti pe plan international, a
anuntat ca in curand a lucrat impreuna cu Microsoft, Cisco, Sun, pentru realizarea unui
patch de securitate pentru serverele de DNS care va fi instalat simultan. Problema de
securitate nu a fost dezvaluita publica in detaliu, ceea ce inseamna ca impactul este
major. Teoretic, orice uti lizator, chiar daca va scrie in browser adresa unui site corect,
poate fi redirectat catre un site fals, deoarece serverele DNS vulnerabile accepta in
cache intrari fara verificarea sursei.
Ca un exemplu, site-urile Google.ro şi Yahoo.ro au căzut victime atacurilor unui
hacker sau al unui grup de hackeri algerieni în cursul lunii decembrie 2012, acestea
afişând un mesaj în locul tradiţionalelor pagini de intrare. Problemele generate de acest
atac sunt deja în curs de rezolvare, însă utilizatorii anumitor furnizori de servicii Internet
ar putea fi încă afectaţi.
Acest atac nu este unul directionat asupra paginilor şi conţinutului real găzduit de
cele două servicii, ci un atac asupra serverelor DNS, care interpretează adresele Web
cerute şi le direcţionează către adresele IP reale. Printr-un atac de tip DNS poisoning,
în care sunt livrate informaţii false către celelalte servere DNS şi care se propagă astfel
către utilizator, atacatorii pot redirecţiona traficul către un server rulat de ei. În cazul de
faţă, redirecţionarea se face către nişte servere stocate în datacenter-ul EMango din
Olanda.
Utilizatorii trebuie să fie atenţi la paginile vizitate deoarece atacatorii pot livra
fişiere malware sau pretinde date de autentificare. Fiecare browser afişează, într -o
formă sau alta, certificatele de securitate ale paginii vizitate iar acestea trebuie să fie
valide. Utilizatorul poate alege temporar soluţia utilizării adreselor IP reale a serviciilor
Google.ro şi Yahoo.ro, care sunt 173.194.75.94, respectiv, 87.248.120.148, adăugarea
manuală a acestora în fişierul HOSTS, utilizarea versiunilor internaţionale .com ale
celor două servicii sau alegerea unui furnizor alternativ de servicii DNS precum
OpenDNS sau Google Public DNS.
Un studiu pe 465 profesionisti din IT, efectuat in 2011, arata ca in ciuda
eforturilor sisfiene, multe companii raman vulnerabile. Mai mult de jumatate din
respondenti au declarat ca au cazut victima unor anumite forme de atacuri malware.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
29
Mai mult de o treime au fost afectati de atacuri denial-of-service (DoS), iar mai mult de
44% au fost victima unui atac pharming sau cache-poisoning.
Atat serverele DNS interne, cat si cele externe sunt la fel de vulnerabile: ambele
tipuri au sucombat la atacuri cam cu aceasi frecventa, potrivit studiului realizat de
Mazerov Research and Consulting.
Un server DNS compromis poate fi uti lizat pentru a supune utilizatorii Web la
toate tipurile de atacuri phishing si site-uri web malitioase, iar in unele cazuri chiar sa
creeze haos in serviciile de directoare si e-mail.
Potrivit studiului Mazerov, atacurile DoS sunt prevalente in randul respondentilor,
doar 16% declarand ca nu s-au confruntat niciodata cu astfel de atacuri. Principalele
forme de atac DNS sunt malware (viermi, virusi, troieni, etc) - 68%; denial ofe service -
48%; cache-poisoning - 36% si pharming - 23%.
DNS – Principii,Functionare,Vulnerabilitati 2013 tituro
30
6.Bibliografie:
-Comunicatii si Internet-Lucrare de grup- Universitatea Politehnica Bucuresti(Andrei
Vlad Alexandru,Carleciuc Gabriela Alina,Chirita Andi ,Cucu Horia,Cuculescu Ana-
Maria,Dragan Nicoleta,Ivan Silviu)
- Andrew Tanenbaum - Retele de Calculatoare, Editia a 4-a.
- Revista Chip
-www.iana.org
-www.wikipedia.org
- Muntea Cristina - Retele de calculatoare - MI – 2009
- Retele de comunicatii date-lucrare nesemnata preluata regielive.ro
-http://network-tools.com/default.asp?prog=dnsrec&noncache=yes&host=radiomures.ro
-http://stiri.acasa.ro/auto-tehno-190/it-c-191/vulnerabilitati-in-software-ul-dns-58477.html
-http://www.securitatea-informatiilor.ro
-http://www.go4it.ro/internet/google.ro-si-yahoo.ro-victimele-unui-atac-dns-poisoning-
10354286/
-https://corisweb.stsisp.ro/documente/dns
-http://www.capital.ro
-http://pctroubleshooting.ro
-http://www.smartnews.ro/Internet/9579.html