What needs to be put in place to protect web servers from DOS attacks?
Monday, October 27th, 2008The attack vectors and mitigation are not exhaustive, and are exemplary only.
A denial of service (DOS) attack is an attack against limited resources. A DOS attack is an attack against the “availability” function of the typical “CIA” security triad of “Confidentiality, Integrity, and Availability”.
A DOS attack is perpetrated by applying enough pressure against a target that the target’s resource allocation is overwhelmed.
In the question you posed, a DOS attacks can be perpetrated against any resource that supports the Web infrastructure.
A successful DOS attack against a web site tends to exhaust resources in one or more of three primary categories:
- Network resources (routing capacity, network bandwidth, etc)
- Web server resources (processor power, memory power, host networking capacity)
- Database server resources
Mitigating a DOS attack involves protections at all three levels of the infrastructure.
One popular DOS attack is the “Distributed Denial of Service” attack.
Mitigation for this type of attack include:
- Network layer traffic filtering to attempt to block sources of the network-based DOS traffic.
- Increased network bandwidth and capability – Can you out-power the attackers.
- Website mirroring and caching can be employed.
- Website collocating can also help. If your website is hosted on multiple physical networks, taking the site down involves attacking multiple network resources.
A second attack vector is against the web server’s physical resources.
Perhaps you can get enough traffic through the network filters to overwhelm the web server’s processing capabilities.
Mitigation for this type of attack include:
- Throttling network filtering to ensure that the web server(s) do not get more traffic than they can handle.
- Website mirroring helps by adding additional capacity.
- Caching can also help by reducing the amount of processing necessary to serve the site.
Another type of DOS attack is a targeted attack against the applications running on the website.
If the website uses a database back-end, it is possible to execute a DOS attack by using SQL Injections that destroy database integrity, or prevent database access.
Mitigation for this type of attack include:
- Proper coding practices in the web applications that prevent SQL Injection attacks.
- Proper database account security that prevents unauthorized destruction of data.
- Database redundancy that attempts to keep the data available even if one or more data source is unavailable.