[linux] DNS security problem - cache poisoning

Matus UHLAR - fantomas uhlar na fantomas.sk
Úterý Červenec 15 14:07:34 CEST 2008


Zdravim,

tak mi napadlo napisat par informacii o bezpecnostnom probleme, ktore
prehrmeli netom minuly tyzden. Skusim to trochu zosumarizovat:


1. Ide o chybu DNS protokolu ako takeho, nie programov samotnych. Jediny
sposob ako to vyriesit je pouzivat DNSSEC.

Bezpecna musi byt cela cesta od root nameserverov, pre vacsinu z nas to
znamena .sk domenu ktora este DNSSEC nepodporuje. ISC.org preto vytvorila
DNSSEC Look-aside Validation (DLV) register, vid 
https://secure.isc.org/ops/dlv/, tuto vlastnost je mozen pouzivat v BIND
9.3.3, 9.4.0 a novsich.


2. Chyba sa tyka rekurzivnych DNS dotazov, to znamena ze ak mate na svojom
nameserveri nakonfigurovanu nejaku domenu, to je v poriadku, ak vsak chcete
resolvovat inu, je tu riziko. (DNSSEC musi samozrejme podporovat domena na
ktoru sa dotazujete.) 

Utocnik moze poslat odpoved obsahujucu nepravdive data a klient sa nasledne
moze pripajat na uplne inu adresu, iny server ako by mal. Ten sa moze tvarit
ako server na ktory ste sa chceli pripojit a podvrhovat vam data, pripadne
od vas ziskavat informacie ktore by ste 


3. Problem spociva v tom, ze DNS dotazy sa vacsinou posielaju UDP paketmi so
16-bitovym ID cislom, co dava dost malo kombinacii. Problem je mozne
zmiernit tym, ze dotazy budu chodit z co najvacsieho mnozstva roznych UDP
portov, takze utocnik bude musiet hadat aj spravny port.

V pripade ze utocnik ma priamy pristup k vasim paketom (sedi s vami na
rovnakej sieti a moze si prezerat vasu komunikaciu), okrem DNSSEC nie je
mozne problem vyriesit.

Tvorcovia DNS softverov postupne vydavaju patche, aby tie pouzivali nahodne
porty pre vsetky dotazy.


4. Upgradnutie softveru nemusi stacit, treba sa este presvedcit, ze vas
rekurzivny DNS klient/server naozaj posiela dotazy z nahodnych portov - ak
nie, treba tuto vlastnost zapnut. Toto moze sposobit problem, ak je vas DNS
server za bezstavovym firewallom ktory pusta UDP pakety len na
nakonfigurovane porty. Taky firewall radsej vypnite.

BIND ma option query-source, v ktorom by sa nemal definovat port (port 53
bol casto pouzivany prave kvoli firewallom)

Ak nemozete zablokovat firewall pred DNS serverom, pouzite na resolving
pouzit DNS servery, ktore maju dany problem opraveny - mal by vam ich
poskytnut vas provider. Pozor - BIND verzie 8 nie je vhodny na pouzitie ako
forwarder, t.j. ak ma provider tuto verziu, poziadajte ho o upgrade na
verziu 9 (okrem ineho verzia 8 pravdepodobne nebude patchnuta na pouzitie
viac portov).

Mozne je ze budete riesit problem s hlasenim "too many open files". Vzhladom
na to ze BIND pouziva vela portov na odchadzajuce spojenia a na kazdom musi
mat otvoreny socket, je treba zabezpecit aby nemal limit prilis nizky (stava
sa na niektorych OS). 


Objavitel problemu Dan Kaminsky chce zverejnit podrobnejsie informacie na
BlackHat konferencii 7-8 Augusta, skuste doupgradovat dovtedy.
http://news.cnet.com/8301-10789_3-9985815-57.html?hhTest=1
-- 
Matus UHLAR - fantomas, uhlar na fantomas.sk ; http://www.fantomas.sk/
Warning: I wish NOT to receive e-mail advertising to this address.
Varovanie: na tuto adresu chcem NEDOSTAVAT akukolvek reklamnu postu.
Remember half the people you know are below average. 


Další informace o konferenci linux