Suricata — Network Integration
The suricata client integrates Highvolt with Suricata, an open-source network intrusion detection system. Suricata can extract files from network traffic; this client picks up those extractions and submits them for PII analysis.
Architecture
Network Traffic
│
▼
Suricata IDS
│ file extracted from traffic
├──► Stores file at: <suricata_path>/<sha256[0:2]>/<sha256>
└──► Publishes JSON to Redis key
│
▼
suricata client
│ polls Redis LPOP
│ queries highvolt-server (dedup)
│ submits file for analysis
▼
highvolt-server → LLM → OpenSearchHow it works
Suricata is configured to store extracted files and publish file metadata as JSON to a Redis list (pub/sub).
The
suricataclient polls Redis usingLPOPon the configured key in a tight loop (1-second sleep between empty polls).For each event, it extracts
fileinfo.sha256,fileinfo.md5,fileinfo.sha1,fileinfo.filename, andfileinfo.storedfrom the Suricata JSON.If
fileinfo.storedisfalse, the file was not saved to disk by Suricata — the event is skipped.The client queries
highvolt-serverto check if the SHA256 has already been analyzed.If not analyzed, it reads the file from disk (path:
<suricata_path>/<sha256[0:2]>/<sha256>), validates the MIME type against the configured list, base64-encodes the file, and submits it tohighvolt-server.After successful submission, the file is deleted from disk to avoid unbounded growth of the Suricata file store.
Suricata configuration requirements
In suricata.yaml, enable file extraction and configure the Redis output:
Also ensure file hashing is enabled:
Configuration (via JSONAir)
Debug flags
The suricata client supports granular debug logging that can be toggled at runtime via JSONAir:
redis
All Redis LPOP operations
submit
Raw JSON from Suricata and submission payloads
http
All HTTP requests/responses to highvolt-server
sleep
Loop sleep events
Submitted JSON structure
The submission to highvolt-server includes the original Suricata fileinfo JSON nested under a suricata field, along with device information from the host:
Last updated