DAV NGWAF Technical overview

How requests are judged

Detection pipeline

Each request from the access log passes through a fixed sequence of checks. The result is a verdict, a reason, and, for some reasons, a ban request. The engine judges behavior over time rather than reacting to a single odd request.

Input

The engine parses NGINX's key-value access log format. It trusts X-Forwarded-For only from loopback, so a client cannot forge its own address through the header. Client attribution is preserved when NGINX proxies to backend servers.

Checks, in order

StageWhat it looks forEffect
Dangerous methodsHTTP methods with no place on a public siteAccumulates toward a threshold
Absolute-URI requestsProxy-style request lines used to probe for open proxiesAccumulates toward a threshold
Certificate challengesACME HTTP-01 validation paths, so certificate renewal is never disruptedAllowed
Admin-panel probesRequests for administration interfaces the site doesn't runAccumulates toward a threshold
Exempt pathsA small, customer-specific list of paths that legitimately look unusual, such as an auto-refreshing dashboardSkips the remaining checks
Blocklist patternsRequests for sensitive files and known attack paths, such as .env files, .git metadata and configuration filesBan
Webshell patternsRequests matching known webshell names and behaviorsBan
Machine learning (optional)A CNN-GRU neural network compiled into the engine scores the requestBan when the score crosses the threshold

User-agent anomalies are logged but do not cause a ban on their own.

Behavior over time

Addresses that are never banned

The machine-learning model

The model is a CNN-GRU classifier trained on labeled real-world HTTP traffic on an NVIDIA GPU, then exported to a native Rust implementation compiled into the engine binary. No Python runtime or separate inference service runs in production. The native implementation was validated against 2,013 reference cases, matching the training framework within a maximum difference of 2.3e-6, with no change in any verdict at the thresholds tested. It runs on standard CPUs.

Outputs

OutputContents
Detection logOne line per detection: time, source, method and path, status, reason, ML score and the checks evaluated
Structured eventsNewline-delimited JSON, consumed by the optional ingestion service and DAV SOC
Enforcement logBan and unban actions, duplicate suppression and connection cleanup results
Statistics and latencyPeriodic counters and per-stage processing times