CAPEC-237

Escaping a Sandbox by Calling Code in Another Language
Low
Draft
2014-06-23
00h00 +00:00
2020-12-17
00h00 +00:00
Alerte pour un CAPEC
Stay informed of any changes for a specific CAPEC.
Notifications manage

Descriptions CAPEC

The attacker may submit malicious code of another language to obtain access to privileges that were not intentionally exposed by the sandbox, thus escaping the sandbox. For instance, Java code cannot perform unsafe operations, such as modifying arbitrary memory locations, due to restrictions placed on it by the Byte code Verifier and the JVM. If allowed, Java code can call directly into native C code, which may perform unsafe operations, such as call system calls and modify arbitrary memory locations on their behalf. To provide isolation, Java does not grant untrusted code with unmediated access to native C code. Instead, the sandboxed code is typically allowed to call some subset of the pre-existing native code that is part of standard libraries.

Informations CAPEC

Execution Flow

1) Explore

[Probing] The attacker probes the target application to see whether calling code of another language is allowed within a sandbox.

Technique
  • The attacker probes the target application to see whether calling code of another language is allowed within a sandbox.
2) Explore

[Analysis] The attacker analyzes the target application to get a list of cross code weaknesses in the standard libraries of the sandbox.

Technique
  • The attacker analyzes the target application to get a list of cross code weaknesses in the standard libraries of the sandbox.
3) Experiment

[Verify the exploitable security weaknesses] The attacker tries to craft malicious code of another language allowed by the sandbox to verify the security weaknesses of the standard libraries found in the Explore phase.

Technique
  • The attacker tries to explore the security weaknesses by calling malicious code of another language allowed by the sandbox.
4) Exploit

[Exploit the security weaknesses in the standard libraries] The attacker calls malicious code of another language to exploit the security weaknesses in the standard libraries verified in the Experiment phase. The attacker will be able to obtain access to privileges that were not intentionally exposed by the sandbox, thus escaping the sandbox.

Technique
  • The attacker calls malicious code of another language to exploit the security weaknesses in the standard libraries.

Skills Required

The attacker must have a good knowledge of the platform specific mechanisms of signing and verifying code. Most code signing and verification schemes are based on use of cryptography, the attacker needs to have an understand of these cryptographic operations in good detail.

Resources Required

None: No specialized resources are required to execute this type of attack.

Mitigations

Assurance: Sanitize the code of the standard libraries to make sure there is no security weaknesses in them.
Design: Use obfuscation and other techniques to prevent reverse engineering the standard libraries.
Assurance: Use static analysis tool to do code review and dynamic tool to do penetration test on the standard library.
Configuration: Get latest updates for the computer.

Related Weaknesses

CWE-ID Weakness Name

CWE-693

Protection Mechanism Failure
The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.

References

REF-91

Retaining Sandbox Containment Despite Bugs in Privileged Memory-Safe Code
J. Cappos, J. Rasley, J. Samuel, I. Beschastnikh, C. Barsan, A. Krishnamurthy, T. Anderson.

REF-92

Malware Protection Center: Threat Research and Response
https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Exploit%3AJava%2FByteVerify.C

Submission

Name Organization Date Date release
CAPEC Content Team The MITRE Corporation 2014-06-23 +00:00

Modifications

Name Organization Date Comment
CAPEC Content Team The MITRE Corporation 2017-08-04 +00:00 Updated Resources_Required
CAPEC Content Team The MITRE Corporation 2018-07-31 +00:00 Updated Description Summary, Examples-Instances, References
CAPEC Content Team The MITRE Corporation 2019-09-30 +00:00 Updated Related_Attack_Patterns
CAPEC Content Team The MITRE Corporation 2020-07-30 +00:00 Updated Related_Attack_Patterns
CAPEC Content Team The MITRE Corporation 2020-12-17 +00:00 Updated @Name, Description, Execution_Flow, Prerequisites, Related_Attack_Patterns