◉ DETECTION & RESPONSE — SELF-HOSTED

Your rule catalog is not a detection engine.
SocEyes makes it one.

SocEyes captures raw packets off the wire, evaluates 6,500+ detection rules from Sigma, Elastic, Wazuh and Panther against live traffic, triages every hit with AI, and can contain confirmed threats in-kernel — from one self-hosted stack.

6,570+
live matchers
161
MITRE techniques
4
rule engines
<2s
packet to alert
// The pipeline

Packet in, containment out

Four stages, one data path. Every stage is watermark-tracked and survives restarts; nothing is re-processed and nothing is dropped silently.

01 — CAPTURE

Raw packets on the wire

A Go agent reads AF_PACKET directly from the interface — no pcap middleman. Ethernet, IPv4, TCP, UDP and ICMP are decoded; 512-byte payload snapshots ship with every event.

02 — DETECT

Every rule, every event

The rule engine compiles your full catalog — Sigma, Elastic detection-rules, Wazuh XML and Panther Python — into matchers and evaluates each captured event against all of them.

03 — TRIAGE

AI decides what matters

Fired alerts go through LLM triage with a true/false-positive verdict and confidence score before any human or automation sees them.

04 — RESPOND

Containment on the wire

Confirmed hits trigger response playbooks. block_egress writes an nftables set entry, packets drop in-kernel, and TTL rollback restores connectivity automatically.

// The console

Built for the 3 a.m. shift

Thirteen operator views on a single flight-deck design system: severity is the only loud color, every table streams live, and the state of the whole stack is visible from the top bar.

SocEyes dashboard with KPI strip, timeline and alert table
Dashboard — KPI strip with sparklines, 24h timeline, severity donut, AI-verdict alert table
SocEyes live alerts view
Alerts — live-fire alerts with rule citations, triage verdicts and response preview
SocEyes response actions view
Responses — enforcement actions with TTL, rollback state and audit trail
SocEyes log explorer view
Logs — unified event explorer across capture, IDS and platform sources
// Rule engines

Four platforms. One matcher loop.

The compiler turns each platform's native format into event matchers — verified with true-positive and false-positive probes on real payloads. Rules that can't discriminate (empty enrich indices, upstream stubs) are skipped with a stated reason.

EngineCompiledNotes
Sigma3,103 / 3,108Full detection grammar: selections, keywords, |contains|all, 1 of, not/and/or
Elastic1,503 / 1,764KQL, EQL and Lucene parsed natively; ESQL and threat-match joins skipped
Wazuh1,089 / 1,305match/regex from source XML, program_name and level filtering
Panther867 / 1,024Real rule() Python executed in a restricted namespace
// Also in the box

Everything an operator asks for next

Behavioral network detectors

Port scans (T1046), SSH brute force (T1110), SYN floods (T1498), C2 beaconing with jitter analysis (T1071) and volume-based data exfiltration (T1041) run continuously over the capture stream.

Threat-intel enrichment

Abuse.ch Feodo and URLhaus feeds sync into a local indicator store on a schedule you control. Events touching a known-bad IP or domain are enriched and the corresponding TI rules fire.

A catalog that actually runs

Most tools treat imported rules as documentation. SocEyes compiles them into executable matchers — a rule that can't evaluate against real events is skipped loudly, never silently.

Self-hosted, one binary per role

API + detection loop in one FastAPI process, capture agent as a static Go binary, embedded SQLite with Elasticsearch as an optional accelerator. No cluster required.

Flight-deck console

A dense operator UI: ECAM-style status bar, KPI strip with sparklines, timeline, severity donut, MITRE playbook view and live alert tables — all streaming from real data.

Full audit trail

Every detection, triage verdict, response action and rollback is recorded in the unified store with actor, rule citation and timestamp. Query it from the console or the API.

// Setup

Running in minutes

Linux host with Docker (for test traffic) and root access for capture. Everything else — Python env, Go toolchain for the agent build — is handled by the installer.

01

Clone and install

One command sets up the Python environment and builds the Go capture agent.

git clone https://github.com/devansh/soceyes.git
cd soceyes
./soceyes install
02

Start the stack

The API boots with the detection loop, rule engine and response engine. First start indexes the full rule catalog.

./soceyes start
./soceyes status # health, rule counts, detector state
03

Point an agent at an interface

Run the capture agent as root (AF_PACKET needs CAP_NET_RAW) on the interface you want watched.

# e.g. watch container traffic
sudo SOC_API_URL=http://127.0.0.1:8088 \
SOC_AGENT_INTERFACE=docker0 ./bin/soceyes-agent
04

Open the console

The flight-deck UI runs on port 3000 and streams live from the API on 8088.

cd frontend && npm install && npm run dev
# http://localhost:3000