Adversaries may modify applications installed on a device to establish persistent access to a victim. These malicious modifications can be used to make legitimate applications carry out adversary tasks when these applications are in use.
There are multiple ways an adversary can inject malicious code into applications. One method is by taking advantages of device vulnerabilities, the most well-known being Janus, an Android vulnerability that allows adversaries to add extra bytes to APK (application) and DEX (executable) files without affecting the file's signature. By being able to add arbitrary bytes to valid applications, attackers can seamlessly inject code into genuine executables without the user's knowledge.[1]
Adversaries may also rebuild applications to include malicious modifications. This can be achieved by decompiling the genuine application, merging it with the malicious code, and recompiling it.[2]
Adversaries may also take action to conceal modifications to application executables and bypass user consent. These actions include altering modifications to appear as an update or exploiting vulnerabilities that allow activities of the malicious application to run inside a system application.[2]
ID | Name | Description |
---|---|---|
S0440 | Agent Smith |
Agent Smith can inject fraudulent ad modules into existing applications on a device.[2] |
ID | Mitigation | Description |
---|---|---|
M1005 | Application Vetting |
Application vetting services could look for attempted usage of the Janus vulnerability. |
M1001 | Security Updates |
Security updates frequently contain patches to vulnerabilities. |
M1006 | Use Recent OS Version |
Many vulnerabilities related to injecting code into existing applications have been patched in previous Android releases. |
This behavior is seamless to the user and is typically undetectable.