T1541 Foreground Persistence
Adversaries may abuse Android’s startForeground()
API method to maintain continuous sensor access. Beginning in Android 9, idle applications running in the background no longer have access to device sensors, such as the camera, microphone, and gyroscope.1 Applications can retain sensor access by running in the foreground, using Android’s startForeground()
API method. This informs the system that the user is actively interacting with the application, and it should not be killed. The only requirement to start a foreground service is showing a persistent notification to the user.2
Malicious applications may abuse the startForeground()
API method to continue running in the foreground, while presenting a notification to the user pretending to be a genuine application. This would allow unhindered access to the device’s sensors, assuming permission has been previously granted.4
Malicious applications may also abuse the startForeground()
API to inform the Android system that the user is actively interacting with the application, thus preventing it from being killed by the low memory killer.3
Item | Value |
---|---|
ID | T1541 |
Sub-techniques | |
Tactics | TA0030, TA0028 |
Platforms | Android |
Version | 2.1 |
Created | 19 November 2019 |
Last Modified | 20 March 2023 |
Procedure Examples
ID | Name | Description |
---|---|---|
S1054 | Drinik | Drinik has C2 commands that can move the malware in and out of the foreground. 8 |
S0485 | Mandrake | Mandrake uses foreground persistence to keep a service running. It shows the user a transparent notification to evade detection.6 |
S0545 | TERRACOTTA | TERRACOTTA has utilized foreground services.7 |
S0558 | Tiktok Pro | Tiktok Pro has shown a persistent notification to maintain access to device sensors.5 |
Mitigations
ID | Mitigation | Description |
---|---|---|
M1011 | User Guidance | If a user sees a persistent notification they do not recognize, they should uninstall the source application and look for other unwanted applications or anomalies. |
Detection
ID | Data Source | Data Component |
---|---|---|
DS0041 | Application Vetting | API Calls |
DS0042 | User Interface | System Notifications |
References
-
Google. (n.d.). Sensors Overview. Retrieved November 19, 2019. ↩
-
Google. (n.d.). Services overview. Retrieved November 19, 2019. ↩
-
Song Wang. (2019, October 18). Fake Photo Beautification Apps on Google Play can Read SMS Verification Code to Trigger Wireless Application Protocol (WAP)/Carrier Billing. Retrieved November 19, 2019. ↩
-
Thomas Sutter. (2019, December). Simple Spyware Androids Invisible Foreground Services and How to (Ab)use Them. Retrieved December 26, 2019. ↩
-
S. Desai. (2020, September 8). TikTok Spyware. Retrieved January 5, 2021. ↩
-
R. Gevers, M. Tivadar, R. Bleotu, A. M. Barbatei, et al.. (2020, May 14). Uprooting Mandrake: The Story of an Advanced Android Spyware Framework That Went Undetected for 4 Years. Retrieved July 15, 2020. ↩
-
Satori Threat Intelligence and Research Team. (2020, August). TERRACOTTA Android Malware: A Technical Study. Retrieved December 18, 2020. ↩
-
Cyble. (2022, October 27). Drinik Malware Returns With Advanced Capabilities Targeting Indian Taxpayers. Retrieved January 18, 2023. ↩