StackHawk

Why Legacy DAST Fails for Modern Applications and How to Fix It

Scott Gerlach   |   Mar 17, 2025

LinkedIn
X (Twitter)
Facebook
Reddit
Subscribe To StackHawk Posts

APIs ARE Your Application: So Why Aren’t You Testing Them?

If you’re still using legacy Dynamic Application Security Testing (DAST) tools to secure your APIs, you’re leaving your biggest attack surface untested.

Legacy DAST was designed for a different era—one where applications were server-rendered, HTML-based, and had a predictable structure. But today’s applications aren’t static web pages. They are API-first, often built with Single Page Applications (SPAs) that dynamically fetch data from backend services. APIs aren’t just a supporting feature; they are the application.

Yet, most traditional DAST tools still rely on crawling web pages, looking for forms to submit, and using outdated session-based authentication. They completely fail to handle modern application security testing in an API-driven world.

Let’s dig into the details of why legacy DAST struggles with modern architectures, what’s actually required to test API security, and how StackHawk built a modern DAST solution that developers can use to catch vulnerabilities before they ship.

Why Legacy DAST Falls Short in an API-First World

1. SPAs Broke the Traditional Crawling Model

Legacy DAST tools rely on crawling to discover attack surfaces. This means they scan an HTML page, extract all the links, follow them to new pages, and repeat the process to map out the application. This worked when applications were built as multi-page, server-rendered sites where clicking a link loaded a new page with a new set of form fields and inputs.

But modern SPAs don’t work this way. Instead of loading new pages, SPAs dynamically fetch content from APIs and update the UI with JavaScript. This means:

  • No static URLs to crawl – An SPA might only load a single HTML page, with all application logic happening in the browser. Legacy scanners won’t even see most of the functionality.
  • Navigation is handled in-memory – SPAs use JavaScript frameworks like React, Vue, and Angular, which update the page state dynamically without full-page reloads. A scanner that doesn’t execute JavaScript fully won’t even recognize when the app has “navigated.”
  • User interactions are event-driven – Clicking a button in an SPA often triggers an API call, not a traditional form submission. Legacy scanners, expecting standard web form inputs, miss these interactions entirely.
  • Even if the crawler uses Javascript technology to try to navigate the web page, it’s a never ending task. When was the last time you got to the end of your Instagram feed.

For a security scanner, this means that the old method of crawling and form-based input testing is fundamentally broken. If a scanner can’t reach functionality through HTML crawling, it can’t test it for security risks.

2. APIs ARE the Application—And Legacy DAST Ignores Them

In traditional applications, business logic was executed on the server, and the frontend simply rendered the output. But in modern applications, the backend is an API that serves as the core of the application. The frontend—whether it’s a web app, mobile app, or third-party integration—simply consumes the API.

This means that APIs are the real attack surface. A malicious actor doesn’t need your UI to interact with your API; they can make direct API calls and attempt to exploit vulnerabilities.

Yet, most legacy DAST tools are still designed around web-based testing. They focus on clicking buttons, submitting forms, and testing page responses rather than interacting with APIs directly. If an API isn’t exposed through a visible web form, legacy DAST won’t find it—meaning it won’t test it.

“APIs are your application. Attackers don’t need your UI to exploit your app—if they can reach your API, they can attack it directly. Yet most legacy security tools still treat APIs as an afterthought.”

Attackers aren’t waiting for a scanner to discover an API endpoint. They use tools like Burp Suite, Postman, and Fuzzers to test APIs directly. Security teams should be doing the same.

3. Authentication in Modern APIs Breaks Legacy DAST

Traditional DAST tools expect authentication to work in a simple, session-based way—log in with a username and password, receive a session cookie, and carry that cookie forward in all requests. But modern applications use API-first authentication mechanisms like:

  • OAuth 2.0
  • JSON Web Tokens (JWTs)
  • API keys and token-based authentication

These authentication models don’t rely on session cookies, meaning a legacy scanner often can’t authenticate properly. If a scanner can’t authenticate, it can’t test any API endpoints that require authorization—leaving huge portions of the application untested.

“Login recorders” are exacerbating the problem. Making complex authentication look simple is the goal, but completely misses the mark. This leads to busted authentication every few days and ineffective scans.

Modern API security testing needs to handle real authentication flows, such as retrieving OAuth tokens, passing API keys, and maintaining authorization state across multiple API requests. Legacy DAST simply isn’t built for this.

4. Stateful API Workflows Aren’t Tested

Many API vulnerabilities don’t exist in a single request—they emerge when an attacker chains multiple requests together. This is particularly true for:

  • Broken authentication – Testing whether an expired or stolen token can be reused inappropriately.
  • Business logic flaws – Manipulating the sequence of API calls to gain unintended privileges.
  • Authorization bypasses – Checking whether certain actions are improperly exposed when replaying requests with modified parameters.

Legacy DAST tools operate in a stateless manner, meaning they send requests in isolation without maintaining API session state. If a vulnerability requires a specific sequence of actions to trigger, traditional scanning tools will miss it.

This is why API security testing must support stateful workflows—allowing testers to authenticate, retrieve tokens, make sequential requests, and analyze responses across multiple API interactions.

How StackHawk Solves API Security Testing

Instead of retrofitting crawling-based testing into an API-first world, StackHawk was built to test APIs directly, with features designed for how modern applications actually work:

1. Schema-Based API Testing

Instead of relying on web crawling, StackHawk ingests OpenAPI, GraphQL, gRPC, and SOAP schemas to identify API endpoints directly. This ensures that every API route is tested—not just the ones a crawler happens to find.

2. Direct API Security Testing

StackHawk sends API requests directly, applying security test cases to endpoints just like an attacker would. This eliminates the need for form-based input discovery and ensures that all attack surfaces are tested.

3. Full Authentication Support

StackHawk handles real API authentication methods, including OAuth, JWTs, and API keys. It authenticates like a real client, meaning authenticated API routes are actually tested. Oh, and we cover custom auth flows that someone might have built after drinking too much coffee.

4. Stateful API Workflows

StackHawk can execute sequences of API requests to test vulnerabilities that only appear in multi-step workflows—like authentication failures, session manipulation, and authorization bypasses.

5. Built for CI/CD

Unlike traditional security tools that run infrequently as part of separate security audits, StackHawk integrates into CI/CD pipelines, allowing security tests to run automatically during development. This means security issues are caught early, when they are easiest to fix.

Why This Matters for Application Security

Legacy DAST tools weren’t built for API-first applications, and retrofitting them to work in a modern security pipeline is an exercise in frustration. Crawling doesn’t work, authentication is broken, and APIs—the actual attack surface—go untested.

If you’re serious about application security, you need security testing that treats APIs as first-class citizens. StackHawk is built for exactly this purpose: API-native security testing that fits into modern development workflows.

APIs are your application. If you’re not testing them properly, you’re leaving your app exposed.

FEATURED POSTS

Security Testing for the Modern Dev Team

See how StackHawk makes web application and API security part of software delivery.

Watch a Demo

StackHawk provides DAST & API Security Testing

Get Omdia analyst’s point-of-view on StackHawk for DAST.

"*" indicates required fields

More Hawksome Posts