DDoS Attacks Via DNS Recursion
JehCt writes "Associated Press is running a story about how the recursion feature of open DNS servers can be used to launch massive distributed denial of service (DDoS) attacks: 'First detected late last year, the new attacks direct such massive amounts of spurious data against victim computers that even flagship technology companies could not cope.' A thread at WebmasterWorld explains, 'To make a long story short, having a DNS server that allows recursion for the Internet is like running an open SMTP relay.'"
That's why you run djbdns -- by default it's closed to recursive queries.
Don't piss off The Angry Economist
OK, don't do that then.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
recursion: n.
See recursion. See also tail recursion.
From the Jargon File.
From what I understand of DNS resolvers, this attack can't work unless there's another compromise at play here. Either a compromise of one of the victim host's zones, or a compromise of the servers hosting the open resolvers themselves.
having a DNS server that allows recursion for the Internet is like running an open SMTP relay.'
Anyone want to discuss how DNS Cache addresses this? AFAIK this is a pretty "safe" way to provide DNS to at least a small sized network - but that's all I run it on. Comments, concerns, advice?
fak3r.com
This has been happening for years, and security folks have been saying to make sure you don't have recursive DNS servers open to the public for years. Not sure how this is news.
I am quite a fan of djbns, but the key here is to separate authoritative and
recursive, which is something that DJB has been preaching for a while.
Consequently djbdns won't do this, but it is quite possible to make bind not
do this also. (In fact Bind now has come round and reccomended this.)
It seems to me like a no-brainer, why is splitting the two such a problem?
SDNS wouldn't hurt either, but that will take a lot more doing.
Put this line in your zone definition:
recursion no;
Problem solved.
Name servers are specialized computers that help direct Internet traffic to its destinations. The attacker then sent falsified requests to the compromised directory computer, which unleashed overwhelming floods of amplified data aimed wherever the attacker wanted.
Suggestion:
-Verify requests
-Verify directory computers have not been comprimised
-Disallow amplified data
-Build a new secure system for handling traffic
He who knows best knows how little he knows. - Thomas Jefferson
The real risk is perhaps The Final Virus.
it's a blue bright blue Saturday hey hey
With his weird license? God. He writes good software. He's even a bloody certified genius, but he's amost as insufferable as Dave Weiner. Don't try and submit a patch - unless you are just donating to his case, and want nothing as a contributor. Also, be prepared for the contempt of his responses.
Besides, who wants software written by a cartoon bear?
"Speaking the Truth in times of universal deceit is a revolutionary act." -- George Orwell
That's self-referential, not recursive. One does not immediately imply the other. GNU, on the other hand, is recursive.
Javascript + Nintendo DSi = DSiCade
Eh, he's gotten a lot better. Hey, everybody was young when they were young. It's just that not all of us inflicted our youth on others. He just writes good software these days. If you don't use it, well, it's your loss.
Don't piss off The Angry Economist
"The real risk is perhaps The Final Virus."
"Though Linux passed Microsoft in web-server market share long ago, it remains second in overall share for intranet and general-purpose servers. But unless there is some break in the trend curves Linux really will be #1 around the beginning of 2005."
Oh...
To know recursion, you must first know recursion.
/.ers will know that only the mighty foot of Chuck Norris is powerful enough to kick back such a massive DDoS attack. There is a problem though: since there is only 1 of him, Chuck can't defend more than one site at a time. And ofcourse his ourly rates are a bit steep, too.
Vary your mileage may.Why do you think you need a license? Copyright law doesn't impose ANY restrictions on what you do with something you've downloaded. It only stops you from making copies.
Oh, and look at qmail-1.03.tar.gz#CREDITS -- my name is in there because of patches I've submitted to djb. Granted, he rewrote most of my code because his design was better than mine, but just because most patches 1) suck, 2) aren't necessary, 3) make the code worse, and 4) are badly design, doesn't mean that all are.
Don't piss off The Angry Economist
And that matters to you how? When you can write better software then he can maybe you can have your say, but until then trash-talking someone you don't know is rude.
Really? Has he stopped with the peurile name-calling?
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
And assuming I don't know him is preposterously presumptive.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
His license forbids distributing binaries unless they are made from his sources. You want to add any of the many well known patches? Great, you distribute his source and your patches, you do not distribute patched sources and you do not distribute binaries.
No way is DJB software public domain.
In fact, I bet a dollar you don't even know what public domain is.
Infuriate left and right
The first rule of recursion is to not talk about recursion...
~S
When is a spade not a spade? If someone engages in puerile activity, don't they deserve a puerile name? djb (the old djb, anyway)'s biggest problem is that he didn't give people the truth gently. He would tell people "That's stupid, and you're being stupid for proposing it." The best djb quip I ever heard was:
djbwm - it's the best window manager in the world, but when you try to move a window, it argues with you for ten minutes that it was already in the right place.
Don't piss off The Angry Economist
For enterprise systems a split-split DNS design is the best. There are three components to this design:
ADVERTISER
RESOLVER
INTERNAL
The advertiser sits outside, Internet-facing, and is only responsible for resolving outside queries for your own domains. It does not do recursion or dynamic updates, and has a secured cache.
The resolver and internal sit inside, are intranet-facing, and handle internal requests for outside domains, and internal requests for internal domains respectively.
There are lots of articles on-line which show how to set this up.
I am not interested in articles about life extension advancements.
That's a self-referential paradox, not a recursive statement. The grandparent is an example of a recursive statement.
Javascript + Nintendo DSi = DSiCade
Should have used gotos! -1 for the functional language weenies!
TESO - Nameserver traffic amplify and NS route discovery.
Who does not learn from history is doomed to repeat it... oh, wait, its still the same bug.
Lets say that your local LAN and WLAN networks are 192.168.0/24 and 192.168.1/24, respectively. Make the following additions to your /etc/bind/named.conf.options (or equivalent):
-- -pjk Perry Kundert perry@kundert.ca http://kundert.2y.net
...researchers have confirmed that posting a link in a Slashdot article is just as effective as other DDoS Attacks.
It must have been something you assimilated. . . .
The grandparent is an example of a recursive statement.
...
stop talking about this thing called "recursion" that makes me yell at you to stop talking about this thing called "recursion" that makes me yell at you to stop talking about this thing called "recursion" that makes me yell at you to stop talking about this thing called "recursion" that makes me yell at you to
you say container, I say pointer...
"Speaking the Truth in times of universal deceit is a revolutionary act." -- George Orwell
There really isn't a good reason one nameserver can't serve internal and external users. All that is needed is recursive lookups need to be restricted to the internal IP space. It doesn't look like BIND can currently do that but I suspect that if this problem is really serious it will quickly gain the ability.
Some of us don't like the idea of maintaining more servers than are absolutely required, this looks like a pretty bogus reason to install another set of nameservers.
Democrat delenda est
This is old news. If you're running an open DNS server, you're very likely participating in someonelse's DDoS attack and have been for the last couple years. We bought a company last year and part of my job was to assimilate their DNS systems that were reportedly flaking out constantly. I can't speak to the people running the servers before me, but the diagnosis was easy. Once we turned off recursion and convinced the network not to let spoofed UDP packets enter the network, the attacks stopped instantly.
Would doing this get you banned from WoW?
Jonathanjk.com
He also teaches at UIC, so that can be a problem for some people (his students).
http://www.dnsreport.com/tools/dnsreport.ch?domain =slashdot.org
FAIL Open DNS servers ERROR: One or more of your nameservers reports that it is an open DNS server. This usually means that anyone in the world can query it for domains it is not authoritative for (it is possible that the DNS server advertises that it does recursive lookups when it does not, but that shouldn't happen). This can cause an excessive load on your DNS server. Also, it is strongly discouraged to have a DNS server be both authoritative for your domain and be recursive (even if it is not open), due to the potential for cache poisoning (with no recursion, there is no cache, and it is impossible to poison it). Also, the bad guys could use your DNS server as part of an attack, by forging their IP address. Problem record(s) are:
Server 66.35.250.12 reports that it will do recursive lookups. [test]
Server 12.152.184.136 reports that it will do recursive lookups. [test]
Server 12.152.184.135 reports that it will do recursive lookups. [test]
See this page for info on closing open DNS servers.
I'll also bet a dollar that he doesn't know what public domain is. I'll even give two to one odds against it.
Don't piss off The Angry Economist
Now if only someone could do this to slashdot... Then the Web would be a better place... ;-)
Yeah then people wouldn't be able to find out about such things and thus not do them to slashdot?
6 in a row
Hasn't it been fixed for some time via the allow-query and allow-recursion configuration options?
Back in 1983, IBM put Microsoft's "PC-DOS" on a "microcomputer." It was later named by Microsoft to MS-DOS, then simply DOS.
Digital Research cloned it and improved it in the late 1980s (early '90s?), making a program called DR-DOS that pundits called "a better DOS than DOS."
Flash forward to Yahoo News:
"Experts call the attack technique a 'distributed reflector denial of service,'" says the site.
So once again, DoS has been supplanted by DRDoS.
To understand recursion, follow the instructions you get by adding its quote after the text "To understand recursion, follow the instructions you get by adding its quote after the text"
The Tao of math: The numbers you can count are not the real numbers.
Back in the bind 4 days, when I did serious DNS, my company wanted a few servers visible in their domain(s) for external dns host resolution.
For people behind the firewall, they wanted a far more extensive list of hosts that were not to be seen for queries outside the firewall.
I did this by using scp to transfer the zone files from the external to the internal DNS server; the internal server would then "cat" the additional hosts to the zone and HUP the named.
AFAIK modern BIND uses "zones" so you can accomplish the above on one server, if you want. I've never used it, but I can see a number of situations where I'd need my above solution even with this feature.
What BIND needs is not a "recursion no;" option, but instead a "recursion eth0;" or "recursion 1.2.3.*;" so recursive queries must originate from a trusted network.
Remember also that not everyone in the world uses BIND - people with ActiveDirectory or NDS name servers might be screwed until a vendor patch.
This isn't just a simple DDoS because DNS servers point many other resources to the attack target. This makes this a Distributed Reflective Denial of Service Attack, or DRDoS. I published an article on this topic in 2600 Hacker Quarterly magazine in 2004. I was a network\security student when I wrote it so it might not teach you ubergeeks anything new.
http://hyppy.zapto.org/DRDoS-Spyrochaete.html
Oddly enough, just the title of this article alone explained the threat much more clearly than the anchorwoman on TV at noon. Why do they even report tech stuff if they can't even explain the problem? Sorry, this is off topic but I felt like whining about something..
This statement is not self-referential.
Have you read my blog lately?
No, that's just self-referential.
Recursive would be something like what the acronym LAME stands for: "LAME Ain't an MP3 Encoder."
(Which, originally, it wasn't.)
Patrolling ftw
from the to-understand-recursion-you-must-understand-recurs ion dept.
This sentence no verb.
As previous posters have noted, these attacks have become more frequent in recent months, prompting an advisory from US-CERT (PDF) in December. It's a hot topic on several security lists, and a special focus of SecuriTeam blogger Gadi Evron.
RichM
Data Center Knowledge
It's taken them this long to notice this one? The cricket book discusses it, fer cryin' out loud, and had a good recommended solution: refuse recursive queries by default, then enable them only on those nameservers that'll be used by your client machines and only if the query comes from your local network. I thought everybody setting up a nameserver knew this one, BIND even comes with options specifically to make it easy to do.
Sounds more of a Distributed Reflection Denial of Service attack actually. Old news indeed.
Serge
Shades of OpenBSD. "By default there are no vulnerabilities" - but in the Real World [TM] systems require configuration, and that process will introduce vulnerabilities if the human being involved in configuration is an idiot or insufficiently skilled.
That's why I have all my systems configured by CHUCK NORRIS.
No, just kidding. Anyway, no DNS system works without configuration, and a properly configured system is immune to this problem regardless of whether you run Vixie's code or Bernstein's.
If, like me, you are still running some old version of BIND (like 4.9 or 5.X) you can turn off recursion by adding the following line to named.boot & restarting named:
options no-recursion
Another recommended configuration is
options no-recursion no-fetch-glue
NOTE:
If you turn off recursion on any DNS server make sure you don't list that server in any other computer's resolv.conf file.
That not sentence.
What would be the difference to start a DRDOS attack by sending spoofed requests to authorative servers, querying for records they are authorative for?
Serge
So say you!
Have you read my blog lately?
I don't wanna sound like a fanboy, but as stated before: PowerDNS has a seperate authoritive and recursive component, which can operate seperately or together, depending on your needs.
Comment removed based on user account deletion
# this really should be default
allow-recursion { 127.0.0.0/8; 192.168.0.0/16; };
Why recursion is bad:
Find a large TXT record somewhere (or set one up on your own domain.) Make it about 4K (which, incidentally, is the size that was used in this last batch of attacks.)
Request this TXT record from an open resolver (the amplifier) with lots of bandwidth, with a spoofed IP address of your target. Repeat as fast as you can.
The amplifier will cache your TXT record, and start sending replies, swamping the target.
Each request uses ~ 100 bytes from you. Each reply from the amplifier to the target will use 4096 bytes. That's a 40X amplification. Doing this from a T1 will result in consumption of 60Mbps of bandwidth from your target (enough to swamp an OC-1.) If you have more upstream bandwidth, you can do more damage.
Now do you see why it's bad?
JehCt writes:
> 'To make a long story short, having a DNS server that
> allows recursion for the Internet is like running an open
> SMTP relay.'
JehCt wields a +7 bong of vision!
JehCt hits! JehCt hits! JehCt hits! -- more
You die...
Do you want to see your possessions identified? y[n]
djbdns is not a DNS server adherring to the RFC documents, i.e. it allows setting CNAME with SOA, while the standard does not permit CNAME with any data.
while it might look like a mistake which would get corrected quite quickly, this is a standard djb practice. for instance, qmail does not cycle to MXes with lower priority after a temporary failure.
this is a standard djb practice - applying the standards at his own discretion.
Was just released: http://www.isotf.org/news/DNS-Amplification-Attack s.pdf
We need to be careful in proposing a suggested solution.
Inclusive Namespace roots provide public resolvers for users whose ISPs are too stubborn or dumb to provide their users with choice. Customers of such ISPs can simply decide to use the public resolvers provided by the INS roots, like Public Root or ORSC.
Shutting off user choice by suggesting that ISPs block outbound 53/TCP, 53/UDP will take away that choice.
I'm sure that some ICANN synchophants will be happy about this and if I were the suspicious type, I'd say that this sudden "awareness" of a "severe security problem" that has been around for a long time may be planned by those who are becoming uncomfortable with the ever increasing number of people who are abandoning the ICANN root in favor of DNS Service Providers (DSPs) who provide a view of the entire internet and don't impose non-related policies (UDRP) on domain registrants.
What better way to kill the INS than by putting up a security straw man and scaring people, especially ISPs, into taking away DNS choices from internet citizens. I am especially suspicious about this after seeing who was quoted in the recent MSNBC piece about the so-called "new" security risk that has "just been discovered". His jihad against allowing internet citizens to have freedom to chose their DSP from among global choices is well known to all.
Watch out here - there may be more to this story than meets the eye...
I don't understand how this affects you in any way?
You're nothing; like me.
microsoft and sco and all the other evil corps hosted DNS with joker it would be alright. :)
Has anyone actually been unable to get to sites because of this? 500,000 domains isn't that many really. And the sites thet the majority of the world visit (google/yahoo/slashdot/myspace) are all up and accessible. So I don't see what the big deal is. Unless this DdOS spreads to the rest of the name server system or causes it to overload.
Charles Wyble System Engineer