What is DAST? Dynamic Application Security Testing Explained
DAST stands for Dynamic Application Security Testing. It's a security testing method that attacks your running application from the outside — the same way an attacker would — looking for vulnerabilities that are only visible when the application is actually executing.
The "dynamic" part is the key distinction. Unlike source code analysis, DAST doesn't need access to your codebase or build system. It interacts with your deployed application through HTTP, probing inputs, manipulating requests, and observing responses to identify exploitable weaknesses.
If you've been asked to implement "DAST scanning" for a security audit, compliance requirement, or DevSecOps program, this guide explains what that actually means, what DAST can and cannot find, and how to choose the right approach for your team.
How DAST Works
A DAST scan typically proceeds in two phases:
Phase 1: Discovery (Crawl)
The scanner maps your application's attack surface. It follows links, submits forms, and catalogues every accessible endpoint, parameter, and input vector. For modern web applications, this includes:
- HTML pages and rendered content
- Form inputs and query parameters
- API endpoints (REST, GraphQL)
- Cookies and session tokens
- HTTP headers
- File upload handlers
The quality of discovery directly determines the quality of the overall scan. A scanner that misses half your endpoints will miss half your vulnerabilities.
Phase 2: Active Testing (Attack)
The scanner systematically injects payloads into every discovered input and analyses the application's response. It's looking for responses that indicate a vulnerability — an error message that leaks database information, a reflected payload in a response, an unexpected redirect, or a timeout that suggests a blind injection.
This is real attack simulation. A DAST tool sending SQL injection payloads is doing the same thing an attacker would do, just systematically and automatically.
What DAST Finds (and Doesn't Find)
DAST excels at finding vulnerabilities that manifest as observable application behaviour:
| DAST Finds Well | DAST Struggles With |
|---|---|
| SQL injection (classic and blind) | Business logic flaws |
| Cross-site scripting (XSS) | Insecure direct object references requiring specific IDs |
| Open redirects | Race conditions |
| Server-side request forgery (SSRF) | Complex multi-step authorization flaws |
| Directory traversal | Cryptographic implementation errors |
| Exposed admin interfaces | Logic bugs in business processes |
| Weak TLS configuration | Source-code-level vulnerabilities with no external signal |
| Known CVEs in web software | Stored vulnerabilities requiring specific trigger paths |
| Misconfigured security headers | Privilege escalation requiring account context |
| Sensitive file exposure |
DAST is not a silver bullet — no single testing method is. It's most effective when combined with SAST (static code analysis) and periodic manual penetration testing. The three methods complement each other: SAST finds code-level issues early, DAST finds runtime issues in deployed applications, and manual pentesting finds logic flaws that neither automated method catches reliably.
DAST vs SAST: The Key Differences
Security testing tools generally fall into two categories:
SAST (Static Application Security Testing) analyses your source code, bytecode, or binaries without executing the application. It runs in your build pipeline, finds issues before deployment, and can scan code that isn't yet running anywhere. Common SAST tools include Semgrep, SonarQube, and Checkmarx.
DAST (Dynamic Application Security Testing) tests your running application from the outside. It doesn't need source code access, runs against deployed environments, and finds runtime vulnerabilities that only appear when the application is actually executing.
The practical implication: SAST catches issues you introduced in your code; DAST catches issues that emerge from the combination of your code, your dependencies, your configuration, and your runtime environment.
A misconfigured web server exposing admin paths, an outdated WordPress plugin with a known CVE, a TLS certificate using a deprecated cipher suite — none of these are "in your code" in the way SAST understands it, but all of them are exploitable vulnerabilities that DAST will find.
DAST vs IAST: The Other Variant
IAST (Interactive Application Security Testing) is a third variant that instruments your application with agents to observe security behaviour from inside during test execution. It gets you more accurate results and better context than pure DAST, but requires language-specific agents and deep integration into your testing infrastructure.
For most teams, DAST is the practical starting point — it works against any web application regardless of language or framework, requires no code changes, and can scan production without access to source code.
How DAST Fits into a DevSecOps Pipeline
DAST is typically deployed in two modes:
Continuous Scanning
Automated DAST runs on a schedule — daily, weekly, or triggered by deployments. This catches regressions quickly and ensures your application's security posture doesn't silently degrade between manual assessments. Most DAST platforms offer scheduled scanning for this purpose.
CI/CD Integration
DAST can also be triggered as part of your deployment pipeline, running a fast "baseline" scan against your staging environment before promotion to production. This is more complex to configure correctly — aggressive DAST scanning is too slow for most pipelines — but passive or reduced-scope scans can be practical.
The key decision is where to draw the line between "fast enough for CI" and "thorough enough to matter." Most teams end up with a lightweight pipeline check plus scheduled comprehensive scans rather than trying to do everything in CI.
Common DAST Tools
The DAST market includes a wide range of options:
Open Source
- OWASP ZAP — the most widely used open-source DAST tool. Powerful but requires significant expertise to configure well and interpret results accurately.
- Nikto — a web server scanner that checks for dangerous files, outdated software, and common misconfigurations. Fast and lightweight, but less thorough than a full DAST platform.
- Nuclei — template-based vulnerability scanner with a large community-maintained template library covering known CVEs and common misconfigurations.
- sqlmap — purpose-built for SQL injection testing. Extremely thorough on its specific target class.
Commercial
- Invicti (formerly Netsparker) — enterprise DAST with proprietary proof-based scanning. Accurate but expensive.
- Burp Suite Pro — the industry standard for manual web application security testing. Has automated scanning capabilities but is primarily a manual testing tool.
- Tenable Web App Scanning — integrated with Nessus for teams that want unified infrastructure and application scanning.
- HCL AppScan — enterprise DAST, common in regulated industries.
AI-Orchestrated
Ironimo takes a different approach: rather than building a proprietary scanning engine, it runs 19 real Kali Linux security tools (nmap, nikto, nuclei, sqlmap, testssl, whatweb, and more) in AI-orchestrated sequence. The AI layer decides which tools to chain based on what each scan discovers — nmap findings inform which nuclei templates run, whatweb fingerprinting determines which CMS-specific checks to apply.
Every scan shows you exactly which tools ran, what commands were executed, and the raw output. No proprietary black box — you can verify any finding yourself.
What Makes a Good DAST Result?
The output quality of a DAST scan varies enormously depending on the tool and how it's configured. A good DAST report should give you:
- Evidence, not just assertions. The scan should show you the specific request that triggered the finding, the response that confirmed it, and ideally a proof-of-concept exploit payload. A finding with no reproducibility evidence is a guess.
- Severity context. Not all vulnerabilities are equal. A critical SQL injection in your authentication flow is categorically different from a missing security header on a static marketing page.
- Remediation guidance. What specifically needs to change? Vague advice ("sanitise inputs") is less useful than specific guidance ("parameterise this query in the login endpoint").
- Low false positive rate. The more false positives in a report, the less your developers will trust the tool — and the more likely they are to ignore real findings.
DAST for Compliance
Most security compliance frameworks require some form of dynamic application testing:
- PCI DSS (Requirement 6.3): Requires web application security testing, including both automated vulnerability scanning and penetration testing for internet-facing applications.
- SOC 2 (CC7.1, CC8.1): Requires monitoring for vulnerabilities and validating that changes don't introduce new security issues. DAST evidence satisfies these controls when paired with a remediation tracking process.
- ISO 27001 (Annex A.12.6): Requires technical vulnerability management. Regular DAST scanning with tracked remediation satisfies this requirement.
- GDPR (Article 32): Requires "a process for regularly testing, assessing and evaluating the effectiveness of technical and organisational measures." DAST scanning is direct evidence of this.
In practice, auditors want to see three things: that you scan regularly, that you track findings, and that you remediate them in a reasonable timeframe. The tool choice matters less than the process.
How Often Should You Run DAST?
The right scanning frequency depends on your deployment velocity and risk tolerance:
- Minimum viable: Monthly comprehensive scan of all production-facing applications
- Standard practice: Weekly automated scans, plus scans triggered by significant deployments
- Best practice: Continuous scanning with daily or per-deployment runs, integrated into your security monitoring workflow
The gap between "monthly" and "continuous" represents a meaningful difference in mean time to detect a newly introduced vulnerability. If you deploy code multiple times per week and scan once per month, you might be running vulnerable for weeks before you know it.
Getting Started with DAST
If you're implementing DAST for the first time, start with these steps:
- Pick a staging environment to target first. Run your first scans against staging, not production. Aggressive DAST scanning can generate significant server load and may trigger rate limiting or WAF rules.
- Disable WAF blocking for the scanner IP. A WAF that blocks your scanner's payloads will give you false negatives — findings you'd have had without the WAF. Most WAFs support allow-listing scanner IPs for testing.
- Configure authenticated scanning. Unauthenticated scanning only tests your public surface. Providing session credentials lets the scanner test the much larger authenticated attack surface.
- Establish a baseline. Your first scan will likely produce a large number of findings. Triage them: fix criticals immediately, schedule highs, and document your acceptable risk for informational findings.
- Build a remediation process before you scale scanning. DAST findings without a process to act on them produce noise, not security improvement.
Ironimo runs 19 real Kali Linux tools in AI-orchestrated sequence — nmap, nikto, nuclei, sqlmap, testssl, and 14 more. Every scan shows you exactly what ran, what was found, and what to do about it. No proprietary engine, no black box.
Start free scan