Zrobiło się ostatnio trochę szumu wokół DNS za sprawą Dana Kaminskiego. Więcej, prócz wpisów w jego blogu, można poczytać tutaj:
- NASK – Analiza problemu DNS cache poisoning w polskim Internecie
- IANA – Frequently Asked Questions on Cache Poisoning and Cross Pollination
- US – CERT – Multiple DNS implementations vulnerable to cache poisoning
- CERT Polska – Błędy w DNS dotyczące większości producentów
IANA udostępniła narzędzie, dzięki któremu możemy sprawdzić czy jesteśmy bezpieczni czy nie. Technicznie ten test wygląda mniej więcej tak (linie nieparzyste pytania, linie parzyste – odpowiedzi):
1: [udp sum ok] 59142 [1au] NS? DOMAIN.TLD. ar: . OPT UDPsize=4096 (40) (DF) (ttl
52, id 0, len 68)
2: 59142*- q: NS? DOMAIN.TLD. 2/0/3 DOMAIN.TLD. NS[|domain] (ttl 63, id 45373, len
154)
3: [udp sum ok] 29369+ SOA? iana.org. (26) (DF) (ttl 52, id 0, len 54)
4: [udp sum ok] 29369 ServFail- q: SOA? iana.org. 0/0/0 (26) (ttl 63, id 0, len 54)
5: [udp sum ok] 62488+ SOA? iana.org. (26) (DF) (ttl 52, id 0, len 54)
6: 62488- q: SOA? iana.org. 0/5/3 ns: iana.org. NS[|domain] (ttl 63, id 45375, len
218)
Konwersacja z moim pierwszym serwerem (linie 3 i 4) kończy się odpowiedzią SERVFAIL, z drugim (linie 5 i 6) – iana.org has no SOA record. Pierwszy to bind 9.3.5, drugi – PowerDNS 2.9.21. Oba mają wyłączone rekursywne zapytania. W przypadku bind:
allow-recursion { 127.0.0.1; };
PowerDNS to:
allow-recursion=127.0.0.1/8
Wobec czego możemy się pocieszyć komunikatem:
Safe.
The servers tested for DOMAIN.TLD are not vulnerable to cache poisoning.
djbdns (w wersji 1.05) nie odpowiada w ogóle na takie ‘zaczepki’ i IANA uznaje, że Appears to not respond to recursive lookups.

