Skip to content

Evidence-fidelity gating, wider Sigma coverage, collector/canary reliability - #63

Merged
jayelbotvibe-web merged 1 commit into
mainfrom
improve/evidence-and-coverage
Jul 19, 2026
Merged

Evidence-fidelity gating, wider Sigma coverage, collector/canary reliability#63
jayelbotvibe-web merged 1 commit into
mainfrom
improve/evidence-and-coverage

Conversation

@jayelbotvibe-web

Copy link
Copy Markdown
Owner

Four improvement tracks. Every package passes go test; go vet and gofmt clean.

Track 1 — Evidence integrity (headline)

The normalizer now tags each event by source fidelity, and process_creation rules only accept genuine process-creation telemetry (Sysmon/EventChannel eventdata, auditd execve). Command-output/metadata scrapes (full_log, decoder name) are tagged low-fidelity and can never produce a false DETECTED — a log line that merely mentions a binary is no longer "proof" the process ran. Techniques whose collected events are all low-fidelity now report NO_TELEMETRY (collection gap) instead of MISSED (proven miss).

Behavior change: the Linux canary (echo + full_log) now correctly reports the pipeline as not healthy, since Linux has no real process-creation telemetry (already documented). Windows (real eventdata) and dry-run (synthetic top-level fields) are unaffected.

Track 2 — Sigma coverage

  • re (regex), numeric lt/lte/gt/gte, and keyword (full-text) search identifiers.
  • Non-string YAML scalars (EventID: 4688) coerced to string form.
  • README "supported subset" updated to match.

Track 3 — Reliability & scaling

  • Wazuh collector: date pre-filter reads only the day(s) a window spans instead of the whole archive; scan buffer enlarged so long archive events are no longer truncated past bufio's 64 KB default.
  • Canary executes once then polls until a deadline (configurable Checker), replacing fixed-interval re-fires — and is now unit-testable.

Track 4 — Tests & polish

  • New tests for the previously-untested canary and report packages, plus fidelity/regex/numeric/keyword/date-prefilter coverage.
  • HTML summary surfaces NO_TELEMETRY/INCONCLUSIVE; dry-run/synthetic runs print an unmistakable banner.

Note: gofmt -w normalized two untouched files (feed/emulation.go, server/server.go).

🤖 Generated with Claude Code

…y reliability

Track 1 — evidence integrity:
- Normalizer tags each event by source fidelity; process_creation rules now
  only accept real process-creation telemetry (Sysmon/EventChannel eventdata,
  auditd execve). full_log/decoder scrapes can no longer yield a false DETECTED.
- Techniques with only low-fidelity events report NO_TELEMETRY, not MISSED.

Track 2 — Sigma coverage:
- Add |re (regex), numeric lt/lte/gt/gte, and keyword (full-text) identifiers.
- Coerce non-string YAML scalars (ints/bools) in field values.

Track 3 — reliability & scaling:
- Wazuh collector adds a date pre-filter (reads only the day(s) a window spans)
  and enlarges the scan buffer so long archive events are not truncated.
- Canary executes once then polls until a deadline (configurable Checker),
  replacing fixed-interval re-fires.

Track 4 — tests & polish:
- New tests for the previously untested canary and report packages, plus
  fidelity/regex/numeric/keyword/date-prefilter coverage.
- HTML summary surfaces NO_TELEMETRY/INCONCLUSIVE; dry-run prints an
  unmistakable synthetic-pipeline banner.
- README/CHANGELOG updated to match code (gofmt normalized two untouched files).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jayelbotvibe-web
jayelbotvibe-web merged commit 2a45364 into main Jul 19, 2026
2 of 3 checks passed
@jayelbotvibe-web
jayelbotvibe-web deleted the improve/evidence-and-coverage branch July 19, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant