feat(go): port FIM/pkgdb/rootcheck integrity engines and add go-sidecar dashboard consumer
Adds sidecar-only, --state-dir-gated FIM, package-DB-anchor, and rootcheck
engines to the Go migration sidecar, wired into agent.Sweep/Initialize
behind the existing baseline lifecycle. Adds a read-only, schema-checked
Python dashboard consumer (go_sidecar_state_dir, /api/go-sidecar/*, Sidecar
tab) that never starts, stops, or mutates the Go sidecar's state.
Also fixes drift found while reconciling this work: enodia_sentinel/web.py
had reinvented local schema constants instead of using the canonical
enodia_sentinel/schemas.py catalog (now registers enodia.go.sidecar.v1
there and reuses ALERT_SNAPSHOT_V1/INCIDENT_V1); docs/RULES.md had drifted
from what `rules docs` actually generates for SIDs 100069-100078 (ruleops.py
was missing metadata for four SIDs and had stale drill text for four more),
now back in sync with a regression test pinning them together.
Updates CLAUDE.md, README.md, go-agent/README.md, and docs/{ROADMAP,
GO_PORT_HANDOFF,SURICATA_ASSIMILATION,THREAT_MODEL,OPERATIONS,SCHEMAS,
COMMAND_REFERENCE}.md to reflect the landed work.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NQivSKBqQJsayz1xcYqWzZ
This commit is contained in:
parent
1d1dee7f6e
commit
d835386381
43 changed files with 3419 additions and 72 deletions
|
|
@ -300,9 +300,23 @@ Exit criteria:
|
|||
now provide truthful retained counts and basic process context. A private,
|
||||
atomic `enodia.incident.v1` index now applies the shared lineage-first/time-
|
||||
window grouping, assigns real snapshot `incident_id` values, and persists
|
||||
correlation SID `100080`. The Python service remains the production default
|
||||
until rich enrichment/assurance, management-console consumers, and broader
|
||||
subsystem parity land.
|
||||
correlation SID `100080`. Hot-path enrichment adds bounded process/parent
|
||||
context, lineage, remote-IP classification, and candidate paths synchronously,
|
||||
while a 16-job asynchronous worker adds streamed executable hashes, file
|
||||
metadata, and package-owner strings under a query bound. The sidecar now also
|
||||
has sidecar-only, `--state-dir`-gated FIM (`fim-baseline.json`, SIDs
|
||||
`100017`–`100020`, optional `pacman -Qkk` verification), package-DB anchor
|
||||
(`pkgdb_verify`, SID `100021`), and rootcheck (procfs/sysfs/`ps`/socket/
|
||||
module-taint/kernel-taint/promiscuous-mode cross-view checks) engines that
|
||||
run asynchronously off the sweep loop and return alerts through the same
|
||||
cooldown/snapshot/incident pipeline. Python's dashboard gained a first,
|
||||
explicitly read-only management-console consumer for this migration
|
||||
evidence: an opt-in `go_sidecar_state_dir` setting exposes `/api/go-sidecar/*`
|
||||
endpoints and a Sidecar dashboard tab that display the Go sidecar's retained
|
||||
heartbeat, alert snapshots, incidents, and event log without starting,
|
||||
stopping, or otherwise controlling the Go process. The Python service remains
|
||||
the production default until notification fan-out and broader subsystem
|
||||
parity land.
|
||||
|
||||
## Backlog
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue