XML Flooding aims at exhausting the resources of a web service by sending a large number of legitimate SOAP Messages. This attack can be compared to the classical denial of service attack on web servers by flooding them with a large amount of valid HTTP requests until the server is unable to respond.
The attack is also known under the name XML Flood.
One can distinguish between 2 attack subtypes:
- Single XML Flooding
In this scenario all requests originate from one attacker. This attack can be defended easily.
- Distributed XML Flooding
In this scenario many different web service clients make requests at the same time. Usually these clients are controlled by the attacker. Defending against this attack is still not possible.
Prerequisites for attack
In order for this attack to work the attack has to have knowledge about the following things:
- Attacker knows endpoint of web service. otherwise he is not able to reach the web service.
- Attacker can reach endpoint from its location. Access to the attacked web service is required. If the web service is only available to users within a certain network of a company, this attack is limited.
Graphical representation of attack
The Figure 1 shows an example of Single XML Flooding where one attacker sends as many request as possible to the attacked web service.
Figure 2: Single XML Flooding example
Figure 3 shows an Distributed XML Flooding attack where various intermediary clients, controlled by an attacker, send requests to the victim.
Figure 3: Distributed XML Flooding example
Attack mitigation / countermeasures
When talking about countermeasures you have to distinguish between the 2 subtypes.
- Single XML Flooding can be defended easily by limiting the number of requests per IP address in a given time frame. The maximum number of requests per IP address per time frame is dependent on the type of deployed web service and the type of hardware the application is running on. When running a web service giving out the local temperature, one request per minute per IP address should be sufficient.
- Distributed XML Flooding can't be defended today. Even though certain approaches exist to fight this attack it's not possible to prevent the attack from happening. An simple solution used by big companies today is to use servers with a sufficient overcapacity. Attacks up to a certain size can then be handled successfully. Another approach that can handle attacks up to a certain size is the use of cloud computing. When under attack the web service just allocates more server resources to keep running.
Categorisation by violated security objective
The attack aims at exhausting the system resources, therefore it violates the security objective Availability.
Categorisation by number of involved parties
The "Single XML Flooding" attack is categorised as follows:
The "Distributed XML Flooding" attack is categorised as follows:
Categorisation by attacked component in web service architecture
Categorisation by attack spreading
- Alex Stamos. Attacking web services. http://www.owasp.org/index.php/File:AppSec2005DC-Alex_Stamos-Attacking_Web_Services.ppt, October 2005. Slides OWASP AppSec DC 2005, Accessed 01 July 2010.
- Leroy Metin Yaylacioglu. Business value einer web service firewall. Master’s thesis, Hochschule für Angewandte Wissenschaften Hamburg, 2008.