Hermes Wiki
Developer/Compliance/ControlsMonitoring/Fundamentals/continuous-controls-monitoring

Continuous Controls Monitoring

Concept

A compliance control that's documented once and checked again a quarter later has an unspoken assumption baked in: that nothing changed in between. In practice, things change constantly — someone disables a firewall rule during an incident and forgets to re-enable it, an IAM policy gets loosened for a one-off debugging session and never gets tightened back, a new engineer gets admin access without MFA enforced. A periodic manual review only catches these the next time someone looks, which can be months after the control silently stopped being true.

Continuous Controls Monitoring (CCM) replaces that point-in-time sampling with automated, ongoing verification: instead of a human taking a screenshot once a quarter to prove "MFA is enforced for all admin accounts," an integration queries the identity provider's API on a schedule (hourly or daily, not quarterly) and automatically flags the moment that statement stops being true. The underlying idea — continuous auditing and continuous monitoring as a pairing — predates modern SaaS compliance tooling by decades in the audit literature; what's changed by 2026 is that GRC platforms have industrialized it specifically for frameworks like SOC 2, ISO 27001, and PCI DSS, wiring evidence collection directly into cloud provider APIs, identity systems, and ticketing tools rather than relying on someone remembering to gather it.

The mechanical shift is from evidence as a snapshot to evidence as a stream: a control's compliance status becomes a live signal that can be alerted on, the same way an SRE alerts on an SLO burn rate rather than checking uptime by hand once a week. Auditors examining a Type II report increasingly expect to see that this stream existed and was watched throughout the observation period, not that someone reconstructed compliance retroactively during audit week.

Tradeoffs

Approach Benefit Cost
Periodic manual review (e.g. quarterly access-review spreadsheet) Low tooling investment; human judgment available for ambiguous or qualitative controls A control can drift out of compliance for months before the next review catches it; auditor sampling only ever proves the state at the moment sampled
Continuous controls monitoring (automated) Near real-time drift detection; evidence trail is always current, not reconstructed at audit time Real upfront integration cost; badly-scoped checks produce alert fatigue that buries real regressions in noise; doesn't help with controls that are inherently qualitative ("the incident response policy is followed in spirit")
Hybrid — automate the infrastructure-checkable controls, keep manual review for process/people controls Automation effort goes where it actually pays off Requires a deliberate triage of which controls are checkable via API versus which genuinely need a human judgment call — a design step teams often skip, defaulting to "automate everything" or "automate nothing"

When to use / when not to

  • Use once a documented control set already exists (see PolicyManagement) — CCM without a clearly stated desired state to check against is just alert noise with nothing to compare it to.
  • Highest value on technical, infrastructure-checkable controls: encryption-at-rest settings, access reviews, firewall/security-group configuration, patch and vulnerability status — anything with an API a monitoring tool can query directly.
  • Lower value, and often not worth automating, for controls that are fundamentally about human behavior or judgment (e.g. "engineers follow the incident response runbook") — these still need periodic manual verification, tabletop exercises, or interview-based review.
  • Don't buy or build CCM tooling before there's a defined control set to monitor — teams pre-audit-readiness are better served finishing the readiness assessment and policy work first.
  • Don't treat CCM as a substitute for the third-party Type II audit's independent sampling — it strengthens and speeds up the evidence trail an auditor examines, it doesn't replace the auditor's independent opinion.

Common pitfall

Two failure modes show up in practice, and they're mirror images of each other. The first is alert fatigue from over-scoping: monitoring every checkable signal without tuning thresholds or prioritizing which failures actually matter buries the one real regression in a flood of low-value noise, the same failure mode as a too-sensitive circuit breaker. The second, less obvious one is evidence that isn't actually retained: a tool reports "check passed" in a live dashboard but doesn't keep a timestamped, immutable record of when it passed and what was checked — so the organization looks continuously compliant in real time but can't reconstruct proof of that compliance for an auditor asking about six months ago. Continuous monitoring that doesn't produce durable, dated evidence hasn't actually solved the problem it was built for.

Engineering Lens

CCM is observability applied to compliance controls — the same instinct behind metrics and alerting for system health, pointed at "is this stated control still true right now" instead of "is this service still up." A control with no automated check attached is a control the organization is trusting blindly in the gaps between audits, exactly the way an unmonitored service is trusted blindly between manual spot-checks. The Principal-level framing that keeps this useful rather than performative: for every control that's been declared, name specifically what would actually happen the moment it silently stopped being true — and whether the organization would find out in minutes, or in the next scheduled audit.

Sources

Hermes Wiki