Dark Mode

Settings

Capec-207 Detail

Removing Important Client Functionality

Standard Software Likelihood: Medium Typical Severity: High

Parents: 22

Children: 200 208

Threats: T271 T292 T293

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.
External ID Source Link Description
CAPEC-207 capec https://capec.mitre.org/data/definitions/207.html
CWE-602 cwe http://cwe.mitre.org/data/definitions/602.html
REF-75 reference_from_CAPEC http://en.wikipedia.org/wiki/Greasemonkey Wikipedia, The Wikimedia Foundation, Inc
REF-76 reference_from_CAPEC http://getfirebug.com/ Firebug
REF-77 reference_from_CAPEC https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Mozilla Firefox Add-ons
Explore
  1. 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. Techniques
    The adversary probes by exploring an application's functionality and its underlying mapping to server-side components.
    The adversary reverse engineers client-side code to identify the functionality that the server relies on for the proper or secure operation.
Experiment
  1. 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.

  2. Techniques
    The adversary reverse engineers the client-side code to determine which functionality to disable or remove.
Exploit
  1. 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.

  2. Techniques
    The adversary disables or removes the functionality from the client-side code to perform malicious actions, such as sending of dangerous content (such as scripts) to the server.
  1. 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.
  1. The adversary must have access to a client and be able to modify the client behavior, often through reverse engineering. If the server is assuming specific client functionality, this usually means the server only recognizes a specific client application, rather than a broad class of client applications. Reverse engineering tools would likely be necessary.
Low High
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.
To reverse engineer the client-side code to disable/remove the functionality on the client that the server relies on.
Integrity Authorization Access Control Accountability Authentication Confidentiality Non-Repudiation
Modify Data Gain Privileges Bypass Protection Mechanism Gain Privileges Gain Privileges Other (Information Leakage) Gain Privileges
Bypass Protection Mechanism Read Data
  1. The adversary reverse engineers a Java binary (by decompiling it) and identifies where license management code exists. Noticing that the license manager returns TRUE or FALSE as to whether or not the user is licensed, the adversary simply overwrites both branch targets to return TRUE, recompiles, and finally redeploys the binary.
  2. The adversary uses click-through exploration of a Servlet-based website to map out its functionality, taking note of its URL-naming conventions and Servlet mappings. Using this knowledge and guessing the Servlet name of functionality they're not authorized to use, the adversary directly navigates to the privileged functionality around the authorizing single-front controller (implementing programmatic authorization checks).