Drift detection
Drift detection vergelijkt sha256 van een vooraf gedefinieerde set config files tegen een hub-side baseline. Iedere wijziging die niet binnen 5 minuten van een Emergency Action Token (EAT) heeft plaatsgevonden wordt geflagd als drift.
Default watched paths
Agent v1823+ hash’t deze 8 paden bij elke 6-uur inventory cycle:
/etc/nginx/nginx.conf/etc/postgresql/main/postgresql.conf/etc/postgresql/main/pg_hba.conf/etc/ssh/sshd_config/etc/sudoers/etc/sudoers.d/monsys/etc/systemd/system/monsys-agent.service/etc/caddy/CaddyfileOperator override via tenant_settings.drift_watched_paths (Postgres
TEXT[] kolom). Agent zal in v1.5 de tenant-specifieke lijst ontvangen
via heartbeat-response.
Hub-side flow
agent.config_hashes → ingest_extended handler: FOR EACH (path, sha256): - new path: INSERT baseline (authorised, first-sighting) - same hash: noop - changed hash + EAT in laatste 5 min: UPDATE baseline (authorised) - changed hash + GEEN EAT: INSERT drift_events + warning alertdrift_events is een TimescaleDB hypertable (30-day chunks). Per drift
event:
| veld | inhoud |
|---|---|
agent_id, path | wat |
sha256_old, sha256_new | first-8-chars getoond in alert |
authorised_by_eat_nonce | NULL = drift, ingevuld = expected change |
detected_at | TIMESTAMPTZ |
resolved_at, resolution_note | operator-resolved |
Geen file-contents opgeslagen — alleen hashes. Privacy-respecting (we weten dat sshd_config gewijzigd is, niet wat erin staat).
Trust Score integratie
configuration_drift is een 15%-gewogen component in Trust Score.
Penalty: -10 per unauthorised drift event in laatste 30 dagen.
Agents op binary < v1823 sturen geen config_hashes — voor die agents blijft de drift component blanked met UI hint “agent on older binary — upgrade to enable drift detection”. Geen valse 100-score.
Auto-resolve
AutoResolveWorker (5-min tick) sluit drift-alerts wanneer:
- Het onderliggende
drift_events.authorised_by_eat_nonceingevuld is (operator markeerde de change als legitiem), OR drift_events.resolved_atingevuld is (operator klikte resolve)
Resolution notes: 'auto: drift event authorised or resolved'.
Wat het NIET dekt
- File-deletion: hash van een niet-bestaand bestand is leeg — baseline behoudt oude hash, geen alert. Geplanned voor v1.5.
- Directory-tree changes: alleen exacte paden, geen recursieve
watch.
/etc/nginx/conf.d/*.confvereist tenant-config van elk pad. - Real-time: drift wordt pas gedetecteerd bij de volgende inventory cycle (default 6h). Voor sub-minuut detectie zou inotify nodig zijn — dat is op de roadmap.
- Windows: v1 is Linux-only. Windows registry monitoring via
reg queryparse komt in v1.5.