File System Function Injection, Content Based |
Attack Pattern ID: 23 (Standard Attack Pattern Completeness: Complete) | Typical Severity: Very High | Status: Draft |
Summary
An attack of this type exploits the host's trust in executing remote content including binary files. The files are poisoned with a malicious payload (targeting the file systems accessible by the target software) by the attacker and may be passed through standard channels such as via email, and standard web content like PDF and multimedia files. The attacker exploits known vulnerabilities or handling routines in the target processes. Vulnerabilities of this type have been found in a wide variety of commercial applications from Microsoft Office to Adobe Acrobat and Apple Safari web browser. When the attacker knows the standard handling routines and can identify vulnerabilities and entry points they can be exploited by otherwise seemingly normal content. Once the attack is executed, the attacker's program can access relative directories such as C:\Program Files or other standard system directories to launch further attacks. In a worst case scenario, these programs are combined with other propagation logic and work as a virus.
The target software must consume files.
The attacker must have access to modify files that the target software will consume.
Description
PHP is a very popular web server. When PHP is used with global variables, a vulnerability may be opened that affects the file system. A standard HTML form that allows for remote users to upload files, may also place those files in a public directory where the attacker can directly access and execute them through a browser. This vulnerability allows remote attackers to execute arbitrary code on the system, and can result in the attacker being able to erase intrusion evidence from system and application logs.
Reference - http://www.owasp.org/index.php/File_System
Design: Enforce principle of least privilege
Design: Validate all input for content including files. Ensure that if files and remote content must be accepted that once accepted, they are placed in a sandbox type location so that lower assurance clients cannot write up to higher assurance processes (like Web server processes for example)
Design: Execute programs with constrained privileges, so parent process does not open up further vulnerabilities. Ensure that all directories, temporary directories and files, and memory are executing with limited privileges to protect against remote execution.
Design: Proxy communication to host, so that communications are terminated at the proxy, sanitizing the requests before forwarding to server host.
Implementation: Virus scanning on host
Implementation: Host integrity monitoring for critical files, directories, and processes. The goal of host integrity monitoring is to be aware when a security issue has occurred so that incident response and other forensic activities can begin.
Enables attacker to execute server side code with any commands that the program owner has privileges to.
CWE-ID | Weakness Name | Weakness Relationship Type |
---|---|---|
77 | Improper Sanitization of Special Elements used in a Command ('Command Injection') | Targeted |
23 | Relative Path Traversal | Targeted |
22 | Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') | Targeted |
713 | OWASP Top Ten 2007 Category A2 - Injection Flaws | Targeted |
715 | OWASP Top Ten 2007 Category A4 - Insecure Direct Object Reference | Targeted |
Nature | Type | ID | Name | Description | View(s) this relationship pertains to |
---|---|---|---|---|---|
ChildOf | Attack Pattern | 165 | File Manipulation | Mechanism of Attack (primary)1000 | |
ChildOf | Attack Pattern | 241 | Code Injection | Mechanism of Attack (primary)1000 | |
ChildOf | Attack Pattern | 242 | Script Injection | Mechanism of Attack (primary)1000 | |
PeerOf | Attack Pattern | 35 | Leverage Executable Code in Nonexecutable Files | Mechanism of Attack1000 | |
PeerOf | Attack Pattern | 44 | Overflow Binary Resource File | Mechanism of Attack1000 |
Submissions | ||||
---|---|---|---|---|
Submitter | Organization | Date | ||
G. Hoglund and G. McGraw. Exploiting Software: How to Break Code. Addison-Wesley, February 2004. | Cigital, Inc | 2007-01-01 |
Modifications | |||||
---|---|---|---|---|---|
Modifier | Organization | Date | Comments | ||
Gunnar Peterson | Cigital, Inc | 2007-02-28 | Fleshed out content to CAPEC schema from the original descriptions in "Exploiting Software" | ||
Sean Barnum | Cigital, Inc | 2007-03-09 | Review and revise | ||
Richard Struse | VOXEM, Inc | 2007-03-26 | Review and feedback leading to changes in Attack Prerequisites | ||
Sean Barnum | Cigital, Inc | 2007-04-13 | Modified pattern content according to review and feedback |