Safeguard
Concepts & Glossary
Detection & Analysis

DAST (Dynamic Application Security Testing)

Testing a running application from the outside, the way an attacker would.

Browse all concepts
◈ the lookup — detection & analysis — the deployed half of appsec
Definition

What is Dynamic Application Security Testing?

DAST tests a running application over the network, with no access to its source. It crawls the deployed surface to find every page, form, parameter and API endpoint, then sends crafted requests to each one and reads what comes back. If a request produces a response that a correctly-behaving application would not produce, that is a finding.

It is the only technique that tests what is actually deployed, rather than what the repository says should be deployed. Misconfigured headers, a debug endpoint left enabled, an expired certificate, a reverse proxy that strips an authentication header — none of these exist in source code, and all of them are exploitable.

Mechanism

How it works

A scan is a crawl followed by a check suite, and both halves need a budget:

  1. 01

    Crawl the surface

    Follow links, parse robots.txt and sitemaps, read OpenAPI and WSDL descriptions, extract endpoints from JavaScript bundles, and render single-page routes in a headless browser. What the crawl misses cannot be tested.

  2. 02

    Probe each input

    For every parameter, header and form field discovered, send payloads for the relevant vulnerability classes — injection, traversal, misconfiguration, exposed secrets — and record the exact request sent.

  3. 03

    Confirm with a differential

    A single anomalous response is not proof. Comparing against a baseline request, and against the same request unauthenticated, is what turns a suspicion into evidence a developer can reproduce.

Stakes

Why it matters

DAST finds the gap between the codebase and the deployment. Every organisation has one: a staging header that shipped to production, a route that bypasses the authentication middleware, an S3 bucket policy nobody reviewed. Static analysis cannot see any of it because none of it is in the source tree.

It is also the closest a scanner gets to an attacker's view. A DAST finding needs no interpretation — the request is right there, and running it again reproduces the result. That property is why DAST evidence tends to survive a triage meeting when SAST findings do not.

The cost is time. A thorough crawl of a large site is slow, and the check suite multiplies by the number of endpoints found, so a scan needs an explicit wall-clock budget rather than an open-ended one.

Value

What value it adds

Tests the deployment, not the repository

Configuration, infrastructure and routing bugs only exist in the running system.

Language-agnostic

It does not matter what the service is written in; it speaks HTTP or it does not.

Reproducible evidence

The stored request and response are the proof. Nothing has to be taken on trust.

Finds what nobody knew was exposed

The crawl doubles as asset discovery: forgotten subdomains, old admin panels, undocumented APIs.

Validates the fix

The same probe run after remediation either reproduces or it does not. Closure is a measurement, not a claim.

In the product

How Safeguard uses it

Safeguard's DAST engine crawls, probes and then re-tests, carrying the exact request, payload and observed response into every finding so the evidence chain survives into the report. Each scan mode carries its own wall-clock budget, so a large target cannot run indefinitely. See DAST and penetration-testing acceleration.

Scan what you actually deployed.

Give Safeguard a URL. Get a crawled surface map and reproducible findings with the request that produced them.

Browse all concepts

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.