Samiksha Jaiswal (Editor)

Slowloris (computer security)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Original author(s)
  
RSnake

Stable release
  
0.7

Platform
  
Cross-platform

Initial release
  
17 June 2009

Written in
  
Size
  
36 kb

Slowloris (computer security) wwwpcfreaknetimagesslowlorisdenialofservic

Slowloris dos attack parrot security os


Slowloris is a type of denial of service attack tool invented by Robert "RSnake" Hansen which allows a single machine to take down another machine's web server with minimal bandwidth and side effects on unrelated services and ports.

Contents

Slowloris tries to keep many connections to the target web server open and hold them open as long as possible. It accomplishes this by opening connections to the target web server and sending a partial request. Periodically, it will send subsequent HTTP headers, adding to—but never completing—the request. Affected servers will keep these connections open, filling their maximum concurrent connection pool, eventually denying additional connection attempts from clients.

Slowloris ddos attack defense tool


Affected web servers

This includes but is not necessarily limited to the following, per the attack's author:

  • Apache 1.x and 2.x
  • dhttpd
  • Websense "block pages" (unconfirmed)
  • Trapeze Wireless Web Portal (unconfirmed)
  • Verizon's MI424-WR FIOS Cable modem (unconfirmed)
  • Verizon's Motorola Set-top box (port 8082 and requires auth - unconfirmed)
  • BeeWare WAF (unconfirmed)
  • Deny All WAF (patched)
  • Flask
  • Because Slowloris exploits problems handling thousands of connections, the attack has less of an effect on servers that handle large numbers of connections well. Proxying servers and caching accelerators such as Varnish, nginx, and Squid have been recommended to mitigate this particular kind of attack. In addition, certain servers are more resilient to the attack by way of their design, including Hiawatha, IIS, lighttpd, Cherokee, and Cisco CSS.

    Mitigating the Slowloris attack

    While there are no reliable configurations of the affected web servers that will prevent the Slowloris attack, there are ways to mitigate or reduce the impact of such an attack. In general these involve increasing the maximum number of clients the server will allow, limiting the number of connections a single IP address is allowed to make, imposing restrictions on the minimum transfer speed a connection is allowed to have, and restricting the length of time a client is allowed to stay connected.

    In the Apache web server, a number of modules can be used to limit the damage caused by the Slowloris attack; the Apache modules mod_limitipconn, mod_qos, mod_evasive, mod security, mod_noloris, and mod_antiloris have all been suggested as means of reducing the likelihood of a successful Slowloris attack. Since Apache 2.2.15, Apache ships the module mod_reqtimeout as the official solution supported by the developers.

    Other mitigating techniques involve setting up reverse proxies, firewalls, load balancers or content switches. Administrators could also change the affected web server to software that is unaffected by this form of attack. For example, lighttpd and nginx do not succumb to this specific attack.

    Notable usage

    During the protests that erupted in the wake of the 2009 Iranian presidential election, Slowloris arose as a prominent tool used to leverage DoS attacks against sites run by the Iranian government. The belief was that flooding DDoS attacks would affect internet access for the government and protesters equally, due to the significant bandwidth they can consume. The Slowloris attack was chosen instead, because of its high impact and relatively low bandwidth. A number of government run sites were targeted during these attacks, including gerdab.ir, leader.ir, and president.ir .

    Similar software

    Since its release, a number of programs have appeared that mimic the function of Slowloris while providing additional functionality, or running in different environments:

  • PyLoris – A protocol-agnostic Python implementation supporting Tor and SOCKS proxies.
  • Goloris – Slowloris for nginx, written in Go.
  • QSlowloris – An executable form of Slowloris designed to run on Windows, featuring a Qt front end.
  • An unnamed PHP version which can be run from a HTTP server.
  • SlowHTTPTest – A highly configurable slow attacks simulator, written in C++.
  • SlowlorisChecker – A Slowloris and Slow POST POC (Proof of concept). Written in Ruby.
  • Cyphon - Slowloris for Mac OS X, written in Objective C.
  • References

    Slowloris (computer security) Wikipedia