Mobile Application Security
Mobile application security protects mobile apps, their data, and their service connections from misuse. It combines secure design, platform controls, careful data handling, and static and dynamic testing across the app, device, and backend trust boundaries.
itMobile and client application development | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Mobile Application Security
Mobile application security is the work of protecting an app, its data, and the services it calls while the app runs on a device somebody else controls. The package on the phone is not a tiny private server that happens to have a touchscreen. It is a client that can be inspected, observed, and persuaded to behave in ways its interface never advertised.
The useful mental map starts with trust boundaries, the handoffs where data or authority crosses between parts of the system. Source code becomes a signed package. The package runs in an app sandbox, asks the platform for capabilities, stores some data, talks to other apps, and sends requests to a backend. Every handoff deserves a question: what is being trusted here, and why?
The surprise is that platform protection is real and still not enough. Android Keystore and Apple Keychain can protect local secrets. Sandboxes limit ordinary cross-app access. TLS protects a connection. None of those mechanisms can make a remote action safe when the backend believes a button, a client-side role flag, or a local purchase result. The backend must authenticate the session and authorize the object, property, function, and workflow state. The phone is a useful witness. It is not the judge.
Start with assets, the credentials, tokens, personal data, cryptographic keys, paid features, and actions that need protection. Then trace where each one starts, moves, and rests. The app sandbox is only one room in a building with logs, backups, notifications, screenshots, clipboards, shared storage, analytics, SDKs, networks, and APIs. Data that never needs to exist locally is admirably difficult to extract, which is one of the few reliable ways security gets to be boring.
The rest is layered work. Keep permissions and entitlements narrow. Treat links, intents, WebView messages, files, and cross-app calls as input from outside the boundary. Use maintained transport settings and server validation. Use resilience controls to raise the cost of reversing or altering the package, but do not promote them into authorization. A determined person controlling the runtime can still observe values and replay valid requests.
Read the Intro when you need the whole system and its failure behavior. Use the Slides to hold the boundaries and control layers in one view. Keep the Cheatsheet nearby while reviewing storage, transport, platform interaction, and testing evidence. Field Notes calls out the operational traps that survive a neat architecture diagram. Then use the Reference tab to move from this map into OWASP testing material and platform documentation.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://mas.owasp.org/MASVS/
Supports
- Platform-neutral verification standard for mobile applications
- Control groups for storage, cryptography, authentication, network, platform, code, resilience, and privacy
- Relationship among MASVS, MASTG, MASWE, and the checklist
- https://mas.owasp.org/MASVS/07-MASVS-AUTH/
Supports
- Authentication and authorization controls for local and remote mobile app flows
- Remote endpoints remain responsible for enforcement
- Additional authentication for sensitive operations
- https://mas.owasp.org/MASVS/08-MASVS-RESILIENCE/
Supports
- Resilience against reverse engineering and tampering
- Client-side resilience controls are selected according to app risk
- https://mas.owasp.org/MASTG/0x04b-Mobile-App-Security-Testing/
Supports
- Mobile testing as static and dynamic analysis within a client-server assessment
- Static, dynamic, manual, automated, and penetration-testing distinctions
- Tool false positives, scope, preparation, threat modeling, and backend coverage
- https://mas.owasp.org/MASTG/0x03b-Testing-Profiles/
Supports
- Threat-model-based selection of assurance
- Baseline, advanced, resilience, and privacy testing profiles
- Client and device trust assumptions differ by profile
- https://mas.owasp.org/MASTG/tools/
Supports
- Current tool catalog for static, dynamic, network, and runtime testing
- Tool output can contain false positives and false negatives
- Frida is a current cross-platform dynamic instrumentation tool
- https://mas.owasp.org/MASTG/knowledge/
Supports
- Reverse engineering, decompilation, instrumentation, code injection, and obfuscation concepts
- Platform-specific mobile security knowledge
- https://csrc.nist.gov/pubs/sp/800/163/r1/final
Supports
- Organizational mobile application vetting process
- Requirements, testing, risk weighting, roles, inputs, and outputs
- Integration of app vetting into a wider security posture
- https://developer.android.com/privacy-and-security/security-tips
Supports
- Android sandbox, permissions, secure interprocess communication, storage, authentication, and logging guidance
- Explicit handling for sensitive cross-app data
- Minimization of sensitive data and short-lived tokens
- https://developer.android.com/privacy-and-security/keystore
Supports
- Android Keystore protection for cryptographic keys
- Non-exportability, user-authentication restrictions, and hardware-backed protection when supported
- https://developer.android.com/privacy-and-security/security-config
Supports
- Declarative trust, cleartext, certificate authority, debug, and pinning configuration
- Backup pins and pin expiration considerations
- https://developer.android.com/privacy-and-security/about
Supports
- Permission minimization, scoped storage, data access auditing, package visibility, and log guidance
- User control and contextual permission behavior
- https://support.apple.com/guide/security/app-security-overview-sec35dd877d0/web
Supports
- Apple app code signing, sandboxing, distribution, and mediated access to user data
- Layered platform protection does not eliminate app risk
- https://developer.apple.com/documentation/security/keychain-services
Supports
- Encrypted storage for passwords, keys, certificates, and small secrets
- Keychain access controls and item management
- https://developer.apple.com/documentation/localauthentication/accessing-keychain-items-with-face-id-or-touch-id
Supports
- Local biometric authentication can control release of a Keychain item
- Relationship among Keychain, Local Authentication, and Secure Enclave
- https://developer.apple.com/documentation/security/preventing-insecure-network-connections
Supports
- App Transport Security requires TLS, reliable certificates, and ciphers
- Broad exceptions weaken transport requirements
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the curated Android Security awesome list
- https://github.com/ashishb/android-security-awesome
Supports
- Discovery of MobSF, Frida, JADX, Apktool, and drozer for Android security work
- Classification of tools by static, dynamic, reverse-engineering, and vulnerability-assessment use
- https://mobsf.org/
Supports
- Automated static and dynamic testing for Android and iOS packages
- Package, runtime, API, and malware analysis capabilities
- https://frida.re/docs/home/
Supports
- Dynamic instrumentation by injecting scripts or libraries into native apps
- Android and iOS support and interactive function tracing
- https://github.com/skylot/jadx
Supports
- Decompilation of DEX and APK inputs to reconstructed Java code
- Manifest and resource decoding
- Explicit warning that decompilation can be incomplete
- https://apktool.org/
Supports
- Android package resource and manifest decoding
- Disassembly, inspection, and controlled rebuilding of APK files
- https://github.com/ReversecLabs/drozer
Supports
- Android security assessment through interprocess communication
- Testing exposed application components and attack surface
- https://www.nowsecure.com/products/nowsecure-platform/
Supports
- Continuous static, dynamic, interactive, and API analysis for mobile apps
- Pipeline integration, policy-based testing, and compiled-app assessment
- https://help.guardsquare.com/en/articles/246660-appsweep-overview
Supports
- Static and dynamic analysis for Android, iOS, native, and Flutter artifacts
- MASVS-category reporting and command-line pipeline integration
- https://www.appknox.com/
Supports
- Mobile application security testing for Android and iOS
- Pipeline-integrated automated assessment
- https://www.appknox.com/about-us
Supports
- Compiled APK and IPA binary analysis
- Binary static, device-based dynamic, API, and compliance testing
- https://join.oversecured.com/
Supports
- Mobile-focused static and dynamic scanning for Android and iOS
- Per-build automated vulnerability assessment
- https://ostorlab.co/
Supports
- Android and iOS static and dynamic testing
- Runtime traffic, file, and function evidence plus release monitoring and remediation tracking
- https://www.datatheorem.com/products/mobile-secure/
Supports
- Source, binary, dynamic, API, and runtime protection coverage for Android and iOS
- Mobile application security program across connected app boundaries
- https://www.immuniweb.com/products/mobile/
Supports
- Automated and expert mobile and backend penetration testing
- Static, dynamic, interactive, dependency, privacy, authentication, and business-logic coverage
- https://www.hcl-software.com/appscan/products/appscan-on-cloud
Supports
- Cloud application security suite covering mobile, web, open source, and APIs
- Static, dynamic, interactive, and dependency testing
- https://devguide.owasp.org/en/07-training-education/06-mobile-top-ten/
Supports
- ENISA smartphone controls in 2011
- First OWASP Mobile Top 10 in 2014 and later revisions
- https://csrc.nist.gov/pubs/sp/800/163/final
Supports
- January 2015 publication of the first NIST mobile app vetting guide
- Third-party app security and reliability vetting purpose
- https://developer.android.com/about/versions/marshmallow/android-6.0-changes
Supports
- Android 6 introduction of user-managed runtime permissions
- Per-permission checks, requests, grants, and revocation
- https://mas.owasp.org/news/2018/01/13/mobile-app-security-verification-standard-release-10/
Supports
- MASVS 1.0 release date and first-release status
- https://developer.android.com/about/versions/10/privacy/changes
Supports
- Android 10 scoped storage and background-location changes
- Greater user control over app access
- https://developer.android.com/about/versions/11/privacy
Supports
- Android 11 scoped storage enforcement, one-time permissions, and package visibility
- https://mas.owasp.org/news/2022/08/23/project-rebranding-to-owasp-mas/
Supports
- August 2022 rebrand from MSTG project to OWASP MAS
- Unified MASVS, MASTG, checklists, and practice apps
- https://mas.owasp.org/news/2023/04/01/masvs-v200-release/
Supports
- April 2023 MASVS 2.0 release
- Simplified controls and movement from verification levels to profiles
- https://mas.owasp.org/news/2023/07/28/mas-testing-profiles-and-mastg-atomic-tests/
Supports
- July 2023 introduction of MASTG atomic tests and testing profiles
- https://mas.owasp.org/news/2024/01/18/masvs-v210-release--masvs-privacy/
Supports
- January 2024 MASVS 2.1 release and privacy category
- https://developer.android.com/privacy-and-security/risks/android-exported?hl=en
Supports
- The android:exported attribute controls whether Android components can be launched by other applications
- Export behavior has differed by component type and Android version
- Explicit exported-component review prevents unintended cross-app entry points
