Skip to content
Talk to a Security Expert
ANDROID APPLICATION PENETRATION TESTOWASP MASVS / MASTG / MASWESAMPLE REPORT

Android Application Penetration Testing Report — Sample

NovaSphere Pay — Mobile Application Security Assessment. A fictional Android application penetration test of NovaSphere Pay, a fictional mobile payments application operated by NovaSphere Digital Technologies, Inc., showing how TMG Security structures scope, methodology, static and dynamic analysis, mobile-API integration testing, findings, risk analysis, and remediation guidance for an OWASP MASVS-aligned Android assessment.

Illustrative Sample Fictional Organization Not an Actual Client Assessment

NovaSphere Digital Technologies, Inc. and the NovaSphere Pay Android application (package com.novasphere.pay) are fictional. No real application, backend, device, or client environment was built, deployed, accessed, or tested, and no real customer data was involved in the creation of this document. TMG Security is not affiliated with, endorsed by, or certified by OWASP.

01 · OVERVIEW

Overview

An Android application penetration test is an authorized, hands-on security assessment in which testers combine static analysis of the application package, dynamic analysis on physical and emulated devices, and direct testing of the mobile-facing backend API to identify and manually validate exploitable weaknesses — going beyond automated scanning to confirm what is actually exploitable, how a weakness manifests on-device versus server-side, and what it means for the business. The result is a report that gives mobile engineering and security leadership a prioritized, evidence-based roadmap for remediation.

This sample report shows how TMG Security structures that deliverable for a native Android engagement. It is built around NovaSphere Pay, a fictional peer-to-peer and bill-pay mobile payments application (package com.novasphere.pay) operated by NovaSphere Digital Technologies, Inc., a fictional organization, and covers a simulated assessment window of 03–28 August 2026.

Assessment TypeAndroid Application Security Assessment / Penetration Test (Illustrative)
Assessment Period03 August – 28 August 2026 (Fictional)
Report Date11 September 2026 (Fictional)
ClassificationConfidential — Sample / Demonstration
OrganizationNovaSphere Digital Technologies, Inc. (Fictional Entity)
ApplicationNovaSphere Pay — com.novasphere.pay (Fictional)
APK Under TestNovaSpherePay-release-6.4.2.apk
Overall Illustrative PostureRequires Remediation
02 · WHAT THIS SAMPLE DEMONSTRATES

What this sample demonstrates

NovaSphere Digital Technologies, Inc. and NovaSphere Pay do not exist. Every finding, test case, component, endpoint, and figure in this sample is fictional and constructed to show TMG's methodology and reporting standard for an OWASP MASVS-aligned Android penetration test — not to describe any real organization's security posture.

  • How TMG defines scope, rules of engagement, and testing objectives for a native Android application and its supporting mobile API
  • How the APK is acquired, its metadata reviewed, and its manifest, permissions, and exported components analyzed
  • How static analysis of decompiled code identifies hardcoded secrets, debug artifacts, and insecure coding patterns
  • How dynamic, on-device testing validates local storage, cryptography, WebView, IPC, and deep-link handling
  • How the mobile-facing backend API is tested directly for broken object-level authorization and business-logic gaps
  • How authentication, session, and biometric/local authentication flows are assessed end to end
  • How resilience controls — root detection, tamper detection, obfuscation, anti-debugging — are evaluated as defense-in-depth
  • How findings are mapped to OWASP MASVS controls, MASWE weaknesses, and MASTG test cases, rated for severity, and evidenced
  • How a remediation roadmap, management action plan, and retest recommendations are structured for mobile engineering follow-through
03 · APPLICATION & PLATFORM PROFILE

Application & platform profile

The fictional NovaSphere Pay Android client is built against target SDK 35 (Android 15) with a minimum supported SDK of 26 (Android 8.0), compiled at SDK level 35, and distributed as a single APK supporting the arm64-v8a and armeabi-v7a ABIs (APK Signature Scheme v2 + v3, fictional production certificate). The release build under test — NovaSpherePay-release-6.4.2.apk (version 6.4.2, version code 6402, ~38.6 MB compressed) — declares 18 Android components (11 exported), bundles six third-party SDKs (core payments networking, mapping/geolocation, analytics/product telemetry, crash reporting, push notification, and a local Room-based database ORM), and talks to two fictional, non-resolving backend hosts: a primary payments API and a dedicated authentication service.

Package Namecom.novasphere.pay
Version / Build6.4.2 (versionCode 6402)
Target / Min SDK35 (Android 15) / 26 (Android 8.0)
Backend APIapi.novasphere-example.com (Fictional, non-resolving)
Auth Serviceauth.novasphere-example.com (Fictional, non-resolving)
Signing / ObfuscationAPK Signature Scheme v2 + v3; R8/ProGuard enabled (coverage gaps noted)
04 · TESTING SCOPE & RULES OF ENGAGEMENT

Testing scope & rules of engagement

In scope

  • The NovaSphere Pay release APK — static analysis, decompiled code review, manifest and permission review
  • All 18 declared Android components, with focused review of the 11 exported activities, services, and providers
  • Deep links (novasphere:// custom scheme) and the equivalent HTTPS App Link, and general intent-handling surface
  • WebView and in-app JavaScript-bridge usage, file handling, and IPC/content-provider exposure
  • Local data storage in all forms — SharedPreferences, the Room/SQLite database, caches, clipboard, and backups
  • Cryptography and Android Keystore usage; network security configuration, TLS, and certificate handling
  • Authentication, session management, biometric/local authentication, and account-recovery flows
  • The mobile-facing backend API (27 endpoints reviewed) — authorization, business logic, and mobile-API integration testing
  • Resilience controls — root/emulator/debugger detection, tamper detection, and obfuscation coverage
  • Privacy — permission minimization, PII handling, and third-party analytics/tracking SDK behavior

Out of scope

  • Denial-of-service testing and destructive testing, including against the fictional funds-transfer workflow
  • Social engineering, physical device theft, and physical security testing
  • The real Google Play Store distribution channel, code-signing infrastructure, and app-store review process
  • Third-party SDK vendors' own backend infrastructure — review limited to client-side integration behavior observable within the APK
  • Direct testing of app-signing key custody and rotation procedures (reviewed only as a documentation observation)

Testing was strictly non-destructive and used only the dedicated fictional test accounts and devices listed in Appendix I of the full report — three fictional test devices (a rooted emulator, a non-rooted physical reference device, and a rooted physical legacy-OS reference device) plus an isolated interception-proxy host, and no real user accounts, signing keys, or customer data were used at any point.

05 · METHODOLOGY & OWASP FRAMEWORK CONTEXT

Methodology & OWASP framework context

TMG Security's Android testing approach is conceptually informed by the OWASP Mobile Application Security Verification Standard (MASVS), the OWASP Mobile Application Security Testing Guide (MASTG) v2.0.0, and the OWASP Mobile Application Security Weakness Enumeration (MASWE) v1.0.0. Every MASVS control, MASWE weakness identifier, and MASTG test case referenced in this report is drawn from current, publicly verifiable OWASP mobile application security material; where a precise identifier could not be confidently mapped to a specific finding, this report describes the testing concept in narrative terms rather than presenting an invented identifier.

TMG Security is not affiliated with, endorsed by, or certified by OWASP. This report is not an OWASP-certified assessment, an official OWASP audit, or evidence of any OWASP accreditation, and no copyrighted OWASP material is reproduced in this document — the frameworks above are cited only as conceptual, methodological grounding for TMG's own independent testing approach.

Testing covered eight MASVS control groups spanning 24 individual MASVS controls: storage, cryptography, authentication, network communication, platform interaction, code quality, resilience, and privacy. The methodology combined static analysis of the decompiled application, dynamic analysis on rooted and non-rooted fictional test devices, mobile-API integration testing against the backend directly, IPC and component security review, and dedicated resilience and privacy assessment — a ten-stage program executed against 155 individual test cases (Appendix A of the full report), with every candidate finding manually validated by a TMG Security fictional tester before inclusion.

06 · ANDROID PLATFORM TRUST BOUNDARY

Why Android testing is not just app testing

Once an Android application is installed, its APK, local storage, and runtime behavior are all within reach of whoever controls the device — which changes what the application can safely treat as a trust boundary. Anything checked only on the client, whether a permission gate on an exported component, a client-side signature check, or a boolean flag set after a biometric prompt, is a user-experience feature rather than a security control: on a rooted or instrumented device, that check can be bypassed entirely, and any other app installed on the same device can attempt to interact with it directly through Android's own inter-process communication mechanisms.

NovaSphere Pay's own trust boundary sits at three points repeated throughout this report: the boundary between the app's private sandbox and the rest of the device (governed by storage protection, backup configuration, and IPC/component export settings); the boundary between the app and other installed applications (governed by exported-component permissions, deep-link validation, and WebView JavaScript-bridge scoping); and the boundary between the mobile client and its backend API (governed by whether the server independently re-verifies every authorization decision the client believes it has already made). The most severe findings in this assessment — AND-001 through AND-004 — each sit directly on one of these three boundaries.

07 · STATIC ANALYSIS & MANIFEST REVIEW

Static analysis & manifest review

TMG Security decompiled the fictional release APK and reviewed AndroidManifest.xml, the full requested-permission set, declared components, build configuration, and third-party SDK inventory, then reviewed the decompiled source for hardcoded secrets, API keys, debug artifacts, and insecure coding patterns. Static review confirmed android:debuggable is correctly false in the release manifest merge, but found a hardcoded third-party mapping-SDK API key in strings.xml, a hidden pre-production debug menu reachable via a version-label tap sequence in the QA build flavor, and identifier obfuscation applied inconsistently — the core banking and payments modules are fully obfuscated, but two integration modules retain fully readable class and method names. Manifest review separately confirmed android:allowBackup="true" with no compensating backup-rules exclusion, and 11 of 18 declared components exported, a subset of which lack a corresponding permission or caller-identity check.

AND-008 · HIGH · CWE-798 Use of Hard-coded Credentials

Hardcoded API Secret in Application Package

A fictional third-party mapping/geolocation SDK API key used for branch-locator functionality is hardcoded as a plaintext string resource, recoverable via straightforward APK decompilation with no reverse-engineering effort beyond unzipping and reading strings.xml. Recommendation: move key retrieval server-side (backend-issued, scoped/rotatable token) where the SDK supports it, or at minimum obfuscated/split so static extraction does not yield a directly usable key.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 31 October 2026 · Status: Remediation Planned

08 · IPC & EXPORTED COMPONENT SECURITY

IPC & exported component security

TMG Security reviewed NovaSphere Pay's full inter-process communication surface — every exported Activity, Service, Broadcast Receiver, and Content Provider — assessing whether each exported component serves a documented cross-app integration need and whether it independently validates the caller and the Intent it receives, rather than assuming only the app's own UI can reach it. Of the 11 exported components, the funds-transfer service and the payee deep-link activity were confirmed to accept privileged actions from any co-installed application with no caller-identity or confirmation check; the app's FileProvider grants a broader-than-necessary path scope for its statement-export feature; a task-affinity/launch-mode configuration on the MFA-verification activity creates a task-hijacking risk consistent with StrandHogg-style attacks; and a low-sensitivity FAQ content provider is exported without any functional cross-app requirement. TMG Security additionally flags the overall exported-component count itself as a hardening opportunity independent of any single confirmed weakness.

AND-002 · CRITICAL · CVSS-style 8.8 (Critical) · CWE-926 Improper Export of Android Application Components

Exported Android Component Enables Unauthorized Privileged Action

TransferService, which initiates a fictional funds transfer on behalf of the currently authenticated NovaSphere Pay session, is declared with android:exported="true" and performs no caller-identity, signature, or permission check before acting on the Intent it receives. Any other application installed on the same device — with no special Android permissions required — can start this service directly with a crafted destination account and amount, bypassing the app's own UI, confirmation screen, and any client-side transaction limits entirely. Recommendation: set android:exported="false" unless external invocation is a genuine product requirement; if required, protect with a signature-level custom permission and require server-side step-up confirmation independent of the calling Intent.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 08 October 2026 · Status: Remediation In Progress

09 · DEEP LINKS, INTENTS & WEBVIEW SECURITY

Deep links, intents & WebView security

TMG Security tested NovaSphere Pay's custom-scheme deep link (novasphere://) and its equivalent HTTPS App Link for sensitive account-modifying actions reachable without in-app confirmation, general intent-handling for spoofing/task-hijacking risk, and the in-app support WebView's JavaScript-bridge exposure and navigation scoping. The payee-addition deep link commits a new, attacker-controlled payee to the authenticated user's account immediately on link open, with no confirmation screen or step-up authentication, meaning a crafted link delivered via SMS, email, or a compromised webpage can silently stage a follow-on social-engineering-driven transfer. Separately, the support WebView exposes a native JavaScript interface (NovaBridge) with methods including getSessionToken() and getDeviceId(), with no origin verification on the calling page and mixed-content loading left enabled — meaning any content the WebView can be coerced into loading, including a first-party redirect abused by an attacker, could call the bridge and retrieve the live session token.

AND-004 · CRITICAL · CVSS-style 8.3 (Critical) · CWE-940 Improper Verification of Source of a Communication Channel

Insecure Deep-Link Flow Enables Sensitive Account Action

The novasphere://add-payee deep link (and its equivalent HTTPS App Link) parses payee parameters and commits the new payee association immediately in onCreate(), before any user-facing confirmation UI is shown. A fictional crafted link opened while a test session was authenticated silently added a fictional attacker-controlled payee with zero user confirmation. Recommendation: insert a mandatory in-app confirmation screen (and step-up authentication for first-time payees) between deep-link receipt and any account-state change; treat all deep-link-originated actions as untrusted input requiring the same confirmation UX as their in-app equivalents.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 15 October 2026 · Status: Remediation In Progress

AND-005 · HIGH · CVSS-style 7.9 (High) · CWE-749 Exposed Dangerous Method or Function

WebView JavaScript Interface Exposure

The in-app help/support WebView exposes a native NovaBridge JavaScript interface including getSessionToken() and getDeviceId(), while setJavaScriptEnabled(true) and mixed-content loading remain enabled and the WebView is not strictly confined to the intended first-party support domain. Fictional testing confirmed a test HTML page loaded in the support WebView could call NovaBridge.getSessionToken() directly and receive the live fictional session token in the callback. Recommendation: remove sensitive methods from the JavaScript interface entirely, restrict WebView navigation to an allow-listed first-party domain set, and disable mixed content.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 31 October 2026 · Status: Remediation Planned

10 · LOCAL STORAGE & DATA PROTECTION

Local storage & data protection

TMG Security inspected every form of on-device persistence NovaSphere Pay uses for sensitive data: SharedPreferences, the Room/SQLite local database, the HTTP response cache, screenshot/Recent-Apps thumbnail capture, the system clipboard, and Android's backup/restore mechanism. The most severe finding in this entire assessment sits here: the app's OAuth 2.0 access token, refresh token, and a device-binding secret are all persisted in cleartext inside a standard, unencrypted SharedPreferences file rather than behind an EncryptedSharedPreferences (Jetpack Security Crypto) or Android Keystore-backed envelope — recoverable directly from the app's private data directory on any rooted device or via an unpatched backup-extraction path, with no cryptographic barrier at all. The same exposure is independently reachable a second way: android:allowBackup="true" with no compensating exclusion rule means a standard adb backup extraction recovers the identical token file. Additional, lower-severity gaps were confirmed in cache handling (financial statement responses cached to disk without a no-store directive), screenshot protection (two account-balance and card-detail screens omit FLAG_SECURE), clipboard handling (a full account number copied without the sensitive-content marker), and the local Room database (transaction history stored in a standard, unencrypted SQLite file).

AND-001 · CRITICAL · CVSS-style 9.1 (Critical) · CWE-312 Cleartext Storage of Sensitive Information

Sensitive Authentication Token Exposure Through Insecure Local Storage

NovaSphere Pay persists the OAuth 2.0 access token, refresh token, and a fictional device-binding secret in a plaintext SharedPreferences XML file rather than the Android Keystore-backed EncryptedSharedPreferences/Jetpack Security Crypto abstraction. On a fictional rooted test device, or on a device with an unpatched backup-extraction path, the token material was recoverable directly from the app's private data directory without any cryptographic barrier. Recommendation: migrate all session/token persistence to EncryptedSharedPreferences (or an equivalent Keystore-wrapped AES-GCM envelope); ensure the underlying Keystore key is hardware-backed where the device supports it.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 10 October 2026 · Status: Remediation In Progress

11 · CRYPTOGRAPHY & KEY MANAGEMENT

Cryptography & key management

TMG Security reviewed NovaSphere Pay's use of cryptographic primitives, Android Keystore integration, and random-value generation for security-relevant data. Cryptographic keys used for local field-level encryption are correctly generated and held inside the Android Keystore, hardware-backed on both fictional test devices, and no custom or home-grown cryptographic implementation was identified in place of platform primitives — a genuine positive control. The one confirmed weakness is narrower: a client-side request nonce used for replay protection on a subset of mobile-API calls is generated with java.util.Random seeded from the current timestamp rather than a cryptographically secure source, making the nonce sequence predictable to an attacker with approximate timing knowledge of the request. Because this nonce supplements rather than replaces server-side replay validation, the weakness reduces defense-in-depth rather than independently enabling replay attacks.

AND-024 · MEDIUM · CVSS-style 4.0 (Medium) · CWE-330 Use of Insufficiently Random Values

Insecure Random Number Generation for a Security-Relevant Value

The client-side request-nonce generator (com.novasphere.pay.net.NonceGenerator) used for replay-protection on a subset of mobile-API calls is seeded from System.currentTimeMillis() via java.util.Random rather than java.security.SecureRandom, making the nonce sequence reproducible given an approximate generation timestamp. Recommendation: replace java.util.Random with SecureRandom for all security-relevant value generation; add a static-analysis rule flagging java.util.Random usage in security-sensitive packages.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 28 November 2026 · Status: Remediation Planned

12 · NETWORK SECURITY TESTING

Network security testing

TMG Security reviewed NovaSphere Pay's Network Security Configuration and tested TLS enforcement and certificate validation across every network client the app uses, via a fictional interception-proxy host on an isolated test network. cleartextTrafficPermitted is correctly set to false at the base configuration level with no permissive per-domain override, and the primary payments API client enforces TLS 1.2+ platform-wide with certificate pinning and no legacy-protocol fallback — a strong baseline. Two gaps were confirmed away from that primary client: a legacy telemetry/analytics network client implements a custom X509TrustManager whose checkServerTrusted() method is a no-op, so it accepts any presented certificate including a self-signed one under an adversary-in-the-middle position; and the Network Security Configuration does not explicitly pin a minimum TLS version, so a fictional test endpoint offering only TLS 1.1 still completed a handshake rather than being refused. A broader wildcard domain entry retained from a legacy CDN integration, alongside the specifically pinned production domains, was separately flagged as a configuration-hygiene gap.

AND-006 · HIGH · CVSS-style 7.7 (High) · CWE-295 Improper Certificate Validation

Certificate Validation Weakness

The telemetry/analytics network client implements a custom X509TrustManager whose checkServerTrusted() method is a fictional no-op, effectively trusting any TLS certificate presented by the telemetry endpoint. The primary payments API client correctly enforces certificate pinning; this weaker trust-manager pattern is limited to the telemetry channel but represents a template risk that could be inadvertently reused for higher-sensitivity channels in future development. Recommendation: remove the custom trust manager and rely on the platform default TrustManager (or an equivalent implementation that performs full chain and hostname validation), supplemented by certificate/public-key pinning to the telemetry channel consistent with the payments client.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 31 October 2026 · Status: Remediation Planned

13 · AUTHENTICATION, SESSION & BIOMETRIC SECURITY

Authentication, session & biometric security

TMG Security assessed NovaSphere Pay's login, session-timeout, logout/token-revocation, and biometric/local-authentication flows. Multi-factor authentication is correctly and consistently enforced for all standard login flows with no client-side bypass path identified — a genuine positive control. Two gaps were confirmed in the surrounding session lifecycle: logout clears locally stored tokens and returns the user to the login screen, but does not call the corresponding server-side token-revocation endpoint, so a previously captured refresh token remains valid and mintable for the remainder of its natural expiry window after the user believes they have logged out; and the app's 60-minute idle-session timeout is enforced only client-side by an app-level timer, while the underlying access token's own server-side expiry is materially longer, so a captured token remains usable well past the point the app's own UI would have required re-authentication. Separately, NovaSphere Pay's biometric app-unlock gate validates the authentication outcome by checking a boolean flag set in the BiometricPrompt success callback rather than requiring a Keystore-backed CryptoObject operation to succeed — on a rooted or instrumented device, the boolean flag was set directly via standard runtime-hooking techniques, bypassing the biometric prompt entirely.

AND-010 · HIGH · CVSS-style 6.9 (High) · CWE-305 Authentication Bypass by Primary Weakness

Weak Biometric/Local Authentication Enforcement

NovaSphere Pay's biometric app-unlock gate uses BiometricPrompt for the UI/UX but validates the authentication outcome by checking a boolean flag set in the success callback rather than requiring a CryptoObject-bound Keystore key operation to succeed. On a fictional rooted test device, the boolean flag was set directly using a standard runtime-hooking framework, bypassing the biometric prompt entirely. Recommendation: bind the BiometricPrompt result to a CryptoObject wrapping a Keystore key with user-authentication-required semantics, so bypassing the UI check alone cannot satisfy the underlying cryptographic operation.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 31 October 2026 · Status: Remediation Planned

14 · AUTHORIZATION & MOBILE-API INTEGRATION TESTING

Authorization & mobile-API integration testing

Mobile-API integration testing — exercising the 27 backend endpoints NovaSphere Pay's mobile client depends on directly, independent of the app's own UI — was the single most significant category in this fictional assessment. The mobile-only account-statement endpoint accepts a client-supplied account-identifier path parameter and returns the corresponding statement data without independently verifying that the authenticated session's own account set includes the requested identifier; a fictional proxied request substituting a foreign account identifier into an authenticated mobile session returned that unrelated account's statement and transaction data instead of an authorization error. This gap is specific to the mobile-only surface — the equivalent web-channel endpoint, out of scope for this Android assessment, was not retested. Server-side object-level authorization is otherwise enforced correctly on the majority of the endpoints tested, and rate limiting and business-logic controls (transfer limits, idempotency handling, workflow-state sequencing) were confirmed to resist manipulation server-side during testing — the confirmed authorization gap is concentrated specifically in the funds-transfer-adjacent statement-retrieval workflow.

AND-003 · CRITICAL · CVSS-style 8.6 (Critical) · CWE-639 Authorization Bypass Through User-Controlled Key

Broken Authorization in Mobile API Workflow

The mobile-only account-statement-retrieval endpoint invoked by NovaSphere Pay accepts a client-supplied accountId path parameter and returns the corresponding fictional account statement without verifying that the authenticated session's own account set includes the requested ID — a gap specific to the mobile-API surface, since the equivalent web-channel endpoint was not retested as out of scope. A fictional authenticated low-privilege user could enumerate sequential or guessable account identifiers and retrieve other customers' fictional statement data directly from the mobile API. Recommendation: add a server-side ownership check on every mobile-API route accepting a client-supplied account/object identifier; add automated cross-account regression tests to the mobile-API test suite and review all mobile-only endpoints for the same gap pattern.

Owner: API Platform Lead (Fictional Role) · Target: 12 October 2026 · Status: Remediation In Progress

15 · REVERSE ENGINEERING RESISTANCE & RUNTIME INTEGRITY

Reverse engineering resistance & runtime integrity

TMG Security assessed NovaSphere Pay's posture against OWASP MASVS-RESILIENCE — the set of controls intended to slow static and dynamic reverse engineering, detect tampering and repackaging, and resist execution in a rooted, emulated, or debugged environment. Consistent with MASVS's own guidance that resilience controls are explicitly defense-in-depth, no finding in this category is rated above High for that reason alone. Root detection, tamper detection (a client-side signing-certificate hash check), and repackaging detection all share the same underlying limitation: each is a purely client-side heuristic or check, and each was successfully bypassed during fictional dynamic-instrumentation testing using a standard runtime-hooking toolkit — a finding TMG Security consolidates into a single Root/Runtime Integrity Control Bypass rather than three separate findings, since a compromised device defeats all three checks identically. Obfuscation coverage is inconsistent (two integration modules remain fully readable), and Java-layer debugger detection is implemented and functions correctly, though no equivalent native-layer (JNI) check was identified. TMG Security's primary recommendation across this entire category is architectural: adopt a platform attestation service such as the Play Integrity API as the primary resilience signal, evaluated server-side, rather than relying on client-side self-checks as the sole integrity control.

AND-013 · HIGH · CVSS-style 6.4 (High) · CWE-693 Protection Mechanism Failure

Root / Runtime Integrity Control Bypass

NovaSphere Pay's root-detection module relies on client-side heuristics (checking for common su binary paths and known root-management package names) with the result gating a single boolean flag checked at app launch. No server-side attestation (e.g., the Play Integrity API) is used, and the client-side check was bypassed using a commodity root-hiding module in fictional testing, after which the app proceeded to full functionality as though running on an unrooted device. Recommendation: integrate the Play Integrity API (or equivalent current platform attestation) as the primary integrity signal, with the existing heuristic checks retained only as a defense-in-depth supplement; use the attestation result to drive risk-based controls rather than a single pass/fail gate.

Owner: Mobile Engineering Lead (Fictional Role) · Target: 28 November 2026 · Status: Remediation Planned

16 · PRIVACY & DATA HANDLING TESTING

Privacy & data handling testing

TMG Security assessed NovaSphere Pay against OWASP MASVS-PRIVACY — permission minimization, handling of personally identifiable information collected during fictional account onboarding, and third-party analytics/tracking SDK behavior. PII collected during onboarding (name, government-ID fragment, date of birth) is transmitted only over the TLS-protected primary API channel and is not retained locally beyond the active onboarding session — a genuine positive control. Two gaps were confirmed: three dangerous-level permissions (contacts, phone state, and precise location) are requested unconditionally at first app run rather than contextually at the point of use for their associated optional features, with one of the three found to have no referencing code path at all; and the bundled third-party analytics SDK generates and persists its own device-scoped identifier independently of the platform-resettable Advertising ID, so a fictional user who resets their Advertising ID as a privacy signal continues to be tracked under the same underlying analytics identifier before and after the reset.

AND-023 · MEDIUM · CVSS-style 4.1 (Medium) · CWE-359 Exposure of Private Personal Information to an Unauthorized Actor

Analytics/Tracking SDK Privacy Weakness — Persistent Identifier Reuse

The bundled fictional analytics SDK is initialized with a long-lived, app-generated device identifier persisted independently of the platform's user-resettable Advertising ID, meaning a fictional user who resets their Advertising ID for privacy reasons continues to be tracked under the same underlying identifier by the analytics vendor. Recommendation: reconfigure the analytics SDK to use the resettable Advertising ID (or an equivalent reset-aware identifier) as the tracking key, or clear the persistent identifier whenever an Advertising ID reset is detected.

Owner: Privacy & Data Governance Lead (Fictional Role) · Target: 28 November 2026 · Status: Remediation Planned

17 · FINDINGS SUMMARY

Findings summary

This fictional assessment identified 47 illustrative findings across NovaSphere Pay's Android client and its supporting mobile-API integration, drawn from 155 fictional test cases mapped against 24 OWASP MASVS controls across eight control groups (Appendix A–G of the full report). Every finding, severity rating, and evidence reference below is fictional and specific to this Android penetration test — none are drawn from any other TMG sample report.

4
Critical
9
High
14
Medium
8
Low
12
Informational
Full illustrative finding register — fictional sample data, Appendix G of the sample PDF.
IDTitleSeverity
AND-001Sensitive Authentication Token Exposure Through Insecure Local StorageCritical
AND-002Exported Android Component Enables Unauthorized Privileged ActionCritical
AND-003Broken Authorization in Mobile API WorkflowCritical
AND-004Insecure Deep-Link Flow Enables Sensitive Account ActionCritical
AND-005WebView JavaScript Interface ExposureHigh
AND-006Certificate Validation WeaknessHigh
AND-007Sensitive Data Exposure Through LogsHigh
AND-008Hardcoded API Secret in Application PackageHigh
AND-009Insecure FileProvider ConfigurationHigh
AND-010Weak Biometric/Local Authentication EnforcementHigh
AND-011Token Lifecycle Weakness — Missing Refresh-Token Revocation on LogoutHigh
AND-012Improper Intent Handling Enables Intent Spoofing / Task Hijacking RiskHigh
AND-013Root / Runtime Integrity Control BypassHigh
AND-014Debug Information Exposure in Pre-Production Build ConfigurationMedium
AND-015Insecure Backup Configuration (allowBackup Enabled)Medium
AND-016Sensitive Data Exposed via Screenshot / Recent-Apps ThumbnailMedium
AND-017Sensitive Data Exposure via ClipboardMedium
AND-018Weak Cache Handling of Sensitive Response DataMedium
AND-019Deprecated TLS Configuration Permitted by Network Security ConfigurationMedium
AND-020Excessive Android Permissions RequestedMedium
AND-021Verbose Error Handling Reveals Internal Implementation DetailsMedium
AND-022Weak Session Timeout EnforcementMedium
AND-023Analytics/Tracking SDK Privacy Weakness — Persistent Identifier ReuseMedium
AND-024Insecure Random Number Generation for a Security-Relevant ValueMedium
AND-025Tapjacking / Overlay Protection Not Implemented on Sensitive Confirmation ScreensMedium
AND-026Unencrypted Room/SQLite Database Storage of Transaction HistoryMedium
AND-027Exported Content Provider Permits Non-Critical Data ReadMedium
AND-028Unused / Unnecessary Permissions DeclaredLow
AND-029Use of Deprecated Android APIsLow
AND-030General Logging Hygiene Weaknesses in Non-Sensitive ModulesLow
AND-031Third-Party Dependency Governance GapsLow
AND-032Attack Surface Hardening Opportunity — Exported Component CountLow
AND-033Missing Security Regression Test AutomationLow
AND-034Incomplete Secure-Coding Documentation for Mobile EngineeringLow
AND-035Missing Network Security Configuration Domain Restriction GranularityLow
AND-036Positive Control Observation — Multi-Factor Authentication Enforced at LoginInformational
AND-037Positive Control Observation — TLS 1.2+ Enforced Platform-Wide on the Primary API ClientInformational
AND-038Recommendation — Adopt Play Integrity API as Primary Resilience SignalInformational
AND-039Recommendation — Expand Obfuscation Coverage (R8/ProGuard)Informational
AND-040Recommendation — Formalize Secrets Management for the Mobile Build PipelineInformational
AND-041Recommendation — Adopt Step-Up Attestation for High-Value Sensitive TransactionsInformational
AND-042Observation — Third-Party SDK Inventory Should Be Centrally TrackedInformational
AND-043Observation — Crash Reporting SDK Configuration Should Be Reviewed for PII ScrubbingInformational
AND-044Recommendation — Formal Secure-SDLC Checkpoint for Mobile ReleasesInformational
AND-045Observation — Accessibility Service Interaction Not Explicitly RestrictedInformational
AND-046Recommendation — Periodic Dependency Vulnerability Scanning CadenceInformational
AND-047Observation — App Signing Key Management Process Warrants Documentation ReviewInformational
18 · RISK HEATMAP & ATTACK CHAIN ANALYSIS

Risk heatmap & attack chain analysis

The full sample PDF plots all 47 fictional findings on a likelihood-versus-impact risk heatmap: the four Critical and the highest-risk High findings cluster in the "Likely/Very High × Moderate–Very High Impact" region, the fourteen Medium findings sit in a mid-range band, and the Low and Informational findings cluster toward "Rare/Low Likelihood × Minor Impact" — a distribution that supports prioritizing the local-storage, exported-component, and mobile-API authorization findings first.

Individual findings are often most meaningful in combination. The report's three fictional composite attack-chain scenarios illustrate how a crafted deep link (AND-004) can stage an unconfirmed payee and, combined with the broken mobile-API authorization gap (AND-003), enable cross-account reconnaissance from the same attacker position; how a malicious co-installed application can enumerate NovaSphere Pay's broad exported-component footprint (AND-032) and send a crafted Intent directly to the unprotected funds-transfer service (AND-002) with no user interaction; and how a compromised or rooted device exposes the plaintext session and refresh tokens from local storage (AND-001), widened by the backup-extraction path (AND-015), with the captured refresh token remaining valid past logout (AND-011) and ultimately replayable against the same broken mobile-API authorization gap (AND-003). These are fictional composite scenarios only and must not be construed as exploit chains against any real system.

19 · BUSINESS IMPACT ANALYSIS

Business impact analysis

The table below maps each Critical and High fictional finding to the illustrative business dimensions it most directly affects, supporting prioritization conversations beyond pure technical severity.

Illustrative business impact by finding — Critical & High findings only, fictional sample data.
FindingConfidentialityIntegrityFraud / Funds RiskCustomer Trust
AND-001HighMediumHighHigh
AND-002MediumHighHighHigh
AND-003HighMediumHighHigh
AND-004MediumHighHighHigh
AND-005MediumLowLowMedium
AND-006MediumMediumMediumMedium
AND-007MediumLowLowMedium
AND-008MediumLowMediumLow
AND-009LowMediumLowLow
AND-010MediumMediumMediumMedium
AND-011MediumLowMediumMedium
AND-012LowMediumLowLow
AND-013LowMediumMediumLow
20 · REMEDIATION ROADMAP

Remediation roadmap

The fictional sample remediation roadmap sequences all 47 findings across four phases, prioritizing the four Critical findings and the highest-risk High findings first. All dates and timelines shown are illustrative.

0–30 days

  • Insecure local token storage (AND-001) and exported component / unauthorized privileged action (AND-002)
  • Broken authorization in the mobile API workflow (AND-003) and the insecure deep-link sensitive account action (AND-004)
  • WebView JavaScript interface exposure (AND-005) and insecure FileProvider configuration (AND-009)

31–60 days

  • Certificate validation weakness (AND-006) and sensitive data exposure through logs (AND-007)
  • Hardcoded API secret (AND-008) and weak biometric/local authentication enforcement (AND-010)
  • Token lifecycle weakness (AND-011), improper intent handling (AND-012), and root/runtime integrity bypass (AND-013)

61–90 days

  • Remaining Medium findings — debug configuration, backup configuration, screenshot/clipboard/cache exposure, deprecated TLS, excessive permissions, error handling, session timeout, analytics identifier reuse, random-value generation, tapjacking, SQLite storage, content-provider exposure (AND-014 through AND-027)
  • Low-severity hardening backlog — unused permissions, deprecated APIs, logging hygiene, dependency governance, exported-component reduction, and related items (AND-028 through AND-035)

90+ days

  • Informational recommendations — positive-control formalization, Play Integrity API adoption, expanded obfuscation coverage, secrets-management formalization, step-up attestation, SDK inventory governance, crash-reporting PII review, secure-SDLC checkpoint, accessibility-service review, dependency-scanning cadence, and signing-key documentation (AND-036 through AND-047)
21 · MANAGEMENT ACTION PLAN & RETEST RECOMMENDATIONS

Management action plan & retest recommendations

The full sample PDF tracks fictional management response, ownership, and validation approach for every finding in a single management action plan, ensuring each of the 47 findings appears exactly once with an owner, priority, target date, status, and validation method. TMG Security recommends a structured retest following remediation: a full retest of all four Critical findings and all nine High findings, including a fresh APK build and repeated static/dynamic analysis pass; a targeted retest of each Medium finding against its specific affected component, screen, or API endpoint; and a confirmation-only review of Low and Informational items, batched into the next general assessment cycle where full retest is not independently warranted. This retest methodology is illustrative — this report does not claim that any finding has been remediated or retested.

22 · POSITIVE SECURITY CONTROLS & TESTING LIMITATIONS

Positive security controls & testing limitations

This fictional assessment is not intended to be entirely negative. TMG Security identified a number of controls operating effectively across NovaSphere Pay's Android client and its mobile-API integration, including multi-factor authentication enforced at login with no client-side bypass path, TLS 1.2+ enforced platform-wide on the primary API client with correctly implemented certificate pinning, Room/type-bound serialization with a strict, type-bound JSON parser avoiding generic object-deserialization risk, Android Keystore usage for local field-level encryption with hardware-backed storage on both fictional test devices, cleartext traffic correctly disabled with no permissive per-domain override, correctly enforced business-logic and transfer-limit controls resisting server-side manipulation during testing, and object-level authorization correctly enforced on the majority of endpoints tested outside the specific mobile-API gap detailed in Section 14.

The following limitations apply to this fictional sample assessment: NovaSphere Digital Technologies, Inc. and the NovaSphere Pay Android application are fictional and no real organization or mobile application was assessed; no real credentials, API keys, signing keys, or production systems were used or accessed; no real customer data was accessed at any point; no production environment or production backend was tested, only fictional test devices and a fictional controlled assessment environment are represented; no destructive testing was performed or simulated, including against the fictional funds-transfer workflow; no denial-of-service testing was performed; no real Google Play Store distribution channel, code-signing infrastructure, or app-store review process was tested or accessed; no social engineering was performed; no physical device theft or physical security testing was performed; no third-party SDK vendor's backend infrastructure was tested, SDK review was limited to the client-side integration observable within the fictional APK; testing was performed against fictional test devices (rooted and non-rooted) and a fictional emulator profile, and results do not represent an exhaustive device-fragmentation matrix; and all evidence, screenshots, adb/logcat output, decompiled excerpts, and request/response examples in this report are synthetic.

23 · IMPORTANT DISCLAIMER
Illustrative Sample — Not an Actual Client Android Penetration Test

NovaSphere Digital Technologies, Inc. and the NovaSphere Pay Android application are fictional. They do not correspond to any real business or application, and any resemblance to an actual organization is purely coincidental. The package name com.novasphere.pay, the build NovaSpherePay-release-6.4.2.apk, and the backend hosts (api.novasphere-example.com, auth.novasphere-example.com) referenced throughout this sample are fictional, non-resolving placeholders used only for illustration.

No real client was engaged and no real client application, backend, or device was tested. No production environment, system, network, or cloud resource of any kind was accessed, scanned, or tested in the creation of this document. No real user data, personal information, or customer records were accessed, viewed, or processed, and no real credentials — including signing keys, API keys, or account credentials — were used or disclosed anywhere in this report.

All APK metadata, manifest excerpts, decompiled code excerpts, adb/logcat output, and evidence panels shown in this report are synthetic and constructed for illustration only. All vulnerabilities, findings, risk ratings, CVSS-style scores, dates, and remediation statuses described in this report are fictional and were constructed for demonstration purposes. All proofs of concept are illustrative, synthetic, and non-destructive; none were executed against a real device, application, or backend, and none involved denial-of-service exploitation or destructive automation. All screenshots, request/response examples, and evidence panels are synthetic or simulated representations created specifically for this sample report. No real exploitation occurred at any point, and no actual customer impact occurred.

This document is not an actual client Android penetration test. It does not represent evidence of the security posture of any real organization, does not constitute a certification or compliance decision, and does not constitute security, legal, or compliance advice for any real system. TMG Security is not affiliated with, endorsed by, or certified by OWASP, and this report is not an OWASP-certified assessment or an official OWASP audit — the OWASP MASVS, MASTG, and MASWE references throughout are cited only as conceptual grounding for TMG's own independent methodology. This sample may be shared with prospective clients, partners, and other interested parties to illustrate TMG Security's Android application security testing methodology, technical reporting standards, and evidence-presentation quality, and should not be relied upon for any compliance, legal, contractual, or procurement decision.

24 · FREQUENTLY ASKED QUESTIONS

Frequently asked questions

What is an Android application penetration testing report?+

An Android application penetration testing report is the formal deliverable produced after an authorized, hands-on security assessment of a native Android application and the backend API it depends on. It documents scope and methodology, static and dynamic analysis results, mobile-API integration testing, detailed findings with severity ratings and evidence, risk and business-impact analysis, and remediation guidance — giving mobile engineering and security leadership an evidence-based roadmap for closing the gaps found.

What does an Android penetration test cover?+

An Android penetration test covers static analysis of the APK and manifest, dynamic analysis on-device, IPC and exported-component security, deep-link and WebView handling, local storage across every persistence mechanism, cryptography and Keystore usage, network security and certificate validation, authentication and biometric/local authentication, authorization and mobile-API integration testing against the backend directly, resilience controls such as root and tamper detection, and privacy/permission handling — tested across static, dynamic, and mobile-API disciplines as illustrated in Sections 07–16 of this sample report.

What is the OWASP MASVS and how does it relate to this report?+

The OWASP Mobile Application Security Verification Standard (MASVS) is a publicly available framework defining security requirements for mobile applications across eight control groups — storage, cryptography, authentication, network, platform, code quality, resilience, and privacy. This sample report structures its testing and findings around all 24 current MASVS controls across those eight groups, with individual weaknesses additionally mapped to OWASP MASWE and test cases mapped to OWASP MASTG v2.0.0. TMG Security is not affiliated with, endorsed by, or certified by OWASP; these frameworks are used only as conceptual grounding for TMG's own methodology.

What is an exported Android component and why does it matter?+

An exported Android component (an Activity, Service, Broadcast Receiver, or Content Provider with android:exported="true") can be reached directly by any other application installed on the same device, bypassing the app's own UI entirely. If an exported component performs a sensitive action without independently verifying the caller's identity or permissions, any co-installed app — malicious or otherwise — can trigger that action directly, as illustrated by AND-002 in this sample.

How is deep-link security tested in an Android penetration test?+

Deep-link testing verifies that both custom-scheme (e.g., novasphere://) and HTTPS App Link deep links treat their parameters as untrusted external input, requiring the same confirmation and authentication steps as the equivalent in-app action before committing any sensitive account change. A deep link that commits a sensitive action immediately on open, without confirmation, can be triggered silently via SMS, email, or a compromised webpage — as illustrated by AND-004 in this sample.

How is biometric authentication tested on Android?+

Testing verifies that a biometric or local-authentication gate is cryptographically bound to a Keystore-backed CryptoObject operation requiring genuine biometric authentication to succeed, rather than relying on an app-level boolean flag set after a successful BiometricPrompt callback. A boolean-only implementation can be bypassed on a rooted or instrumented device using standard runtime-hooking techniques without ever satisfying the underlying cryptographic operation, as illustrated by AND-010 in this sample.

What is mobile-API integration testing and why is it tested separately from the app itself?+

Mobile-API integration testing exercises the backend endpoints a mobile client depends on directly — via an interception proxy or crafted requests — rather than only through the app's own UI, because client-side controls (confirmation screens, UI-level checks) are not a substitute for server-side authorization. A mobile-only endpoint can have an authorization gap that does not exist on an equivalent web-channel endpoint, and testing the mobile API directly is the only way to confirm the server independently re-validates every authorization decision the client assumes it has already made, as illustrated by AND-003 in this sample.

Why are root-detection and tamper-detection findings not rated Critical?+

OWASP MASVS treats resilience controls — root detection, tamper detection, obfuscation, anti-debugging — as explicit defense-in-depth: their absence does not itself constitute a directly exploitable vulnerability, since a resilience-control bypass requires a device the attacker already controls (rooted or instrumented). This sample report follows that same guidance, rating the consolidated root/runtime-integrity finding (AND-013) High rather than Critical for that reason, consistent with OWASP's own weighting of resilience controls relative to the other seven MASVS categories.

Is this Android penetration testing report based on a real client?+

No. This is a fictional sample/demonstration report and does not represent an actual client engagement. NovaSphere Digital Technologies, Inc. and the NovaSphere Pay Android application are fictional, and no real client environment, application, or backend was assessed.

25 · VIEW FULL SAMPLE PDF

View the full sample PDF

The complete 113-page illustrative report, including the full methodology, APK metadata and manifest/component registers, all 47 detailed findings with evidence panels, the MASVS coverage matrix and MASWE/MASTG traceability appendix, the risk heatmap, attack-chain analysis, remediation roadmap, and every appendix — Android test case register, APK metadata register, manifest & component register, API endpoint register, MASVS coverage matrix, MASWE/MASTG traceability, finding register, evidence register, and test account & device register.

NovaSphere Digital Technologies, Inc. Android Application Penetration Testing Report — Sample.pdf
ANDROID APPLICATION PENETRATION TESTING REPORT · OWASP MASVS/MASTG/MASWE · NovaSphere Pay · 113 Pages · Illustrative Sample
26 · REQUEST A SIMILAR ASSESSMENT

Request a similar assessment

Looking to validate your own Android application's security directly? TMG Security's Mobile Application Security Testing team can scope a real Android (or iOS) penetration test built with the same structure, methodology, and reporting depth shown in this sample — static and dynamic analysis, IPC and component security, mobile-API integration testing, OWASP MASVS-aligned coverage, a full finding register, and a remediation roadmap your engineering team can execute against. TMG's offensive security practice also covers API Security Testing, Web Application Security Testing, and the broader Offensive Security & Penetration Testing program this assessment type sits within.