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.
Description
Attack Execution Flow
Step 1
Explore[Probing] The attacker probes the target application to see whether calling code of another language is allowed within a sandbox.
The attacker probes the target application to see whether calling code of another language is allowed within a sandbox.
[Probing] L'attaccante verifica l'applicazione target per determinare se è consentito chiamare codice di un altro linguaggio all'interno di una sandbox.
L'attaccante verifica l'applicazione target per determinare se è consentito chiamare codice di un altro linguaggio all'interno di una sandbox.
Attack Techniques
-
The attacker probes the target application to see whether calling code of another language is allowed within a sandbox.
Step 2
Explore[Analysis] The attacker analyzes the target application to get a list of cross code weaknesses in the standard libraries of the sandbox.
The attacker analyzes the target application to get a list of cross code weaknesses in the standard libraries of the sandbox.
[Analisi] L'attacker analizza l'applicazione target per ottenere un elenco di vulnerabilità cross-code nelle librerie standard del sandbox.
L'attacker analizza l'applicazione target per ottenere un elenco di vulnerabilità cross-code nelle librerie standard del sandbox.
Attack Techniques
-
The attacker analyzes the target application to get a list of cross code weaknesses in the standard libraries of the sandbox.
Step 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.
The attacker tries to explore the security weaknesses by calling malicious code of another language allowed by the sandbox.
[Verifica delle vulnerabilità di sicurezza sfruttabili] L'attaccante cerca di creare codice dannoso in un altro linguaggio consentito dalla sandbox per verificare le vulnerabilità di sicurezza delle librerie standard individuate nella fase di Esplorazione.
L'attaccante tenta di esplorare le vulnerabilità di sicurezza chiamando codice dannoso di un altro linguaggio consentito dalla sandbox.
Attack Techniques
-
The attacker tries to explore the security weaknesses by calling malicious code of another language allowed by the sandbox.
Step 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.
The attacker calls malicious code of another language to exploit the security weaknesses in the standard libraries.
[Sfruttare le vulnerabilità di sicurezza nelle librerie standard] L'attaccante chiama codice dannoso di un altro linguaggio per sfruttare le vulnerabilità di sicurezza nelle librerie standard verificate nella fase di Esperimento. L'attaccante sarà in grado di ottenere accesso a privilegi che non sono stati intenzionalmente esposti dal sandbox, sfuggendo così al sandbox.
L'attaccante chiama codice dannoso di un altro linguaggio per sfruttare le vulnerabilità di sicurezza nelle librerie standard.
Attack Techniques
-
The attacker calls malicious code of another language to exploit the security weaknesses in the standard libraries.