Static scans show potential behaviour, not verified behaviour. They can identify unsafe patterns in code and libraries, but they cannot confirm how the finished app behaves once SDKs, device APIs, and network conditions interact. For PCI and similar obligations, the missing piece is runtime proof that controls continue working after deployment.
Why static scans miss what PCI evidence actually needs
Static scanning is useful for finding risky code patterns before release, but PCI evidence usually has to prove something stronger: that the shipped app behaves securely in the real runtime environment. Mobile apps often depend on SDKs, platform APIs, OS-level protections, network state, and backend responses, so a clean scan does not tell you whether a control still works after installation, update, or configuration change.
That gap matters because PCI evidence is about demonstrated control operation, not just secure intent. If the evidence only shows source analysis, it may miss runtime-only failures such as insecure transport paths, unexpected data exposure through a third-party SDK, or a control that is bypassed once the app runs on a real device.
What static analysis can prove, and what it cannot
Static analysis can confirm that certain insecure constructs are absent or that known patterns are present in code, libraries, and manifests. It is a good early warning tool for hard-coded secrets, weak crypto choices, exposed permissions, or obviously unsafe dependencies. It is not, by itself, proof that the final binary enforces those controls in production conditions.
The limitation is that static scans inspect the app in isolation. They do not execute the full chain of behaviours that matter for mobile evidence, including runtime permission prompts, API calls, certificate handling, conditional logic, dynamic loading, or the way the app behaves when a device is offline, rooted, jailbroken, proxied, or under poor network conditions. For a control that only fails after those interactions, static review will not surface the failure.
When teams rely on static output alone, they can end up certifying code quality instead of control effectiveness. The result is a false sense of compliance: the app may look clean in the repository while the deployed build still leaks data, relaxes transport protections, or behaves differently because of third-party components. The strongest evidence usually combines static findings with runtime verification and configuration review.
How to build evidence that stands up in an audit
Mobile PCI evidence is strongest when it connects code analysis to observable runtime behaviour. A useful evidence set usually includes the final signed build, test results from a controlled device or emulator environment, logs or captures showing the control in operation, and versioned documentation showing what was tested and under which conditions. That gives auditors a line from implementation to behaviour.
- Use static scans to identify candidate weaknesses before release, then validate the most important controls on the running app.
- Test the actual build, not just source, because build steps and injected dependencies can change behaviour.
- Retain evidence that shows the control working under realistic device, network, and SDK conditions.
- Re-test after app updates, dependency changes, or mobile OS changes, because runtime behaviour can drift without a code-level regression.
For compliance work, this distinction also aligns with how PCI DSS v4.0 expects controls to be supported by evidence, not assumptions. In practice, the question is not whether the codebase looked safe during analysis, but whether the deployed app continued to enforce the expected protection.
Mobile teams often strengthen that evidence chain by mapping app controls to broader governance and audit expectations, especially where PCI overlaps with other regulatory programs. NHIMG’s Ultimate Guide to NHIs, Regulatory and Audit Perspectives is useful when you need to connect control evidence to auditability, and the Identity Security Regulatory Map helps place PCI alongside adjacent compliance obligations without losing the control-level view.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
NIST CSF 2.0 and OWASP ASVS set the technical controls, while PCI DSS v4.0 defines the regulatory obligations.
| Framework | Control / Reference | Relevance |
|---|---|---|
| PCI DSS v4.0 | 7.1 — Restrict Access by Business Need to Know | PCI evidence must show access controls work in the shipped mobile app. |
| 8.6 — Multi-Factor Authentication for Non-Console Administrative Access | Runtime proof is needed when app or admin access controls must operate after deployment. | |
| Recommendation — Validate that the deployed app enforces least-privilege access at runtime. Prove that authentication controls still function in the live mobile environment. | ||
| NIST CSF 2.0 | PR.AA-05 — Identity is authenticated and authorized before granting access to assets | The issue is whether access control still works in practice, not just in source. |
| Recommendation — Test the running app to confirm access is authenticated and authorized as expected. | ||
| OWASP ASVS | V16 — Security Logging and Error Handling | Runtime evidence often depends on logs and observed behaviour, not static code alone. |
| Recommendation — Capture runtime logs that show the control operating and failing safely. | ||
Practitioner Guidance
What to verify: Treat a static scan as an input, not a conclusion. If the control matters to PCI scope, verify it on the running build with the same SDKs, permissions, certificates, and network paths that production will use.
What good looks like: Good evidence shows the control surviving deployment, dependency resolution, and device-level behaviour, with enough traceability to explain why the app can be trusted in the tested state.
Common mistake: Teams often document the scan report as if it proves runtime security. It does not. The scan proves what was visible in code; PCI evidence needs proof of the behaviour that actually shipped.
Practitioner takeaway: Use static analysis to find where to look, then use runtime evidence to prove the control still works after the app is assembled, deployed, and exposed to real mobile conditions.
Related resources from NHI Mgmt Group
Deepen Your Knowledge
Free weekly newsletter
Subscribe to the NHI & AI Identity Journal
The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.
Bonus 33% off our NHI Course when you subscribe.
Reviewed and updated by the NHIMG editorial team on October 12, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org