feat(go): add Phase 1 parity sidecar
This commit is contained in:
parent
65f5be6420
commit
f02509aab5
22 changed files with 947 additions and 6 deletions
16
README.md
16
README.md
|
|
@ -64,6 +64,12 @@ Project docs:
|
|||
> detectors, and JSON output. The bash version and the Python version share one
|
||||
> red-team harness, so every signature is exercised against both.
|
||||
|
||||
Phase 1 now also has an **experimental Go sidecar** under `go-agent/`. It emits
|
||||
the same `enodia.event.v1` envelope, captures an injectable `/proc` process
|
||||
view, and ports `deleted_exe` as the first parity-checked poll detector. It is
|
||||
stdout-only and does not replace, install over, or write state for the Python
|
||||
daemon; Python remains authoritative until subsystem parity is complete.
|
||||
|
||||
## Why these detectors
|
||||
|
||||
Every detector keys on a behavior that is **cheap to observe** and **expensive
|
||||
|
|
@ -162,6 +168,14 @@ enodia_sentinel/
|
|||
└── monitor.py runs the probe on a thread, routes events → rules
|
||||
```
|
||||
|
||||
The parallel Phase 1 tree is intentionally isolated:
|
||||
|
||||
```text
|
||||
go-agent/
|
||||
├── cmd/enodia-sentinel-go/ experimental JSONL sidecar
|
||||
└── internal/ config · model · system · detectors · schema · loop
|
||||
```
|
||||
|
||||
Three complementary detection paths feed one Alert → snapshot pipeline:
|
||||
|
||||
- **Poll** — every few seconds, sweep `/proc`/`ss` (catches anything lingering).
|
||||
|
|
@ -290,6 +304,8 @@ drill only sets the env var on a throwaway process.
|
|||
|
||||
```bash
|
||||
make test # stdlib unittest suite, no runtime deps
|
||||
make test-go # stdlib-only Go sidecar unit tests
|
||||
make parity-go # shared fixture: Go output vs Python oracle
|
||||
```
|
||||
|
||||
Detectors are pure functions over an injectable `SystemState`, so tests build
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue