Security Engineering & Tooling · Chapter 2 of 8
Testing what is deployed — DAST, secrets, and the commoditised scanners
Why DAST lost ground and where it still wins outright; why detecting a secret is almost worthless; and why nobody sells container scanning any more.
DAST — why it declined
- Single-page apps broke crawling. Client-side routing, a JavaScript-rendered DOM and async API calls defeat crawler-based discovery. Coverage silently collapses — and the scan still reports “complete”, which is the dangerous part.
- Runtime cost. A full scan takes hours to days. That is incompatible with gating a pull request.
- No root cause. It tells you an endpoint is vulnerable; somebody still has to find the line.
- APIs moved east-west. Machine-to-machine and internal traffic is invisible to a crawler that starts at a login page — and in 2025 APIs were 17% of published vulnerabilities but 43% of newly added KEV entries.
Where it still wins outright
1 — It tests what is actually deployed. It is the only category that sees the running configuration: the reverse proxy, the WAF (web application firewall) bypass, the misapplied header, the staging endpoint nobody knew was public. SAST cannot see any of that, because none of it is in the source.
2 — Authentication and session flaws. Session fixation, token handling, logout behaviour, cookie scoping.
3 — Zero false positives on confirmed exploitation. A tool that gets a reflected payload back has proven the finding. That is a stronger evidentiary position than any static finding, and it is why DAST output survives an argument with a developer.
4 — Schema-driven API testing, which is the modern form: point it at an OpenAPI or GraphQL schema — a machine-readable description of the API — instead of crawling for endpoints.
Two naming facts that date you if you get them wrong.
ZAP is no longer an OWASP project. It left OWASP in August 2023 for the Linux Foundation's Software Security Project, and the core team joined Checkmarx in 2024. It is still open source and free. Calling it “OWASP ZAP” in 2026 dates you by three years.
Burp Suite Enterprise Edition was renamed Burp Suite DAST in May 2025. Burp Professional is $499 per user per year as of January 2026 — and it is the manual testing standard, not a CI tool. Do not propose it as a pipeline gate.
Secrets — the one category with a real base rate
This is the only AppSec category with a credible, large-N, longitudinal measurement, for a simple reason: public GitHub is observable by anyone, so the finding is reproducible in principle rather than being vendor telemetry.
The counterintuitive finding, and the one to remember: private repositories are roughly six times more likely than public ones to contain a hardcoded secret. Developers self-censor in public. So every public-GitHub number is a floor, not a ceiling — your own estate is almost certainly worse than the headline. And about 28% of incidents originate outside repositories entirely, in Slack, Jira and Confluence, where those are 13 percentage points more likely to be rated critical.
The answer to “we found an AWS key in the repo”
Rotate first. Not “remove it and rewrite history” — that is the most common wrong answer and it fails for a concrete reason: forks, clones, caches and scrapers already have it, and the data says two-thirds of leaked credentials are still valid years later.
Then check what it did. Pull the audit log for the whole exposure window, not just today.
Then clean history. This is hygiene, not remediation.
Then turn on push protection, so it cannot recur. It is the least sophisticated control on the list and the highest-leverage, because it is the only one that prevents rather than reports.
Anyone who says “I'd rewrite git history” without saying “rotate first” has failed the question.
IaC and container scanning — where every 2023 guide is wrong
Two of the three tools every older guide recommends are dead. Terrascan was archived by Tenable in November 2025 — the repository notice reads that the project is no longer maintained. tfsec is deprecated in favour of Trivy, its own maintainer having consolidated all scanning efforts there.
| Live choice | Owner | Scope |
|---|---|---|
| Trivy | Aqua, Apache 2.0 | One binary: containers, IaC (it absorbed the tfsec check library), filesystem, Kubernetes, secrets, licences, SBOM |
| Checkov | Palo Alto (Cortex Cloud) | IaC-focused, very high release cadence, the strongest policy-as-code story |
| Grype | Anchore, Apache 2.0 | Vulnerability matching only — but composites CVSS + EPSS + KEV into a risk score |
Notice the strategic shape, because it is the actual answer to “which scanner should we buy”: this entire layer is free and open source, and two of the three leaders are maintained by the platform vendors themselves. The scanners are loss-leaders. Nobody sells container scanning any more — they sell the console that aggregates its output.
And what container scanning structurally cannot do: it tells you a package with a CVE is present in a layer. It cannot tell you the binary is ever executed, that the container runs as non-root, that capabilities are dropped, or that the image is the one actually deployed. Base-image CVE count is the single most-gamed metric in this category — moving to a distroless or Alpine base can drop the number by 90% while changing your real risk very little. If someone reports that as a security win, ask what stopped being exploitable.
Check yourself