Brett wrote:
> It is described here:
> 
> http://ha.ckers.org/slowloris/

For those that aren't aware this is a well know and understood issue
that has been around for quite some time. This is just a re-hash that,
for whatever reason, is getting more attention than it probably warrants.

> Basically the attacker invokes thousands of connections, slowly sending
> header after header until the server has exhausted resources, most
> likely threads. Can tomcat use nio to process the headers then create a
> thead and execute the webapp?

Like httpd and any other web server, how a Tomcat server reacts to this
pattern of requests depends very much on configuration. You are correct
that the NIO connector should handle this more gracefully (note I
haven't tested it) as it uses non-blocking IO to read the request
headers. That said, all that really does move the goal posts.

If you make enough requests then at some point you will hit a resource
limit. With the BIO and APR connectors this is very likely to be
threads. For the NIO connector my guess (again I haven't tested it) is
that the limit would be sockets.

Whilst you could spend a lot of time tuning Tomcat (or any other web
server) to better handle this scenario there are easier ways to achieve
the same goal. Any half-decent firewall will provide connection rate
limiting which would kill this attack stone dead.

That moves the problem to how to handle a Distributed DOS attack rather
than a simple DOS and that is somewhat harder. There are solutions
available but they tend to cost $$$. On the other hand, if you site is
valuable enough to be the target of a determined DDOS then you should be
thinking about investing in some form of DDOS protection.

Mark



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to