Skip to content
Macksofy Technologies
Android · iOS · OWASP MASVS · 2026

Mobile Application Security Testing in 2026: What a Real Test Covers and How to Scope One

Most mobile app security tests stop at a scanner report and a list of hardening gaps nobody will fix. This guide sets out what a defensible test covers — the OWASP MASVS control groups, the Android and iOS specifics, the backend half most providers skip — and how an Indian buyer should scope, evidence and sign off one.

Mobile Security OWASP MASVS Android iOS Penetration Testing API Security India
Explore the VAPT & Penetration Testing topic hub
Macksofy Pentest Team· Application and mobile penetration testing practice10 October 2026 13 min read
Mobile Application Security Testing in 2026: What a Real Test Covers and How to Scope One — Penetration Testing · Macksofy
In short

What is mobile application security testing?

Mobile application security testing is the assessment of an Android or iOS app and the backend it calls for exploitable weaknesses: secrets and data on the device, the TLS channel, and the authentication, authorisation and business logic of its APIs. Macksofy tests both platforms manually against OWASP MASVS for clients in India and the UAE, with per-finding proof and a retest.

Mobile application security testing is the assessment of an Android or iOS app and the backend it talks to, done the way an attacker holds the phone: the build is decompiled, instrumented at runtime on a rooted or jailbroken device, its traffic intercepted, and every API it calls attacked for authorisation and logic flaws. The device-side checks are the part everyone recognises. The backend half is where the money-moving findings almost always are, and it is the half that a scanner-led test leaves out.

What a mobile application security test actually covers

A mobile app is three attack surfaces wearing one icon. The binary runs on hardware the attacker fully controls, so anything inside it — keys, endpoints, feature flags, logic — should be assumed readable. The network channel runs over Wi-Fi the attacker may own. And the backend is an ordinary set of APIs that happens to be called from a phone, which means it inherits every web and API weakness plus a few of its own: device binding, OTP flows, deep links and push notifications.

LayerWhat is testedTypical findingsWho it hurts
Binary (static + runtime)Decompiled code, stored data, platform configuration, third-party SDKs, anti-tamper controlsHard-coded credentials, tokens in shared preferences or plist files, exported components, debug flags, verbose loggingAny customer whose device, backup or cloud sync is reachable
ChannelTLS configuration, certificate pinning, trust anchors, cleartext exceptions, WebView trafficPinning only on the login screen, user-installed CAs trusted, HTTP fallbacks, WebView loading remote content without restrictionCustomers on hostile or shared networks
BackendEvery endpoint the app calls, as the app calls it, plus the ones it does not expose in the UICross-account data access (BOLA), expired tokens still accepted, OTP and PIN brute force, mass assignment, deep links that change authenticated stateEveryone — these findings scale to the whole customer base

The three layers of a mobile test and what each one finds

The practical consequence for a buyer: if a proposal describes the binary and channel layers in detail and treats the backend as "API testing on request", you are buying half a test. The findings that reach a board or a regulator are nearly always in the third row.

OWASP MASVS, in plain terms

The OWASP Mobile Application Security Verification Standard (MASVS) is the reference most serious mobile tests are scoped against, and the OWASP Mobile Application Security Testing Guide (MASTG) is its companion set of test cases. Version 2 of MASVS reorganised the standard into control groups, each a short list of requirements. Knowing the groups lets you read a proposal and a report critically.

Control groupWhat it requiresWhat a failure looks like
MASVS-STORAGESensitive data is stored only where it needs to be, using platform-protected storage, and is not leaked through logs, backups, clipboards or screenshotsA session token in SharedPreferences, card data in an unencrypted SQLite file, PII in logcat on a release build
MASVS-CRYPTOCurrent algorithms, proper key management, keys in the Keystore or Keychain rather than in codeA static AES key in a constants class, ECB mode, a custom scheme that "obfuscates" rather than encrypts
MASVS-AUTHAuthentication and session handling that holds up on the backend, not just in the UI; biometric and local authentication that cannot be bypassed by patching the appBiometric check that returns a boolean the server never verifies, OTP that can be replayed, sessions that never expire server-side
MASVS-NETWORKAll traffic over TLS to verified endpoints, with pinning where the threat model demands itCleartext permitted in the network security configuration, pinning that covers one endpoint, user CAs trusted
MASVS-PLATFORMSafe use of platform IPC, WebViews, deep links and app permissionsAn exported activity that reaches authenticated screens, a deep link that accepts a token parameter, a WebView with JavaScript bridges exposed to arbitrary origins
MASVS-CODEUp-to-date dependencies, platform security features enabled, no debug leftoversA vulnerable third-party SDK, debuggable release build, backup enabled with sensitive data inside
MASVS-RESILIENCEResistance to reverse engineering and tampering — root and jailbreak detection, integrity checks, obfuscation — for apps whose threat model needs itRoot detection defeated by a one-line hook, integrity check that can be patched out, no response to instrumentation
MASVS-PRIVACYData minimisation, transparency and user control over what the app collectsPermissions well beyond the app's purpose, third-party analytics receiving identifiers, no way to exercise deletion

MASVS v2 control groups and what a failure looks like in practice

MASVS also defines verification profiles. MAS-L1 is the baseline every app should meet. MAS-L2 adds defence-in-depth for apps handling sensitive data — banking, payments, health, identity. MAS-R is the resilience profile, which only matters if your threat model includes attackers tampering with the app itself, as it does for payment and lending apps. Insist the proposal names the profile; "MASVS-aligned" without a profile is a hedge.

Android and iOS: what actually differs

The MASVS groups apply to both platforms, but the attack surface is shaped differently, and a test that treats iOS as "Android with fewer problems" misses things. If the app ships on both, both builds are in scope; the backend is shared, but the storage, IPC and platform configuration findings rarely transfer one-to-one.

Where the platform-specific findings come from
Android (APK / AAB)
  • Exported activities, services, receivers and content providers — the manifest is the first attack map
  • Intent injection and implicit intents bridging into authenticated screens
  • SharedPreferences, SQLite and Realm databases, and whether backup is permitted
  • Network security configuration: cleartext exceptions and trust anchors
  • Root detection and Play Integrity, the replacement for SafetyNet, and how the app reacts when they fail
  • Native libraries and bundled SDKs with known vulnerabilities
iOS (IPA)
  • Keychain item protection classes and what survives an unlocked device or a backup
  • NSUserDefaults and plist files used as if they were secure storage
  • App Transport Security exceptions that re-enable cleartext or weak TLS
  • URL schemes and universal links as the deep-link surface
  • Jailbreak detection and anti-debugging, and whether the app fails open
  • Background snapshot caching and pasteboard leakage of sensitive screens

The findings that matter, and the ones that are not findings

Mobile reports are padded more than any other kind of pentest report, because the tooling generates a long list of hardening observations that are cheap to list and expensive to fix. Two tests of the same app can produce a forty-finding report and a six-finding report, and the six-finding one can be the better test. The difference is whether each item is proven to matter.

What the report saysIs it a finding?What a good report does instead
"The application can be decompiled"No. Every app can be decompiled; this is how the test startsReports what was found inside — a credential, an endpoint, a bypassable check — with the impact proven
"Certificate pinning can be bypassed"No. Bypassing pinning on a rooted test device is a technique, not a weaknessReports what the intercepted traffic revealed about the backend
"Root / jailbreak detection can be bypassed"Usually no, unless the profile is MAS-R and the control was contractually requiredStates whether the backend behaves differently on a rooted device, which is what the control is for
"API key found in the binary"Only if the key grants somethingDemonstrates what the key reaches — a backend, a cloud bucket, a third-party service — and rates it on that
"Backup is enabled"Low at most, on its ownShows the sensitive data actually present in a backup, or downgrades it to informational
"Expired token accepted by the transfer endpoint"Yes — this is the test paying for itselfReproduces it on a second test account with a recorded proof and a severity tied to the transaction limit

How to read a mobile findings list

Ask a prospective provider for a sanitised sample report and count how many findings are in the left column. A report that leads with "app is decompilable" is telling you the engagement stopped at the scanner.

The backend half most mobile tests skip

Once traffic is intercepted, the app becomes a client for a set of APIs, and those APIs are tested with the same discipline as any API security assessment: object-level and function-level authorisation on every endpoint, mass assignment, rate limits, and the handling of every identifier the app sends. The mobile-specific additions are the flows that only exist because the client is a phone.

  • Device binding and registration — can a second device enrol against a victim account with only the data the app sends? Is the device identifier something the attacker can choose?
  • OTP and PIN flows — length, retry limits, whether verification happens server-side, whether a successful OTP can be replayed, and whether the "resend" path leaks anything.
  • Biometric and local authentication — whether the backend issues anything on the strength of a client-side result.
  • Deep links, universal links and app links — every parameter is attacker-controlled; a link that adds a payment instrument or changes a contact detail while authenticated is an account-takeover primitive.
  • Push notification handlers — what the app does with data in a notification payload, and whether it is treated as trusted.
  • Hidden and legacy endpoints — the ones the UI no longer calls but the backend still serves, usually with older, weaker authorisation.
  • Transaction logic — limits enforced client-side, amounts and beneficiaries trusted from the client, idempotency on retry.

The documented GCC telecom mobile app engagement shows how these layers chain: a per-installation API key stored in cleartext on the device, combined with a deep link that bound a payment instrument to the victim's account, produced a one-tap account takeover. Neither finding was severe on its own in a scanner's view. Together they would have been a regulator-reported incident in launch week.

Scoping a mobile test in India: what to decide before the proposal

The quality of a mobile test is mostly decided in scoping. Providers quote against whatever you give them, and a vague scope produces a cheap, shallow test that passes procurement and fails the audit. Decide the following before you ask for a price, and put the answers in the request.

DecisionWhy it mattersWhat to specify
Builds and platformsA production build with release protections behaves differently from a debug build; iOS and Android are separate scopesVersion-pinned APK or AAB and IPA, release-signed, with the protections that will ship
Backend in or outThe impactful findings live there, and a backend test needs environment access and test dataIn scope, against a staging environment that mirrors production, with the full API surface the app calls
Verification profileSets the depth and the price; a banking app at MAS-L1 is under-testedMAS-L1, MAS-L2 or MAS-L2 plus MAS-R, chosen from the data the app handles
Test accounts and rolesAuthorisation testing needs at least two accounts per role and the ability to move value between themTwo or more accounts per customer type, with funded test balances where transactions exist
Devices and OS versionsBehaviour differs across OS versions and vendors; some controls only exist on newer OS releasesMinimum supported OS version, and whether rooted or jailbroken devices are in scope for resilience testing
Third-party SDKsPayment, analytics, identity and advertising SDKs are inside your binary and your liabilityInventory of SDKs, and whether their behaviour is in scope
Regulatory mappingThe report will be read against a specific regulation, and the mapping is easier to do during the test than afterWhich regime applies — see the next section — and the format the auditor or regulator expects
RetestA finding is closed when it is retested, not when the developer says soRetest window and whether it is included

Scoping inputs for a mobile application security test

Which Indian requirements your app is being tested against

Most Indian mobile apps that warrant a professional test sit under at least one regime that expects one. The regime shapes the scope, the evidence and sometimes who is allowed to do the testing, so name it at the start.

  • Banks, payment system operators and payment apps — the RBI's digital payment security controls set expectations for mobile payment applications, including device binding, secure storage on the device, protection of the channel and detection of compromised devices. Tests for these apps are scoped at MAS-L2 with resilience controls, and the findings are mapped to the RBI direction the auditor will ask about.
  • Lending apps — the RBI's digital lending rules limit what a lending app may read from the device and require explicit consent for the access it does take; a test should include the permission and data-collection review, not only the exploitation work. See the RBI digital lending audit for the compliance side.
  • Market intermediaries — SEBI's Cyber Security and Cyber Resilience Framework expects regular testing of customer-facing applications, and the mobile trading app is the most exposed of them.
  • Apps using Aadhaar or DigiLocker — the UIDAI integration and the handling of identity data have their own requirements and will be in the auditor's scope.
  • Anyone needing a CERT-In empanelled audit — mobile application security testing is one of the categories an empanelled auditor can be engaged for; the CERT-In empanelled audit guide covers how the engagement and the report format work.
  • Payment card data on the device — if the app stores or transmits cardholder data, PCI DSS scoping applies to the app and the test should say what it found in storage and in transit.

What the deliverable should contain

The report is the only thing that survives the engagement, and it will be read by developers who need to fix things, an auditor who needs to tick things, and possibly a regulator who needs to be convinced. It has to serve all three.

  • A MASVS attestation with the profile stated, and a control-by-control result rather than a single pass or fail.
  • Per-finding proof recorded on a real device — a screen recording or request-and-response pair that a developer can reproduce without the tester present.
  • Decompiled-code references with the file and line where the issue lives, for binary findings.
  • Backend findings written as API findings — endpoint, parameter, accounts used, and the exact cross-account or logic effect observed.
  • A severity tied to demonstrated impact, not to the scanner's default, with the regulatory mapping beside it.
  • Platform-specific remediation — a Keystore or Keychain pattern, a deep-link allowlist, a pinning configuration — not a generic "encrypt sensitive data".
  • A retest record showing what was closed, what was accepted as risk, and by whom.

How long it takes and what moves the price

A single-platform app with a modest backend is typically a one-to-two-week engagement; both platforms with a transactional backend and a MAS-L2 plus resilience scope is usually two to three weeks. What moves the price is the backend surface, the number of roles and flows, the verification profile, and whether resilience testing against a protected release build is required. Indicative Indian price ranges for mobile and other assessment types are in the VAPT and penetration testing guide; always get a fixed price against a written scope rather than a day rate against an estimate.

Where Macksofy fits

Macksofy runs mobile application security testing for Android and iOS as a manual-led engagement: decompilation and runtime instrumentation on real devices, channel interception, and a full backend assessment, attested against OWASP MASVS at an agreed profile and mapped to the RBI, SEBI, UIDAI or PCI requirement that applies. The wider engagement options — web, API, network, cloud and identity — are collected in the VAPT and penetration testing hub.

Scope a mobile application security test

Send the platforms, the kind of data the app handles and the regulation you report under, and we will return a scoped proposal with the verification profile stated.

See the mobile testing service
FAQ

Quick answers.

It is the assessment of a mobile app and its backend for weaknesses an attacker could exploit, covering the binary (secrets, storage, platform configuration), the network channel (TLS and pinning) and the APIs the app calls (authentication, authorisation, business logic). A thorough test decompiles the app, instruments it at runtime on a rooted or jailbroken device and attacks the backend as the app does.
The OWASP Mobile Application Security Verification Standard is the reference standard for what a secure mobile app should do, organised into control groups covering storage, cryptography, authentication, network, platform interaction, code quality, resilience and privacy. Scoping a test against MASVS at a stated profile — MAS-L1, MAS-L2 or MAS-R — makes the test comparable, auditable and harder to hollow out.
A mobile test includes an API test and adds the device side: how the app stores data, what it trusts, how it can be tampered with, and the mobile-only flows such as device binding, OTP, biometrics and deep links. An API-only test misses the device findings; a device-only test misses the findings that affect every customer at once.
If both ship, yes. The backend is shared, but storage, inter-process communication, platform configuration and resilience findings are platform-specific and rarely transfer. Testing one platform and assuming the other matches is the most common way a serious iOS or Android finding gets missed.
On its own, no. Both can be bypassed by any competent tester on a device they control; they are techniques used to perform the test, not weaknesses in the app. They become relevant only when the profile requires resilience controls, and even then the question is what the bypass allowed the tester to reach in the backend.
At minimum before each major release and annually, and whenever the authentication, payment or data-handling flows change. Regulated entities in banking, payments and securities typically test on a defined cycle set by their regulator, and many move to a quarterly cadence once the app handles transactions.
Read next

Related articles

Compliance

The CERT-In Empanelment Process (2026): How an Auditing Organisation Actually Gets on the Panel

A step-by-step walkthrough of how CERT-In empanels information security auditing organisations in India — the single three-month application window each year, the eligibility bar, the documentation round, the offline and online practical skill tests and their 90% pass threshold, the Personal Interaction Session, government background verification, what it costs, how long the whole cycle takes, and what an organisation has to keep doing to stay on the panel.

Read article
Compliance

ABDM M1 WASA Audit: The Complete Guide to the Safe-to-Host Certificate (2026)

Everything an Indian digital-health team needs to know about the WASA audit behind ABDM Milestone 1 — what WASA stands for, why the report has to come from a CERT-In empanelled auditor, what functional and security testing it covers for HIPs, HIUs and health lockers, what the safe-to-host certificate must state about the environment tested, realistic timelines, and the failures that send teams back for a re-test.

Read article
Penetration Testing

Penetration Testing & VAPT: The Complete Guide (India, 2026)

A definitive guide to penetration testing and VAPT for Indian organisations in 2026 — the difference between vulnerability assessment and penetration testing, the types, the PTES/OWASP methodology, CVSS scoring, timelines, cost drivers, deliverables, regulatory triggers (CERT-In, RBI, SEBI, PCI-DSS, DPDP) and how to choose a CERT-In empanelled provider.

Read article
Macksofy delivers

Need help putting this into practice?

These Macksofy engagements line up with the topics in this post — fixed-price proposals within 48 hours, CERT-In format reports.

References & standards

Macksofy delivers this work to the following standards and regulator requirements. Definitions and controls are sourced from the issuing bodies below.

Talk to us

Get a fixed-price proposal in 48 hours.

Tell us about your security need — pentest, audit, training or a wider engagement. A senior consultant will reply within a few business hours.

CERT-In Empanelled
Information Security Auditor · India
  • CERT-In Empanelled
  • EC-Council ATC
  • Thousands of professionals trained
  • India + UAE engagements