TL;DR: SAST catches code-level issues early and DAST validates runtime behaviour, but both miss business logic vulnerabilities and authorization flaws, which remain widespread across tested applications, according to Gecko Security. The shift is toward contextual analysis that understands application intent, not just patterns or deployed responses.
At a glance
What this is: Gecko Security argues that SAST and DAST cover syntactic and runtime issues but still leave business logic and authorization flaws largely undetected.
Why it matters: That gap matters because application security teams can have broad testing coverage and still ship broken access control, so IAM and authorization assumptions need context-aware validation.
By the numbers:
- Business logic vulnerabilities affect 100% of tested applications.
- AI-generated code introduces security flaws in 45% of cases.
Context
SAST and DAST are useful security testing controls, but they answer different questions than the ones business logic flaws raise. Static scanning looks for known bad patterns in code, while dynamic testing checks how a running application behaves. Neither one is designed to prove that an application enforces the right access decisions for its own business rules, which is where authorization failures and intent-level flaws appear.
That distinction matters to IAM practitioners because application authorization is not just a coding issue. It is a governance issue about whether the system's access logic matches policy, identity context, and expected workflow boundaries. When testing stops at syntax or runtime response, teams can still miss broken access control that affects how users, services, and roles are allowed to interact.
The article's starting position is typical of modern application estates: teams often assume two complementary scanners create complete coverage, but the residual risk sits in behaviour the scanners were never meant to interpret.
Key questions
Q: What breaks when SAST is used as the only application security control?
A: SAST alone misses runtime behaviour, deployment misconfigurations, and issues that only appear when code is running in a real environment. It also creates false confidence if teams treat static findings as proof of safety. The result is a gap between code quality and exploitable risk, especially for authentication, secrets, and integration flaws.
Q: Why do business-logic flaws create more risk than simple scanner findings?
A: Because they often sit inside valid application behaviour, not obvious misconfigurations. An attacker can use normal login flow, then move through allowed states until the application exposes data or actions outside the intended role. That makes business-logic flaws harder to spot, more likely to survive release, and more damaging when they are discovered by an adversary first.
Q: What do teams get wrong about DAST and authorization testing?
A: Teams often assume DAST can validate access control because it can reach the endpoint and see a successful response. In practice, DAST is built to detect structural flaws, not business ownership rules. Authorization testing needs identity context, multi-session logic, and knowledge of expected data boundaries to be meaningful.
Q: How should teams reduce business logic risk in applications that use IAM controls?
A: They should verify that business rules and entitlement rules match each other, then test the most sensitive actions for incorrect object access, role escalation, and missing conditional checks. The goal is not more scanning volume, but better proof that access decisions reflect the intended policy.
Technical breakdown
Why pattern matching misses business logic flaws
SAST relies on code-pattern recognition, data-flow analysis, and taint tracking to identify known vulnerability shapes before deployment. That works well for issues such as injection or hardcoded secrets because the bad pattern is recognisable across codebases. Business logic flaws are different: the problem is not that code matches a known exploit pattern, but that the application fails to enforce the security property its workflow requires. A missing authorization check, incorrect state transition, or broken object-level decision may be structurally valid code while still being insecure.
Practical implication: security teams need analysis that can validate intended behaviour, not just syntactic weakness.
Why DAST still leaves deep authorization paths untested
DAST exercises a live application from the outside, using crawling, parameter manipulation, and payload injection to observe runtime responses. That helps confirm exploitability, but only for paths the tool can reach through normal interaction. Complex workflows, authenticated branches, and error-handling states often sit outside crawler coverage, especially when access depends on identity, role, or state. DAST therefore tends to validate surface behaviour rather than the full decision tree behind access control and business rules.
Practical implication: teams should treat DAST as runtime validation, not as proof that all security-sensitive paths have been exercised.
How contextual analysis changes application security testing
Contextual analysis combines source code with architecture diagrams, API contracts, design documents, and runtime behaviour descriptions to infer what the application is supposed to do. Instead of asking only whether a code path matches a signature, it asks whether the implementation aligns with intended security properties. That makes it possible to reason about missing authorization checks, broken access control, and privilege escalation chains earlier in the lifecycle. This is a meaningful shift for identity-aware applications, because the control question moves from detection of bad input to verification of correct entitlement enforcement.
Practical implication: teams should evaluate tools that can reason across design intent, identity context, and execution paths.
NHI Mgmt Group analysis
Business logic analysis is becoming an identity assurance problem, not just an application testing problem. When applications make access decisions, they are expressing policy as code. That means broken authorization is not merely a defect in software quality, it is a failure of entitlement enforcement. Practitioners should treat code-level access logic as part of the identity control plane, especially where human users, service accounts, and application roles intersect.
Contextual analysis is the named concept this article points to. Traditional scanners answer whether code looks risky or whether a runtime response is exploitable, but contextual analysis asks whether the implementation matches the intended security behaviour. That is the right frame for modern SDLC security because workflow intent, architecture, and identity context now determine whether a flaw is actually dangerous. Security teams should measure tools by their ability to validate intent, not just detect patterns.
Broken access control remains the control failure that exposes the gap between tooling and governance. SAST and DAST can both be technically effective and still leave the most consequential authorization mistakes untouched. The governance lesson is that security testing coverage must include behavioural correctness, not only vulnerability signatures. Practitioners should align application testing with the access decisions that their IAM and authorization model is supposed to guarantee.
AI-generated code increases the pressure on intent-aware testing. When code is produced faster than humans can review every branch, pattern-based scanning becomes even less sufficient. The risk is not simply more vulnerabilities, but more insecure decision logic embedded in otherwise plausible code. Teams need controls that can keep pace with code velocity while still verifying that the application enforces the right security properties before release.
Security teams should stop treating SAST and DAST as complete complements. They are necessary controls, but they are not sufficient for applications where authorization is part of the product logic. The better model is layered assurance: syntactic detection, runtime validation, and intent-aware analysis working together. Practitioners should redesign their control set around decision correctness, not only defect detection.
What this signals
Context-aware testing is becoming the practical answer to business logic risk. Security teams cannot rely on signatures alone when the defect is a failure to enforce intent. The programme implication is that application security, IAM, and engineering teams need a shared model of which decisions matter and how those decisions are verified before release.
SAST and DAST still matter, but only as part of a layered assurance strategy that includes design review, workflow testing, and identity-aware validation. The teams that keep treating scanner output as coverage will continue to miss the faults that matter most to business control.
Decision correctness is the control objective that should now sit alongside defect detection. That is especially true where applications sit on top of roles, tokens, or service identities. Practitioners should measure whether security testing proves the intended access decision, not merely whether a known vulnerability was detected.
For practitioners
- Map authorization rules to application workflows Document which business actions require which roles, attributes, or state transitions, then verify that those decisions are explicit in design and code review.
- Test high-risk logic paths beyond crawler coverage Focus manual review and targeted tests on authenticated flows, deep links, multi-step actions, and object ownership checks that DAST may not reach.
- Add intent-aware review to pre-merge security checks Use code analysis that can reason over architecture context and design docs, not only rules that match known vulnerability signatures.
- Treat AI-generated code as a coverage multiplier Apply extra verification to AI-authored features because fast code production increases the chance that insecure access logic ships before review can catch it.
Key takeaways
- SAST and DAST are useful, but they do not prove that an application enforces the right business rules or authorization decisions.
- The article's evidence is stark: business logic vulnerabilities were found in 100% of tested applications, while AI-generated code introduced security flaws in 45% of cases.
- Application security teams should add contextual, intent-aware analysis so that identity and access decisions are verified before release, not inferred after deployment.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
MITRE ATT&CK addresses the attack and risk surface, while OWASP ASVS, NIST CSF 2.0 and NIST SP 800-53 Rev 5 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP ASVS | V8 — Authorization | The article centres on broken access control and missing authorization checks in application logic. |
| V10 — OAuth and OIDC | The article discusses authentication and runtime access behaviour, where token and login handling often intersects with control failures. | |
| Recommendation — Map sensitive workflows to V8 and verify that authorization rules are enforced for every privileged action. Review OAuth and OIDC implementations for access decisions that can bypass intended identity checks. | ||
| NIST CSF 2.0 | PR.AA-05 — Access Permissions, Entitlements and Authorizations | The central issue is whether applications enforce the correct entitlements and authorizations. |
| Recommendation — Use PR.AA-05 to validate that application access permissions match approved entitlements. | ||
| NIST SP 800-53 Rev 5 | AC-6 — Least Privilege | Broken access control and privilege escalation are direct least-privilege failures at the application layer. |
| Recommendation — Apply AC-6 to restrict application actions to the minimum privileges required for each workflow. | ||
| MITRE ATT&CK | TA0004;TA0006 — Privilege Escalation; Credential Access | The article's threat model includes access abuse and escalation through logic flaws. |
| Recommendation — Map exploit paths to TA0004 and TA0006 when testing how logic flaws enable unauthorized privilege gain. | ||
Key terms
- Business logic vulnerability: A business logic vulnerability is a flaw in how an application’s workflow or rules are enforced, allowing an attacker to misuse a process rather than break code directly. These issues often evade signature-based tools because the weakness lies in authorisation, sequence, or state handling.
- Contextual Investigation: The process of joining identity, device, approvals, ownership, and business purpose into one analysis so analysts can determine whether an action is legitimate. For modern IAM and NHI programmes, it is the bridge between raw telemetry and defensible response.
- Broken Access Control: Broken access control occurs when a system fails to restrict what an authenticated user, service, or workload can do. The issue often appears as missing checks, inconsistent enforcement, or excessive permissions. It is a structural weakness because attacks exploit the gap between verified identity and permitted action.
- Semantic Code Analysis: A method of examining code based on meaning and intent rather than only syntax or known patterns. It tries to understand how an application behaves across files, services, and call chains so it can detect logic failures that signature-based tools miss.
Deepen your knowledge
NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, IAM, and secrets management through a practitioner-led lens. It helps security teams connect identity controls to broader application and access decisions.
Published by the NHIMG editorial team on August 1, 2026.
Updated on October 13, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org