Glossary/Detection Engineering/Mobile Application Security Testing (MAST)

What Is Mobile Application Security Testing (MAST)?

Mobile application security testing is the practice of evaluating an iOS or Android application's security across its full attack surface (the compiled app, the data it stores on the device, the traffic to its backend, and the platform it runs on) to find mobile-specific flaws before and after release.

A banking app stores the user's session token in a plaintext file inside the app's sandbox. Nothing on the server is wrong. The API is fine. But pull the device, read the file, and you have the account. A web scanner pointed at the backend never sees it, because the flaw lives on the phone, not the server. Finding it is the job of mobile application security testing.

MAST is application security testing aimed at the mobile client: the iOS or Android app, the data it stores on the device, the way it talks to its backend, and the platform it runs on. It reuses the familiar methods, static analysis, dynamic analysis, interactive analysis, and penetration testing, but it points them at problems that only exist on a phone: data left unencrypted on disk, certificate validation turned off, an app that keeps running on a rooted device, code that can be repackaged and re-uploaded to a third-party store.

This guide covers what MAST is, how the testing methods work together, the vulnerabilities and mobile-specific risks it finds, where it fits the development pipeline, its real limitations, and how a defender reads its output. It is written for blue teamers: SOC analysts, AppSec engineers, and responders who have to turn a mobile finding into a decision.

What is mobile application security testing?

Mobile application security testing (MAST) is the practice of evaluating a mobile application's security across its full attack surface: the compiled app, the data it stores locally, the network traffic between app and backend, and the device platform it runs on. The goal is to find and fix the weaknesses an attacker would reach on a real iOS or Android device, before and after release.

What separates MAST from web application testing is the threat model. A web app runs on a server you control; the client is a browser you do not. A mobile app inverts that. The client runs on a device the user, and any attacker who gets that device, fully controls. They can root or jailbreak it, read the app's storage, hook its runtime, intercept its traffic, decompile its binary, and repackage it. So MAST has to assume a hostile client and test the things that assumption breaks: local data storage, on-device cryptography, certificate handling, and tamper resistance.

MAST is a specialization of application security testing, the family of methods that evaluates software for vulnerabilities across the development lifecycle. The methods are the same names you see in web AppSec, SAST, DAST, IAST, penetration testing, but the targets shift to the mobile-specific surface. The output is the same shape too: findings tied to a code location, a runtime behavior, or an exploited weakness, ranked so a team can decide what to fix first.

The reference standard for what "secure" means here is the OWASP Mobile Application Security project (OWASP MAS), which publishes the Mobile Application Security Verification Standard (MASVS) and the Mobile Application Security Testing Guide (MASTG, formerly the MSTG). MASVS defines the security requirements; MASTG defines how to test for them. A MAST program is, in practice, measuring an app against those requirements.

Key components of MAST

Mobile Application Security Testing
Four methods, one attack surface
No single method covers a mobile app. MAST runs all four across the lifecycle, each catching what the others miss.
SAST · STATIC
Code at rest
Reads source and binary without running. Catches hardcoded secrets, insecure storage calls, weak crypto config. Runs on commit.
DAST · DYNAMIC
Running app, outside
Watches real behavior on a device or emulator. Catches insecure comms, disabled cert validation, cleartext on disk.
IAST · INTERACTIVE
Running app, inside
Instruments the app from within. Ties a runtime finding back to the code line that caused it.
PEN TEST · MANUAL
Human attacker
Decompiles, hooks with Frida, bypasses root detection, chains weaknesses into a real exploit. Finds logic flaws automation misses.
Measured against Every method tests the app against the OWASP Mobile Application Security Verification Standard (MASVS), the reference for what a secure mobile app must do.

MAST is not one tool. It is a set of testing methods applied across the lifecycle, each catching what the others miss. Four methods do the work.

  1. Static analysis (SAST). Reads the app's source code or compiled binary at rest, without running it. On mobile this catches hardcoded secrets and API keys baked into the app, insecure storage calls, weak cryptographic configuration, and dangerous permissions declared in the manifest. It runs early, on commit, and points at a file and a line.
  2. Dynamic analysis (DAST). Tests the app while it runs on a device or emulator, from the outside, watching its real behavior. This is where insecure network communication, certificate validation that is disabled or improperly pinned, and data written to disk in cleartext show up, because they only appear at runtime.
  3. Interactive analysis (IAST). Instruments the running app from the inside so it sees both the code path and the live behavior at once. The in-app vantage point ties a runtime finding back to the code that caused it, which neither pure static nor pure dynamic testing does alone.
  4. Penetration testing. A human attacker works the app the way a real adversary would: decompiling the binary, hooking functions with tools like Frida, bypassing root or jailbreak detection, and chaining weaknesses into an actual exploit. This catches business logic flaws and creative abuse paths the automated scanners never model.

No single method is sufficient. Static analysis sees the code but not the running behavior. Dynamic analysis sees the behavior but not the code line. Penetration testing finds the chained exploit but does not scale to every build. Run together across the lifecycle, they cover the surface that any one of them leaves open.

Common mobile application vulnerabilities

MAST exists to find a specific catalog of flaws, the ones that recur in mobile apps because of how phones store data, talk to networks, and run untrusted code. The common catches:

  • Insecure data storage. Sensitive data, session tokens, credentials, personal information, written to the device in plaintext or in world-readable locations. The most common and most damaging mobile flaw, because the attacker often has the device.
  • Weak or broken cryptography. Hardcoded keys, deprecated algorithms, or home-rolled encryption that does not actually protect the data it wraps.
  • Insecure communication. Traffic sent without TLS, or with certificate validation disabled, so an attacker on the network can read or modify it. Missing certificate pinning leaves the app open to interception.
  • Poor session and authentication handling. Tokens that never expire, sessions that survive logout, or credentials cached insecurely on the device.
  • Code-level injection flaws. The same classes that plague web apps, including cross-site scripting (XSS) in embedded web views, cross-site request forgery (CSRF) against the backend, and XML external entity (XXE) processing, all still reachable through a mobile client.
  • Software supply chain weaknesses. Vulnerable third-party SDKs and libraries pulled into the app, inheriting their flaws and their data-collection behavior.

These overlap with the web-focused OWASP Top 10, but the mobile context is what changes the severity. Insecure storage is a minor issue on a server you control and a critical one on a device an attacker holds. The mobile-specific reference is the OWASP MASVS, which organizes these requirements into testable controls.

Mobile-specific risks and challenges

Beyond the per-app vulnerabilities, mobile carries structural risks that web testing never has to model. These are properties of the platform, and they make MAST harder than its web equivalent.

Platform fragmentation. Android in particular runs across thousands of device models, OS versions, and OEM customizations, each with slightly different security behavior. A control that holds on one vendor's build can fail on another. An app secure on the latest OS may be exposed on the older versions a real user base still runs.

Untrusted client devices. The app runs on hardware the attacker can own outright. Rooted and jailbroken devices strip away the OS protections the app may be relying on. Bring-your-own-device (BYOD) policies put the corporate app on personal phones the security team cannot control or even see.

App store and distribution tampering. An attacker can decompile a legitimate app, inject malicious code, repackage it, and publish the clone to a third-party app store. Users who side-load it install malware wearing a trusted brand. The app needs tamper detection and integrity checks because its distribution channel is not always trustworthy.

Constrained testing environment. Dynamic testing needs real devices or faithful emulators, root or jailbreak access to inspect storage and traffic, and the ability to bypass the very protections the app ships with. Standing up and maintaining that test rig is more involved than pointing a scanner at a URL.

These risks are why MAST treats the device and its distribution as part of the attack surface, not just the code.

Where MAST fits in the pipeline

MAST works best wired into the development lifecycle as a set of gates, not run once as a pre-launch audit. The shift-left principle applies: the earlier a flaw is caught, the cheaper it is to fix.

On commit, static analysis runs in the build pipeline against the source and the compiled artifact, the same place a web team runs SAST. It is the cheapest gate and it catches hardcoded secrets, insecure storage calls, and weak crypto configuration before a testable build exists.

Against a build running on a device or emulator, dynamic and interactive analysis exercise the app's real behavior: its network calls, its storage writes, its certificate handling. This is where runtime-only flaws surface, and a failed gate here blocks the release. Because spinning up instrumented devices is slower than a static scan, teams run targeted dynamic checks per build and fuller passes on a schedule.

Before a major release, penetration testing puts a human attacker against the app to find the chained exploits and logic flaws automation misses. After release, the work becomes monitoring: watching for tampered clones in third-party stores and tracking new vulnerabilities in the third-party SDKs the app ships.

This wiring of security testing into the development pipeline is the discipline of DevSecOps, and MAST is its mobile instrument. For organizations whose apps are the front door to cloud-hosted backends, it is also a core piece of cloud security, because the mobile client and the APIs it calls are the same attack surface seen from two ends.

Limitations of MAST

MAST is not a complete program on its own, and treating it like one creates false confidence. Its limits are worth naming.

No single method is complete. Static analysis misses runtime behavior. Dynamic analysis misses the code line and the paths it never exercises. Each method has a blind spot that only another method covers, so a partial MAST program, SAST alone, for example, leaves a structural gap.

Coverage depends on the test environment. Dynamic testing only sees what the instrumented device and the test scripts actually exercise. A code path the testing never reaches is a path never tested, and a clean report can mean a secure app or an under-tested one.

Fragmentation limits assurance. Testing on a handful of devices and OS versions cannot prove the app is secure across every device, vendor build, and OS version in the wild. The assurance is bounded by the test matrix.

Automated findings need tuning. Like any scanner, MAST tools produce false positives and false negatives. Findings must be confirmed before they are routed, or the team either drowns in noise or trusts a clean report that missed a real flaw.

It does not cover the backend by itself. MAST tests the mobile client. The APIs the app calls need their own testing. A secure app talking to an insecure API is still exposed, which is why MAST runs alongside API and web application testing, not instead of it.

The practical conclusion is that MAST belongs in a stack, combining static, dynamic, interactive, and manual testing, and pairing with backend AppSec, not standing alone.

How blue teams read MAST output

MAST output is a build-pipeline artifact, but it lands on the blue team during triage, vulnerability management, and incident response. Reading it well is a defender skill.

Weight findings by mobile context. An insecure-storage finding is not a generic medium. On a mobile client an attacker can hold, plaintext credentials on disk are a direct path to compromise. Re-rank findings by what the mobile threat model makes reachable, not by the scanner's default score.

Read each finding as attacker capability. A disabled certificate check is not a checkbox; it is an attacker on the same Wi-Fi reading the session. A bypassable root-detection routine means every protection layered behind it is optional. Translate the finding into the action it enables.

Feed findings into incident response. When a mobile app is implicated in a breach, the MAST history scopes the investigation. Known insecure-storage or weak-crypto findings tell a responder where the data probably leaked, and the app's tested behavior is a baseline to compare a suspected tampered clone against.

Close the loop. Every confirmed finding should become a fix and, where possible, a detection: a tamper-detection control, a check for the cloned app in third-party stores, or an alert on the vulnerable SDK. MAST is most valuable when its output changes how the next build ships, not just what gets patched this week.

Frequently Asked Questions

What is mobile application security testing (MAST)?

Mobile application security testing (MAST) is the practice of evaluating an iOS or Android application's security across its full attack surface: the compiled app, the data it stores on the device, the network traffic to its backend, and the device platform itself. It uses static, dynamic, interactive, and penetration testing methods to find mobile-specific flaws like insecure storage, weak cryptography, and disabled certificate validation before and after release.

How is MAST different from web application security testing?

The threat model differs. A web app runs on a server you control, with an untrusted browser client; a mobile app runs entirely on a device the user, and any attacker who obtains it, controls. So MAST must assume a hostile client that can root the device, read local storage, intercept traffic, and decompile the binary, and it tests the things that assumption breaks: on-device data storage, local cryptography, certificate handling, and tamper resistance.

What vulnerabilities does MAST find?

MAST finds insecure local data storage, weak or broken cryptography, insecure network communication and missing certificate pinning, poor session and authentication handling, injection flaws such as XSS in web views, CSRF, and XXE, and vulnerable third-party SDKs. It also surfaces mobile-specific risks like tamperable binaries and behavior that fails on rooted or jailbroken devices.

What testing methods does MAST use?

MAST combines four methods: static analysis (SAST) reads the source or binary at rest, dynamic analysis (DAST) tests the running app from the outside on a device or emulator, interactive analysis (IAST) instruments the running app to tie runtime behavior to code, and penetration testing puts a human attacker against the app to find chained exploits and logic flaws. No single method is sufficient on its own.

What is the OWASP standard for mobile app security?

The OWASP Mobile Application Security project (OWASP MAS) is the reference. It publishes the Mobile Application Security Verification Standard (MASVS), which defines the security requirements a mobile app should meet, and the Mobile Application Security Testing Guide (MASTG, formerly the MSTG), which defines how to test for them. A MAST program effectively measures an app against the MASVS controls.

Can MAST be automated in CI/CD?

Yes, in part. Static analysis automates cleanly in the build pipeline on every commit. Dynamic and interactive analysis can run automatically against builds on instrumented devices or emulators, though they are slower and the rig is more involved than a web scanner. Penetration testing stays a periodic human effort before major releases. A mature program automates the repeatable checks and reserves manual testing for what automation cannot model.

The bottom line

MAST tests a mobile app across its whole attack surface, the binary, the data it stores on the device, its network traffic, and the platform it runs on, and finds the flaws that only matter on a phone: insecure storage, weak cryptography, disabled certificate validation, and tamperable code. It combines static, dynamic, interactive, and penetration testing because no single method covers the surface, and it measures the app against the OWASP MASVS.

Its limits are real and the reason it is never run alone: each method has a blind spot, coverage is bounded by the test devices, fragmentation caps the assurance, and it does not test the backend by itself. Run it as a stack across the lifecycle, pair it with API and web testing, and read its output the way a defender should, weighting findings by the mobile threat model, mapping each to attacker capability, and closing the loop so the next build ships fewer flaws.

Frequently asked questions

What is mobile application security testing (MAST)?

<p>Mobile application security testing (MAST) is the practice of evaluating an iOS or Android application's security across its full attack surface: the compiled app, the data it stores on the device, the network traffic to its backend, and the device platform itself. It uses static, dynamic, interactive, and penetration testing methods to find mobile-specific flaws like insecure storage, weak cryptography, and disabled certificate validation before and after release.</p>

How is MAST different from web application security testing?

<p>The threat model differs. A web app runs on a server you control, with an untrusted browser client; a mobile app runs entirely on a device the user, and any attacker who obtains it, controls. So MAST must assume a hostile client that can root the device, read local storage, intercept traffic, and decompile the binary, and it tests the things that assumption breaks: on-device data storage, local cryptography, certificate handling, and tamper resistance.</p>

What vulnerabilities does MAST find?

<p>MAST finds insecure local data storage, weak or broken cryptography, insecure network communication and missing certificate pinning, poor session and authentication handling, injection flaws such as XSS in web views, CSRF, and XXE, and vulnerable third-party SDKs. It also surfaces mobile-specific risks like tamperable binaries and behavior that fails on rooted or jailbroken devices.</p>

What testing methods does MAST use?

<p>MAST combines four methods: static analysis (SAST) reads the source or binary at rest, dynamic analysis (DAST) tests the running app from the outside on a device or emulator, interactive analysis (IAST) instruments the running app to tie runtime behavior to code, and penetration testing puts a human attacker against the app to find chained exploits and logic flaws. No single method is sufficient on its own.</p>

What is the OWASP standard for mobile app security?

<p>The OWASP Mobile Application Security project (OWASP MAS) is the reference. It publishes the Mobile Application Security Verification Standard (MASVS), which defines the security requirements a mobile app should meet, and the Mobile Application Security Testing Guide (MASTG, formerly the MSTG), which defines how to test for them. A MAST program effectively measures an app against the MASVS controls.</p>

Can MAST be automated in CI/CD?

<p>Yes, in part. Static analysis automates cleanly in the build pipeline on every commit. Dynamic and interactive analysis can run automatically against builds on instrumented devices or emulators, though they are slower and the rig is more involved than a web scanner. Penetration testing stays a periodic human effort before major releases. A mature program automates the repeatable checks and reserves manual testing for what automation cannot model.</p>

Practice track
SOC Analyst Tier 1
Build your foundational skills to monitor, detect, and escalate security alerts. This track includes essential tools, basic log analysis, and introductory incident response labs.
Browse SOC Analyst Tier 1 Labs โ†’