[79036] in North American Network Operators' Group

home help back first fref pref prev next nref lref last post

Re: DNS cache poisoning attacks -- are they real?

daemon@ATHENA.MIT.EDU (Florian Weimer)
Tue Mar 29 06:09:29 2005

From: Florian Weimer <fw@deneb.enyo.de>
To: Simon Waters <simonw@zynet.net>
Cc: John Payne <john@sackheads.org>, nanog@merit.edu,
	Randy Bush <randy@psg.com>
Date: Tue, 29 Mar 2005 13:08:50 +0200
In-Reply-To: <1112092669.15380.TMDA@mercury.zynet.net> (Simon Waters's message
	of "Tue, 29 Mar 2005 11:37:46 +0100")
Errors-To: owner-nanog@merit.edu


* Simon Waters:

>> This is _nothing_ to do with what you're running on the recursive
>> nameserver.  It is doing _exactly_ what it is supposed to do.  Get
>> answers, store in cache, respond to queries from cache if TTL isn't
>> expired.
>
> The answers from a recursive servers won't be marked authoritative (AA bit not 
> set), and so correct behaviour is to discard (BIND will log a lame server 
> message as well by default) these records.

Unfortunately, this is not quite true.  Brad and Chris are right.  I
couldn't believe it either, but after a long stare at BIND's is_lame
function, I have to agree with them.

BIND accepts non-authoritative answers if their additional section
looks a bit like a referral.  I don't tink that this check is
deliberately lax, but stricter checks are simply harder to do on this
particular code path.

> If your recursive resolver doesn't discard these records, suggest
> you get one that works ;)

Which one would?  Keep in mind that referrals do not have the AA bit
set, so a simple filter wouldn't work.

home help back first fref pref prev next nref lref last post