Skip to main content

Chapter 2: Why ADR? — The two timelines

Persona: All (conceptual anchor for the rest of the handbook)

Time to read: 5 minutes

The core insight: your AppSec team and your SOC team each operate on a different timeline. These timelines collide at one critical point — exploitation. ADR exists at that intersection.

2.1 The vulnerability lifecycle

This is the AppSec team’s timeline. It runs left-to-right over days, weeks, or months.

VULNERABILITY LIFECYCLE (AppSec's World)

01_vulnerability_lifecycle.png

Key reality: The vulnerability exists in production for weeks or months before it’s patched. During this entire window, attackers can exploit it. Scanners find it eventually; ADR detects exploitation in real time.

2.2 The Incident lifecycle

This is the SOC team’s timeline. It runs top-to-bottom from minutes to hours.

INCIDENT LIFECYCLE (SOC's World)

02_incident_lifecycle.png

Without ADR: The AppSec timeline and Incident timeline operate in silos. AppSec tracks tickets; SOC triages alerts from the perimeter. Neither has full context at the exploitation point.

With ADR: The ADR solution sits at the intersection and: - Tells the SOC: “This attack is targeting this specific vulnerability in this specific function of this specific application” — context no WAF or EDR can provide - Tells AppSec: “This vulnerability isn’t theoretical — it’s being actively exploited right now” — reprioritizing the backlog instantly - Optionally blocks the exploit in real-time without waiting for a patch.

2.3 Where the timelines intersect

The two timelines cross at exploitation — the moment an attacker uses a known or unknown vulnerability in a running application.

03_timelines_intersection.png

Without ADR: The AppSec timeline and Incident timeline operate in silos. AppSec tracks tickets; SOC triages alerts from the perimeter. Neither has full context at the exploitation point.

With ADR: The ADR solution sits at the intersection and: - Tells the SOC: “This attack is targeting this specific vulnerability in this specific function of this specific application ” — context no WAF or EDR can provide - Tells AppSec: “This vulnerability isn’t theoretical — it’s being actively exploited right now ” — re-prioritizing the backlog instantly - Optionally blocks the exploit in real-time without waiting for a patch.

Why runtime visibility is different

To understand why ADR can do what WAF, EDR, and NDR cannot, you need to understand where the sensor sits.

WAF

EDR

NDR

ADR

Where it observes

HTTP traffic at the network edge

OS-level processes, files, and network connections on the endpoint

Network traffic between hosts

Inside the application runtime — in the same process as your code

What it sees

Request syntax and patterns

Process trees, file writes, socket connections, memory-based exploits

Packet payloads (if not encrypted)

Decrypted input, decoded parameters, the actual function call, the data flow from request to database to response

Encryption

Sees traffic after TLS terminates at the load balancer/proxy — blind if TLS terminates at the app

Not applicable (OS-level)

Blind to TLS-encrypted traffic without a decryption infrastructure

Operates inside the app process — TLS has already terminated. Sees cleartext regardless of where encryption ends.

Encoding/obfuscation

Sees the raw request. Attackers routinely bypass WAFs with encoding tricks (double-encoding, Unicode, case variation).

Not applicable

Same limitation as WAF if inspecting payloads

Sees the input after the application has decoded it — the actual value that reaches the vulnerable function, not the encoded version on the wire

Can it confirm exploitation?

No — it matches patterns on requests. A “suspicious” request may be benign; a benign-looking request may be an exploit.

No — it sees symptoms (suspicious process) but not root cause (which vulnerability, which input)

No — same limitation as WAF

Yes — it observes the malicious input reaching a vulnerable function and executing. Confirmed, not inferred.

Detection implication: Because the agent is inside the runtime, ADR provides verified detections. When ADR says “SQL injection exploited in execute() ,” it observed the injected query reach the database driver. A WAF saying “SQL injection pattern detected” is a guess based on request syntax — it doesn’t know whether the payload reached a vulnerable function or was harmlessly discarded by the application’s own input handling.

Response implication: Because detection is confirmed at the code level, blocking is surgical. ADR Block Mode terminates execution when a known vulnerability is actively being exploited — not when a request looks suspicious. This is why Block Mode can run in production with a low false-positive rate: the blocking decision is based on observed code-level exploitation, not pattern matching. A WAF in block mode must choose between aggressive rules (more false positives, more legitimate traffic blocked) and permissive rules (more attacks pass through). ADR doesn’t face that trade-off — it blocks what it can confirm.

2.4 ADR controls overlay

Where ADR provides value across both timelines:

Lifecycle Stage

What ADR Does

Who Benefits

Code Written → Deployed

Runtime analysis identifies vulnerabilities as code executes (not just static patterns)

AppSec

Vuln Discovered

Discovers vulnerabilities via runtime instrumentation; confirms exploitability

AppSec

Exposure Window

Monitors exploitation attempts in real time

SOC + AppSec

Exploitation (Intersection)

Detects and verifies the exact exploit, function, input, and data flow — confirmed real, not a pattern match

SOC

Exploitation (Intersection)

Outcome Verification — reports whether the attack succeeded or was blocked, so the SOC can prioritize confirmed successful exploits

SOC

Exploitation (Intersection)

Blocks the exploit at the application layer (Block Mode)

SOC + Eng

Containment

Provides precise context for surgical containment (which app, which route, which function)

SOC

Remediation

Identifies exact code location and remediation guidance

AppSec + Eng

Ticket Prioritization

Elevates actively-exploited vulns above theoretical ones

AppSec

Patch Verification

Confirms the vulnerability is no longer exploitable after deployment

AppSec + Eng