Skip to Content

Compliance Scores

Why reported scores are below 100%

The lockdown playbooks intentionally disable a small set of compliance rules for operational safety and environment compatibility. Scanners (OpenSCAP, GOSS) count those rules as failures, so the reported percentage understates the hardening actually applied. Disabling these rules is a deliberate configuration choice, not a gap in the hardening itself - the categories are:

  • Lockout prevention - a subset of SSH and PAM faillock rules that could lock operators out of remote systems.
  • Environment compatibility - partition-separation rules on cloud VMs (single root partition), USBGuard on virtual hardware without USB, smart card requirements without PIV/CAC infrastructure, and GUI rules on headless servers.

Expected scores

Production (cloud VM)

FrameworkReported scorePrimary limiter
STIG (GOSS)91–93%Partition rules disabled on single-partition VMs
STIG (OSCAP)90–92%Same
CIS (GOSS)94–96%Same
CIS (OSCAP)96–98%Near maximum for cloud

Production (full partitioning)

FrameworkExpected score
STIG96%+
CIS98–99%

Testing environment

The testing environment disables additional SSH, PAM, and FIPS rules to prevent lockout during iterative work, so scores run roughly 5–10 points below production. Testing scores are not representative of a production hardening run.

Achieving maximum scores

To reach the highest reported compliance:

  1. Provision with separate partitions before hardening: /tmp (mount options - nodev, nosuid, noexec), /var, /var/log, /var/log/audit, and /home (mount options - nodev, nosuid).
  2. Create a non-root admin account with sudo before hardening - PermitRootLogin no is enforced afterward.
  3. Enable the bootloader password - see Configuration.
  4. For DoD environments, enable smart card rules if PIV/CAC is in use and install the required CA certificates.

Validating compliance

Use the ssg-rlch9-ds.xml datastream - it's the one built for RLC Pro Hardened. Other datastreams on the system target different platforms and produce misleading results if used here:

Datastream fileTarget platformUse it for
ssg-rlch9-ds.xmlRLC Pro Hardened 9This collection. Includes the DISA STIG for Rocky Linux Hardened 9 profile.
ssg-rlc9-ds.xmlRLC Pro 9 (non-hardened)Scanning RLC Pro 9
ssg-rl9-ds.xmlRocky Linux 9 (community/stock)Stock Rocky 9 - not CIQ-tuned; do not use against a lockdown-hardened system
ssg-rhel9-ds.xmlRed Hat Enterprise Linux 9RHEL 9, not Rocky/CIQ
Warning

Each datastream bundles many profiles (STIG, CIS L1/L2, CUI, HIPAA, ANSSI, etc.) - selecting the right datastream is not enough on its own; also pick the matching --profile.

# STIG scan oscap xccdf eval \ --profile xccdf_org.ssgproject.content_profile_stig \ --results /tmp/oscap-stig.xml \ /usr/share/xml/scap/ssg/content/ssg-rlch9-ds.xml # CIS scan oscap xccdf eval \ --profile xccdf_org.ssgproject.content_profile_cis \ --results /tmp/oscap-cis.xml \ /usr/share/xml/scap/ssg/content/ssg-rlch9-ds.xml # Generate an HTML report oscap xccdf generate report /tmp/oscap-stig.xml > /tmp/stig-report.html
Note

Some PAM-related rules report as failed in OpenSCAP even when the controls are active. OpenSCAP checks PAM files directly, while the playbooks manage authentication through authselect profiles - the security controls are enforced via faillock.conf regardless of the scanner result.

For questions about a specific rule result, contact CIQ Support.