← Back to appsec.fyi

DAST vs IAST vs RASP

Three approaches to finding vulnerabilities at runtime — each with different tradeoffs.

DASTIASTRASP
When it runsOutside the app, against live endpointsInside the app during testingInside the app in production
VisibilityBlack-box — sees HTTP onlyGray-box — sees code paths + HTTPFull runtime context
DeploymentPoint at a URL, no code changesRequires agent in test environmentAgent deployed to production
False positivesHigher — no code contextLower — correlates request + codeLowest — real traffic only
CoverageOnly what it can reach via HTTPOnly exercised code pathsOnly production traffic paths
CI/CD fitIntegration tests, stagingQA and integration testingProduction monitoring
LanguagesLanguage-agnosticLanguage-specific agentsLanguage-specific agents

DAST

DAST tools like OWASP ZAP and Burp Suite scan running applications from the outside. They send malicious requests and analyze responses. The advantage is zero code changes and language independence. The downside is limited coverage — they can only test what they can reach through the UI or API, and they produce more false positives without code-level context.

IAST

IAST instruments the application during testing. An agent inside the runtime watches data flow from HTTP input through to dangerous sinks (SQL queries, file operations, etc.). This gives much better accuracy than DAST because it can see exactly which code path a payload takes. The tradeoff is language-specific agents and the requirement to run during active testing.

RASP

RASP is IAST's production cousin. It sits inside the running application and can both detect and block attacks in real time. Unlike a WAF, RASP sees the full application context — it knows whether a SQL string actually reached a query. The cost is production overhead and the need for language-specific agents.

Which to use

Most teams start with DAST in CI/CD because it's the easiest to deploy. Add IAST during QA for better accuracy. Consider RASP for production defense-in-depth, especially for apps that can't be patched quickly. None of these replace SAST — they complement it by finding runtime-only issues.

More comparisons: SSRF vs CSRF XSS vs CSRF XSS Types AuthN vs AuthZ IDOR vs BOLA SQLi vs NoSQLi SAST vs DAST Bounty vs Pentest SBOM vs SLSA Validation vs Encoding SCA vs SAST OAuth vs SAML Pentest vs Red Team WAF vs RASP