Every detection — SIGMA, OCCAM, behavioral hunt, Suricata IDS rule — is normalized into a single JSON envelope, then published to whatever transport fits your environment. All three publishers run in the same rockfish alert process. No queue, no broker mandatory.
The transport of choice for IoT and OT. Light wire format, native TLS, topic-based routing. Suited for environments where alerts feed directly into PLCs, SCADA HMIs, or edge brokers.
For enterprise pipelines that already terminate in Kafka. Each alert becomes a record with a partition key derived from src_ip, preserving order per asset.
For everything else. POST to one or many HTTP endpoints — n8n, Node-RED, FluentBit, PagerDuty, or your own SOAR. Payload identical to MQTT and Kafka.
Whether it lands in Splunk via Fluent Bit, fires a Slack message via webhook, or steers a PLC via MQTT — it's the same envelope. Severity, score, ATT&CK tactic, recommended action, full forensic context.
Critical / high / med / low — drives downstream routing.
Tactic + technique ID on every behavioral alert.
Per-detection action hint your SOAR can act on.
Flow stats, timing, entropy, PCR — everything that drove the score.
Rockfish doesn't replace your SIEM, your SOAR, or your ticketing system. It feeds them.
Fluent Bit · Vector · Filebeat
Forward MQTT or webhook output into Splunk, Elastic, QRadar, Sentinel, Chronicle, Wazuh, or any HEC-compatible target.
n8n · Node-RED · Tines
Trigger workflows on the webhook receiver. Use recommended_action to fork: isolate, throttle, ticket, page.
Jira · ServiceNow · Linear
POST severity-1 alerts straight to a queue. Severity-3+ batched into a daily digest.
Slack · Teams · PagerDuty
Webhook to chatops or paging. Filter by severity, segment, or detection type at the publisher.
Local MQTT broker
Subscribers on the broker drive segmentation enforcement, PLC isolation, or SCADA HMI banners — entirely on-prem.
Anything that POSTs JSON
If it accepts a webhook, it works. HMAC-signed for verification on the receiver side.
No vendor cloud, no telemetry callback, no remote license check at alert time. The plant's data stays at the plant.
Mosquitto, EMQX, NanoMQ — whatever you've already qualified for the plant network.
Bare-metal, MSK on a private VPC, or a single-broker dev cluster — same wire protocol.
Most workflow runners (n8n, Node-RED) ship as a single binary. POST stays inside the host.
Compliance-aligned for CMMC AU/SI, NERC CIP, and IEC 62443. Audit log of every published alert is retained locally.
Deploy Rockfish NDR in minutes. Single binary. No dependencies. Air-gap native. The plant's data stays at the plant.
Now we want to prove it.
We are looking for defense contractors, water utilities, power facilities, manufacturing plants, and C3PAOs to deploy Rockfish NDR in a production environment at no cost. Slots are limited.
Requirements are simple: you run it, we support it, you tell us what you think. If that sounds like a fair trade, let's talk.