← All posts

NIST 800-171 and CMMC 2.0 on Windows Endpoints: From Control Family to Configuration You Can Audit

CMMC 2.0 turns NIST 800-171 into a contractual requirement for anyone touching Controlled Unclassified Information. On a Windows endpoint, most of its 110 controls resolve into concrete, readable configuration. Here is how the control families map to settings you can measure on a single machine, and where the fleet-wide assessment claim begins.

For years, NIST SP 800-171 was a standard defense contractors gestured at: 110 security requirements you were contractually obligated (via DFARS 252.204-7012) to implement if you stored or processed Controlled Unclassified Information (CUI), enforced almost entirely on the honor system. The Cybersecurity Maturity Model Certification — CMMC 2.0 — is what removed the honor system. With the program rule finalized and contract clauses rolling in, a third party (or, at lower levels, a signed-and-on-the-hook self-assessment) now has to verify those same 110 controls before you can win or keep the work. The standard didn’t get harder. The proof got real.

That shift rewards a particular mindset, and punishes another. If you treat 800-171 as a System Security Plan (SSP) you write once and file, you will scramble at assessment time and drift the day after. If you treat it as configuration state on real machines that you can read, set, and re-measure, the bulk of it becomes tractable engineering. On a Windows endpoint that touches CUI, an enormous share of those 110 controls is exactly that: configuration the operating system already exposes.

The Control Families Are Mostly Endpoint Configuration

800-171 groups its requirements into fourteen families. Walk them on a single Windows host and notice how many resolve into settings you can query directly rather than policy you merely assert:

Six of fourteen families, on one machine, are things the OS reports as readable state. You don’t have to interview the endpoint about whether it meets the controls. You can ask it:

# Read the full endpoint posture in one pass, free:
winsentinel --audit

# Capture it as structured evidence an assessor can ingest:
winsentinel --audit --format json --out cui-evidence.json

CMMC 2.0 Levels, and the SPRS Score Nobody Reads Closely Enough

CMMC 2.0 collapsed the old five levels into three. Level 1 covers the 17 basic safeguarding requirements for Federal Contract Information and allows annual self-assessment. Level 2 — the one that matters for most contractors — is the full set of 110 NIST 800-171 controls, with a triennial third-party (C3PAO) assessment for prioritized CUI. Level 3 adds a subset of 800-172 enhanced requirements for the highest-sensitivity programs.

The detail people miss lives in the scoring. Under the DoD Assessment Methodology you report a score to the Supplier Performance Risk System (SPRS) starting from 110 and subtracting a weight (1, 3, or 5 points) for each unmet control. The heaviest-weighted controls are precisely the endpoint hygiene ones — missing multifactor, missing FIPS-validated encryption, no malware protection. A single disabled BitLocker volume or a turned-off Defender doesn’t cost you a footnote; it can cost you five points and drop you below the bar.

The control that passes the assessment and silently regresses two weeks later is the one that fails you on the next contract. CMMC turned 800-171 from a document you file into a posture you have to keep true.

What’s Free on One Machine

If you own a single CUI endpoint — your own workstation, a lone engineering box on the contract — there is no “compliance edition” gate on reading its posture. The full audit (all 33 modules: accounts, firewall, services, encryption, TLS, anti-malware, audit policy, and the rest) runs locally, free, with no node cap and nothing held behind a tier. You get the same per-machine depth a prime contractor gets. Map the host against the families, then close what the audit surfaces:

# Map this CUI host against the controls, then fix the gaps:
winsentinel --audit
winsentinel --fix-it

That is the honest core of 800-171 on Windows, and it costs nothing on the machine in front of you.

Where the Assessment Claim Begins

Here is the boundary, and CMMC makes it sharper than any other framework: certification is never a one-machine claim. A C3PAO assessor does not ask “is this laptop hardened?” They ask “can you demonstrate that every system in the CUI boundary meets all 110 controls, that your SPRS score reflects reality, and that the controls held across the period?” Answering that by walking to thirty machines with a spreadsheet is how organizations end up with stale, partial, indefensible evidence — and how a host quietly falls out of compliance between the self-assessment and the audit.

That fleet-and-time problem is exactly what WinSentinel Pro exists to solve. Each in-scope endpoint runs an agent reporting the same audit into a central node — the per-machine depth is identical to the free local audit; Pro does not unlock extra 800-171 checks. What it adds is the organizational layer the certification actually demands: a fleet-wide compliance rollup so “which CUI hosts lack disk encryption, MFA, or have a weakened firewall?” is one query instead of a fire drill; drift alerts the moment a machine regresses — BitLocker suspended, Defender disabled, audit policy weakened — rather than discovering it three years later at re-certification; and historical posture trends that back a real SPRS score and a Plan of Action & Milestones with dated, durable evidence a one-time screenshot can never provide. Single-machine hardening is free and complete. The version that says “prove all forty in-boundary endpoints met 110 controls, continuously, and here is the score to back it” is the org problem — and that is the line between Free and Pro.

The Takeaway

800-171 reads like a binder because it has to cover everyone from a two-person machine shop to a defense prime. But on a Windows endpoint inside your CUI boundary, most of it is not abstract: it is access control, authentication, encryption, anti-malware, secure protocols, and audit logging — every one of which is configuration you can read and measure. Stop treating the SSP as the deliverable. The deliverable is a fleet of machines that can show, on demand, that the controls are real and have stayed real, with a SPRS score that isn’t wishful. Scope the boundary, audit the in-scope hosts against the families, fix the gaps, and keep measuring — because CMMC cares about the assessment three years from now, not just the screenshot today.

# The whole loop, on a CUI endpoint:
winsentinel --audit        # measure against the 800-171 controls
winsentinel --fix-it       # close the gaps it found
# then re-run on a cadence so "compliant" stays true between assessments.

A C3PAO doesn’t want to hear that you take CUI seriously. They want to see that your machines can prove it — and that the proof is something you run, not something you assemble by hand the week before the audit.