Mobile malware has moved from nuisance adware to banking trojans that read one-time codes and spyware that needs no click at all, and the phone is now where most people approve logins and payments. Banking trojans abuse accessibility services and overlays to steal credentials and drive the banking app, while commercial spyware such as Pegasus targets a few high-risk people through exploits. This guide covers delivery routes, the Android and iOS techniques that matter, the main families in MITRE ATT&CK for Mobile (v20), and controls, response and metrics, for endpoint, mobile and fraud teams. Device enrolment, app protection policies and BYOD design are covered in the Mobile Device Security Guide and are not repeated here.
Key takeaways
- Most commodity mobile malware is installed by the victim. Smishing links, sideloaded APKs and store apps that turn malicious after an update need no exploit, so installation controls matter as much as detection.
- Accessibility abuse is the core Android banking technique. Once granted, it lets malware read the screen, draw fake login overlays, inject taps and stop its own removal (ATT&CK T1453, T1417.002, T1516, T1629.001).
- SMS and notification codes are not a safe second factor on an infected phone. Families such as TrickMo exist to steal one-time codes, so high-value accounts need phishing-resistant authentication and server-side device risk checks.
- Zero-click spyware is rare but needs its own playbook. Apple Lockdown Mode, Android Advanced Protection, fast patching and forensic triage before any wipe matter for the few people likely to be targeted.
- Detection only helps when access depends on it. Mobile threat defence (MTD), Play Protect and Play Integrity verdicts should drive compliance and session decisions.
What makes mobile malware different
Mobile operating systems sandbox every app, so malware either persuades the user to grant powerful permissions or exploits the OS. That changes what defenders look for:
- Permissions are the payload: accessibility, notification access, SMS, device administrator and "display over other apps" rights give a banking trojan what it needs without any exploit.
- The user interface is the attack surface: small screens make fake prompts convincing. ATT&CK notes that the constrained display size of mobile devices "may impair the ability to provide users with contextual information" (T1417.002 GUI Input Capture).
- Android and iOS differ sharply: most commodity families in ATT&CK target Android, where installing from outside the store is a user setting. iOS entries rely on jailbroken devices, private API abuse, compromised developer tools, infected computers over USB or exploit chains.
- Store review is evaded: MITRE says T1407 Download New Code at Runtime is "primarily used to evade static analysis checks and pre-publication scans in official app stores"; T1661 covers benign apps turned malicious by an update.
ATT&CK for Mobile v20 has 12 tactics, from Initial Access (TA0027) through Defense Evasion (TA0030) and Credential Access (TA0031) to Impact (TA0034). The general taxonomy of loaders, RATs and stealers is in the Malware Guide.
How mobile malware arrives
| Route | ATT&CK Mobile | Examples in ATT&CK | Primary control |
|---|---|---|---|
| Smishing and messaging links to a fake app or update | T1660 Phishing, T1476 Deliver Malicious Application via Other Means | FluBot, TangleBot, TianySpy, DocSwap | Block unknown sources; link protection; user guidance |
| Sideloaded APK or third-party store | T1476 | NGate, FjordPhantom, MazarBOT | Managed devices: disallow unknown sources. BYOD: MTD and Play Protect |
| Store app that turns malicious later | T1661 Application Versioning, T1407 | AhRat (iRecorder update), Bread, Corona Updates, CherryBlos | Enterprise app catalogue, continuous vetting, Play Protect |
| Supply chain and preinstalled software | T1474 Supply Chain Compromise | Adups (preinstalled), XcodeGhost (developer tool) | Vetted manufacturers with update commitments; attestation |
| Malicious charger or computer over USB ("juice jacking") | T1458 Replication Through Removable Media | WireLurker, DualToy | Block USB debugging; iOS USB Restricted Mode; issued chargers |
| Exploits, including zero-click | T1664 Exploitation for Initial Access | Pegasus, Operation Triangulation (C0054) | Rapid OS patching, Lockdown Mode, Advanced Protection |
NIST SP 800-124 Rev. 2 (section 3.1.9) names sideloading from "untrusted or unknown sources" under mobile malware and treats unknown third-party apps on enterprise-accessible devices as untrusted. The lure side is covered in the Phishing Guide.
Android banking trojans: overlays, accessibility and OTP theft
Banking trojans combine a small set of techniques. Removing the capability through OS settings beats chasing each new family.
| Technique | ATT&CK ID | What it does | Platform mitigation recorded by MITRE |
|---|---|---|---|
| Overlay login screens | T1417.002 GUI Input Capture | Draws a fake prompt over the real banking app | Android 12 HIDE_OVERLAY_WINDOWS; MDM setPermittedAccessibilityServices allow-list |
| Accessibility abuse | T1453 Abuse Accessibility Features | Reads screen content, keylogs text fields, shows fake login overlays | User guidance; enterprise allow-list of accessibility services |
| Input injection | T1516 | Taps and types for the user, enabling on-device fraud | As above |
| OTP interception | T1517 Access Notifications, T1636.004 SMS Messages, T1582 SMS Control | Reads and dismisses codes in notifications and SMS | setPermittedCrossProfileNotificationListeners on work profiles; no sensitive data in notification text |
| Self-protection | T1626.001 Device Administrator Permissions, T1629.001 Prevent Application Removal | Blocks uninstall, locks or resets the device | Android 7 changes; scrutinise admin requests |
| Hiding | T1628.001 Suppress Application Icon, T1628.002 User Evasion, T1628.003 Conceal Multimedia Files, T1630.001 Uninstall Malicious Application | Removes the launcher icon, hides from the user, hides captures with .nomedia, removes itself after use | Android 10 stops apps fully suppressing their launcher icon |
| Staying alive | T1541 Foreground Persistence, T1625.001 System Runtime API Hijacking | Keeps sensor access via a foreground service; rooting malware such as Dvmap patches runtime libraries | Android Verified Boot (M1004), attestation (M1002) |
FluBot shows the pattern end to end: The Register reported that it spread by texts about missed parcels and voicemails, used accessibility permissions to steal banking credentials, and texted a malicious link to every contact, until a Europol-led operation disrupted it in May 2022. Physical attacks (T1461 Lockscreen Bypass) need a stolen or seized device; passcode complexity, wipe after failed attempts and security updates mitigate them.
Mobile malware family reference
Descriptions summarise MITRE ATT&CK for Mobile v20 software entries; use the S-number to pull technique mappings into detection engineering.
Banking trojans and financial fraud
| Family (ID) | What ATT&CK records |
|---|---|
| FluBot (S1067) | Banking malware first seen in Spain late 2020; SMS phishing in many languages; disrupted by an 11-country operation |
| SharkBot (S1055) | Since October 2021; starts money transfers from the device via Accessibility Services |
| TrickMo (S0427) | 2FA bypass trojan stealing transaction authorisation numbers (TANs); likely distributed by TrickBot |
| Anubis (S0422), Ginp (S0423) | Anubis began as espionage malware, retooled for banking; Ginp targeted Spanish banks reusing Anubis code |
| Cerberus (S0480), EventBot (S0478) | Cerberus rented on underground forums; EventBot abuses accessibility against over 200 finance apps |
| Gustuff (S0406), DEFENSOR ID (S0479) | Steal banking and cryptocurrency credentials; DEFENSOR ID can empty accounts and take over email and social accounts |
| BRATA (S1094), Chameleon (S1083) | BRATA spread from Brazil to Europe and the USA; Chameleon masquerades as official apps, targeting Australia, Poland, UK and Italy |
| Drinik (S1054), Asacub (S0540), Rotexy (S0411) | Drinik hit about 27 Indian banks; Asacub transfers money by SMS; Rotexy evolved from SMS spyware and added ransomware |
| Riltok (S0403), Exobot (S0522) | Phishing pop-ups for credentials; banks in Germany, Austria and France |
| Fakecalls (S1080), NGate (S9040) | Fakecalls intercepts calls to Korean banks; NGate relays card data over NFC for ATM withdrawals |
| FjordPhantom (S1208) | Runs banking apps inside a virtualisation layer to steal data and manipulate the interface (T1670) |
| CherryBlos (S1225) | Steals credentials and redirects cryptocurrency; uploaded to several Google Play regions |
| TangleBot (S1069), TianySpy (S1056), MazarBOT (S0303) | SMS-delivered malware: COVID lures in North America, Japanese telecom credentials, Denmark |
| XLoader for Android (S0318) | First seen in 2018 targeting Japan, Korea, China, Taiwan and Hong Kong |
| Android/SpyAgent (S1214), FakeSpy (S0509) | MoqHao campaign spyware; FakeSpy is run by the Roaming Mantis actor |
Spyware, RATs and stalkerware
| Family (ID) | What ATT&CK records |
|---|---|
| SpyNote RAT (S0305) | Family of malicious apps produced with a builder tool |
| FlexiSpy (S0408) | Surveillanceware for iOS and Android marketed as parental control and employee monitoring; catalogued as a tool |
| AndroRAT (S0292), Dendroid (S0301), WolfRAT (S0489) | Open-source and commercial RATs; Dendroid sold with an injector, WolfRAT built on its leaked code |
| DroidJack (S0320), AhRat (S1095) | DroidJack posed as popular games; AhRat reached Google Play through an update to a screen recorder |
| BusyGasper (S0655) | Installed by physical access; fewer than 10 victims |
| Skygofree (S0327), Monokle (S0407) | Skygofree used from 2014 to at least 2017; Monokle is targeted surveillanceware with code hinting at an iOS version |
| Corona Updates (S0425), FlixOnline (S1103) | Pandemic-themed spyware hosted on Google Play; WhatsApp auto-reply worm |
Stalkerware is usually installed by someone close to the victim, so treat removal as a personal safety decision as well as a security one.
Commercial and state-linked spyware
| Family (ID) | What ATT&CK records |
|---|---|
| Pegasus for iOS (S0289), Pegasus for Android (S0316, Chrysaor) | Reportedly linked to NSO Group; sold to target high-value victims |
| TriangleDB (S1216) | iOS implant from Operation Triangulation (C0054), which began with zero-click iMessage attachment exploits |
| eSurv (S0507) | Surveillanceware built for the lawful intercept market |
| Desert Scorpion (S0505), SpyC23 (S1195), FrozenCell (S0577), Phenakite (S1126) | APT-C-23 tooling targeting the Middle East; Phenakite covers iPhones |
| Hornbill (S1077), Sunbird (S1082) | The two families attributed to Confucius |
| CHEMISTGAMES (S0555), DocSwap (S9005), DCHSpy (S1243) | Sandworm Team backdoor; Kimsuky (2025); likely MuddyWater, posing as VPN and banking apps |
| HilalRAT (S1128), VajraSpy (S9006), GolfSpy (S0421) | UNC788; Patchwork via Google Play and trojanised messaging apps; Bouncing Golf |
| GoldenEagle (S0551), SilkBean (S0549), DoubleAgent (S0550), CarbonSteal (S0529), HenBox (S0544) | Surveillance of Uyghurs, Tibetans and other groups; CarbonSteal focuses on audio; HenBox tries to run only on Xiaomi MIUI devices |
| ViperRAT (S0506), ViceLeaker (S0418), BOULDSPY (S1079), RatMilad (S1241) | Israeli Defense Force; Israeli citizens; minority groups in Iran; enterprise devices in the Middle East disguised as VPN apps |
Fraud, ransomware, rooting and droppers
| Family (ID) | What ATT&CK records |
|---|---|
| Bread, also Joker (S0432) | Billing fraud; 1,700 unique apps removed from Google Play before download |
| HummingBad (S0322), HummingWhale (S0321), SimBad (S0419) | Ad fraud; HummingBad roots older Android; SimBad came through an SDK in simulator games |
| Gooligan (S0290) | Roots devices and steals authentication tokens for Google applications |
| ShiftyBug (S0294), Dvmap (S0420), AbstractEmu (S1061) | Auto-rooting adware; runtime library injection; 19 apps, at least 7 with root exploits |
| AndroidOS/MalLocker.B (S0524), KeyRaider (S0288) | Ransom note over all windows; Apple account theft and ransomware on jailbroken iOS |
| Triada (S0424), Twitoor (S0302) | Second-stage malware turned downloader; dropper controlled through social media |
| Adups (S0309) | Preinstalled on Android devices; reportedly sent sensitive user data to a server in China |
| XcodeGhost (S0297), YiSpecter (S0311), ZergHelper (S0287), Tangelo (S0329) | iOS: tampered developer tool in at least 39 apps; private API abuse; App Store review evasion; jailbroken-only package |
| WireLurker (S0312), DualToy (S0315) | macOS and Windows malware that installs apps onto phones connected over USB |
Other families tracked
ATT&CK entries with little public description, listed for completeness: OldBoot (S0285), PJApps (S0291), OBAD (S0286), RuMMS (S0313), DressCode (S0300), BrainTest (S0293), NotCompatible (S0299), GPlayed (S0536), SpyDealer (S0324), RedDrop (S0326), RCSAndroid (S0295), Xbot (S0298), XLoader for iOS (S0490) and KeyMarble.
Prevention and detection controls
| Control | Stops or detects | Specifics |
|---|---|---|
| Block installs from unknown sources | Sideloading, smishing payloads | Enforce on managed and work-profile devices; SP 800-124 Rev. 2 (4.2.2) lists restricting sideloading |
| Enterprise app catalogue and vetting | Malicious and vulnerable business apps | NIST SP 800-163 Rev. 1: app intake, testing, approval or rejection by an authorising official, results submission; OWASP MASVS |
| Accessibility and notification allow-lists | Overlays, input injection, OTP theft | MDM setPermittedAccessibilityServices and setPermittedCrossProfileNotificationListeners |
| Google Play Protect | Harmful apps from Play and other sources | Checks apps from other sources, can deactivate or remove them, and may block unverified apps requesting permissions used in financial scams |
| Android restricted settings | Social engineering into accessibility grants | Some settings stay blocked until the user chooses Allow restricted settings in App info (Android 13 and up) |
| Mobile threat defence | Malicious apps, network attacks, phishing | SP 800-124 Rev. 2 (4.2.3); M1058 notes loopback VPN link inspection; feed threat level into compliance |
| Attestation and compromised-device detection | Rooted, jailbroken or tampered devices | ATT&CK M1002 and M1010; Play Integrity MEETS_STRONG_INTEGRITY needs security updates in the last year on Android 13+ |
| Patching and OS currency | Exploits, older-OS abuse | M1001 and M1006; retire devices without vendor updates |
Hardening for people likely to be targeted
- Lockdown Mode: Apple designed it for "the very few individuals who, because of who they are or what they do, might be personally targeted" (iOS 16 and later). It blocks most Messages attachments and link previews, complex web technologies, wired connections while locked, configuration profiles and new MDM enrolment, so enrol devices first.
- Android Advanced Protection: keeps Play Protect on, blocks unknown sources, limits accessibility services to verified tools, adds USB protection and 2G blocking, and offers encrypted Intrusion Logging.
- Threat notifications: Apple alerts users it believes were targeted by mercenary spyware on the device, by email and at account.apple.com, and never asks them to click links or install profiles.
Where identity fits
Most mobile malware is a credential and session theft problem.
- Retire SMS and notification codes for high-value accounts: T1517 and T1636.004 exist because one-time codes arrive on the infected device, and SIM swap (T1451) captures them without malware. Move to passkeys or FIDO2 security keys. See the Authenticator Apps and OTP Guide.
- Treat app tokens as targets: Gooligan stole Google authentication tokens, and T1635 covers OAuth token theft through URI hijacking. Keep token lifetimes short and revoke on device risk. See the Token and Session Security Guide.
- Use device risk in the session: banking and workforce apps can call Play Integrity and refuse sensitive actions when
appAccessRiskVerdictreportsUNKNOWN_CAPTURING,UNKNOWN_CONTROLLINGorUNKNOWN_OVERLAYS, or whenplayProtectVerdictisMEDIUM_RISKorHIGH_RISK. See the Device Trust and Posture Guide. - Keep secrets out of apps: anyone can unpack an app, as the Mobile Apps Hard-Coded AWS Keys 2022 research showed; scan for secrets during vetting.
Responding to a suspected infection
- Contain access first: mark the device noncompliant or set the MTD threat level to high so conditional access blocks it, then revoke refresh tokens and sessions for the user's work apps.
- Reset credentials from a clean device: passwords, MFA registrations and recovery numbers; for banking trojans, the user should call their bank on a known number.
- Preserve before removing: for suspected spyware, do not reset first. Amnesty International's Mobile Verification Toolkit (MVT) supports "consensual forensic analysis of Android and iOS devices"; Advanced Protection Intrusion Logging adds evidence.
- Remove: apps that block uninstall (T1629.001) may need device administrator rights revoked first; wipe and re-enrol corporate devices, and wipe the work profile on BYOD.
- Hunt across the fleet: search MDM app inventory for the package name and signing certificate, and sign-in logs for new device registrations.
- Escalate targeted cases: for an Apple threat notification, enable Lockdown Mode and get expert help; Apple points users to Access Now's Digital Security Helpline.
Rolling out mobile malware defences
- Inventory: list device populations by management model and which apps hold accessibility, notification and SMS permissions today.
- Pilot in report mode: run MTD and Play Integrity checks report-only on a pilot ring for two to four weeks and count would-be failures.
- Close installation paths: disallow unknown sources and USB debugging on managed devices, publish the app catalogue, and add the accessibility allow-list, including assistive apps users need.
- Enforce: tie MTD threat level and attestation to compliance and conditional access, one app at a time, starting with email.
- Protect high-risk users: enable Lockdown Mode or Advanced Protection for executives, administrators and staff who travel to high-risk regions.
- Roll back safely: return enforcement to report-only rather than deleting policies, and keep a break-glass group excluded from device risk rules.
Decision guidance: on corporate devices, block sideloading and rely on the app catalogue. On BYOD, where installs cannot be controlled, MTD, app protection and server-side Play Integrity checks are the realistic layer. Small organisations can start with Play Protect, OS currency rules and passkeys; large or regulated organisations, and banks with customer apps, should add MTD and in-app device risk checks. Reserve Lockdown Mode and Advanced Protection for named people, since both break some features.
Detection and measurement
Send MTD alerts, MDM inventory and compliance changes, and sign-ins with device state to the SIEM. Alert on new apps holding accessibility or notification listener rights, high MTD threat levels, Play Protect turned off (POSSIBLE_RISK), failed integrity verdicts, and MFA methods registered from a risky phone.
- Sideload exposure: percentage of managed devices with unknown sources allowed; target zero outside approved exceptions.
- Accessibility drift: number of devices with an accessibility service not on the allow-list.
- Time to contain: median minutes from high-severity MTD detection to blocked access and revoked tokens.
- Patch currency: percentage of devices with a security patch less than 90 days old.
- Phishable factor use: share of privileged and finance users still using SMS or notification codes.
Framework mapping
| Control area | ATT&CK Mobile mitigation | NIST SP 800-124 Rev. 2 threat | NIST SP 800-53 Rev. 5 | CIS Controls v8.1 | ISO/IEC 27001:2022 |
|---|---|---|---|---|---|
| Restrict app installation and vet apps | M1012 Enterprise Policy | 3.1.9 Mobile Malware | CM-11, AC-19 | 2.5 | A.8.19 |
| Malware detection (MTD, Play Protect) | M1058 Antivirus/Antimalware | 3.1.9 Mobile Malware | SI-3, SI-4 | 10.1 | A.8.7 |
| Attestation and compromised-device detection | M1002, M1010, M1004 | 3.1.7 Use of Untrusted Mobile Devices | AC-19, SI-7 | 4.1 | A.8.1 |
| Patching and OS currency | M1001, M1006 | 3.1.1 Exploitation of Underlying Vulnerabilities | SI-2 | 7.3, 7.4 | A.8.8 |
| User guidance on lures and permissions | M1011 User Guidance | 3.1.5 Credential Theft Via Phishing | AT-2 | 14.2 | A.6.3 |
The NIAP Protection Profile for Mobile Device Fundamentals (v3.3) calls this threat T.MALICIOUS_APP. In NIST CSF 2.0, installation control sits under PR.PS-05 and monitoring under DE.CM-09.
Common failure patterns
- Trusting the store: approving an app once and never re-checking it, although T1661 and T1407 exist specifically to pass review and change later.
- SMS codes for high-risk staff: smishing remains the cheapest route to both malware and credentials; the Twilio Breach 2022 began with SMS phishing of employees.
- MTD that changes nothing: compliance and conditional access ignore the threat level, so an infected phone keeps syncing mail.
- Wiping before triage: a reset destroys the evidence that separates commodity malware from targeted spyware.
- Unchecked accessibility grants: nobody inventories which apps hold accessibility or notification access, the rights banking trojans depend on.
Practitioner checklist
- Disallow installs from unknown sources and USB debugging on every managed Android device.
- Vet catalogue apps using NIST SP 800-163 Rev. 1, including secret scanning of in-house apps.
- Set an accessibility service allow-list and notification listener restrictions through MDM.
- Connect MTD threat level and attestation results to compliance and conditional access.
- Check Play Integrity app access risk and Play Protect verdicts before sensitive in-app actions.
- Replace SMS and notification codes with passkeys or FIDO2 for privileged, finance and executive users.
- Enable Lockdown Mode or Advanced Protection for named high-risk people.
- Write a mobile incident playbook: contain, revoke tokens, preserve evidence, then remove.
Standards and references
- MITRE ATT&CK: Mobile Tactics
- NIST: SP 800-124 Rev. 2, Guidelines for Managing the Security of Mobile Devices in the Enterprise
- NIST: SP 800-163 Rev. 1, Vetting the Security of Mobile Applications
- Android Developers: Play Integrity API Integrity Verdicts
- Google: Use Google Play Protect to Help Keep Your Apps Safe
- Google: Advanced Protection for Android
- Apple: About Lockdown Mode
- Apple: About Apple Threat Notifications and Protecting Against Mercenary Spyware
Related NHI Mgmt Group resources: Mobile Device Security Guide · Malware Guide · Device Trust and Posture Guide · Authenticator Apps and OTP Guide · Phishing Guide