Nyílt rekurzív névszerverek

2006 első negyedévében a sok hálózaton tapasztaltak olyan szolgáltatást bénító (DDoS, Distributed Denial of Service) támadásokat, melyeknél a támadás eszközéül nyílt rekurzív névszervereket (Open Recursive Nameservers, ORN) használnak.

Mi is az a nyílt rekurzív névszerver?

A név szerverek egyik feladata, hogy rekurzív kéréseket megválaszoljanak, vagyis például egy PC-n futó web böngésző kérésére megtudják, hogy mi is a keresett web szerver IP címe. Ezt az IP címet aztán egy bizonyos ideig cache-elik, hogy az újabb kéréseket gyorsabban meg tudják válaszolni. Ilyen rekurzív név szerver IP címét kell bekonfigurálni minden internetbe kapcsolt számítógépbe. Rendszerint ez a név szerver a klienssel egy lokális hálózaton van. Lehetséges azonban, hogy egy távoli név szerver is kiszolgálja a kliens kérését. Például lehetséges, hogy egy szarvasi felhasználó egy brazil szolgáltató DNS szerverének IP címét konfigurálja be a PC-jébe, és a DNS kérdés és válasz akkor is oda-vissza utazik a tengeren át, ha például a szarvasi Tessedik Sámuel Főiskola web lapjára kiváncsi a felhasználó. Ennek a működésnek feltétele, hogy a brazil névszerver ne csak a saját hálózati környezetében levő IP címek számára legyen hajlandó rekurzív kéréseket megválaszolni, hanem bármilyennek. Az ilyen DNS szervert nevezzük nyílt rekurzív név szervernek.

Példa nyílt rekurzív névszerver használatra

Mi a baj a nyílt rekurzív névszerverrel?

Ha egy rendszergazda nyílt rekurzív név szervert (ORN) üzemeltet, akkor akaratlanul szolgáltatásokat nyújthat távoli számítógépek részére, és pazarolhatja saját erőforrásait. Nagyvonalúságának következtében azonban a szolgáltatás bénításának veszélye elsősorban nem is nála, hanem az internet bármely más pontján fennáll. Egy imposztor ugyanis a következőképpen járhat el, ha meg akarja támadni például az 11.22.33.44 IP címet:

  1. Bejegyez egy hosszú (néhány ezer byte-os) DNS rekordot. Ez lehet például egy TXT rekord. Gondoskodik róla, hogy a rekordhoz nagy TTL érték tartozzon, hogy sokáig cache-eljék a rekurzív név szerverek.
  2. Keres pár ezer nyílt rekurzív név szervert az interneten. Sajnos ez nem nehéz: egy felmérés szerint az interneten található név szerverek kb. 3/4 része ilyen. (http://dns.measurement-factory.com/surveys/sum1.html)
  3. Néhány birtokában levő gépről, néhányszor megismételve, 11.22.33.44 forrás címmel (az áldozat IP címével) kérdéseket küld a nyílt rekurzív szerverkhez, az 1. pontban bejegyzett rekordra vonatkozóan.

Az eredmény az, hogy a birtokában levő gépekről indítható DoS támadást, a nyílt rekurzív névszervereket felhasználva több nagyságrenddel fel tudja erősíteni! Tapasztaltak már több Gb/s forgalmat is, amit ilyen típusú DoS támadással okoztak.

Mit tegyünk?

  1. A látó (caching, rekurzív) név szerverekben definiáljunk egy IP cím halmazt, és csak ezek számára nyújtsunk rekurzív feloldást. Ez Bind-ban ehhez hasonló módon tehető meg:
    
    #Felsoroljuk a hálóztokat CIDR formában, ahonnan megengedünk rekurzív kérdéseket:
    
    acl "itt" {
    127.0.0.0/8;
    10.11.12.0/24;
    };
    
    
    options {
    #Az opciók közt megszorítást teszünk arra, hogy kiknek is akarjuk rekurzív kéréseit kiszolgálni:
    	allow-recursion {itt;};
    # ...
    };
    
  2. Válasszuk szét a név szerverek látó és mutató funkcióját. Az autoritatív (mutató) szerverek egyáltalán ne adjanak rekurziót semmilyen IP címre.

Ha név szerverként Bind-ot használunk, akkor ezt a ,,recursion=no'' opcióval tehetjük meg.

A http://digitus.itk.ppke.hu/~pasztor/cgi-bin/recursive.cgi lapon ellenőrizhetjük, hogy egy IP címen rekurzív név szerver működik-e.

Mi a helyzet a .hu alatt?

A .hu zónában ezen sorok írásakor (2006 április) több mint 20 ezer név szerver szerepel mint glue rekord. Ezek mind autoritatív (mutató) név szerverek, ezért is kerültek ide. Ha tehát a fenti 2. tanács teljesülne, akkor egy sem lenne ezek közül rekurzív. De sajnos az 1. tanács sem teljesül a név szerverek több mint 63 százalékánál, kb. 13 ezer név szervernél.

Pásztor Miklós

Irodalom:

A Securiteam cikke: http://www.securiteam.com/securityreviews/5GP0L00I0W.html
A norvég kutatói hálózat anyaga: http://www.cert.uninett.no/rekursive-navnetjenere.en.html
http://www.isotf.org/news/DNS-Amplification-Attacks.pdf
http://www.dyndns.com/about/company/notify/archives/the_dangers_of_open_recursive_dns.html
Egy konkrét tapasztalat leírása: http://weblog.barnet.com.au/edwin/cat_networking.html
Magyar nyelvű ismertető a DNS működéséről: http://www.ppke.hu/~pasztor/dnslap.html