TL;DR: Dynamic analysis tests running applications, catching exploitable runtime flaws in authentication, authorization, API behavior, and business logic that static tools miss, according to StackHawk. The case for pairing DAST with CI/CD, staging, and selective deeper analysis is no longer optional when release velocity is high.
At a glance
What this is: This is a guide to dynamic analysis and DAST, with the core finding that exploitable vulnerabilities often only appear when software is running.
Why it matters: It matters because IAM, NHI, and application security teams need runtime validation for authentication, authorization, and API-driven access paths that static analysis cannot prove safe.
By the numbers:
- A modern, shift-left DAST solution like StackHawk automatically discovers API endpoints, tests for OWASP Top 10 vulnerabilities, and delivers findings in formats developers understand.
👉 Read StackHawk's guide to dynamic analysis in software security
Context
Dynamic analysis is the practice of testing software while it is executing, which matters because many of the most exploitable defects only emerge in runtime conditions. In API-first systems, those defects often sit in authentication flows, authorization checks, and business logic paths that look fine in source code but fail under real traffic. For identity and access teams, that means runtime validation is part of access governance, not just AppSec hygiene.
The article argues that static analysis and code review remain necessary, but they cannot prove whether access control actually works in the deployed application. That is a meaningful identity governance issue for human users, service accounts, tokens, and AI-driven workflows alike, because the security boundary is enforced at runtime. In that sense, the starting position described here is increasingly typical for modern application teams, not exceptional.
Key questions
Q: How should security teams implement runtime testing in CI/CD pipelines?
A: Use a tiered model. Run fast DAST on pull requests for critical endpoints, broader runtime checks in staging, and deeper campaigns on a schedule. Keep the heaviest tests away from every commit so you preserve delivery speed while still validating the application as attackers would see it.
Q: Why do API-first applications need dynamic analysis more than older monoliths?
A: API-first systems expose more logic at runtime, including generated endpoints, auth flows, and business rules that source code review cannot prove are safe. Dynamic analysis verifies how the deployed service actually behaves, which is especially important when access control is spread across multiple services and tokens.
Q: What breaks when static analysis is used as the only security gate?
A: Static analysis can flag risky patterns, but it cannot confirm exploitability, runtime state changes, or environment-specific failures. Teams end up with false confidence because code that looks dangerous may be safe, while real bypasses, misconfigurations, or business logic flaws reach production undetected.
Q: How do teams decide between DAST, IAST, and fuzzing?
A: Start with DAST for broad external validation of running apps and APIs. Add IAST when you need deep data-flow traces in staging, and add fuzzing when malformed input is likely to expose parser or protocol weaknesses. The right mix depends on the failure mode you are trying to expose.
Technical breakdown
Why runtime behaviour reveals security flaws static tools miss
Dynamic analysis observes a live application as it processes requests, manages state, calls APIs, and handles authentication. That matters because exploitability often depends on timing, environment, or request sequence, none of which static analysis can confirm. A code pattern may look risky yet be harmless in practice, while a perfectly valid implementation may still permit auth bypass, misconfiguration, or business logic abuse once deployed. In API-heavy systems, runtime testing is the only way to verify what actually happens under real execution conditions.
Practical implication: test deployed or containerised builds, not just source, when access control or API abuse would create material risk.
DAST, IAST, and fuzzing serve different runtime purposes
Modern DAST tests exposed applications from the outside, which makes it practical for CI/CD and developer workflows. IAST instruments the runtime from within, giving deeper tracing of data flow but at the cost of agent overhead and environment complexity. Fuzzing complements both by sending malformed or unexpected inputs to uncover parser and boundary failures. These techniques are not substitutes for each other. They map to different parts of the runtime problem: external exploitability, internal traceability, and input robustness.
Practical implication: use DAST as the baseline runtime control, then layer IAST or fuzzing only where the risk profile justifies the added overhead.
How CI/CD changes the security model for dynamic testing
The article’s core operational point is that dynamic analysis must move into the delivery pipeline to remain useful. Fast checks belong in pull requests, broader validation belongs in staging, and deeper campaigns belong on a schedule. That tiered model reduces bottlenecks while preserving coverage. It also mirrors a broader identity lesson: if access decisions are only validated late, the environment has already changed and the control signal is stale. Runtime security works best when it is continuous, not ceremonial.
Practical implication: place fast runtime tests in PRs and reserve heavier scans for staging or scheduled runs to avoid turning security into a release blocker.
NHI Mgmt Group analysis
Runtime validation is now an identity governance issue, not just an AppSec preference. When applications are API-first, access decisions are enforced in code paths that static tools cannot truly verify. That creates a governance gap for human identity, machine identity, and token-based access alike, because the policy may exist on paper while the runtime behaviour remains unproven. Practitioners should treat runtime testing as evidence of control effectiveness, not a separate testing category.
Dynamic analysis exposes the gap between declared access policy and actual enforcement. The article shows why authentication and authorisation failures often survive code review. In NHIMG terms, this is a runtime enforcement gap: the system appears compliant until a real request sequence proves otherwise. That matters for service accounts, API keys, and AI-driven integrations that can traverse multiple endpoints in one execution path. The right lens is whether the deployed application enforces least privilege under pressure, not whether the source code looks secure.
API-first development creates a larger hidden attack surface than source code review suggests. Endpoints can exist in the running application, in generated routes, or in shadow APIs that developers do not immediately see. That widens the space where identity controls can fail silently, especially when test coverage does not include every path. For IAM and application security teams, the issue is not just test depth but discovery discipline. Practitioners should assume runtime exposure extends beyond what code search can reveal.
Tiered runtime testing is the only sustainable way to preserve velocity and assurance. The article correctly rejects the idea that every commit should trigger exhaustive dynamic analysis. High-frequency, low-latency checks catch regressions early, while deeper scans belong in staging or scheduled campaigns. That is the operating model mature teams need when delivery speed and security verification compete. The practical conclusion is simple: distribute runtime assurance across the pipeline, or accept blind spots at the point of release.
What this signals
Runtime enforcement gap: the biggest risk in API-heavy delivery is not whether a control exists, but whether it still holds when the application is actually executing. That shifts the programme question from test coverage in source control to enforcement evidence in deployed environments. Teams that cannot prove runtime behaviour will keep discovering problems after release, which is where remediation is most expensive.
For identity and access programmes, dynamic analysis should be read alongside runtime authorisation, token handling, and service-to-service trust. That makes it relevant to both human and non-human access paths, especially where APIs and delegated credentials shape the real attack surface. The operational signal is clear: if you cannot observe the runtime path, you cannot claim the access model is working as designed.
For practitioners
- Put runtime checks into pull requests Run fast DAST on critical endpoints and authentication flows during PR review so developers see exploitable issues before merge. Keep the scope narrow enough to finish in minutes, not hours, and focus on paths that would affect access decisions or data exposure.
- Reserve deeper dynamic testing for staging Use staging to validate full API flows, business logic, and environment-specific configuration that lightweight checks will miss. Mirror production architecture where possible so runtime findings reflect actual deployment conditions rather than lab-only behaviour.
- Layer fuzzing only where inputs justify it Apply fuzzing to parsers, protocol handlers, and other high-risk endpoints that process untrusted or structured input. Use it to expand coverage where malformed requests are likely to uncover crashes or edge cases, then confirm exploitability with runtime tests.
- Measure coverage drift and false positives together Track which new code paths are not being tested, and measure how often findings are noise. If coverage is shrinking while alert quality drops, developers will ignore the control and runtime assurance will erode.
Key takeaways
- Dynamic analysis matters because exploitable flaws often only appear when software is running, not when it is reviewed.
- API-first development expands the runtime attack surface, which makes DAST a practical control for validating authentication, authorisation, and business logic.
- The strongest operating model is tiered runtime testing in CI/CD, with heavier validation reserved for staging or scheduled deep analysis.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
MITRE ATT&CK address the attack and risk surface, while NIST CSF 2.0, NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST CSF 2.0 | PR.AC-4 | Runtime access control validation is central to this API security guide. |
| NIST SP 800-53 Rev 5 | SI-4 | Continuous monitoring is relevant where runtime behaviour must be validated after deployment. |
| CIS Controls v8 | CIS-16 , Application Software Security | The article is about testing running applications before release. |
| MITRE ATT&CK | TA0007 , Discovery; TA0009 , Collection; TA0010 , Exfiltration | Runtime flaws in APIs can enable attacker discovery, collection, and exfiltration paths. |
Validate deployed authorisation paths against PR.AC-4 and test runtime access decisions, not just code patterns.
Key terms
- Dynamic Analysis: Dynamic analysis is security testing that evaluates software while it is running. Instead of looking for suspicious code patterns, it observes real behaviour, request handling, state changes, and responses, which makes it useful for finding exploitable flaws that only appear at runtime.
- DAST Coverage: The proportion of discovered applications and APIs that are actually being tested by dynamic application security testing. It is a governance metric, not a scan count, because it shows whether the security programme is reaching the full attack surface or only a visible subset.
- IAST: Interactive Application Security Testing, or IAST, instruments an application from inside the runtime to track how requests move through code and data flows. It provides richer traces than external testing, but it usually requires additional deployment overhead and is best suited to controlled environments.
- API-first loyalty architecture: A loyalty platform design where business capabilities are exposed through stable interfaces instead of hard-coded changes. It lets teams connect commerce, CRM, POS, and messaging tools while keeping the underlying control logic governed and reusable across channels.
What's in the full article
StackHawk's full blog post covers the operational detail this post intentionally leaves for the source:
- Step-by-step guidance for wiring DAST into GitHub, GitLab, and Jenkins pipelines
- Workflow detail on how developers can reproduce findings with cURL and remediation context
- Expanded comparison of local, PR, staging, and deep-analysis testing tiers
- Practical notes on when API discovery can reveal shadow endpoints before deployment
Deepen your knowledge
The NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, machine identity security, and secrets management. It helps practitioners connect identity controls to the broader security programme that underpins safe software delivery.
Published by the NHIMG editorial team on August 1, 2026.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org