CIS Red Hat OpenShift Container Platform Benchmark v1.8.0 - Control 3.2.2
Profile Applicability
- Level: 2
Description
Ensure that the audit policy created for the cluster covers key security concerns.
Rationale
Security audit logs should cover access and modification of key resources in the cluster, to enable them to form an effective part of a security environment.
Impact
Increasing audit logging will consume resources on the nodes or other log destinations.
Audit Procedure
Review the audit policy provided for the cluster and ensure that it covers the following areas:
- The use of sensitive resources like
Secrets,ConfigMaps, andTokenReviewsare logged at theMetadatalevel - Modifications to
podsanddeploymentsare logged at theRequestlevel - The use of
pods/exec,pods/portforward,pods/proxy, andservices/proxyare at least logged at theMetadatalevel
For most requests, minimally logging at the Metadata level is recommended (the most basic level of logging).
You can configure the audit feature to set log level, retention policy, and the type of events to log. You can set the log level settings for an overall component or the API server to one of the following. The setting can be different for each setting.
Use the following command to view the audit policies for the Kubernetes API server:
oc get configmap -n openshift-kube-apiserver kube-apiserver-audit-policies -o json | jq -r '.data."policy.yaml"'
Use the following command to view the audit policies for the OpenShift API server:
oc get configmap -n openshift-apiserver audit -o json | jq -r '.data."policy.yaml"'
Remediation
Update the audit log policy profile to use WriteRequestBodies.
Default Value
Audit logging is configured by default using the Default audit policy, but you are advised to review the log retention settings and log levels to align with your cluster's security posture.
References
- https://docs.openshift.com/container-platform/latest/security/audit-log-policy-config.html
- https://docs.openshift.com/container-platform/latest/security/audit-log-view.html
- https://github.com/openshift/cluster-kube-apiserver-operator/blob/release-4.5/bindata/v4.1.0/config/defaultconfig.yaml#L47-L77
- https://github.com/openshift/cluster-kube-apiserver-operator/blob/release-4.6/bindata/v4.1.0/config/defaultconfig.yaml#L34-L78
- https://github.com/k8scop/k8s-security-dashboard/blob/master/configs/kubernetes/adv-audit.yaml
- https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/
- https://github.com/falcosecurity/falco/blob/master/examples/k8s_audit_config/audit-policy.yaml
- https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/gci/configure-helper.sh#L735
CIS Controls
| Controls Version | Control | IG 1 | IG 2 | IG 3 |
|---|---|---|---|---|
| v8 | 8.5 Collect Detailed Audit Logs | * | * | |
| v7 | 14.9 Enforce Detail Logging for Access or Changes to Sensitive Data | * |
MITRE ATT&CK Mappings
| Techniques / Sub-techniques | Tactics | Mitigations |
|---|---|---|
| T1543 | TA0003, TA0004 | M1026 |
Profile
Level 2 (Manual)