How can I tell in the log if a query was successful or refused due to recursion?
Mark Andrews
Mark_Andrews at isc.org
Thu Dec 15 03:55:42 UTC 2005
> Mark Andrews wrote:
>
> >>Tony Toews wrote:
> >>
> >>
> >>
> >>>Folks
> >>>
> >>>I'm told that my DNS server is participating in "recursive dns dos
> >>>attack".
> >>>
> >>>So I've locked things down I think. More on that to follow as a
> >>>separate posting. So I'm looking at my log entries and I'm seeing the
> >>>same kind of traffic now as before I removed the recursion option.
> >>>
> >>>How can I tell in the log if a query was successful or refused due to
> >>>recursion? An example of my current log follows:
> >>>
> >>>14-Dec-2005 18:37:24.145 client 216.18.224.133#41538: query: e.tn.co.za AN
> Y
> >>>ANY +E
> >>>14-Dec-2005 18:37:25.599 client 216.18.224.133#51561: query: e.tn.co.za AN
> Y
> >>>ANY +E
> >>>14-Dec-2005 18:37:26.067 client 216.18.224.133#46417: query: e.tn.co.za AN
> Y
> >>>ANY +E
> >>>14-Dec-2005 18:37:27.630 client 216.18.224.133#43677: query: e.tn.co.za AN
> Y
> >>>ANY +E
> >>>14-Dec-2005 18:37:28.114 client 216.18.224.133#58498: query: e.tn.co.za AN
> Y
> >>>ANY +E
> >>>
> >>>Bind 9.3.1 on a Win 2003 Server. Serving as DNS for 23 very low traffic
> >>>domains hosted on that same system.
> >>>
> >>>
> >>>
> >>>
> >>There's no way I know of to tell via normal BIND 9 logging whether a
> >>query was "successful" or not. For that matter, it depends on what you
> >>mean by "success". Is a NODATA response (NOERROR with "no relevant
> >>answers" in the Answer Section) "success"? How about a referral?
> >>
> >>You could, I suppose, configure some addresses locally on virtual
> >>interfaces (or whatever the Win 2003 equivalent would be), and send some
> >>queries from those source addresses, using dig's -b option, or something
> >>similar, just to see how the responses come back.
> >>
> >>By the way, if those queries above are supposed to be some sort of
> >>"recursive DNS DoS attack", then it's a pretty lame one: since BIND
> >>treats ANY queries as non-recursive whenever anything owned by the name
> >>exists in cache, the attack could be easily fooled, without touching any
> >>"production" data, by putting some bogus RRset out there (e.g. TXT, RP)
> >>with a really long TTL. As it is, since e.tn.co.za doesn't exist and the
> >>relevant negative-caching TTL is 1 day, I can't imagine the negative
> >>impact being very high (but I'm open to the possibility that the owner
> >>of the zone may have deleted that name subsequent to the beginning of
> >>the attack...)
> >>
> >>- Kevin
> >>
> >>
> >
> > It's a recursive DNS DDoS amplification attack. The client's
> > address is forged. It is depending on named to amplify the
> > traffic. The actual target is 216.18.224.133.
> >
> >
> OK, I get the whole "forge the address of the victim" mechanic now, but
> I'm still missing something here. A typical response to an arbitrary
> *non*-recursive query, is an "upwards referral" to the root zone, about
> 440-450 bytes. A typical response to e.tn.co.za/ANY with recursion being
> honored is less than 90 bytes. So why would the perpetrator choose to
> make their queries recursive?
You havn't seen the 3K TXT record :-)
> - Kevin
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: Mark_Andrews at isc.org
More information about the bind-users
mailing list