BLOG
BLOG
Annual testing secures a moment. Your app keeps changing. Here is how to cover the interval between assessments.
An annual penetration test answers a precise question. Was this version of this application secure when a skilled tester examined it?
That answer has real value. It is independent, deep, and finds business logic flaws that no scanner will ever surface.
It is also a photograph.
By the time the report is filed, your team has shipped new builds, your SDK vendors have published new versions, and researchers have disclosed vulnerabilities in components that were already in your binary when the tester signed off.
None of that makes the annual test wrong. It makes it incomplete on its own.
This is not an argument for replacing manual penetration testing with automation. It is an argument for covering the interval between assessments, which is where most of the year happens.
Three things move independently of your testing calendar. Each one creates exposure that the last assessment could not have seen.
Every build produces a new artifact. Features ship, dependencies get bumped, build configurations get adjusted, and each change carries the possibility of introducing a weakness that was not present when the app was last assessed.
For a team shipping fortnightly, the version tested in March bears limited resemblance to the version running on customer devices in September.
This is the vector most programs underestimate, and it works in two distinct ways.
Those two situations look identical from the outside and require completely different detection methods.
A control that was adequate in March can become inadequate by September without a single line of your code changing. New bypass techniques get published, platform security models shift, and attacker tooling improves.
June 2026 offered a clean example. Google's Android Security Bulletin patched 124 vulnerabilities that month, including CVE-2025-48595, a privilege escalation flaw in the Android Framework rated CVSS 8.4 and confirmed by Google as being under limited, targeted exploitation.
CISA added it to the Known Exploited Vulnerabilities catalog on June 2 and gave federal agencies until June 5 to remediate. Pixel devices received the fix immediately, while other manufacturers required additional testing and customization before distribution.
No application team wrote that vulnerability, and no application rebuild resolves it. Your binary stays the same while the operating system beneath it, and the patch state of the fleet it runs on, move on timelines you do not control.
Periodic assessment rests on an assumption that rarely gets stated out loud. It assumes there is a gap between the moment a vulnerability becomes known and the moment it becomes dangerous, and that a reasonably diligent team can act inside that gap.
That assumption no longer holds.
Mandiant's M-Trends 2026 report found the mean time-to-exploit fell to negative seven days in 2025. Attackers are now exploiting vulnerabilities an average of a week before public disclosure, compared with a positive five-day gap as recently as 2023.
Google's Threat Intelligence Group tracked 90 zero-day vulnerabilities exploited in the wild during 2025, with 48% of them targeting enterprise technologies, an all-time high.
Read those two findings together and the implication for scheduling is direct. If exploitation frequently precedes disclosure, the interval between assessments is not quiet time waiting to be sampled.
It is the period during which most of the risk accrues.
This also sharpens a distinction that programs often blur. Testing every new build catches vulnerabilities that arrive with new code, and it does that job well.
It cannot surface a newly disclosed vulnerability sitting inside an application that has not been rebuilt, because no build event occurs to trigger a scan. Covering that requires a separate activity running on the disclosure calendar rather than the release calendar, and those two calendars never align.
For nineteen editions, Verizon's Data Breach Investigations Report gave the same answer to the question of how attackers get in: stolen credentials.
In 2026, that changed. Exploiting a vulnerability overtook credential abuse as the leading initial access vector, accounting for 31% of breaches against 13% for credentials, after climbing from 20% the year before.
The same dataset found that third-party involvement in breaches rose 60% year over year, now appearing in 48% of all confirmed breaches. The report analyzed more than 31,000 security incidents and 22,000 confirmed breaches across 145 countries.
Both of those categories describe the artifact and its components rather than the person operating it. For a mobile application, both live inside a compiled binary that changes on your release cycle and inherit risk on somebody else's.
Annual testing did not become standard because security teams stopped caring about the intervening months. It became standard because several forces pushed in the same direction.
Audit cycles run yearly, and testing scheduled to satisfy an audit inherits the audit's cadence. Procurement treats penetration testing as a discrete engagement to be scoped, quoted, and approved, which suits an annual purchase far better than a continuous one.
Established assurance practice reinforced it further. For a long time, an annual independent assessment was genuinely the best available answer, and policy documents were written accordingly.
Resource constraints then made the default difficult to escape. In Australia, research by CyberCX and Per Capita forecasts a shortfall of as many as 30,000 unfilled cybersecurity positions, and ISACA's 2025 State of Cybersecurity research found 54% of Australian cybersecurity teams understaffed, with 58% reporting positions they cannot fill.
New Zealand faces a comparable shortage of roughly 3,500 professionals.
Against that backdrop, ASD's ACSC received more than 84,700 cybercrime reports in FY2024-25, broadly consistent with the previous year, while the number of incidents it responded to rose 11% to over 1,200.
None of this is unique to Australia and New Zealand. It describes the operating conditions of most enterprise security functions globally, which is why the shift discussed here is not regional.
No major framework currently mandates continuous mobile application security testing. That is not the argument.
The argument is that supervisory expectations have moved from point-in-time assurance toward testing whose frequency reflects how fast the thing being tested changes. If you read across jurisdictions, you will see that the direction is consistent.
APRA's Prudential Standard CPS 234 requires regulated entities to test their information security controls through a systematic testing program.
The standard ties both the type and the frequency of that testing to four things:
The words "penetration test" do not appear anywhere in the standard.
DORA requires financial entities to run a risk-based resilience testing program, with tests on ICT systems supporting critical or important functions at least yearly.
It also requires documented procedures for prioritizing, classifying, and remediating whatever those tests find.
The MAS Technology Risk Management Guidelines set expectations for testing proportionate to the risk profile of the system, with assessment frequency reflecting criticality rather than a fixed calendar.
The NIST Secure Software Development Framework describes security testing as an activity integrated throughout the development lifecycle rather than a gate applied at the end of it.
For an application that ships fortnightly, carries a dozen third-party SDKs, and supports customer transactions, an annual-only program is difficult to reconcile with a requirement that frequency track rate of change. That is the reconciliation problem, and it is the same one in Sydney, Frankfurt, and Singapore.
Treating this as a choice produces the wrong program. The two approaches cover different ground.
|
|
Annual penetration testing |
Continuous automated testing |
|
Primary value |
Depth and independent assurance |
Coverage across every build and every app |
|
Finds |
Business logic flaws, chained attack paths, abuse of legitimate transaction sequences |
Known vulnerability classes, insecure configuration, exposed secrets, vulnerable components |
|
Cadence |
Annual, plus major releases |
Every material build |
|
Scope |
Usually one or two priority applications |
The full portfolio |
|
Evidence produced |
Independent assessment report |
Per-build scan records and remediation history |
|
What it cannot do |
Cover the eleven months after the report |
Replicate human reasoning about business logic |
The practical failure mode is not choosing wrongly between them. It is running only the first and assuming it covers the second.
A program that reflects rate of change has five components. None of them requires removing the annual assessment.
|
Component |
What it does |
Cadence |
|
Automated testing on material builds |
Binary SAST, DAST, and mobile API testing triggered by the pipeline |
Every material build |
|
Risk-based release gates |
Blocks release on Critical and High findings for high-tier apps, alerts for lower tiers |
Per build, automated |
|
Scheduled rescanning and component monitoring |
Surfaces newly disclosed vulnerabilities in components inside apps already shipped |
On the disclosure calendar, independent of releases |
|
Findings routed into developer workflows |
Delivers confirmed findings into Jira, Slack, or ServiceNow within the same cycle |
Per finding |
|
Manual penetration testing |
Provides depth and independent assurance on priority applications |
Annual minimum, plus major releases |
The third row is the one most programs are missing entirely, and the EngageSDK timeline is why it matters.
There is no reliable industry benchmark for false positive rates, and the figure varies sharply by testing type.
Static analysis typically produces the most noise, commonly landing in the 20 to 30 percent range. Dynamic testing varies more widely, roughly 2 to 20 percent depending on configuration, while software composition analysis runs lower and manual penetration testing lower still.
Well-tuned tooling generally sits below 5 percent. That spread matters more than any average, because it determines how much of a security team's week goes to triage instead of remediation.
For a two-person team covering twenty applications, a scanner running at the high end of the static analysis range does not add coverage. It adds a queue.
This is the practical reason automation alone does not solve the resource problem. Automation plus validated findings does.
Appknox is an enterprise mobile application security testing platform built for the continuous half of this model.
Binary SAST analyzes the compiled .apk or .ipa without requiring source code, which means it covers third-party SDKs, binary hardening properties, and build-time configuration that source code review cannot reach.
AI-led automated DAST on real devices tests the running application on physical iOS and Android hardware under authenticated sessions, rather than on emulators.
Mobile API security testing covers the endpoints the app actually calls, including authorization gaps and data exposure on transaction endpoints.
Exploitability-led prioritization through KnoxIQ validates which SAST and DAST findings are actually reachable before they reach a developer queue, keeping the false positive rate on those findings below 1%.
All of it runs inside your existing CI/CD pipeline through native integrations, with a full assessment completing in under 60 minutes. Appknox also generates an SBOM from each compiled binary, which is the component inventory your monitoring process needs to trace a newly disclosed CVE to the specific apps and versions carrying it.
Appknox is rated 4.7 out of 5 on Gartner Peer Insights.
You do not need to restructure the program to make progress, and you do not need to cancel the annual assessment.
Pick your highest-risk application, usually the customer-facing one with transaction capability and the largest install base. Run a baseline binary scan against the current production build and compare what it returns against your most recent assessment report.
Pay particular attention to findings in third-party components. That is where the gap between the last test and today's reality is usually widest.
From there, connect that application to your CI/CD pipeline so scanning runs on every build, then extend to the rest of the portfolio in risk order. Keep the annual penetration test in place, and use the continuous findings to narrow its scope so the manual engagement goes deeper into what automation cannot reach.
Want a view of where your current program sits against this model? The Appknox mobile security self-assessment takes about five minutes.
No. Manual penetration testing finds business logic flaws, chained attack paths, and abuse of legitimate transaction sequences that automated tools do not reach, and it provides independent assurance that many frameworks expect.
Continuous automated testing covers the interval between those assessments across the full portfolio. The two are complementary, and mature programs run both.
Run automated binary SAST, DAST, and mobile API testing on every material build through your CI/CD pipeline. Add scheduled component monitoring for applications already in production, because a vulnerability disclosed for an SDK inside a shipped app will not surface through build-triggered scanning alone.
Keep manual penetration testing to a minimum annually and around major releases.
No. CPS 234 requires a systematic testing program whose nature and frequency is commensurate with the rate at which vulnerabilities and threats change, the criticality and sensitivity of the asset, the consequences of an incident, and how materially and frequently the asset itself changes.
For a frequently updated mobile application, that principle is difficult to satisfy with annual testing alone.
Build-triggered scanning detects issues introduced by new code, which it does well. It cannot detect a vulnerability disclosed after the fact in a third-party component sitting inside an application that has not been rebuilt, because no build event occurs to trigger a scan.
Covering that requires scheduled rescanning or component monitoring running independently of the release calendar.
There is no reliable industry benchmark, and rates vary sharply by testing type. Static analysis commonly runs in the 20 to 30 percent range and dynamic testing between roughly 2 and 20 percent, while well-tuned tooling generally sits below 5 percent.
The figure matters because triage volume determines how much of a stretched team's capacity goes to confirming findings rather than fixing them.
Begin with one high-risk application rather than the whole portfolio. Run a baseline scan on the current production build, connect that app to your CI/CD pipeline, then expand in risk order.
The annual penetration test stays in place throughout. Continuous findings can then narrow its scope so the manual engagement spends its time on what automation cannot cover.
Hackers never rest. Neither should your security!
Stay ahead of emerging threats, vulnerabilities, and best practices in mobile app security—delivered straight to your inbox.
Exclusive insights. Zero fluff. Absolute security.
Join the Appknox Security Insider Newsletter!