Security guru Robert "RSnake" Hansen has released a novel DoS attack tool that points to a significant flaw in Apache and other webservers.
Hansen calls his creation "Slowloris - the low bandwidth yet greedy and poisonous HTTP client." Unlike an old school Denial of Service attack, which ties up a website by bombarding the thing with epic amounts of traffic, Slowloris achieves the same result with a handful of packets.
"A typical request-flooder [DoS attack] might need a 1000 machines to take down a single web server, because you need that much bandwidth to pull enough traffic to saturate the actual physical lines so no one else can come through," Rsnake tells The Reg. "But Slowloris uses almost no traffic at all. You need few 1000 packets to get started and then a few hundred on a regular integrated basis to continue - 200 to 300 packets per minute.
"You can easily do it with a single machine."
Rather than bombarding a site with traffic, Slowloris manages to hold a webserver's available connections open by sending partial http requests. "You make a request but you never actually complete the request," says Hansen, chief executive officer of security consultancy SecTheory and the man behind the online security lab ha.ckers.org. And if you send a few hundred partial requests, "Apache will wait a really long time to wait for every single on of these open connections to tell it what they want and they never do."
A webserver like Apache limits the number of threads it will open at any one time. "If they didn't do that, you could use memory exhaustion or some other form of attack," Hansen explains.
Hansen has confirmed the flaw on Apache 1.x, Apache 2.x, dhttpd, GoAhead WebServer, and Squid, but his attack doesn't affect IIS6.0, IIS7.0, or lighttpd. Webservers like IIS uses a "worker pool," allowing as many open connections as its resources will allow.
Apache did not respond to our request for comment on the bug. But Hansen has contacted the organization and says they were previously aware it. At the time of writing, they had not patched it. After posting his tool to the web, it was pointed out that another researcher described a similar attack in early 2007 - without releasing a tool that executed the attack.
According Hansen, the attack won't affect large websites equipped with load balancers using the worker pool model. "We're really only talking about a fraction of the Apache sites out there," he says. "But it's still a lot of sites. It's just not the big retail and news sites." ®
Apache has responded with a comment to this story, but it does not want it to be viewed as an official response: "This is not new, and a trawl through Apache mailinglists will find a few mentions of it over the years. For example, the Event MPM effectively nullifies this attack, and was first included in a production release of Apache in 2005."
We have asked Apache to keep us updated on the matter and will update this story when we have more information.