Why configuration drift is the blind spot in most security audits

A firewall passes its quarterly audit clean. Six weeks later it's the entry point for an incident, and nobody touched the audit report in between — because nobody had to touch anything for the config itself to change.

Audits are a snapshot. Production isn't.

A config audit answers one question: is this device compliant right now, at the moment I ran the scan. That's genuinely useful, and it's also the entire limitation in one sentence. A router or firewall in active use gets touched constantly — a contractor troubleshoots something and leaves a temporary rule in place, an engineer opens a port for a one-off test and forgets to close it, a change gets pushed under time pressure without going through review, a "temporary" ACL exception from eighteen months ago is still there. None of that shows up anywhere unless someone happens to re-run the audit and happens to compare it against the last one, line by line, on their own.

Quarterly audit only
Audit
passes
Config
quietly changes
Caught 90 days
later, if at all
With drift detection
Audit
passes
Config
quietly changes
Flagged the
same day
The change is identical in both rows — only the time-to-detection differs

What drift detection actually checks

Drift detection flips the question from "is this compliant" to "did this change, and does the change matter." It keeps a baseline of a device's last-known-good configuration and, on whatever schedule you set, pulls the current config and diffs it — not a raw text diff (which drowns you in noise from timestamp comments and interface counters), but a structural diff that understands what changed semantically: a new ACL rule, a modified access-class binding, a service that got re-enabled, a password policy that got loosened.

Every detected change gets re-evaluated against the same rule set the original audit used. A change that doesn't affect any control is just noise — logged, not flagged. A change that reopens a finding that was previously fixed, or introduces a new one, gets surfaced immediately instead of waiting for the next scheduled audit to stumble onto it.

Why this matters more than another full audit

Running audits more often helps, but it's chasing the same problem with brute force — you're still only as current as your last scan, just more often. Drift detection is event-driven instead of schedule-driven: it catches the change close to when it happened, which is also close to when it's cheapest and easiest to explain ("what changed Tuesday afternoon" is answerable; "what changed sometime in the last quarter" usually isn't).

It also produces something a periodic audit doesn't: a real change history per device, tied to real findings, which is exactly what you want in hand during an incident review or when an auditor asks "how do you know this stayed compliant between assessments."

In practice: the highest-value drift alerts aren't the ones that say "something changed" — they're the ones that say "something changed, and it undid a fix you already made." That's the pattern worth watching for specifically: reopened findings, not just new ones.

Where it fits alongside a normal audit cadence

Drift detection isn't a replacement for periodic full audits — new checks get added to rule sets over time, and a fresh full pass catches things a diff against an old baseline never will. It's the layer that covers the gap between audits, which for most organizations is where most of the actual change happens.

Catch drift before it becomes an incident

ConfGoOne's Drift tab baselines a device once, then flags exactly what changed and whether it reopened anything.

Try ConfGoOne →
← Back to all posts