DAV NGWAF Technical overview

Technical overview · For Red Hat reviewers

How DAV NGWAF works

DAV NGWAF is a host-based web application firewall for Red Hat Enterprise Linux. It reads the web server's access log, classifies each request, and, when the administrator enables enforcement, bans hostile IPv4 sources in its own nftables table. These pages explain what it installs, what it changes on the system, and what privileges it uses.

Certification target: Red Hat Enterprise Linux 10.2, x86_64, as a standalone, non-containerized application (Red Hat certification ID 744987, in progress). The engine is also built and tested on ARM64.

Components

ComponentWhat it doesRuns asRequired
Detection engine (davco_ids)Reads the NGINX access log, evaluates every request, writes detections and structured events, and requests bansdavco, a locked service account with no shellYes
Enforcement helper (davco-ip-enforce)The only privileged entry point. Validates each request and adds or removes addresses in DAV's nftables setsroot, called through one narrow sudo ruleOnly with enforcement
Firewall loaderLoads DAV's own ip davco4 nftables table, in log or drop moderoot, oneshotOnly with enforcement
XDP packet filterDrops banned addresses at the network interface, before the kernel network stackrootOptional, installed disabled
Event ingestion (davco-ingest)Commits structured events to PostgreSQL for reportingunprivilegedOptional
DAV SOCWeb dashboard and REST API for detections, bans and MITRE ATT&CK classificationsweb server and an unprivileged API serviceOptional

From log line to ban

1. NGINX writes the request
All sites on the server log to one shared access log in a key-value format the engine parses (client address, host, method, URI, status, timing, user agent, referrer).
2. The engine reads it
The engine follows the log from its end, checking for new lines every 100 ms, and handles log rotation and truncation.
3. The request is evaluated
Rule-based checks, behavior tracking and, if enabled, the machine-learning model produce a verdict and a reason.
4. A decision is recorded
Every detection is written to the engine's logs and as a structured event. In monitor-only mode, the process stops here.
5. A ban is requested
With enforcement enabled, the engine asks the root helper to ban the address. The helper validates it and adds it to an nftables set with a 48-hour timeout.
6. The kernel drops the traffic
DAV's nftables chain drops packets from banned addresses, including on connections that were already open. With XDP enabled, they are dropped earlier, at the network interface.

Design principles