OCP 4.21 Compliance Status

Last Scan: 2026-01-14 20:19 UTC

Total Checks

205

Passing

100

Failing

78

Manual

27
48% Coverage

HIGH Severity Failing Checks (5)

Check Name Status Jira PR Tracking Status
ocp4-cis-configure-network-policies-namespaces Add NetworkPolicy to each namespace
Ensure that application Namespaces have Network Policies defined.
Use network policies to isolate traffic in your cluster network.
❌ FAIL - - Not Tracked
rhcos4-e8-master-configure-crypto-policy Set crypto policy: update-crypto-policies --set DEFAULT:NO-SHA1
Configure System Cryptography Policy
To configure the system cryptography policy to use ciphers only from the DEFAULT:NO-SHA1 policy, create a MachineConfig as follows:

---
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: master
name: 50-master-configure-crypto-policy
spec:
config:
ignition:
version: 3.1.0
systemd:
units:
- name: configure-crypto-policy.service
enabled: true
contents: |
[Unit]
Before=kubelet.service
[Service]
Type=oneshot
ExecStart=update-crypto-policies --set DEFAULT:NO-SHA1 RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

This will configure the crypto policy appropriately in all the nodes labeled with the "master" role.

Note that this needs to be done for each MachineConfigPool

For more information on how to configure nodes with the Machine Config Operator see the relevant documentation ( https://docs.openshift.com/container-platform/4.6/post_installation_configuration/machine-configuration-tasks.html ).

The rule checks if settings for selected crypto policy are configured as expected. Configuration files in the /etc/crypto-policies/back-ends are either symlinks to correct files provided by Crypto-policies package or they are regular files in case crypto policy customizations are applied. Crypto policies may be customized by crypto policy modules, in which case it is delimited from the base policy using a colon.
❌ FAIL CNF-21212 #529 In Progress
rhcos4-e8-master-no-empty-passwords Remove 'nullok' from /etc/pam.d/system-auth and password-auth
Prevent Login to Accounts With Empty Password
If an account is configured for password authentication but does not have an assigned password, it may be possible to log into the account without authentication. Remove any instances of the nullok in /etc/pam.d/system-auth and /etc/pam.d/password-auth to prevent logins with empty passwords.
❌ FAIL CNF-21212 #529 In Progress
rhcos4-e8-worker-configure-crypto-policy Set crypto policy: update-crypto-policies --set DEFAULT:NO-SHA1
Configure System Cryptography Policy
To configure the system cryptography policy to use ciphers only from the DEFAULT:NO-SHA1 policy, create a MachineConfig as follows:

---
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: master
name: 50-master-configure-crypto-policy
spec:
config:
ignition:
version: 3.1.0
systemd:
units:
- name: configure-crypto-policy.service
enabled: true
contents: |
[Unit]
Before=kubelet.service
[Service]
Type=oneshot
ExecStart=update-crypto-policies --set DEFAULT:NO-SHA1 RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

This will configure the crypto policy appropriately in all the nodes labeled with the "master" role.

Note that this needs to be done for each MachineConfigPool

For more information on how to configure nodes with the Machine Config Operator see the relevant documentation ( https://docs.openshift.com/container-platform/4.6/post_installation_configuration/machine-configuration-tasks.html ).

The rule checks if settings for selected crypto policy are configured as expected. Configuration files in the /etc/crypto-policies/back-ends are either symlinks to correct files provided by Crypto-policies package or they are regular files in case crypto policy customizations are applied. Crypto policies may be customized by crypto policy modules, in which case it is delimited from the base policy using a colon.
❌ FAIL CNF-21212 #529 In Progress
rhcos4-e8-worker-no-empty-passwords Remove 'nullok' from /etc/pam.d/system-auth and password-auth
Prevent Login to Accounts With Empty Password
If an account is configured for password authentication but does not have an assigned password, it may be possible to log into the account without authentication. Remove any instances of the nullok in /etc/pam.d/system-auth and /etc/pam.d/password-auth to prevent logins with empty passwords.
❌ FAIL CNF-21212 #529 In Progress

MEDIUM Severity Failing Checks (71)

Check Name Status Jira PR Tracking Status
ocp4-cis-api-server-encryption-provider-cipher Set spec.encryption.type to 'aescbc' in apiserver config
Configure the Encryption Provider Cipher
When you enable etcd encryption, the following OpenShift API server and Kubernetes API server resources are encrypted:

* Secrets
* ConfigMaps
* Routes
* OAuth access tokens
* OAuth authorize tokens

When you enable etcd encryption, encryption keys are created. These keys are rotated on a weekly basis. You must have these keys in order to restore from an etcd backup.

To ensure the correct cipher, set the encryption type to aescbc or aesgcm in the apiserver object which configures the API server itself.

spec:
encryption:
type: aescbc

For more information, follow the relevant documentation ( https://docs.openshift.com/container-platform/latest/security/encrypting-etcd.html ).
❌ FAIL - - Not Tracked
ocp4-cis-audit-log-forwarding-enabled Configure ClusterLogForwarder for audit log shipping
Ensure that Audit Log Forwarding Is Enabled
OpenShift audit works at the API server level, logging all requests coming to the server. Audit is on by default and the best practice is to ship audit logs off the cluster for retention. The cluster-logging-operator is able to do this with the

ClusterLogForwarders

resource. The forementioned resource can be configured to logs to different third party systems. For more information on this, please reference the official documentation: https://docs.openshift.com/container-platform/latest/observability/logging/logging-6.0/log6x-clf.html
❌ FAIL - - Not Tracked
ocp4-cis-audit-profile-set Configure API server audit profile in cluster config
Ensure that the cluster's audit profile is properly set
OpenShift can audit the details of requests made to the API server through the standard Kubernetes audit capabilities.

In OpenShift, auditing of the API Server is on by default. Audit provides a security-relevant chronological set of records documenting the sequence of activities that have affected system by individual users, administrators, or other components of the system. Audit works at the API server level, logging all requests coming to the server. Each audit log contains two entries:

The request line containing:

* A Unique ID allowing to match the response line (see #2)
* The source IP of the request
* The HTTP method being invoked
* The original user invoking the operation
* The impersonated user for the operation (self meaning himself)
* The impersonated group for the operation (lookup meaning user's group)
* The namespace of the request or none
* The URI as requested

The response line containing:

* The aforementioned unique ID
* The response code

For more information on how to configure the audit profile, please visit the documentation ( https://docs.openshift.com/container-platform/latest/security/audit-log-policy-config.html )
❌ FAIL - - Not Tracked
ocp4-cis-idp-is-configured Configure OAuth identity provider for authentication
Configure An Identity Provider
For users to interact with OpenShift Container Platform, they must first authenticate to the cluster. The authentication layer identifies the user associated with requests to the OpenShift Container Platform API. The authorization layer then uses information about the requesting user to determine if the request is allowed. Understanding authentication | Authentication | OpenShift Container Platform ( https://docs.openshift.com/container-platform/4.6/logging/cluster-logging-external.html )

The OpenShift Container Platform includes a built-in OAuth server for token-based authentication. Developers and administrators obtain OAuth access tokens to authenticate themselves to the API. It is recommended for an administrator to configure OAuth to specify an identity provider after the cluster is installed. User access to the cluster is managed through the identity provider. Understanding identity provider configuration | Authentication | OpenShift Container Platform ( https://docs.openshift.com/container-platform/4.6/authentication/understanding-identity-provider.html )

OpenShift includes built-in role based access control (RBAC) to determine whether a user is allowed to perform a given action within the cluster. Roles can have cluster scope or local (i.e. project) scope. Using RBAC to define and apply permissions | Authentication | OpenShift Container Platform ( https://docs.openshift.com/container-platform/4.6/authentication/using-rbac.html )
❌ FAIL - - Not Tracked
ocp4-cis-ingress-controller-tls-cipher-suites Configure strong TLS ciphers in IngressController spec
Ensure that the Ingress Controller only makes use of Strong Cryptographic Ciphers
Ensure that the Ingress Controller is configured to only use strong cryptographic ciphers.
❌ FAIL - - Not Tracked
ocp4-cis-kubeadmin-removed Delete kubeadmin secret: oc delete secret kubeadmin -n kube-system
Ensure that the kubeadmin secret has been removed
The kubeadmin user is meant to be a temporary user used for bootstrapping purposes. It is preferable to assign system administrators whose users are backed by an Identity Provider.

Make sure to remove the user as described in the documentation ( https://docs.openshift.com/container-platform/latest/authentication/remove-kubeadmin.html )
❌ FAIL - - Not Tracked
ocp4-cis-ocp-allowed-registries Set spec.registrySources.allowedRegistries in image.config.openshift.io
Allowed registries are configured
The configuration registrySources.allowedRegistries determines the permitted registries that the OpenShift container runtime can access for builds and pods. This configuration setting ensures that all registries other than those specified are blocked. You can set the allowed repositories by applying the following manifest using

oc patch

, e.g. if you save the following snippet to

/tmp/allowed-registries-patch.yaml

spec:
registrySources:
allowedRegistries:
- my-trusted-registry.internal.example.com

you would call

oc patch image.config.openshift.io cluster --patch="$(cat /tmp/allowed-registries-patch.yaml)" --type=merge
❌ FAIL - - Not Tracked
ocp4-cis-ocp-allowed-registries-for-import Set spec.allowedRegistriesForImport in image.config.openshift.io
Allowed registries for import are configured
The configuration allowedRegistriesForImport limits the container image registries from which normal users may import images. This is important to control, as a user who can stand up a malicious registry can then import content which claims to include the SHAs of legitimate content layers. You can set the allowed repositories for import by applying the following manifest using

oc patch

, e.g. if you save the following snippet to

/tmp/allowed-import-registries-patch.yaml

spec:
allowedRegistriesForImport:
- domainName: my-trusted-registry.internal.example.com
insecure: false

you would call

oc patch image.config.openshift.io cluster --patch="$(cat /tmp/allowed-import-registries-patch.yaml)" --type=merge
❌ FAIL - - Not Tracked
ocp4-e8-api-server-encryption-provider-cipher Set spec.encryption.type to 'aescbc' in apiserver config
Configure the Encryption Provider Cipher
When you enable etcd encryption, the following OpenShift API server and Kubernetes API server resources are encrypted:

* Secrets
* ConfigMaps
* Routes
* OAuth access tokens
* OAuth authorize tokens

When you enable etcd encryption, encryption keys are created. These keys are rotated on a weekly basis. You must have these keys in order to restore from an etcd backup.

To ensure the correct cipher, set the encryption type to aescbc or aesgcm in the apiserver object which configures the API server itself.

spec:
encryption:
type: aescbc

For more information, follow the relevant documentation ( https://docs.openshift.com/container-platform/latest/security/encrypting-etcd.html ).
❌ FAIL - - Not Tracked
ocp4-e8-ocp-allowed-registries Set spec.registrySources.allowedRegistries in image.config.openshift.io
Allowed registries are configured
The configuration registrySources.allowedRegistries determines the permitted registries that the OpenShift container runtime can access for builds and pods. This configuration setting ensures that all registries other than those specified are blocked. You can set the allowed repositories by applying the following manifest using

oc patch

, e.g. if you save the following snippet to

/tmp/allowed-registries-patch.yaml

spec:
registrySources:
allowedRegistries:
- my-trusted-registry.internal.example.com

you would call

oc patch image.config.openshift.io cluster --patch="$(cat /tmp/allowed-registries-patch.yaml)" --type=merge
❌ FAIL - - Not Tracked
ocp4-e8-ocp-allowed-registries-for-import Set spec.allowedRegistriesForImport in image.config.openshift.io
Allowed registries for import are configured
The configuration allowedRegistriesForImport limits the container image registries from which normal users may import images. This is important to control, as a user who can stand up a malicious registry can then import content which claims to include the SHAs of legitimate content layers. You can set the allowed repositories for import by applying the following manifest using

oc patch

, e.g. if you save the following snippet to

/tmp/allowed-import-registries-patch.yaml

spec:
allowedRegistriesForImport:
- domainName: my-trusted-registry.internal.example.com
insecure: false

you would call

oc patch image.config.openshift.io cluster --patch="$(cat /tmp/allowed-import-registries-patch.yaml)" --type=merge
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-dac-modification-chmod Add audit rule: -a always,exit -S chmod -F auid>=1000 -F key=perm_mod
Record Events that Modify the System's Discretionary Access Controls - chmod
At a minimum, the audit system should collect file permission changes for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-dac-modification-chown Add audit rule: -a always,exit -S chown -F auid>=1000 -F key=perm_mod
Record Events that Modify the System's Discretionary Access Controls - chown
At a minimum, the audit system should collect file permission changes for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-execution-chcon Add audit rule: -a always,exit -F path=/usr/bin/chcon -F key=privileged
Record Any Attempts to Run chcon
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/bin/chcon -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/bin/chcon -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-execution-restorecon Add audit rule: -a always,exit -F path=/usr/sbin/restorecon -F key=privileged
Record Any Attempts to Run restorecon
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/restorecon -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/restorecon -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-execution-semanage Add audit rule: -a always,exit -F path=/usr/sbin/semanage -F key=privileged
Record Any Attempts to Run semanage
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/semanage -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/semanage -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-execution-setfiles Add audit rule: -a always,exit -F path=/usr/sbin/setfiles -F key=privileged
Record Any Attempts to Run setfiles
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/setfiles -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/setfiles -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-execution-setsebool Add audit rule: -a always,exit -F path=/usr/sbin/setsebool -F key=privileged
Record Any Attempts to Run setsebool
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/setsebool -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/setsebool -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-execution-seunshare Add audit rule: -a always,exit -F path=/usr/sbin/seunshare -F key=privileged
Record Any Attempts to Run seunshare
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/seunshare -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/seunshare -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-kernel-module-loading-delete Configure audit rules in /etc/audit/rules.d
Ensure auditd Collects Information on Kernel Module Unloading - delete_module
To capture kernel module loading and unloading events, use the following line, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch= ARCH -S delete_module -F key=modules

Place to add the line depends on a way auditd daemon is configured. If it is configured to use the augenrules program (the default), add the line to a file with suffix.rules in the directory /etc/audit/rules.d. If the auditd daemon is configured to use the auditctl utility, add the line to file /etc/audit/audit.rules.
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-kernel-module-loading-finit Configure audit rules in /etc/audit/rules.d
Ensure auditd Collects Information on Kernel Module Loading and Unloading - finit_module
To capture kernel module loading and unloading events, use the following line, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch= ARCH -S finit_module -F key=modules

Place to add the line depends on a way auditd daemon is configured. If it is configured to use the augenrules program (the default), add the line to a file with suffix.rules in the directory /etc/audit/rules.d. If the auditd daemon is configured to use the auditctl utility, add the line to file /etc/audit/audit.rules.
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-kernel-module-loading-init Configure audit rules in /etc/audit/rules.d
Ensure auditd Collects Information on Kernel Module Loading - init_module
To capture kernel module loading and unloading events, use the following line, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch= ARCH -S init_module -F key=modules

Place to add the line depends on a way auditd daemon is configured. If it is configured to use the augenrules program (the default), add the line to a file with suffix.rules in the directory /etc/audit/rules.d. If the auditd daemon is configured to use the auditctl utility, add the line to file /etc/audit/audit.rules.
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-login-events Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d in order to watch for attempted manual edits of files involved in storing logon events:

-w /var/log/tallylog -p wa -k logins
-w /var/run/faillock -p wa -k logins
-w /var/log/lastlog -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules file in order to watch for unattempted manual edits of files involved in storing logon events:

-w /var/log/tallylog -p wa -k logins
-w /var/run/faillock -p wa -k logins
-w /var/log/lastlog -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-login-events-faillock Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events - faillock
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /var/run/faillock -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /var/run/faillock -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-login-events-lastlog Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events - lastlog
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /var/log/lastlog -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /var/log/lastlog -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-login-events-tallylog Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events - tallylog
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /var/log/tallylog -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /var/log/tallylog -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-networkconfig-modification Add audit rules for network configuration changes
Record Events that Modify the System's Network Environment
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d , setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch=ARCH -S sethostname,setdomainname -F key=audit_rules_networkconfig_modification
-w /etc/issue -p wa -k audit_rules_networkconfig_modification
-w /etc/issue.net -p wa -k audit_rules_networkconfig_modification
-w /etc/hosts -p wa -k audit_rules_networkconfig_modification

-w /etc/sysconfig/network -p wa -k audit_rules_networkconfig_modification

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules file, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch=ARCH -S sethostname,setdomainname -F key=audit_rules_networkconfig_modification
-w /etc/issue -p wa -k audit_rules_networkconfig_modification
-w /etc/issue.net -p wa -k audit_rules_networkconfig_modification
-w /etc/hosts -p wa -k audit_rules_networkconfig_modification
-w /etc/sysconfig/network -p wa -k audit_rules_networkconfig_modification
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-sysadmin-actions Add audit rule: -w /etc/sudoers -p wa -k actions
Ensure auditd Collects System Administrator Actions
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /etc/sudoers -p wa -k actions

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /etc/sudoers -p wa -k actions

If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /etc/sudoers.d/ -p wa -k actions

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /etc/sudoers.d/ -p wa -k actions
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-time-adjtimex Add audit rules for time-change events
Record attempts to alter time through adjtimex
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S adjtimex -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S adjtimex -F key=audit_time_rules

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S adjtimex -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S adjtimex -F key=audit_time_rules

The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-time-clock-settime Add audit rules for time-change events
Record Attempts to Alter Time Through clock_settime
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=time-change

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=time-change

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=time-change

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=time-change

The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-time-settimeofday Add audit rules for time-change events
Record attempts to alter time through settimeofday
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S settimeofday -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S settimeofday -F key=audit_time_rules

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S settimeofday -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S settimeofday -F key=audit_time_rules

The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-time-stime Add audit rules for time-change events
Record Attempts to Alter Time Through stime
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d for both 32 bit and 64 bit systems:

-a always,exit -F arch=b32 -S stime -F key=audit_time_rules

Since the 64 bit version of the "stime" system call is not defined in the audit lookup table, the corresponding "-F arch=b64" form of this rule is not expected to be defined on 64 bit systems (the aforementioned "-F arch=b32" stime rule form itself is sufficient for both 32 bit and 64 bit systems). If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file for both 32 bit and 64 bit systems:

-a always,exit -F arch=b32 -S stime -F key=audit_time_rules

Since the 64 bit version of the "stime" system call is not defined in the audit lookup table, the corresponding "-F arch=b64" form of this rule is not expected to be defined on 64 bit systems (the aforementioned "-F arch=b32" stime rule form itself is sufficient for both 32 bit and 64 bit systems). The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined system calls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-time-watch-localtime Add audit rules for time-change events
Record Attempts to Alter the localtime File
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /etc/localtime -p wa -k audit_time_rules

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /etc/localtime -p wa -k audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-master-audit-rules-usergroup-modification Add audit rules for user/group modification events
Record Events that Modify User/Group Information
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d , in order to capture events that modify account changes:

-w /etc/group -p wa -k audit_rules_usergroup_modification
-w /etc/passwd -p wa -k audit_rules_usergroup_modification
-w /etc/gshadow -p wa -k audit_rules_usergroup_modification
-w /etc/shadow -p wa -k audit_rules_usergroup_modification
-w /etc/security/opasswd -p wa -k audit_rules_usergroup_modification

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules file, in order to capture events that modify account changes:

-w /etc/group -p wa -k audit_rules_usergroup_modification
-w /etc/passwd -p wa -k audit_rules_usergroup_modification
-w /etc/gshadow -p wa -k audit_rules_usergroup_modification
-w /etc/shadow -p wa -k audit_rules_usergroup_modification
-w /etc/security/opasswd -p wa -k audit_rules_usergroup_modification
❌ FAIL - - Not Tracked
rhcos4-e8-master-auditd-name-format Set type to of
Set type of computer node name logging in audit logs
To configure Audit daemon to use a unique identifier as computer node name in the audit events, set name_format to hostname in /etc/audit/auditd.conf.
❌ FAIL - - Not Tracked
rhcos4-e8-master-sshd-disable-gssapi-auth Set GSSAPIAuthentication no in sshd_config
Disable GSSAPI Authentication
Unless needed, SSH should not permit extraneous or unnecessary authentication mechanisms like GSSAPI.

The default SSH configuration disallows authentications based on GSSAPI. The appropriate configuration is used if no value is set for GSSAPIAuthentication.

To explicitly disable GSSAPI authentication, add or correct the following line in /etc/ssh/sshd_config.d/00-complianceascode-hardening.conf :

GSSAPIAuthentication no
❌ FAIL CNF-19031 #466 In Progress
rhcos4-e8-master-sshd-disable-user-known-hosts Set IgnoreUserKnownHosts yes in sshd_config
Disable SSH Support for User Known Hosts
SSH can allow system users to connect to systems if a cache of the remote systems public keys is available. This should be disabled.

To ensure this behavior is disabled, add or correct the following line in /etc/ssh/sshd_config.d/00-complianceascode-hardening.conf :

IgnoreUserKnownHosts yes
❌ FAIL CNF-19031 #466 In Progress
rhcos4-e8-master-sysctl-kernel-randomize-va-space Configure kernel.randomize.va.space via sysctl
Enable Randomized Layout of Virtual Address Space
To set the runtime status of the kernel.randomize_va_space kernel parameter, run the following command:

$ sudo sysctl -w kernel.randomize_va_space=2

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.randomize_va_space = 2
❌ FAIL CNF-21196 - On Hold
rhcos4-e8-master-sysctl-kernel-unprivileged-bpf-disabled Set kernel.unprivileged_bpf_disabled=1 via sysctl
Disable Access to Network bpf() Syscall From Unprivileged Processes
To set the runtime status of the kernel.unprivileged_bpf_disabled kernel parameter, run the following command:

$ sudo sysctl -w kernel.unprivileged_bpf_disabled=1

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.unprivileged_bpf_disabled = 1
❌ FAIL CNF-21196 - On Hold
rhcos4-e8-master-sysctl-kernel-yama-ptrace-scope Set kernel.yama.ptrace_scope=1 via sysctl
Restrict usage of ptrace to descendant processes
To set the runtime status of the kernel.yama.ptrace_scope kernel parameter, run the following command:

$ sudo sysctl -w kernel.yama.ptrace_scope=1

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.yama.ptrace_scope = 1
❌ FAIL CNF-21196 - On Hold
rhcos4-e8-master-sysctl-net-core-bpf-jit-harden Set net.core.bpf_jit_harden=2 via sysctl
Harden the operation of the BPF just-in-time compiler
To set the runtime status of the net.core.bpf_jit_harden kernel parameter, run the following command:

$ sudo sysctl -w net.core.bpf_jit_harden=2

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

net.core.bpf_jit_harden = 2
❌ FAIL CNF-21196 - On Hold
rhcos4-e8-worker-audit-rules-dac-modification-chmod Add audit rule: -a always,exit -S chmod -F auid>=1000 -F key=perm_mod
Record Events that Modify the System's Discretionary Access Controls - chmod
At a minimum, the audit system should collect file permission changes for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chmod -F auid>=1000 -F auid!=unset -F key=perm_mod
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-dac-modification-chown Add audit rule: -a always,exit -S chown -F auid>=1000 -F key=perm_mod
Record Events that Modify the System's Discretionary Access Controls - chown
At a minimum, the audit system should collect file permission changes for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S chown -F auid>=1000 -F auid!=unset -F key=perm_mod
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-execution-chcon Add audit rule: -a always,exit -F path=/usr/bin/chcon -F key=privileged
Record Any Attempts to Run chcon
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/bin/chcon -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/bin/chcon -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-execution-restorecon Add audit rule: -a always,exit -F path=/usr/sbin/restorecon -F key=privileged
Record Any Attempts to Run restorecon
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/restorecon -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/restorecon -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-execution-semanage Add audit rule: -a always,exit -F path=/usr/sbin/semanage -F key=privileged
Record Any Attempts to Run semanage
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/semanage -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/semanage -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-execution-setfiles Add audit rule: -a always,exit -F path=/usr/sbin/setfiles -F key=privileged
Record Any Attempts to Run setfiles
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/setfiles -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/setfiles -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-execution-setsebool Add audit rule: -a always,exit -F path=/usr/sbin/setsebool -F key=privileged
Record Any Attempts to Run setsebool
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/setsebool -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/setsebool -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-execution-seunshare Add audit rule: -a always,exit -F path=/usr/sbin/seunshare -F key=privileged
Record Any Attempts to Run seunshare
At a minimum, the audit system should collect the execution of privileged commands for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add a line of the following form to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F path=/usr/sbin/seunshare -F auid>=1000 -F auid!=unset -F key=privileged

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add a line of the following form to /etc/audit/audit.rules :

-a always,exit -F path=/usr/sbin/seunshare -F auid>=1000 -F auid!=unset -F key=privileged
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-kernel-module-loading-delete Configure audit rules in /etc/audit/rules.d
Ensure auditd Collects Information on Kernel Module Unloading - delete_module
To capture kernel module loading and unloading events, use the following line, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch= ARCH -S delete_module -F key=modules

Place to add the line depends on a way auditd daemon is configured. If it is configured to use the augenrules program (the default), add the line to a file with suffix.rules in the directory /etc/audit/rules.d. If the auditd daemon is configured to use the auditctl utility, add the line to file /etc/audit/audit.rules.
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-kernel-module-loading-finit Configure audit rules in /etc/audit/rules.d
Ensure auditd Collects Information on Kernel Module Loading and Unloading - finit_module
To capture kernel module loading and unloading events, use the following line, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch= ARCH -S finit_module -F key=modules

Place to add the line depends on a way auditd daemon is configured. If it is configured to use the augenrules program (the default), add the line to a file with suffix.rules in the directory /etc/audit/rules.d. If the auditd daemon is configured to use the auditctl utility, add the line to file /etc/audit/audit.rules.
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-kernel-module-loading-init Configure audit rules in /etc/audit/rules.d
Ensure auditd Collects Information on Kernel Module Loading - init_module
To capture kernel module loading and unloading events, use the following line, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch= ARCH -S init_module -F key=modules

Place to add the line depends on a way auditd daemon is configured. If it is configured to use the augenrules program (the default), add the line to a file with suffix.rules in the directory /etc/audit/rules.d. If the auditd daemon is configured to use the auditctl utility, add the line to file /etc/audit/audit.rules.
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-login-events Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d in order to watch for attempted manual edits of files involved in storing logon events:

-w /var/log/tallylog -p wa -k logins
-w /var/run/faillock -p wa -k logins
-w /var/log/lastlog -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules file in order to watch for unattempted manual edits of files involved in storing logon events:

-w /var/log/tallylog -p wa -k logins
-w /var/run/faillock -p wa -k logins
-w /var/log/lastlog -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-login-events-faillock Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events - faillock
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /var/run/faillock -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /var/run/faillock -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-login-events-lastlog Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events - lastlog
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /var/log/lastlog -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /var/log/lastlog -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-login-events-tallylog Add audit rules for login events in /etc/audit/rules.d
Record Attempts to Alter Logon and Logout Events - tallylog
The audit system already collects login information for all users and root. If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /var/log/tallylog -p wa -k logins

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /var/log/tallylog -p wa -k logins
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-networkconfig-modification Add audit rules for network configuration changes
Record Events that Modify the System's Network Environment
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d , setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch=ARCH -S sethostname,setdomainname -F key=audit_rules_networkconfig_modification
-w /etc/issue -p wa -k audit_rules_networkconfig_modification
-w /etc/issue.net -p wa -k audit_rules_networkconfig_modification
-w /etc/hosts -p wa -k audit_rules_networkconfig_modification

-w /etc/sysconfig/network -p wa -k audit_rules_networkconfig_modification

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules file, setting ARCH to either b32 for 32-bit system, or having two lines for both b32 and b64 in case your system is 64-bit:

-a always,exit -F arch=ARCH -S sethostname,setdomainname -F key=audit_rules_networkconfig_modification
-w /etc/issue -p wa -k audit_rules_networkconfig_modification
-w /etc/issue.net -p wa -k audit_rules_networkconfig_modification
-w /etc/hosts -p wa -k audit_rules_networkconfig_modification
-w /etc/sysconfig/network -p wa -k audit_rules_networkconfig_modification
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-sysadmin-actions Add audit rule: -w /etc/sudoers -p wa -k actions
Ensure auditd Collects System Administrator Actions
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /etc/sudoers -p wa -k actions

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /etc/sudoers -p wa -k actions

If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /etc/sudoers.d/ -p wa -k actions

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /etc/sudoers.d/ -p wa -k actions
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-time-adjtimex Add audit rules for time-change events
Record attempts to alter time through adjtimex
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S adjtimex -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S adjtimex -F key=audit_time_rules

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S adjtimex -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S adjtimex -F key=audit_time_rules

The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-time-clock-settime Add audit rules for time-change events
Record Attempts to Alter Time Through clock_settime
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=time-change

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=time-change

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=time-change

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=time-change

The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-time-settimeofday Add audit rules for time-change events
Record attempts to alter time through settimeofday
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d :

-a always,exit -F arch=b32 -S settimeofday -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S settimeofday -F key=audit_time_rules

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file:

-a always,exit -F arch=b32 -S settimeofday -F key=audit_time_rules

If the system is 64 bit then also add the following line:

-a always,exit -F arch=b64 -S settimeofday -F key=audit_time_rules

The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-time-stime Add audit rules for time-change events
Record Attempts to Alter Time Through stime
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following line to a file with suffix.rules in the directory /etc/audit/rules.d for both 32 bit and 64 bit systems:

-a always,exit -F arch=b32 -S stime -F key=audit_time_rules

Since the 64 bit version of the "stime" system call is not defined in the audit lookup table, the corresponding "-F arch=b64" form of this rule is not expected to be defined on 64 bit systems (the aforementioned "-F arch=b32" stime rule form itself is sufficient for both 32 bit and 64 bit systems). If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following line to /etc/audit/audit.rules file for both 32 bit and 64 bit systems:

-a always,exit -F arch=b32 -S stime -F key=audit_time_rules

Since the 64 bit version of the "stime" system call is not defined in the audit lookup table, the corresponding "-F arch=b64" form of this rule is not expected to be defined on 64 bit systems (the aforementioned "-F arch=b32" stime rule form itself is sufficient for both 32 bit and 64 bit systems). The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined system calls:

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-time-watch-localtime Add audit rules for time-change events
Record Attempts to Alter the localtime File
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d :

-w /etc/localtime -p wa -k audit_time_rules

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules :

-w /etc/localtime -p wa -k audit_time_rules
❌ FAIL - - Not Tracked
rhcos4-e8-worker-audit-rules-usergroup-modification Add audit rules for user/group modification events
Record Events that Modify User/Group Information
If the auditd daemon is configured to use the augenrules program to read audit rules during daemon startup (the default), add the following lines to a file with suffix.rules in the directory /etc/audit/rules.d , in order to capture events that modify account changes:

-w /etc/group -p wa -k audit_rules_usergroup_modification
-w /etc/passwd -p wa -k audit_rules_usergroup_modification
-w /etc/gshadow -p wa -k audit_rules_usergroup_modification
-w /etc/shadow -p wa -k audit_rules_usergroup_modification
-w /etc/security/opasswd -p wa -k audit_rules_usergroup_modification

If the auditd daemon is configured to use the auditctl utility to read audit rules during daemon startup, add the following lines to /etc/audit/audit.rules file, in order to capture events that modify account changes:

-w /etc/group -p wa -k audit_rules_usergroup_modification
-w /etc/passwd -p wa -k audit_rules_usergroup_modification
-w /etc/gshadow -p wa -k audit_rules_usergroup_modification
-w /etc/shadow -p wa -k audit_rules_usergroup_modification
-w /etc/security/opasswd -p wa -k audit_rules_usergroup_modification
❌ FAIL - - Not Tracked
rhcos4-e8-worker-auditd-name-format Set type to of
Set type of computer node name logging in audit logs
To configure Audit daemon to use a unique identifier as computer node name in the audit events, set name_format to hostname in /etc/audit/auditd.conf.
❌ FAIL - - Not Tracked
rhcos4-e8-worker-sshd-disable-gssapi-auth Set GSSAPIAuthentication no in sshd_config
Disable GSSAPI Authentication
Unless needed, SSH should not permit extraneous or unnecessary authentication mechanisms like GSSAPI.

The default SSH configuration disallows authentications based on GSSAPI. The appropriate configuration is used if no value is set for GSSAPIAuthentication.

To explicitly disable GSSAPI authentication, add or correct the following line in /etc/ssh/sshd_config.d/00-complianceascode-hardening.conf :

GSSAPIAuthentication no
❌ FAIL CNF-19031 #466 In Progress
rhcos4-e8-worker-sshd-disable-user-known-hosts Set IgnoreUserKnownHosts yes in sshd_config
Disable SSH Support for User Known Hosts
SSH can allow system users to connect to systems if a cache of the remote systems public keys is available. This should be disabled.

To ensure this behavior is disabled, add or correct the following line in /etc/ssh/sshd_config.d/00-complianceascode-hardening.conf :

IgnoreUserKnownHosts yes
❌ FAIL CNF-19031 #466 In Progress
rhcos4-e8-worker-sysctl-kernel-randomize-va-space Configure kernel.randomize.va.space via sysctl
Enable Randomized Layout of Virtual Address Space
To set the runtime status of the kernel.randomize_va_space kernel parameter, run the following command:

$ sudo sysctl -w kernel.randomize_va_space=2

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.randomize_va_space = 2
❌ FAIL CNF-21196 - On Hold
rhcos4-e8-worker-sysctl-kernel-unprivileged-bpf-disabled Set kernel.unprivileged_bpf_disabled=1 via sysctl
Disable Access to Network bpf() Syscall From Unprivileged Processes
To set the runtime status of the kernel.unprivileged_bpf_disabled kernel parameter, run the following command:

$ sudo sysctl -w kernel.unprivileged_bpf_disabled=1

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.unprivileged_bpf_disabled = 1
❌ FAIL CNF-21196 - On Hold
rhcos4-e8-worker-sysctl-kernel-yama-ptrace-scope Set kernel.yama.ptrace_scope=1 via sysctl
Restrict usage of ptrace to descendant processes
To set the runtime status of the kernel.yama.ptrace_scope kernel parameter, run the following command:

$ sudo sysctl -w kernel.yama.ptrace_scope=1

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.yama.ptrace_scope = 1
❌ FAIL CNF-21196 - On Hold
rhcos4-e8-worker-sysctl-net-core-bpf-jit-harden Set net.core.bpf_jit_harden=2 via sysctl
Harden the operation of the BPF just-in-time compiler
To set the runtime status of the net.core.bpf_jit_harden kernel parameter, run the following command:

$ sudo sysctl -w net.core.bpf_jit_harden=2

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

net.core.bpf_jit_harden = 2
❌ FAIL CNF-21196 - On Hold

LOW Severity Failing Checks (2)

Check Name Status Jira PR Tracking Status
rhcos4-e8-master-sysctl-kernel-dmesg-restrict Set kernel.dmesg_restrict=1 via sysctl
Restrict Access to Kernel Message Buffer
To set the runtime status of the kernel.dmesg_restrict kernel parameter, run the following command:

$ sudo sysctl -w kernel.dmesg_restrict=1

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.dmesg_restrict = 1
❌ FAIL - - Pending
rhcos4-e8-worker-sysctl-kernel-dmesg-restrict Set kernel.dmesg_restrict=1 via sysctl
Restrict Access to Kernel Message Buffer
To set the runtime status of the kernel.dmesg_restrict kernel parameter, run the following command:

$ sudo sysctl -w kernel.dmesg_restrict=1

To make sure that the setting is persistent, add the following line to a file in the directory /etc/sysctl.d :

kernel.dmesg_restrict = 1
❌ FAIL - - Pending

MANUAL Checks Requiring Review (27)

Check Name Status Jira PR Tracking Status
ocp4-cis-accounts-restrict-service-account-tokens Set automountServiceAccountToken: false in pod specs
Restrict Automounting of Service Account Tokens
Service accounts tokens should not be mounted in pods except where the workload running in the pod explicitly needs to communicate with the API server. To ensure pods do not automatically mount tokens, set automountServiceAccountToken to false.
ℹ MANUAL - - Not Tracked
ocp4-cis-accounts-unique-service-account Review and apply recommended configuration
Ensure Usage of Unique Service Accounts
Using the default service account prevents accurate application rights review and audit tracing. Instead of default , create a new and unique service account with the following command:

$ oc create sa service_account_name

where service_account_name is the name of a service account that is needed in the project namespace.
ℹ MANUAL - - Not Tracked
ocp4-cis-general-apply-scc Configure SecurityContextConstraints appropriately
Apply Security Context to Your Pods and Containers
Apply Security Context to your Pods and Containers
ℹ MANUAL - - Not Tracked
ocp4-cis-general-default-namespace-use Review and apply recommended configuration
The default namespace should not be used
Kubernetes provides a default namespace, where objects are placed if no namespace is specified for them. Placing objects in this namespace makes application of RBAC and other controls more difficult.
ℹ MANUAL - - Not Tracked
ocp4-cis-general-default-seccomp-profile Review and apply recommended configuration
Ensure Seccomp Profile Pod Definitions
Enable default seccomp profiles in your pod definitions.
ℹ MANUAL - - Not Tracked
ocp4-cis-general-namespaces-in-use Review and apply recommended configuration
Create administrative boundaries between resources using namespaces
Use namespaces to isolate your Kubernetes objects.
ℹ MANUAL - - Not Tracked
ocp4-cis-rbac-least-privilege Review and restrict RBAC permissions
Ensure that the RBAC setup follows the principle of least privilege
Role-based access control (RBAC) objects determine whether a user is allowed to perform a given action within a project. If users or groups exist that are bound to roles they must not have, modify the user or group permissions using the following cluster and local role binding commands: Remove a User from a Cluster RBAC role by executing the following: oc adm policy remove-cluster-role-from-user role username Remove a Group from a Cluster RBAC role by executing the following: oc adm policy remove-cluster-role-from-group role groupname Remove a User from a Local RBAC role by executing the following: oc adm policy remove-role-from-user role username Remove a Group from a Local RBAC role by executing the following: oc adm policy remove-role-from-group role groupname NOTE: For additional information. https://docs.openshift.com/container-platform/latest/authentication/using-rbac.html
ℹ MANUAL - - Not Tracked
ocp4-cis-rbac-limit-cluster-admin Review and limit cluster-admin role assignments
Ensure that the cluster-admin role is only used where required
The RBAC role cluster-admin provides wide-ranging powers over the environment and should be used only where and when needed.
ℹ MANUAL - - Not Tracked
ocp4-cis-rbac-limit-secrets-access Restrict RBAC access to secrets
Limit Access to Kubernetes Secrets
The Kubernetes API stores secrets, which may be service account tokens for the Kubernetes API or credentials used by workloads in the cluster. Access to these secrets should be restricted to the smallest possible group of users to reduce the risk of privilege escalation. To restrict users from secrets, remove get , list , and watch access to unauthorized users to secret objects in the cluster.
ℹ MANUAL - - Not Tracked
ocp4-cis-rbac-pod-creation-access Review and restrict RBAC permissions
Minimize Access to Pod Creation
The ability to create pods in a namespace can provide a number of opportunities for privilege escalation. Where applicable, remove create access to pod objects in the cluster.
ℹ MANUAL - - Not Tracked
ocp4-cis-rbac-wildcard-use Avoid wildcard (*) in RBAC rules
Minimize Wildcard Usage in Cluster and Local Roles
Kubernetes Cluster and Local Roles provide access to resources based on sets of objects and actions that can be taken on those objects. It is possible to set either of these using a wildcard * which matches all items. This violates the principle of least privilege and leaves a cluster in a more vulnerable state to privilege abuse.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-drop-container-capabilities Configure SecurityContextConstraints appropriately
Drop Container Capabilities
Containers should not enable more capabilities than needed as this opens the door for malicious use. To disable the capabilities, the appropriate Security Context Constraints (SCCs) should set all capabilities as * or a list of capabilities in requiredDropCapabilities.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-limit-ipc-namespace Configure SCCs with hostIPC: false
Limit Access to the Host IPC Namespace
Containers should not be allowed access to the host's Interprocess Communication (IPC) namespace. To prevent containers from getting access to a host's IPC namespace, the appropriate Security Context Constraints (SCCs) should set allowHostIPC to false.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-limit-net-raw-capability Configure SecurityContextConstraints appropriately
Limit Use of the CAP_NET_RAW
Containers should not enable more capabilities than needed as this opens the door for malicious use. CAP_NET_RAW enables a container to launch a network attack on another container or cluster. To disable the CAP_NET_RAW capability, the appropriate Security Context Constraints (SCCs) should set NET_RAW in requiredDropCapabilities.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-limit-network-namespace Configure SCCs with hostNetwork: false
Limit Access to the Host Network Namespace
Containers should not be allowed access to the host's network namespace. To prevent containers from getting access to a host's network namespace, the appropriate Security Context Constraints (SCCs) should set allowHostNetwork to false.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-limit-privilege-escalation Configure SecurityContextConstraints appropriately
Limit Containers Ability to Escalate Privileges
Containers should be limited to only the privileges required to run and should not be allowed to escalate their privileges. To prevent containers from escalating privileges, the appropriate Security Context Constraints (SCCs) should set allowPrivilegeEscalation to false.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-limit-privileged-containers Configure SCCs to restrict privileged containers
Limit Privileged Container Use
Containers should be limited to only the privileges required to run. To prevent containers from running as privileged containers, the appropriate Security Context Constraints (SCCs) should set allowPrivilegedContainer to false.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-limit-process-id-namespace Configure SCCs with hostPID: false
Limit Access to the Host Process ID Namespace
Containers should not be allowed access to the host's process ID namespace. To prevent containers from getting access to a host's process ID namespace, the appropriate Security Context Constraints (SCCs) should set allowHostPID to false.
ℹ MANUAL - - Not Tracked
ocp4-cis-scc-limit-root-containers Configure SCCs to prevent root containers
Limit Container Running As Root User
Containers should run as a random non-privileged user. To prevent containers from running as root user, the appropriate Security Context Constraints (SCCs) should set.runAsUser.type to MustRunAsRange.
ℹ MANUAL - - Not Tracked
ocp4-cis-secrets-consider-external-storage Review and apply recommended configuration
Consider external secret storage
Consider the use of an external secrets storage and management system, instead of using Kubernetes Secrets directly, if you have more complex secret management needs. Ensure the solution requires authentication to access secrets, has auditing of access to and use of secrets, and encrypts secrets. Some solutions also make it easier to rotate secrets.
ℹ MANUAL - - Not Tracked
ocp4-cis-secrets-no-environment-variables Review and apply recommended configuration
Do Not Use Environment Variables with Secrets
Secrets should be mounted as data volumes instead of environment variables.
ℹ MANUAL - - Not Tracked
ocp4-e8-rbac-limit-cluster-admin Review and limit cluster-admin role assignments
Ensure that the cluster-admin role is only used where required
The RBAC role cluster-admin provides wide-ranging powers over the environment and should be used only where and when needed.
ℹ MANUAL - - Not Tracked
ocp4-e8-rbac-pod-creation-access Review and restrict RBAC permissions
Minimize Access to Pod Creation
The ability to create pods in a namespace can provide a number of opportunities for privilege escalation. Where applicable, remove create access to pod objects in the cluster.
ℹ MANUAL - - Not Tracked
ocp4-e8-rbac-wildcard-use Avoid wildcard (*) in RBAC rules
Minimize Wildcard Usage in Cluster and Local Roles
Kubernetes Cluster and Local Roles provide access to resources based on sets of objects and actions that can be taken on those objects. It is possible to set either of these using a wildcard * which matches all items. This violates the principle of least privilege and leaves a cluster in a more vulnerable state to privilege abuse.
ℹ MANUAL - - Not Tracked
ocp4-e8-scc-limit-privilege-escalation Configure SecurityContextConstraints appropriately
Limit Containers Ability to Escalate Privileges
Containers should be limited to only the privileges required to run and should not be allowed to escalate their privileges. To prevent containers from escalating privileges, the appropriate Security Context Constraints (SCCs) should set allowPrivilegeEscalation to false.
ℹ MANUAL - - Not Tracked
ocp4-e8-scc-limit-privileged-containers Configure SCCs to restrict privileged containers
Limit Privileged Container Use
Containers should be limited to only the privileges required to run. To prevent containers from running as privileged containers, the appropriate Security Context Constraints (SCCs) should set allowPrivilegedContainer to false.
ℹ MANUAL - - Not Tracked
ocp4-e8-scc-limit-root-containers Configure SCCs to prevent root containers
Limit Container Running As Root User
Containers should run as a random non-privileged user. To prevent containers from running as root user, the appropriate Security Context Constraints (SCCs) should set.runAsUser.type to MustRunAsRange.
ℹ MANUAL - - Not Tracked

HIGH Severity Passing Checks (14)

Check Name Status
ocp4-cis-api-server-admission-control-plugin-alwayspullimages
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-audit-log-path
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-kubelet-certificate-authority
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-kubelet-client-cert
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-kubelet-client-key
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-token-auth
Review and apply recommended configuration
✅ PASS
ocp4-cis-configure-network-policies
Add NetworkPolicy to each namespace
✅ PASS
ocp4-cis-openshift-api-server-audit-log-path
Review and apply recommended configuration
✅ PASS
rhcos4-e8-master-accounts-no-uid-except-zero
Review and apply recommended configuration
✅ PASS
rhcos4-e8-master-selinux-state
Set to to enforcing
✅ PASS
rhcos4-e8-master-sshd-disable-empty-passwords
Remove 'nullok' from /etc/pam.d/system-auth and password-auth
✅ PASS
rhcos4-e8-worker-accounts-no-uid-except-zero
Review and apply recommended configuration
✅ PASS
rhcos4-e8-worker-selinux-state
Set to to enforcing
✅ PASS
rhcos4-e8-worker-sshd-disable-empty-passwords
Remove 'nullok' from /etc/pam.d/system-auth and password-auth
✅ PASS

MEDIUM Severity Passing Checks (77)

Check Name Status
ocp4-cis-api-server-admission-control-plugin-alwaysadmit
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-admission-control-plugin-namespacelifecycle
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-admission-control-plugin-noderestriction
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-admission-control-plugin-scc
Configure SecurityContextConstraints appropriately
✅ PASS
ocp4-cis-api-server-admission-control-plugin-service-account
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-anonymous-auth
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-audit-log-maxsize
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-auth-mode-no-aa
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-auth-mode-rbac
Review and restrict RBAC permissions
✅ PASS
ocp4-cis-api-server-basic-auth
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-client-ca
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-etcd-ca
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-etcd-cert
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-etcd-key
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-https-for-kubelet-conn
Set to to true
✅ PASS
ocp4-cis-api-server-insecure-bind-address
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-kube-no-unsupported-config-overrides
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-no-unsupported-config-overrides
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-oauth-https-serving-cert
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-openshift-https-serving-cert
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-profiling-protected-by-rbac
Review and restrict RBAC permissions
✅ PASS
ocp4-cis-api-server-request-timeout
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-service-account-lookup
Set to to true
✅ PASS
ocp4-cis-api-server-service-account-public-key
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-tls-cert
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-tls-private-key
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-tls-security-profile-custom-min-tls-version
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-tls-security-profile-not-old
Review and apply recommended configuration
✅ PASS
ocp4-cis-audit-logging-enabled
Review and apply recommended configuration
✅ PASS
ocp4-cis-controller-service-account-ca
Review and apply recommended configuration
✅ PASS
ocp4-cis-controller-service-account-private-key
Review and apply recommended configuration
✅ PASS
ocp4-cis-controller-use-service-account
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-auto-tls
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-cert-file
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-client-cert-auth
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-key-file
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-peer-auto-tls
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-peer-cert-file
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-peer-client-cert-auth
Review and apply recommended configuration
✅ PASS
ocp4-cis-etcd-peer-key-file
Review and apply recommended configuration
✅ PASS
ocp4-cis-kubelet-configure-tls-cert
Review and apply recommended configuration
✅ PASS
ocp4-cis-kubelet-configure-tls-key
Review and apply recommended configuration
✅ PASS
ocp4-cis-kubelet-disable-readonly-port
Review and apply recommended configuration
✅ PASS
ocp4-cis-ocp-api-server-audit-log-maxsize
Review and apply recommended configuration
✅ PASS
ocp4-cis-ocp-insecure-allowed-registries-for-import
Set spec.allowedRegistriesForImport in image.config.openshift.io
✅ PASS
ocp4-cis-ocp-insecure-registries
Review and apply recommended configuration
✅ PASS
ocp4-cis-rbac-debug-role-protects-pprof
Review and restrict RBAC permissions
✅ PASS
ocp4-cis-scc-limit-container-allowed-capabilities
Configure SecurityContextConstraints appropriately
✅ PASS
ocp4-cis-scheduler-profiling-protected-by-rbac
Review and restrict RBAC permissions
✅ PASS
ocp4-cis-scheduler-service-protected-by-rbac
Review and restrict RBAC permissions
✅ PASS
ocp4-e8-api-server-tls-cipher-suites
Review and apply recommended configuration
✅ PASS
ocp4-e8-ocp-idp-no-htpasswd
Review and apply recommended configuration
✅ PASS
ocp4-e8-scc-limit-container-allowed-capabilities
Configure SecurityContextConstraints appropriately
✅ PASS
rhcos4-e8-master-auditd-data-retention-flush
Review and apply recommended configuration
✅ PASS
rhcos4-e8-master-auditd-freq
Set number to of
✅ PASS
rhcos4-e8-master-auditd-local-events
Review and apply recommended configuration
✅ PASS
rhcos4-e8-master-auditd-write-logs
Set write_logs to yes
✅ PASS
rhcos4-e8-master-configure-ssh-crypto-policy
Set crypto policy: update-crypto-policies --set DEFAULT:NO-SHA1
✅ PASS
rhcos4-e8-master-selinux-policytype
Review and apply recommended configuration
✅ PASS
rhcos4-e8-master-sshd-disable-rhosts
Set IgnoreRhosts yes in sshd_config
✅ PASS
rhcos4-e8-master-sshd-disable-root-login
Set PermitRootLogin no in sshd_config
✅ PASS
rhcos4-e8-master-sshd-do-not-permit-user-env
Set PermitUserEnvironment no in sshd_config
✅ PASS
rhcos4-e8-master-sshd-enable-strictmodes
Set StrictModes yes in sshd_config
✅ PASS
rhcos4-e8-master-sshd-print-last-log
Set PrintLastLog yes in sshd_config
✅ PASS
rhcos4-e8-master-sysctl-kernel-kptr-restrict
Set kernel.kptr_restrict=1 via sysctl
✅ PASS
rhcos4-e8-worker-auditd-data-retention-flush
Review and apply recommended configuration
✅ PASS
rhcos4-e8-worker-auditd-freq
Set number to of
✅ PASS
rhcos4-e8-worker-auditd-local-events
Review and apply recommended configuration
✅ PASS
rhcos4-e8-worker-auditd-write-logs
Set write_logs to yes
✅ PASS
rhcos4-e8-worker-configure-ssh-crypto-policy
Set crypto policy: update-crypto-policies --set DEFAULT:NO-SHA1
✅ PASS
rhcos4-e8-worker-selinux-policytype
Review and apply recommended configuration
✅ PASS
rhcos4-e8-worker-sshd-disable-rhosts
Set IgnoreRhosts yes in sshd_config
✅ PASS
rhcos4-e8-worker-sshd-disable-root-login
Set PermitRootLogin no in sshd_config
✅ PASS
rhcos4-e8-worker-sshd-do-not-permit-user-env
Set PermitUserEnvironment no in sshd_config
✅ PASS
rhcos4-e8-worker-sshd-enable-strictmodes
Set StrictModes yes in sshd_config
✅ PASS
rhcos4-e8-worker-sshd-print-last-log
Set PrintLastLog yes in sshd_config
✅ PASS
rhcos4-e8-worker-sysctl-kernel-kptr-restrict
Set kernel.kptr_restrict=1 via sysctl
✅ PASS

LOW Severity Passing Checks (9)

Check Name Status
ocp4-cis-api-server-audit-log-maxbackup
Review and apply recommended configuration
✅ PASS
ocp4-cis-api-server-bind-address
Set to to a
✅ PASS
ocp4-cis-controller-insecure-port-disabled
Review and apply recommended configuration
✅ PASS
ocp4-cis-controller-secure-port
Review and apply recommended configuration
✅ PASS
ocp4-cis-ocp-api-server-audit-log-maxbackup
Review and apply recommended configuration
✅ PASS
rhcos4-e8-master-auditd-log-format
Review and apply recommended configuration
✅ PASS
rhcos4-e8-master-sshd-set-loglevel-info
Configure sshd_config security settings
✅ PASS
rhcos4-e8-worker-auditd-log-format
Review and apply recommended configuration
✅ PASS
rhcos4-e8-worker-sshd-set-loglevel-info
Configure sshd_config security settings
✅ PASS
Legend
Status
🔵 In Progress
🟡 Pending
⚪ On Hold
🟢 Complete
Severity
HIGH
MEDIUM
LOW
MANUAL

Keyboard Shortcuts

Navigation
j / Next row
k / Previous row
Enter Open selected / Expand details
Esc Clear selection / Close modal
Actions
/ Focus search
d Toggle dark mode
? Show this help
g h Go to home
Filters
1 Show all
2 Pending only
3 In Progress only
4 Complete only