Dark Mode
Capec-661 Detail
Root/Jailbreak Detection Evasion via Debugging
Detailed Software Hardware Likelihood: Medium Typical Severity: Very High
Parents: 121
Not present
| External ID | Source | Link | Description |
|---|---|---|---|
| CAPEC-661 | capec | https://capec.mitre.org/data/definitions/661.html | |
| CWE-489 | cwe | http://cwe.mitre.org/data/definitions/489.html | |
| REF-625 | reference_from_CAPEC | http://lersse-dl.ece.ubc.ca/record/310/files/p3.pdf?subformat=pdfa | San-Tsai Sun, Andrea Cuadros, Konstantin Beznosov, Android Rooting: Methods, Detection, and Evasion, 2019--06---17, Technische Universität Braunschweig |
| REF-626 | reference_from_CAPEC | https://labs.nettitude.com/blog/ios-and-android-runtime-and-anti-debugging-protections/#hooking | Jose Lopes, Who owns your runtime?, 2015--10---12, Nettitude Labs |
| REF-627 | reference_from_CAPEC | https://resources.infosecinstitute.com/topic/android-root-detection-bypass-reverse-engineering-apk/ | Suresh Khutale, Android Root Detection Bypass by Reverse Engineering APK, 2018--03---06, InfoSec Institute |
| REF-628 | reference_from_CAPEC | https://www.ndss-symposium.org/wp-content/uploads/2017/09/egel.pdf | Manuel Egele, Christopher Kruegel, Engin Kirda, Giovanni Vigna, PiOS: Detecting Privacy Leaks in iOS Applications, 2011--02---09 |
Explore
-
Identify application with attack potential: The adversary searches for and identifies a mobile application that could be exploited for malicious purposes (e.g. banking, voting, or medical applications).
| Techniques |
|---|
| Search application stores for mobile applications worth exploiting |
Experiment
-
Debug the target application: The adversary inserts the debugger into the program entry point of the mobile application, after the application's signature has been identified, to dump its memory contents.
-
Remove application signature verification methods: Remove signature verification methods from the decrypted code and resign the application with a self-signed certificate.
| Techniques |
|---|
| Insert the debugger at the mobile application's program entry point, after the application's signature has been identified. |
| Dump the memory region containing the now decrypted code from the address space of the binary. |
Exploit
-
Execute the application and evade Root/Jailbreak detection methods: The application executes with the self-signed certificate, while believing it contains a trusted certificate. This now allows the adversary to evade Root/Jailbreak detection via code hooking or other methods.
| Techniques |
|---|
| Optional: Hook code into the target application. |
- A debugger must be able to be inserted into the targeted application.
- The adversary must have a Rooted/Jailbroken mobile device with debugging capabilities.
| High | Medium |
|---|---|
| Knowledge about Root/Jailbreak detection and evasion techniques. | |
| Knowledge about runtime debugging. |
| Integrity | Authorization | Access Control | Confidentiality |
|---|---|---|---|
| Execute Unauthorized Commands (Through Root/Jailbreak Detection Evasion via Debugging, the adversary compromises the integrity of the application.) | Execute Unauthorized Commands (Through Root/Jailbreak Detection Evasion via Debugging, the adversary compromises the integrity of the application.) | Read Data (An adversary may leverage Root/Jailbreak Detection Evasion via Debugging in order to obtain sensitive information.) | Gain Privileges |
| Gain Privileges | Read Data (An adversary may leverage Root/Jailbreak Detection Evasion via Debugging in order to obtain sensitive information.) |
- An adversary targets an iOS banking application in an attempt to compromise sensitive user data. The adversary launches the application with the iOS debugger and sets a breakpoint at the program entry point, after the application's signature has been verified. Next, the adversary dumps the memory region that contains the decrypted code from the address space of the binary. The 'Restrict' flag is then stripped from the application and the adversary resigns the application with a self-signed certificate. The application is now executed without the 'Restrict' flag, while trusting the self-signed certificate to be legitimate. However, the adversary is now able to evaded Jailbreak detection via code hooking or other methods and can glean user credentials and/or transaction details.