CAPEC - Common Attack Pattern Enumeration and Classification (A Community of Knowledge Resource for Building Secure Software)
Home > CAPEC List > VIEW SLICE: CAPEC-282: Meta Abstractions (Release 1.4)  

CAPEC-282: Meta Abstractions

 
Meta Abstractions
Definition in a New Window Definition in a New Window
View ID: 282 (View: Implicit Slice)Status: Draft
+ View Data

View Structure: Implicit_Slice

View Objective

This view (slice) covers meta abstraction attack patterns.

Filter Used: .//@Pattern_Abstraction='Meta'

CAPECs in this viewTotal CAPECs
Total15out of310
Views0out of5
Categories0out of18
Attack Patterns22out of287
View Components
View Components
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
 
Audit Log Manipulation
Definition in a New Window Definition in a New Window
Attack Pattern ID: 268 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Character Injection
Definition in a New Window Definition in a New Window
Attack Pattern ID: 249 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Client-Server Protocol Manipulation
Definition in a New Window Definition in a New Window
Attack Pattern ID: 220 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Code Injection
Definition in a New Window Definition in a New Window
Attack Pattern ID: 241 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Command Injection
Definition in a New Window Definition in a New Window
Attack Pattern ID: 248 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Environment variable manipulation
Definition in a New Window Definition in a New Window
Attack Pattern ID: 264 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Exploiting Trust in Client (aka Make the Client Invisible)
Definition in a New Window Definition in a New Window
Attack Pattern ID: 22 (Meta Attack Pattern Completeness: Complete)Typical Severity: HighStatus: Draft
+ Description

Summary

An attack of this type exploits a programs' vulnerabilities in client/server communication channel authentication and data integrity. It leverages the implicit trust a server places in the client, or more importantly, that which the server believes is the client.

An attacker executes this type of attack by placing themselves in the communication channel between client and server such that communication directly to the server is possible where the server believes it is communicating only with a valid client.

There are numerous variations of this type of attack.

+ Attack Prerequisites

    Server software must rely on client side formatted and validated values, and not re-inforce these checks on the server side.

+ Typical Likelihood of Exploit

Likelihood: High

+ Methods of Attack
  • Spoofing
  • Protocol Manipulation
+ Examples-Instances

Description

Web applications may use Javascript to perform client side validation, request encoding/formatting, and other security functions, which provides some usability benefits and eliminates some client-server roundtripping. However, the web server cannot assume that the requests it receives have been subject to those validations, because an attacker can use an alternate method for crafting the HTTP Request and submit data that contains poisoned values designed to spoof a user and/or get the web server to disclose information.

Description

Web 2.0 style applications may be particularly vulnerable because they in large part rely on existing infrastructure which provides scalability without the ability to govern the clients. Attackers identify vulnerabilities that either assume the client side is responsible for some security services (without the requisite ability to ensure enforcement of these checks) and/or the lack of a hardened, default deny server configuration that allows for an attacker probing for weaknesses in unexpected ways. Client side validation, request formatting and other services may be performed, but these are strictly usability enhancements not security enhancements.

Description

Many web applications use client side scripting like Javascript to enforce authentication, authorization, session state and other variables, but at the end of day they all make requests to the server. These client side checks may provide usability and performance gains, but they lack integrity in terms of the http request. It is possible for an attacker to post variables directly to the server without using any of the client script security checks and customize the patterns to impersonate other users or probe for more information.

Description

Many message oriented middleware systems like MQ Series are rely on information that is passed along with the message request for making authorization decisions, for example what group or role the request should be passed. However, if the message server does not or cannot authenticate the authorization information in the request then the server's policy decisions about authorization are trivial to subvert because the client process can simply elevate privilege by passing in elevated group or role information which the messgae server accepts and acts on.

+ Attacker Skills or Knowledge Required

Skill or Knowledge Level: Medium

The attacker must have fairly detailed knowledge of the syntax and semantics of client/server communications protocols and grammars

+ Resources Required

Ability to communicate synchronously or asynchronously with server

+ Solutions and Mitigations

Design: Ensure that client process and/or message is authenticated so that anonymous communications and/or messages are not accepted by the system.

Design: Do not rely on client validation or encoding for security purposes.

Design: Utilize digital signatures to increase authentication assurance.

Design: Utilize two factor authentication to increase authentication assurance.

Implementation: Perform input validation for all remote content.

+ Attack Motivation-Consequences
  • Run Arbitrary Code
  • Privilege Escalation
  • Information Leakage
+ Purposes
  • Penetration
+ CIA Impact
Confidentiality Impact: HighIntegrity Impact: HighAvailability Impact: Low
+ Technical Context
Architectural Paradigms
Client-Server
n-Tier
Frameworks
All
Platforms
All
Languages
All
+ References
G. Hoglund and G. McGraw. "Exploiting Software: How to Break Code". Addison-Wesley. February 2004.
+ Content History
Submissions
SubmitterOrganizationDate
G. Hoglund and G. McGraw. Exploiting Software: How to Break Code. Addison-Wesley, February 2004.Cigital, Inc2007-01-01
Modifications
ModifierOrganizationDateComments
Gunnar PetersonCigital, Inc2007-02-28Fleshed out content to CAPEC schema from the original descriptions in "Exploiting Software"
Sean BarnumCigital, Inc2007-03-09Review and revise
 
Global variable manipulation
Definition in a New Window Definition in a New Window
Attack Pattern ID: 265 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Infrastructure-based footprinting
Definition in a New Window Definition in a New Window
Attack Pattern ID: 289 (Meta Attack Pattern Completeness: Stub)Typical Severity: LowStatus: Draft
+ Description

Summary

"Infrastructure-based footprinting involves interacting with available network or application resources for the purpose of gathering information about the architecture, topology, configuration, or potential vulnerabilities and exposures of a target networking infrastructure."

+ Target Attack Surface

Target Attack Surface Description

Targeted OSI Layers: Network Layer Transport Layer

Target Attack Surface Localities

Server-side

Target Attack Surface Types: Network Host Service

+ References
Stuart McClure, Joel Scambray, George Kurtz. "Hacking Exposed: Network Security Secrets & Solutions". 6th Edition. McGraw Hill, ISBN: 978-0-07-161374-3. 2009.
 
Leverage Alternate Encoding
Definition in a New Window Definition in a New Window
Attack Pattern ID: 267 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Malicious Software Download
Definition in a New Window Definition in a New Window
Attack Pattern ID: 185 (Meta Attack Pattern Completeness: Complete)Typical Severity: Very HighStatus: Draft
+ Description

Summary

An attacker uses deceptive methods to cause a user or an automated process to download and install dangerous code that originates from an attacker controlled source. There are several variations to this strategy of attack.

 
Manipulate Canonicalization
Definition in a New Window Definition in a New Window
Attack Pattern ID: 266 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Network Reconnaissance
Definition in a New Window Definition in a New Window
Attack Pattern ID: 286 (Meta Attack Pattern Completeness: Stub)Typical Severity: LowStatus: Draft
+ Description

Summary

An attacker engages in network reconnaissance operations to gather information about a target network or its hosts. Network Reconnaissance techniques can range from stealthy to noisy and utilize different tools and methods depending upon the scope of the reconnaissance. Some techniques may target single hosts while others are used against entire network address ranges, such as a CIDR class C or B network. In general, reconnaissance activities fall into 5 distinct categories.

1. Host Discovery: The ICMP methods, as well as messages of other protocol types, commonly UDP and TCP, to determine if a host is active on an IP address.

2. Port Scanning: The application of various methods to determine the status of the ports on the remote device. Each machine can have a possible 65535 UDP and TCP ports that provide a service to network clients. The goal of port scanning is to determine which ports on a machine are open, as well as which ports are firewalled or filtered.

3. Operating System Fingerprinting: use of various probing methods to determine idiosyncratic behaviors of a remote device that allow the attacker to determine the operating system. Although networking protocols are governed by standards, each operating system exhibits unique characteristics of its implementation of these standards. By sending malformed packets or datagrams an attacker can solicit responses from an device that allow a highly reliable inference about its operating system.

4. Service Enumeration: Application-layer services can run on arbitrary ports, so an attacker must probe or interact with a remote port in order to obtain a fingerprint or signature of the application or protocol daemon using the port for communication.

5. Firewall Auditing: An attacker uses a number of techniques to determine which types of data can be infiltrated or exfiltrated through a firewall. These techniques require a responsive host protected by a firewall so that the attacker can map out which types of protocols and message types reach the' host or hosts and generate a response.

Applied together these activities allow an attack to map out a target network, its topology, as well as gather detailed device configuration information.

+ Target Attack Surface

Target Attack Surface Description

Targeted OSI Layers: Network Layer

Target Attack Surface Localities

Server-side

Target Attack Surface Types: Host

Target Functional Services

Target Functional Service 1: None
Protocol 1: Internet ProtocolProtocol 2: User Datagram ProtocolProtocol 3: Internet Control Messaging ProtocolProtocol 4: Transmission Control Protocol
+ Attack Prerequisites

    The ability to send data to hosts on a target network segment and receive responses.

+ Resources Required

Each type of reconnaissance uses specific tools and methodologies to acquire information from the target.

+ References
Stuart McClure, Joel Scambray, George Kurtz. "Hacking Exposed: Network Security Secrets and Solutions". 6th Edition. McGraw Hill, ISBN: 978-0-07-161374-3. 2009.
Gordon "Fyordor" Lyon. "Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning". 3rd "Zero Day" Edition, . Insecure.com LLC, ISBN: 978-0-9799587-1-7. 2008.
 
Protocol Manipulation
Definition in a New Window Definition in a New Window
Attack Pattern ID: 272 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Registry Manipulation
Definition in a New Window Definition in a New Window
Attack Pattern ID: 269 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Resource Injection
Definition in a New Window Definition in a New Window
Attack Pattern ID: 240 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Reverse Engineering
Definition in a New Window Definition in a New Window
Attack Pattern ID: 188 (Meta Attack Pattern Completeness: Complete)Typical Severity: LowStatus: Draft
+ Description

Summary

An attacker discovers the structure, function, and composition of an object, resource, or system by using a variety of analysis techniques to effectively determine how the analyzed entity was constructed or operates. The goal of reverse engineering is often to duplicate the function, or a part of the function, of an object in order to duplicate or "back engineer" some aspect of its functioning. Reverse engineering techniques can be applied to mechanical objects, electronic devices or components, or to software, although the methodology and techniques involved in each type of analysis differ widely.

+ Resources Required

Access to or control of an object, resource, or system, to be analyzed. The technical resources required to engage in reverse engineering differ in accordance with the type of object, resource, or system being analyzed.

+ References

http://en.wikipedia.org/wiki/Reverse_engineering

 
Schema Poisoning
Definition in a New Window Definition in a New Window
Attack Pattern ID: 271 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Script Injection
Definition in a New Window Definition in a New Window
Attack Pattern ID: 242 (Meta Attack Pattern Completeness: Hook)Status: Draft
 
Software Integrity Attacks
Definition in a New Window Definition in a New Window
Attack Pattern ID: 184 (Meta Attack Pattern Completeness: Complete)Typical Severity: LowStatus: Draft
+ Description

Summary

An attacker initiates a series of events designed to cause a user, program, server, or device to perform actions which undermine the integrity of software code, device data structures, or device firmware, achieving the modification of the target's integrity to achieve an insecure state.

+ Attacker Skills or Knowledge Required

Manual or user-assisted attacks require deceptive mechanisms to trick the user into clicking a link or downloading and installing software. Automated update attacks require the attacker to host a payload and then trigger the installation of the payload code.

+ Resources Required

Software Integrity Attacks are usually a late stage focus of attack activity which depends upon the success of a chain of prior events. The resources required to perform the attack vary with respect to the overall attack strategy, existing countermeasures which must be bypassed, and the success of early phase attack vectors.

 
Software Reverse Engineering
Definition in a New Window Definition in a New Window
Attack Pattern ID: 189 (Meta Attack Pattern Completeness: Complete)Typical Severity: LowStatus: Draft
+ Description

Summary

An attacker discovers the structure, function, and composition of a type of computer software by using a variety of analysis techniques to effectively determine how the software functions and operates, or if vulnerabilities or security weakness are present within the implementation. Reverse engineering methods, as applied to software, can utilize a wide number approaches and techniques.

Methodologies for software reverse engineering fall into two broad categories, 'white box' and 'black box.' White box techniques involve methods which can be applied to a piece of software when an executable or some other compiled object can be directly subjected to analysis, revealing at least a portion of its machine instructions that can be observed upon execution. 'Black Box' methods involve interacting with the software indirectly, in the absence of the ability to measure, instrument, or analyze an executable object directly. Such analysis typically involves interacting with the software at the boundaries of where the software interfaces with a larger execution environment, such as input-output vectors, libraries, or APIs.

+ Resources Required

Reverse engineering of software requires varying tools and methods depending upon whether an executable or other compiled object is present directly for analysis by tools capable of decompiling or monitoring its execution within an operating environment, as in the case of white box methods. Black box methods require at minimum the ability to interact with the functional boundaries where the software communicates with a larger processing environment, such as inter-process communication on a host operating system, or via networking protocols.

 
XML Injection
Definition in a New Window Definition in a New Window
Attack Pattern ID: 250 (Meta Attack Pattern Completeness: Hook)Status: Draft
Page Last Updated: September 22, 2009