CAPECattack pattern

CAPEC-207 Removing Important Client Functionality

High Official page ↗
Abstraction
Standard
Status
Draft
Likelihood of attack
Medium
Typical severity
High
CAPEC version
3.9

Description

An adversary removes or disables functionality on the client that the server assumes to be present and trustworthy.

Extended description

Adversaries can, in some cases, get around logic put in place to 'guard' sensitive functionality or data. Client applications may include functionality that a server relies on for correct and secure operation. This functionality can include, but is not limited to, filters to prevent the sending of dangerous content to the server, logical functionality such as price calculations, and authentication logic to ensure that only authorized users are utilizing the client. If an adversary can disable this functionality on the client, they can perform actions that the server believes are prohibited. This can result in client behavior that violates assumptions by the server leading to a variety of possible attacks. In the above examples, this could include the sending of dangerous content (such as scripts) to the server, incorrect price calculations, or unauthorized access to server resources.

Execution flow

1. [Explore] [Probing] The adversary probes, through brute-forcing, reverse-engineering or other similar means, the functionality on the client that server assumes to be present and trustworthy. 2. [Experiment] [Determine which functionality to disable or remove] The adversary tries to determine which functionality to disable or remove through reverse-engineering from the list of functionality identified in the Explore phase. 3. [Exploit] [Disable or remove the critical functionality from the client code] Once the functionality has been determined, the adversary disables or removes the critical functionality from the client code to perform malicious actions that the server believes are prohibited.

Prerequisites

• The targeted server must assume the client performs important actions to protect the server or the server functionality. For example, the server may assume the client filters outbound traffic or that the client performs all price calculations correctly. Moreover, the server must fail to detect when these assumptions are violated by a client.

Skills required

• [High] To reverse engineer the client-side code to disable/remove the functionality on the client that the server relies on. • [Low] The adversary installs a web tool that allows scripts or the DOM model of web-based applications to be modified before they are executed in a browser. GreaseMonkey and Firebug are two examples of such tools.

Consequences

• Confidentiality: Other • Integrity: Modify Data • Confidentiality: Read Data • Accountability, Authentication, Authorization, Non-Repudiation: Gain Privileges • Access Control, Authorization: Bypass Protection Mechanism

Mitigations

• Design: For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side. • Design: Ship client-side application with integrity checks (code signing) when possible. • Design: Use obfuscation and other techniques to prevent reverse engineering the client code.

Related

Child of · CAPEC (1)

  • CAPEC-22 Exploiting Trust in Client attack pattern

Weakness · CWE (1)

  • CWE-602 Client-Side Enforcement of Server-Side Security weakness

Referenced by CAPEC · child of (2)

  • CAPEC-200 Removal of filters: Input filters, output filters, data masking attack pattern
  • CAPEC-208 Removing/short-circuiting 'Purse' logic: removing/mutating 'cash' decrements attack pattern

Referenced by CWE · attack pattern (1)

  • CWE-602 Client-Side Enforcement of Server-Side Security weakness