COMMON ATTACK PATTERN ENUMERATION AND CLASSIFICATIONLive MITRE record

CAPEC-528

XML Flood

An adversary may execute a flooding attack using XML messages with the intent to deny legitimate users access to a web service. These attacks are accomplished by sending a large number of XML based requests and letting the service attempt to parse each one. In many cases this type of an attack will result in a XML Denial of Service (XDoS) due to an application becoming unstable, freezing, or crashing.

Abstraction

Standard

Typical severity

Medium

Likelihood of attack

Low

Understand the attack

What is this attack pattern?

An adversary may execute a flooding attack using XML messages with the intent to deny legitimate users access to a web service. These attacks are accomplished by sending a large number of XML based requests and letting the service attempt to parse each one. In many cases this type of an attack will result in a XML Denial of Service (XDoS) due to an application becoming unstable, freezing, or crashing.

Extended description

XDoS is most closely associated with web services, SOAP, and Rest, because remote service requesters can post malicious XML payloads to the service provider designed to exhaust the service provider's memory, CPU, and/or disk space. The main weakness in XDoS is that the service provider generally must inspect, parse, and validate the XML messages to determine routing, workflow, security considerations, and so on. It is exactly these inspection, parsing, and validation routines that XDoS targets. This attack exploits the loosely coupled nature of web services, where the service provider has little to no control over the service requester and any messages the service requester sends.

Execution flow

How does the attack proceed, step by step?

1

Explore

Survey the target

Using a browser or an automated tool, an attacker records all instance of web services to process XML requests.

Techniques used

  • Use an automated tool to record all instances of URLs to process XML requests.
  • Use a browser to manually explore the website and analyze how the application processes XML requests.
2

Experiment

Attack step

An adversary crafts input data that may have an adverse effect on the operation of the web service when the XML data sent to the service.
3

Exploit

Launch a resource depletion attack

The attacker delivers a large number of XML messages to the target URLs found in the explore phase at a sufficiently rapid rate. It causes denial of service to the target application.

Techniques used

  • Send a large number of crafted XML messages to the target URL.

Requirements

What does the attack require?

Prerequisites

  • The target must receive and process XML transactions.
  • An adverssary must possess the ability to generate a large amount of XML based messages to send to the target service.

Skills required

  • Low: Denial of service

Resources required

Not stated in the MITRE record.

Detection

What are the indicators of the attack?

A large amount of data is passed to the XML parser possibly making it crash or otherwise unavailable to end users.

Impact

What does a successful attack lead to?

Resource Consumption

Affected scopes: Availability

Defence

How is it prevented and mitigated?

1
Design: Build throttling mechanism into the resource allocation. Provide for a timeout mechanism for allocated resources whose transaction does not complete within a specified interval.
2
Implementation: Provide for network flow control and traffic shaping to control access to the resources.

Real world

MITRE example instances

Example instance 1Detail
Consider the case of attack performed against the createCustomerBillingAccount Web Service for an online store. In this case, the createCustomerBillingAccount Web Service receives a huge number of simultaneous requests, containing nonsense billing account creation information (the small XML messages). The createCustomerBillingAccount Web Services may forward the messages to other Web Services for processing. The application suffers from a high load of requests, potentially leading to a complete loss of availability the involved Web Service.