soc-metrics · v1.1 · 2026-09-24 · sha256 6c9f5f05bdd4ab3e
soc-metrics v1.1A
Immutable. This exact content is served forever at /api/v1/blob/6c9f5f05bdd4ab3e.
--- name: soc-metrics description: Calculate and interpret SOC performance metrics — MTTD, MTTA, MTTR, MTTC, alert-to-incident ratio, false-positive and automation rates, and agent cost/latency — with maturity context; use for KPI reporting and SOC performance questions. allowed-tools: search_cases get_case list_actions get_wazuh_alert_summary get_wazuh_statistics save_report metadata: category: reporting display_name: SOC Metrics standards: [nist-csf-2, nist-800-61r3] version: "1.1" --- # SOC Metrics Metrics should drive improvement, not vanity. Define precisely, compute consistently, and always show the trend and the sample size. ## Time metrics (per incident, then median and p90 over the period) | Metric | Definition | Start → End | |---|---|---| | MTTD — mean time to detect | how long the attacker was active before detection | first malicious activity → first alert | | MTTA — mean time to acknowledge | time until someone (agent or human) started work | case created → first triage finding | | MTTC — mean time to contain | time to stop the harm | case created → containment verified | | MTTR — mean time to respond/resolve | time to close out | case created → resolved/closed | Report **median and p90** alongside the mean — a few long incidents skew means. MTTD requires an incident timeline; mark it "n/a" where the start of malicious activity is unknown. ## Volume and quality | Metric | Formula | Healthy signal | |---|---|---| | Alert-to-incident ratio | alerts ingested ÷ cases opened | falling over time with stable coverage | | False-positive rate | cases closed `false_positive` ÷ cases closed | trending down; > 50% means tuning needed | | Escalation rate | cases reaching investigation ÷ cases opened | stable, explainable | | Automation rate | actions auto-approved or auto-executed ÷ all executed actions | increases only with low rollback rate | | Rollback rate | actions rolled back ÷ executed | < 5%; spikes mean over-aggressive autonomy | | Verification rate | executed actions verified ÷ executed | → 100% | | Approval latency | action proposed → approved (median) | within policy expiry | | Agent coverage | active Wazuh agents ÷ expected assets | → 100% | | Telemetry loss | alerts for rule 203 (event queue full) or rule 204 (queue flooded), and agents disconnected for > 1h (rule 504) | zero; any non-zero means detection blind spots. Get detail from `platform-engineer` | | MTTD | first attacker event time (from the log, not the alert `timestamp`) → case opened | falling; ingestion delay shows up as the gap between event time and alert time | ## Agent (swarm) performance Per agent: runs, error rate, median/p95 latency, tokens in/out, cost per run and per incident. Flag agents whose cost per incident rises without better outcomes, or whose error rate > 5%. ## Interpretation - Always compare with the previous equal period and state the sample size. - A metric moving the "good" way can be bad: a falling FP rate plus falling incidents may mean a detection broke. Cross-check with alert volume and agent coverage. - SOC-CMM style maturity hints: consistent metric definitions, trend review in a regular meeting, and metrics tied to improvement actions indicate a managed (level 3+) process; ad-hoc or unreviewed metrics indicate initial/defined levels. ## Output format ``` | Metric | This period | Previous | Change | n | ``` Follow with 3 bullet insights and 1–3 recommendations. ## Output - `save_report(kind="weekly"|"monthly", title, body_md)` or include the table in the report being written by `executive-reporting`. standard_refs: `NIST-CSF-2:ID.IM` (improvement).