TriageWall turns high-volume Suricata and actionable Wazuh alerts into a source-aware investigation queue. Deterministic policy handles repeat noise; a local security model reasons over what remains.
No cloud model. No telemetry. Read-only with respect to your sensors.
Real v0.4 interface · sanitized demo workspace
Twenty-second product tour
From volume to investigation.
See the overview, multi-source queue, bounded search, and source-aware investigation view using sanitized fixture data.
99%+typical prefilter ratio after tuning
6–13KSuricata alerts per hour sustained
7–10slocal model latency on an RTX 4060
266alert operator evaluation baseline
The operating model
Two tiers, because neither tier is enough alone.
Signature matching is fast and context-free. A local model is contextual and slow. TriageWall places them in series and keeps the operator in the final decision loop.
01
Deterministic policy
Resolve known noise cheaply.
Validated, scoped Suricata rules can match direction, CIDR, protocol, ports, and private asset context. Missing context fails open to normal model review.
Microsecond hash lookups
No inference cost
Explicit operator-owned reasoning
02
Local model
Reason over the long tail.
Residual Suricata evidence and admitted Wazuh alerts pass through source-specific isolation before a local Ollama model returns a verdict, confidence, and reasoning.
Real, false positive, or uncertain
Source and agent provenance retained
Operator feedback recorded
Architecture
A triage layer, not another sensor.
TriageWall reads what your existing tools already detect. It does not block traffic, modify sensor rules, or replace Wazuh or Suricata.
01
Read local streams
Tail Suricata eve.json and, optionally, a same-host Wazuh alerts.json volume with durable checkpoints.
02
Project by source
Build a bounded Suricata or Wazuh evidence shape. Untrusted strings stay data, not instructions.
03
Classify locally
Use deterministic policy where it applies and a local Ollama model for the residual queue.
04
Review with context
Persist the verdict beside source provenance, model reasoning, and revisioned exact-IP asset snapshots.
Hostile-input boundary
The alert stream can write text into the prompt.
TriageWall treats sensor evidence as attacker-controlled input. The shipped classifier combines source-specific projection, value encapsulation, a strict three-field response contract, and a per-process canary check.
No sensor or production stream is required for a first look. The default stack includes a demo mode so you can inspect the workflow before granting access to anything real.
Docker Compose v2Ollama8 GB+ VRAM recommended
quick start
$ git clone https://github.com/aaronphifer/triagewall.git
$ cd triagewall
$ cp .env.example .env
$ docker compose up -d
Set DEMO_MODE=true, then open localhost:8084.
TriageWall v0.4
Keep the telemetry. Review the signal.
Free, open source, and built in public for operators who already self-host their security stack.