mirror of
https://github.com/aquasecurity/kube-bench.git
synced 2024-12-20 05:38:13 +00:00
update files
This commit is contained in:
parent
d30786da4a
commit
e70f50b2b5
@ -1,20 +1,21 @@
|
||||
---
|
||||
controls:
|
||||
version: 1.6
|
||||
version: 3.10
|
||||
id: 1
|
||||
text: "Master Node Security Configuration"
|
||||
text: "Securing the OpenShift Master"
|
||||
type: "master"
|
||||
groups:
|
||||
- id: 1.1
|
||||
text: "API Server"
|
||||
|
||||
- id: 1
|
||||
text: "Protecting the API Server"
|
||||
checks:
|
||||
- id: 1.1.1
|
||||
text: "Ensure that the --anonymous-auth argument is set to false (Scored)"
|
||||
- id: 1.1
|
||||
text: "Maintain default behavior for anonymous access"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.1.2
|
||||
text: "Ensure that the --basic-auth-file argument is not set (Scored)"
|
||||
- id: 1.2
|
||||
text: "Verify that the basic-auth-file method is not enabled"
|
||||
audit: "grep -A2 basic-auth-file /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -33,13 +34,13 @@ groups:
|
||||
- /path/to/any/file
|
||||
scored: true
|
||||
|
||||
- id: 1.1.3
|
||||
text: "Ensure that the --insecure-allow-any-token argument is not set (Scored)"
|
||||
- id: 1.3
|
||||
text: "Insecure Tokens"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.1.4
|
||||
text: "Ensure that the --kubelet-https argument is set to true (Scored)"
|
||||
- id: 1.4
|
||||
text: "Secure communications between the API server and master nodes"
|
||||
audit: "grep -A4 kubeletClientInfo /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -80,8 +81,8 @@ groups:
|
||||
port: 10250
|
||||
scored: true
|
||||
|
||||
- id: 1.1.5
|
||||
text: "Ensure that the --insecure-bind-address argument is not set (Scored)"
|
||||
- id: 1.5
|
||||
text: "Prevent insecure bindings"
|
||||
audit: "grep -A2 insecure-bind-address /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -97,8 +98,8 @@ groups:
|
||||
- 127.0.0.1
|
||||
scored: true
|
||||
|
||||
- id: 1.1.6
|
||||
text: "Ensure that the --insecure-port argument is set to 0 (Scored)"
|
||||
- id: 1.6
|
||||
text: "Prevent insecure port access"
|
||||
audit: "grep -A2 insecure-port /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -114,8 +115,8 @@ groups:
|
||||
- 0
|
||||
scored: true
|
||||
|
||||
- id: 1.1.7
|
||||
text: "Ensure that the --secure-port argument is not set to 0 (Scored)"
|
||||
- id: 1.7
|
||||
text: "Use Secure Ports for API Server Traffic"
|
||||
audit: "grep -A2 secure-port /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -138,13 +139,13 @@ groups:
|
||||
- 8443
|
||||
scored: true
|
||||
|
||||
- id: 1.1.8
|
||||
text: "Ensure that the --profiling argument is set to false (Scored)"
|
||||
- id: 1.8
|
||||
text: "Do not expose API server profiling data"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.1.9
|
||||
text: "Ensure that the --repair-malformed-updates argument is set to false (Scored)"
|
||||
- id: 1.9
|
||||
text: "Verify repair-malformed-updates argument for API compatibility"
|
||||
audit: "grep -A2 repair-malformed-updates /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -161,8 +162,8 @@ groups:
|
||||
and remove the repair-malformed-updates entry or set repair-malformed-updates=true.
|
||||
scored: true
|
||||
|
||||
- id: 1.1.10
|
||||
text: "Ensure that the admission control plugin AlwaysAdmit is not set (Scored)"
|
||||
- id: 1.10
|
||||
text: "Verify that the AlwaysAdmit admission controller is disabled"
|
||||
audit: "grep -A4 AlwaysAdmit /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -179,8 +180,8 @@ groups:
|
||||
disable: false
|
||||
scored: true
|
||||
|
||||
- id: 1.1.11
|
||||
text: "Ensure that the admission control plugin AlwaysPullImages is set (Scored)"
|
||||
- id: 1.11
|
||||
text: "Manage the AlwaysPullImages admission controller"
|
||||
audit: "grep -A4 AlwaysPullImages /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -202,18 +203,18 @@ groups:
|
||||
disable: false
|
||||
scored: true
|
||||
|
||||
- id: 1.1.12
|
||||
text: "Ensure that the admission control plugin DenyEscalatingExec is set (Scored)"
|
||||
- id: 1.12
|
||||
text: "Use Security Context Constraints instead of DenyEscalatingExec admission"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.1.13
|
||||
text: "Ensure that the admission control plugin SecurityContextDeny is set (Scored)"
|
||||
- id: 1.13
|
||||
text: "Use Security Context Constraints instead of the SecurityContextDeny admission controller"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.1.14
|
||||
text: "Ensure that the admission control plugin NamespaceLifecycle is set (Scored)"
|
||||
- id: 1.14
|
||||
text: "Manage the NamespaceLifecycle admission controller"
|
||||
audit: "grep -A4 NamespaceLifecycle /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -230,8 +231,8 @@ groups:
|
||||
disable: true
|
||||
scored: true
|
||||
|
||||
- id: 1.1.15
|
||||
text: "Ensure that the --audit-log-path argument is set as appropriate (Scored)"
|
||||
- id: 1.15
|
||||
text: "Configure API server auditing - audit log file path"
|
||||
audit: "grep -A5 auditConfig /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -244,22 +245,22 @@ groups:
|
||||
Edit the Openshift master config file /etc/origin/master/master-config.yaml, update the following entry and restart the API server.
|
||||
|
||||
auditConfig:
|
||||
auditFilePath: "/var/log/audit-ocp.log"
|
||||
auditFilePath: ""/etc/origin/master/audit-ocp.log""
|
||||
enabled: true
|
||||
maximumFileRetentionDays: 10
|
||||
maximumFileSizeMegabytes: 100
|
||||
maximumFileRetentionDays: 30
|
||||
maximumFileSizeMegabytes: 10
|
||||
maximumRetainedFiles: 10
|
||||
|
||||
Make the same changes in the inventory/ansible variables so the changes are not
|
||||
lost when an upgrade occurs.
|
||||
scored: true
|
||||
|
||||
- id: 1.1.16
|
||||
text: "Ensure that the --audit-log-maxage argument is set to 30 or as appropriate (Scored)"
|
||||
- id: 1.16
|
||||
text: "Configure API server auditing - audit log retention"
|
||||
audit: "grep -A5 auditConfig /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
- flag: "maximumFileRetentionDays: 10"
|
||||
- flag: "maximumFileRetentionDays: 30"
|
||||
compare:
|
||||
op: has
|
||||
value: "maximumFileRetentionDays"
|
||||
@ -269,18 +270,18 @@ groups:
|
||||
update the maximumFileRetentionDays entry and restart the API server.
|
||||
|
||||
auditConfig:
|
||||
auditFilePath: "/var/log/audit-ocp.log"
|
||||
auditFilePath: ""/etc/origin/master/audit-ocp.log""
|
||||
enabled: true
|
||||
maximumFileRetentionDays: 10
|
||||
maximumFileSizeMegabytes: 100
|
||||
maximumFileRetentionDays: 30
|
||||
maximumFileSizeMegabytes: 10
|
||||
maximumRetainedFiles: 10
|
||||
|
||||
Make the same changes in the inventory/ansible variables so the changes are not
|
||||
lost when an upgrade occurs.
|
||||
scored: true
|
||||
|
||||
- id: 1.1.17
|
||||
text: "Ensure that the --audit-log-maxbackup argument is set to 10 or as appropriate (Scored)"
|
||||
- id: 1.17
|
||||
text: "Configure API server auditing - audit log backup retention"
|
||||
audit: "grep -A5 auditConfig /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -294,22 +295,22 @@ groups:
|
||||
set enabled to true and restart the API server.
|
||||
|
||||
auditConfig:
|
||||
auditFilePath: "/var/log/audit-ocp.log"
|
||||
auditFilePath: ""/etc/origin/master/audit-ocp.log""
|
||||
enabled: true
|
||||
maximumFileRetentionDays: 10
|
||||
maximumFileSizeMegabytes: 100
|
||||
maximumFileRetentionDays: 30
|
||||
maximumFileSizeMegabytes: 10
|
||||
maximumRetainedFiles: 10
|
||||
|
||||
Make the same changes in the inventory/ansible variables so the changes are not
|
||||
lost when an upgrade occurs.
|
||||
scored: true
|
||||
|
||||
- id: 1.1.18
|
||||
text: "Ensure that the --audit-log-maxsize argument is set to 100 or as appropriate (Scored)"
|
||||
- id: 1.18
|
||||
text: "Configure audit log file size"
|
||||
audit: "grep -A5 auditConfig /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
- flag: "maximumFileSizeMegabytes: 100"
|
||||
- flag: "maximumFileSizeMegabytes: 30"
|
||||
compare:
|
||||
op: has
|
||||
value: "maximumFileSizeMegabytes"
|
||||
@ -319,18 +320,18 @@ groups:
|
||||
set enabled to true and restart the API server.
|
||||
|
||||
auditConfig:
|
||||
auditFilePath: "/var/log/audit-ocp.log"
|
||||
auditFilePath: ""/etc/origin/master/audit-ocp.log""
|
||||
enabled: true
|
||||
maximumFileRetentionDays: 10
|
||||
maximumFileSizeMegabytes: 100
|
||||
maximumFileRetentionDays: 30
|
||||
maximumFileSizeMegabytes: 10
|
||||
maximumRetainedFiles: 10
|
||||
|
||||
Make the same changes in the inventory/ansible variables so the changes are not
|
||||
lost when an upgrade occurs.
|
||||
scored: true
|
||||
|
||||
- id: 1.1.19
|
||||
text: "Ensure that the --authorization-mode argument is not set to AlwaysAllow (Scored)"
|
||||
- id: 1.19
|
||||
text: "Verify that authorization-mode is not set to AlwaysAllow"
|
||||
audit: "grep -A1 authorization-mode /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -346,8 +347,8 @@ groups:
|
||||
- AllowAll
|
||||
scored: true
|
||||
|
||||
- id: 1.1.20
|
||||
text: "Ensure that the --token-auth-file parameter is not set (Scored)"
|
||||
- id: 1.20
|
||||
text: "Verify that the token-auth-file flag is not set"
|
||||
audit: "grep token-auth-file /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -363,8 +364,8 @@ groups:
|
||||
- /path/to/file
|
||||
scored: true
|
||||
|
||||
- id: 1.1.21
|
||||
text: "Ensure that the --kubelet-certificate-authority argument is set as appropriate (Scored)"
|
||||
- id: 1.21
|
||||
text: "Verify the API server certificate authority"
|
||||
audit: "grep -A1 kubelet-certificate-authority /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -380,8 +381,8 @@ groups:
|
||||
- /path/to/ca
|
||||
scored: true
|
||||
|
||||
- id: 1.1.22
|
||||
text: "Ensure that the --kubelet-client-certificate and --kubelet-client-key arguments are set as appropriate (Scored)"
|
||||
- id: 1.22
|
||||
text: "Verify the API server client certificate and client key"
|
||||
audit: "grep -A4 kubeletClientInfo /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -407,18 +408,18 @@ groups:
|
||||
port: 10250
|
||||
scored: true
|
||||
|
||||
- id: 1.1.23
|
||||
text: "Ensure that the --service-account-lookup argument is set to true"
|
||||
- id: 1.23
|
||||
text: "Verify that the service account lookup flag is not set"
|
||||
type: skip
|
||||
scored: true
|
||||
|
||||
- id: 1.1.24
|
||||
text: "Ensure that the admission control plugin PodSecurityPolicy is set (Scored)"
|
||||
- id: 1.24
|
||||
text: "Verify the PodSecurityPolicy is disabled to ensure use of SecurityContextConstraints"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.1.25
|
||||
text: "Ensure that the --service-account-key-file argument is set as appropriate (Scored)"
|
||||
- id: 1.25
|
||||
text: "Verify that the service account key file argument is not set"
|
||||
audit: "grep -A9 serviceAccountConfig /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -457,8 +458,8 @@ groups:
|
||||
Verify that privateKeyFile and publicKeyFile exist and set.
|
||||
scored: true
|
||||
|
||||
- id: 1.1.26
|
||||
text: "Ensure that the --etcd-certfile and --etcd-keyfile arguments are set as appropriate (Scored)"
|
||||
- id: 1.26
|
||||
text: "Verify the certificate and key used for communication with etcd"
|
||||
audit: "grep -A3 etcdClientInfo /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -483,8 +484,8 @@ groups:
|
||||
keyFile: master.etcd-client.key
|
||||
scored: true
|
||||
|
||||
- id: 1.1.27
|
||||
text: "Ensure that the admission control plugin ServiceAccount is set (Scored)"
|
||||
- id: 1.27
|
||||
text: "Verify that the ServiceAccount admission controller is enabled"
|
||||
audit: "grep -A4 ServiceAccount /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -507,8 +508,8 @@ groups:
|
||||
disable: false
|
||||
scored: true
|
||||
|
||||
- id: 1.1.28
|
||||
text: "Ensure that the --tls-cert-file and --tls-private-key-file arguments are set as appropriate (Scored)"
|
||||
- id: 1.28
|
||||
text: "Verify the certificate and key used to encrypt API server traffic"
|
||||
audit: "grep -A7 servingInfo /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -536,16 +537,13 @@ groups:
|
||||
requestTimeoutSeconds: 3600
|
||||
scored: true
|
||||
|
||||
- id: 1.1.29
|
||||
text: "Ensure that the --client-ca-file argument is set as appropriate (Scored)"
|
||||
audit: "grep -A7 servingInfo /etc/origin/master/master-config.yaml"
|
||||
- id: 1.29
|
||||
text: "Verify that the --client-ca-file argument is not set"
|
||||
audit: "grep client-ca-file /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
- flag: "clientCA: ca.crt"
|
||||
compare:
|
||||
op: has
|
||||
value: "clientCA: ca.crt"
|
||||
set: true
|
||||
set: false
|
||||
remediation: |
|
||||
Edit the Openshift master config file /etc/origin/master/master-config.yaml and set clientCA under servingInfo.
|
||||
|
||||
@ -559,8 +557,8 @@ groups:
|
||||
requestTimeoutSeconds: 3600
|
||||
scored: true
|
||||
|
||||
- id: 1.1.30
|
||||
text: "Ensure that the --etcd-cafile argument is set as appropriate (Scored)"
|
||||
- id: 1.30
|
||||
text: "Verify the CA used for communication with etcd"
|
||||
audit: "grep -A3 etcdClientInfo /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -578,13 +576,13 @@ groups:
|
||||
keyFile: master.etcd-client.key
|
||||
scored: true
|
||||
|
||||
- id: 1.1.31
|
||||
text: "Ensure that the --etcd-cafile argument is set as appropriate (Scored)"
|
||||
- id: 1.31
|
||||
text: "Verify that the authorization-mode argument is not set"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.1.32
|
||||
text: "Ensure that the --authorization-mode argument is set to Node (Scored)"
|
||||
- id: 1.32
|
||||
text: "Verify that the NodeRestriction admission controller is enabled"
|
||||
audit: "grep -A4 NodeRestriction /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -606,8 +604,8 @@ groups:
|
||||
disable: false
|
||||
scored: true
|
||||
|
||||
- id: 1.1.33
|
||||
text: "Ensure that the --experimental-encryption-provider-config argument is set as appropriate (Scored)"
|
||||
- id: 1.33
|
||||
text: "Configure encryption of data at rest in etcd datastore"
|
||||
audit: "grep -A1 experimental-encryption-provider-config /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -621,8 +619,8 @@ groups:
|
||||
https://docs.openshift.com/container-platform/3.10/admin_guide/encrypting_data.html
|
||||
scored: true
|
||||
|
||||
- id: 1.1.34
|
||||
text: "Ensure that the encryption provider is set to aescbc (Scored)"
|
||||
- id: 1.34
|
||||
text: "Set the encryption provider to aescbc for etcd data at rest"
|
||||
audit: "grep -A1 experimental-encryption-provider-config /etc/origin/master/master-config.yaml | sed -n '2p' | awk '{ print $2 }' | xargs grep -A1 providers"
|
||||
tests:
|
||||
test_items:
|
||||
@ -636,8 +634,8 @@ groups:
|
||||
See https://docs.openshift.com/container-platform/3.10/admin_guide/encrypting_data.html.
|
||||
scored: true
|
||||
|
||||
- id: 1.1.35
|
||||
text: "Ensure that the admission control policy is set to EventRateLimit (Scored)"
|
||||
- id: 1.35
|
||||
text: "Enable the EventRateLimit plugin"
|
||||
audit: "grep -A4 EventRateLimit /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -651,8 +649,8 @@ groups:
|
||||
https://docs.openshift.com/container-platform/3.10/architecture/additional_concepts/admission_controllers.html#admission-controllers-general-admission-rules
|
||||
scored: true
|
||||
|
||||
- id: 1.1.36
|
||||
text: "Ensure that the AdvancedAuditing argument is not set to false (Scored)"
|
||||
- id: 1.36
|
||||
text: "Configure advanced auditing"
|
||||
audit: "grep AdvancedAuditing /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -674,8 +672,8 @@ groups:
|
||||
scored: true
|
||||
|
||||
# Review 1.1.37 in Aquasec shared doc, the tests are net zero.
|
||||
- id: 1.1.37
|
||||
text: "Ensure that the --request-timeout argument is set as appropriate (Scored)"
|
||||
- id: 1.37
|
||||
text: "Adjust the request timeout argument for your cluster resources"
|
||||
audit: "grep request-timeout /etc/origin/master/master-config.yaml"
|
||||
type: manual
|
||||
remediation: |
|
||||
@ -683,27 +681,27 @@ groups:
|
||||
scored: true
|
||||
|
||||
|
||||
- id: 1.2
|
||||
- id: 2
|
||||
text: "Scheduler"
|
||||
checks:
|
||||
- id: 1.2.1
|
||||
text: "Ensure that the --profiling argument is set to false (Scored)"
|
||||
- id: 2.1
|
||||
text: "Verify that Scheduler profiling is not exposed to the web"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
|
||||
- id: 1.3
|
||||
- id: 3
|
||||
text: "Controller Manager"
|
||||
checks:
|
||||
- id: 1.3.1
|
||||
text: "Ensure that the --terminated-pod-gc-threshold argument is set as appropriate (Scored)"
|
||||
- id: 3.1
|
||||
text: "Adjust the terminated-pod-gc-threshold argument as needed"
|
||||
audit: "grep terminated-pod-gc-threshold -A1 /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
- flag: "true"
|
||||
- flag: "terminated-pod-gc-threshold:"
|
||||
compare:
|
||||
op: has
|
||||
value: "true"
|
||||
value: "12500"
|
||||
set: true
|
||||
remediation: |
|
||||
Edit the Openshift master config file /etc/origin/master/master-config.yaml and enable terminated-pod-gc-threshold.
|
||||
@ -716,13 +714,13 @@ groups:
|
||||
Enabling the "terminated-pod-gc-threshold" settings is optional.
|
||||
scored: true
|
||||
|
||||
- id: 1.3.2
|
||||
text: "Ensure that the --profiling argument is set to false (Scored)"
|
||||
- id: 3.2
|
||||
text: "Verify that Controller profiling is not exposed to the web"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.3.3
|
||||
text: "Ensure that the --use-service-account-credentials argument is set to true (Scored)"
|
||||
- id: 3.3
|
||||
text: "Verify that the --use-service-account-credentials argument is set to true"
|
||||
audit: "grep -A2 use-service-account-credentials /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -744,9 +742,9 @@ groups:
|
||||
- true
|
||||
scored: true
|
||||
|
||||
# Review 1.3.4
|
||||
- id: 1.3.4
|
||||
text: "Ensure that the --service-account-private-key-file argument is set as appropriate (Scored)"
|
||||
# Review 3.4
|
||||
- id: 3.4
|
||||
text: "Verify that the --service-account-private-key-file argument is set as appropriate"
|
||||
audit: |
|
||||
grep -A9 serviceAccountConfig /etc/origin/master/master-config.yaml | grep privateKeyFile;
|
||||
grep -A2 service-account-private-key-file /etc/origin/master/master-config.yaml
|
||||
@ -763,9 +761,9 @@ groups:
|
||||
Edit the Openshift master config file /etc/origin/master/master-config.yaml and remove service-account-private-key-file
|
||||
scored: true
|
||||
|
||||
# Review 1.3.5
|
||||
- id: 1.3.5
|
||||
text: "Ensure that the --root-ca-file argument is set as appropriate (Scored)"
|
||||
# Review 3.5
|
||||
- id: 3.5
|
||||
text: "Verify that the --root-ca-file argument is set as appropriate"
|
||||
audit: "/bin/sh -c 'grep root-ca-file /etc/origin/master/master-config.yaml; grep -A9 serviceAccountConfig /etc/origin/master/master-config.yaml'"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -790,13 +788,13 @@ groups:
|
||||
https://docs.openshift.com/container-platform/3.10/admin_guide/service_accounts.html"
|
||||
scored: true
|
||||
|
||||
- id: 1.3.6
|
||||
text: "Apply Security Context to Your Pods and Containers (Not Scored)"
|
||||
- id: 3.6
|
||||
text: "Verify that Security Context Constraints are applied to Your Pods and Containers"
|
||||
type: "skip"
|
||||
scored: false
|
||||
|
||||
- id: 1.3.7
|
||||
text: "Ensure that the RotateKubeletServerCertificate argument is set to true (Scored)"
|
||||
- id: 3.7
|
||||
text: "Manage certificate rotation"
|
||||
audit: "grep -B3 RotateKubeletServerCertificate=true /etc/origin/master/master-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -812,25 +810,14 @@ groups:
|
||||
scored: true
|
||||
|
||||
|
||||
- id: 1.4
|
||||
- id: 4
|
||||
text: "Configuration Files"
|
||||
checks:
|
||||
- id: 1.4.1
|
||||
text: "Ensure that the API server pod specification file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 4.1
|
||||
text: "Verify the OpenShift default permissions for the API server pod specification file"
|
||||
audit: "stat -c %a /etc/origin/node/pods/apiserver.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
test_items:
|
||||
- flag: "644"
|
||||
compare:
|
||||
op: eq
|
||||
value: "644"
|
||||
set: true
|
||||
- flag: "640"
|
||||
compare:
|
||||
op: eq
|
||||
value: "640"
|
||||
set: true
|
||||
- flag: "600"
|
||||
compare:
|
||||
op: eq
|
||||
@ -839,11 +826,11 @@ groups:
|
||||
remediation: |
|
||||
Run the below command.
|
||||
|
||||
chmod 644 /etc/origin/node/pods/apiserver.yaml
|
||||
chmod 600 /etc/origin/node/pods/apiserver.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.2
|
||||
text: "Ensure that the API server pod specification file ownership is set to root:root (Scored)"
|
||||
- id: 4.2
|
||||
text: "Verify the OpenShift default file ownership for the API server pod specification file"
|
||||
audit: "stat -c %U:%G /etc/origin/node/pods/apiserver.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -858,22 +845,11 @@ groups:
|
||||
chown root:root /etc/origin/node/pods/apiserver.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.3
|
||||
text: "Ensure that the controller manager pod specification file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 4.3
|
||||
text: "Verify the OpenShift default file permissions for the controller manager pod specification file"
|
||||
audit: "stat -c %a /etc/origin/node/pods/controller.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
test_items:
|
||||
- flag: "644"
|
||||
compare:
|
||||
op: eq
|
||||
value: "644"
|
||||
set: true
|
||||
- flag: "640"
|
||||
compare:
|
||||
op: eq
|
||||
value: "640"
|
||||
set: true
|
||||
- flag: "600"
|
||||
compare:
|
||||
op: eq
|
||||
@ -882,11 +858,11 @@ groups:
|
||||
remediation: |
|
||||
Run the below command on the master node.
|
||||
|
||||
chmod 644 /etc/origin/node/pods/controllermanager.yaml
|
||||
chmod 600 /etc/origin/node/pods/controller.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.4
|
||||
text: "Ensure that the controller manager pod specification file ownership is set to root:root (Scored)"
|
||||
- id: 4.4
|
||||
text: "Verify the OpenShift default ownership for the controller manager pod specification file"
|
||||
audit: "stat -c %U:%G /etc/origin/node/pods/controller.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -898,25 +874,14 @@ groups:
|
||||
remediation: |
|
||||
Run the below command on the master node.
|
||||
|
||||
chown root:root /etc/origin/node/pods/controllermanager.yaml
|
||||
chown root:root /etc/origin/node/pods/controller.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.5
|
||||
text: "Ensure that the scheduler pod specification file permissions are set to 644 or more restrictive (Scored)"
|
||||
audit: "stat -c %a /etc/origin/node/pods/apiserver.yaml"
|
||||
- id: 4.5
|
||||
text: "Verify the OpenShift default permissions for the scheduler pod specification file"
|
||||
audit: "stat -c %a /etc/origin/node/pods/controller.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
test_items:
|
||||
- flag: "644"
|
||||
compare:
|
||||
op: eq
|
||||
value: "644"
|
||||
set: true
|
||||
- flag: "640"
|
||||
compare:
|
||||
op: eq
|
||||
value: "640"
|
||||
set: true
|
||||
- flag: "600"
|
||||
compare:
|
||||
op: eq
|
||||
@ -925,12 +890,12 @@ groups:
|
||||
remediation: |
|
||||
Run the below command.
|
||||
|
||||
chmod 644 /etc/origin/node/pods/apiserver.yaml
|
||||
chmod 600 stat -c %a /etc/origin/node/pods/controller.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.6
|
||||
text: "Ensure that the scheduler pod specification file ownership is set to root:root (Scored)"
|
||||
audit: "stat -c %U:%G /etc/origin/node/pods/apiserver.yaml"
|
||||
- id: 4.6
|
||||
text: "Verify the scheduler pod specification file ownership set by OpenShift"
|
||||
audit: "stat -c %u:%g /etc/origin/node/pods/controller.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
- flag: "root:root"
|
||||
@ -941,25 +906,14 @@ groups:
|
||||
remediation: |
|
||||
Run the below command on the master node.
|
||||
|
||||
chown root:root /etc/origin/node/pods/apiserver.yaml
|
||||
chown root:root /etc/origin/node/pods/controller.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.7
|
||||
text: "Ensure that the etcd pod specification file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 4.7
|
||||
text: "Verify the OpenShift default etcd pod specification file permissions"
|
||||
audit: "stat -c %a /etc/origin/node/pods/etcd.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
test_items:
|
||||
- flag: "644"
|
||||
compare:
|
||||
op: eq
|
||||
value: "644"
|
||||
set: true
|
||||
- flag: "640"
|
||||
compare:
|
||||
op: eq
|
||||
value: "640"
|
||||
set: true
|
||||
- flag: "600"
|
||||
compare:
|
||||
op: eq
|
||||
@ -968,11 +922,11 @@ groups:
|
||||
remediation: |
|
||||
Run the below command.
|
||||
|
||||
chmod 644 /etc/origin/node/pods/etcd.yaml
|
||||
chmod 600 /etc/origin/node/pods/etcd.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.8
|
||||
text: "Ensure that the etcd pod specification file ownership is set to root:root (Scored)"
|
||||
- id: 4.8
|
||||
text: "Verify the OpenShift default etcd pod specification file ownership"
|
||||
audit: "stat -c %U:%G /etc/origin/node/pods/etcd.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -987,9 +941,9 @@ groups:
|
||||
chown root:root /etc/origin/node/pods/etcd.yaml
|
||||
scored: true
|
||||
|
||||
- id: 1.4.9
|
||||
text: "Ensure that the Container Network Interface file permissions are set to 644 or more restrictive (Scored)"
|
||||
audit: "stat -c %a /etc/origin/openvswitch/"
|
||||
- id: 4.9
|
||||
text: "Verify the default OpenShift Container Network Interface file permissions"
|
||||
audit: "stat -c %a /etc/origin/openvswitch/ /etc/cni/net.d/"
|
||||
tests:
|
||||
bin_op: or
|
||||
test_items:
|
||||
@ -1011,12 +965,12 @@ groups:
|
||||
remediation: |
|
||||
Run the below command.
|
||||
|
||||
chmod 644 /etc/origin/openvswitch/
|
||||
chmod 644 -R /etc/origin/openvswitch/ /etc/cni/net.d/
|
||||
scored: true
|
||||
|
||||
- id: 1.4.10
|
||||
text: "Ensure that the Container Network Interface file ownership is set to root:root (Scored)"
|
||||
audit: "stat -c %U:%G /etc/origin/openvswitch/"
|
||||
- id: 4.10
|
||||
text: "Verify the default OpenShift Container Network Interface file ownership"
|
||||
audit: "stat -c %U:%G /etc/origin/openvswitch/ /etc/cni/net.d/"
|
||||
tests:
|
||||
test_items:
|
||||
- flag: "root:root"
|
||||
@ -1027,11 +981,11 @@ groups:
|
||||
remediation: |
|
||||
Run the below command on the master node.
|
||||
|
||||
chown root:root /etc/origin/openvswitch/
|
||||
chown root:root /etc/origin/openvswitch/ /etc/cni/net.d/
|
||||
scored: true
|
||||
|
||||
- id: 1.4.11
|
||||
text: "Ensure that the etcd data directory permissions are set to 700 or more restrictive(Scored)"
|
||||
- id: 4.11
|
||||
text: "Verify the default OpenShift etcd data directory permissions"
|
||||
audit: "stat -c %a /var/lib/etcd"
|
||||
tests:
|
||||
test_items:
|
||||
@ -1048,8 +1002,8 @@ groups:
|
||||
chmod 700 /var/lib/etcd
|
||||
scored: true
|
||||
|
||||
- id: 1.4.12
|
||||
text: "Ensure that the etcd data directory ownership is set to etcd:etcd (Scored)"
|
||||
- id: 4.12
|
||||
text: "Verify the default OpenShift etcd data directory ownership"
|
||||
audit: "stat -c %U:%G /var/lib/etcd"
|
||||
tests:
|
||||
test_items:
|
||||
@ -1064,8 +1018,8 @@ groups:
|
||||
chown etcd:etcd /var/lib/etcd
|
||||
scored: true
|
||||
|
||||
- id: 1.4.13
|
||||
text: "Ensure that the admin.conf file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 4.13
|
||||
text: "Verify the default OpenShift admin.conf file permissions"
|
||||
audit: "stat -c %a /etc/origin/master/admin.kubeconfig"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -1091,8 +1045,8 @@ groups:
|
||||
chmod 644 /etc/origin/master/admin.kubeconfig"
|
||||
scored: true
|
||||
|
||||
- id: 1.4.14
|
||||
text: "Ensure that the admin.conf file ownership is set to root:root (Scored)"
|
||||
- id: 4.14
|
||||
text: "Verify the default OpenShift admin.conf file ownership"
|
||||
audit: "stat -c %U:%G /etc/origin/master/admin.kubeconfig"
|
||||
tests:
|
||||
test_items:
|
||||
@ -1107,8 +1061,8 @@ groups:
|
||||
chown root:root /etc/origin/master/admin.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 1.4.15
|
||||
text: "Ensure that the scheduler.conf file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 4.15
|
||||
text: "Verify the default OpenShift scheduler.conf file permissions"
|
||||
audit: "stat -c %a /etc/origin/master/openshift-master.kubeconfig"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -1134,8 +1088,8 @@ groups:
|
||||
chmod 644 /etc/origin/master/openshift-master.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 1.4.16
|
||||
text: "Ensure that the scheduler.conf file ownership is set to root:root (Scored)"
|
||||
- id: 4.16
|
||||
text: "Verify the default OpenShift scheduler.conf file ownership"
|
||||
audit: "stat -c %U:%G /etc/origin/master/openshift-master.kubeconfig"
|
||||
tests:
|
||||
test_items:
|
||||
@ -1150,8 +1104,8 @@ groups:
|
||||
chown root:root /etc/origin/master/openshift-master.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 1.4.17
|
||||
text: "Ensure that the controller-manager.conf file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 4.17
|
||||
text: "Verify the default Openshift controller-manager.conf file permissions"
|
||||
audit: "stat -c %a /etc/origin/master/openshift-master.kubeconfig"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -1177,7 +1131,7 @@ groups:
|
||||
chmod 644 /etc/origin/master/openshift-master.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 1.4.18
|
||||
- id: 4.18
|
||||
text: "Ensure that the controller-manager.conf file ownership is set to root:root (Scored)"
|
||||
audit: "stat -c %U:%G /etc/origin/master/openshift-master.kubeconfig"
|
||||
tests:
|
||||
@ -1194,16 +1148,16 @@ groups:
|
||||
scored: true
|
||||
|
||||
|
||||
- id: 1.5
|
||||
- id: 5
|
||||
text: "Etcd"
|
||||
checks:
|
||||
- id: 1.5.1
|
||||
text: "Ensure that the --cert-file and --key-file arguments are set as appropriate (Scored)"
|
||||
- id: 5.1
|
||||
text: "Verify the default OpenShift cert-file and key-file configuration"
|
||||
audit: "/bin/sh -c '/usr/local/bin/master-exec etcd etcd grep ETCD_CERT_FILE=/etc/etcd/server.crt /proc/1/environ; /usr/local/bin/master-exec etcd etcd grep etcd_key_file=/etc/etcd/server.key /proc/1/environ; grep ETCD_CERT_FILE=/etc/etcd/server.crt /etc/etcd/etcd.conf; grep ETCD_KEY_FILE=/etc/etcd/server.key /etc/etcd/etcd.conf'"
|
||||
tests:
|
||||
bin_op: and
|
||||
test_items:
|
||||
- flag: "Binary file /proc/1/environ matches"
|
||||
- : "Binary file /proc/1/environ matches"
|
||||
compare:
|
||||
op: has
|
||||
value: "Binary file /proc/1/environ matches"
|
||||
@ -1222,8 +1176,8 @@ groups:
|
||||
Reset to the OpenShift default configuration.
|
||||
scored: true
|
||||
|
||||
- id: 1.5.2
|
||||
text: "Ensure that the --client-cert-auth argument is set to true (Scored)"
|
||||
- id: 5.2
|
||||
text: "Verify the default OpenShift setting for the client-cert-auth argument"
|
||||
audit: "/bin/sh -c'/usr/local/bin/master-exec etcd etcd grep ETCD_CLIENT_CERT_AUTH=true /proc/1/environ; grep ETCD_CLIENT_CERT_AUTH /etc/etcd/etcd.conf'"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -1242,8 +1196,8 @@ groups:
|
||||
Reset to the OpenShift default configuration.
|
||||
scored: true
|
||||
|
||||
- id: 1.5.3
|
||||
text: "Ensure that the --auto-tls argument is not set to true (Scored)"
|
||||
- id: 5.3
|
||||
text: "Verify the OpenShift default values for etcd_auto_tls"
|
||||
audit: "/bin/sh -c '/usr/local/bin/master-exec etcd etcd grep ETCD_AUTO_TLS /proc/1/environ; grep ETCD_AUTO_TLS /etc/etcd/etcd.conf'"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -1262,8 +1216,8 @@ groups:
|
||||
Reset to the OpenShift default configuration.
|
||||
scored: true
|
||||
|
||||
- id: 1.5.4
|
||||
text: "Ensure that the --peer-cert-file and --peer-key-file arguments are set as appropriate (Scored)"
|
||||
- id: 5.4
|
||||
text: "Verify the OpenShift default peer-cert-file and peer-key-file arguments for etcd"
|
||||
audit: "/bin/sh -c'/usr/local/bin/master-exec etcd etcd grep ETCD_PEER_CERT_FILE=/etc/etcd/peer.crt /proc/1/environ; /usr/local/bin/master-exec etcd etcd grep ETCD_PEER_KEY_FILE=/etc/etcd/peer.key /proc/1/environ; grep ETCD_PEER_CERT_FILE /etc/etcd/etcd.conf; grep ETCD_PEER_KEY_FILE /etc/etcd/etcd.conf'"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -1287,8 +1241,8 @@ groups:
|
||||
Reset to the OpenShift default configuration.
|
||||
scored: true
|
||||
|
||||
- id: 1.5.5
|
||||
text: "Ensure that the --peer-client-cert-auth argument is set to true (Scored)"
|
||||
- id: 5.5
|
||||
text: "Verify the OpenShift default configuration for the peer-client-cert-auth"
|
||||
audit: "/bin/sh -c '/usr/local/bin/master-exec etcd etcd grep ETCD_PEER_CLIENT_CERT_AUTH=true /proc/1/environ; grep ETCD_PEER_CLIENT_CERT_AUTH /etc/etcd/etcd.conf'"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -1307,8 +1261,8 @@ groups:
|
||||
Reset to the OpenShift default configuration.
|
||||
scored: true
|
||||
|
||||
- id: 1.5.6
|
||||
text: "Ensure that the --peer-auto-tls argument is not set to true (Scored)"
|
||||
- id: 5.6
|
||||
text: "Verify the OpenShift default configuration for the peer-auto-tls argument"
|
||||
audit: "/bin/sh -c '/usr/local/bin/master-exec etcd etcd grep ETCD_PEER_AUTO_TLS /proc/1/environ; grep ETCD_PEER_AUTO_TLS /etc/etcd/etcd.conf'"
|
||||
tests:
|
||||
bin_op: and
|
||||
@ -1327,18 +1281,18 @@ groups:
|
||||
Reset to the OpenShift default configuration.
|
||||
scored: true
|
||||
|
||||
- id: 1.5.7
|
||||
text: "Ensure that the --wal-dir argument is set as appropriate Scored)"
|
||||
- id: 5.7
|
||||
text: "Optionally modify the wal-dir argument"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.5.8
|
||||
text: "Ensure that the --max-wals argument is set to 0 (Scored)"
|
||||
- id: 5.8
|
||||
text: "Optionally modify the max-wals argument"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 1.5.9
|
||||
text: "Ensure that a unique Certificate Authority is used for etcd (Not Scored)"
|
||||
- id: 5.9
|
||||
text: "Verify the OpenShift default configuration for the etcd Certificate Authority"
|
||||
audit: "openssl x509 -in /etc/origin/master/master.etcd-ca.crt -subject -issuer -noout | sed 's/@/ /'"
|
||||
tests:
|
||||
test_items:
|
||||
@ -1352,11 +1306,11 @@ groups:
|
||||
scored: false
|
||||
|
||||
|
||||
- id: 1.6
|
||||
- id: 6
|
||||
text: "General Security Primitives"
|
||||
checks:
|
||||
- id: 1.6.1
|
||||
text: "Ensure that the cluster-admin role is only used where required (Not Scored)"
|
||||
- id: 6.1
|
||||
text: "Ensure that the cluster-admin role is only used where required"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
Review users, groups, serviceaccounts bound to cluster-admin:
|
||||
@ -1366,8 +1320,8 @@ groups:
|
||||
such access. Consider creating least-privilege roles for users and service accounts
|
||||
scored: false
|
||||
|
||||
- id: 1.6.2
|
||||
text: "Create Pod Security Policies for your cluster (Not Scored)"
|
||||
- id: 6.2
|
||||
text: "Verify Security Context Constraints as in use"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
Review Security Context Constraints:
|
||||
@ -1383,16 +1337,16 @@ groups:
|
||||
https://docs.openshift.com/container-platform/3.10/admin_guide/manage_scc.html"
|
||||
scored: false
|
||||
|
||||
- id: 1.6.3
|
||||
text: "Create administrative boundaries between resources using namespaces (Not Scored)"
|
||||
- id: 6.3
|
||||
text: "Use OpenShift projects to maintain boundaries between resources"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
Review projects:
|
||||
oc get projects
|
||||
scored: false
|
||||
|
||||
- id: 1.6.4
|
||||
text: "Create network segmentation using Network Policies (Not Scored)"
|
||||
- id: 6.4
|
||||
text: "Create network segmentation using the Multi-tenant plugin or Network Policies"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
Verify on masters the plugin being used:
|
||||
@ -1414,8 +1368,8 @@ groups:
|
||||
https://docs.openshift.com/container-platform/3.10/install/configuring_inventory_file.html
|
||||
scored: false
|
||||
|
||||
- id: 1.6.5
|
||||
text: "Ensure that the seccomp profile is set to docker/default in your pod definitions (Not Scored)"
|
||||
- id: 6.5
|
||||
text: "Enable seccomp and configure custom Security Context Constraints"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
Verify SCCs that have been configured with seccomp:
|
||||
@ -1428,8 +1382,8 @@ groups:
|
||||
https://docs.openshift.com/container-platform/3.9/admin_guide/seccomp.html#admin-guide-seccomp
|
||||
scored: false
|
||||
|
||||
- id: 1.6.6
|
||||
text: "Apply Security Context to Your Pods and Containers (Not Scored)"
|
||||
- id: 6.6
|
||||
text: "Review Security Context Constraints"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
Review SCCs:
|
||||
@ -1452,15 +1406,15 @@ groups:
|
||||
https://docs.openshift.com/container-platform/3.10/admin_guide/manage_scc.html
|
||||
scored: false
|
||||
|
||||
- id: 1.6.7
|
||||
text: "Configure Image Provenance using ImagePolicyWebhook admission controller (Not Scored)"
|
||||
- id: 6.7
|
||||
text: "Manage Image Provenance using ImagePolicyWebhook admission controller"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
Review imagePolicyConfig in /etc/origin/master/master-config.yaml.
|
||||
scored: false
|
||||
|
||||
- id: 1.6.8
|
||||
text: "Configure Network policies as appropriate (Not Scored)"
|
||||
- id: 6.8
|
||||
text: "Configure Network policies as appropriate"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
If ovs-networkplugin is used, review network policies:
|
||||
@ -1471,8 +1425,8 @@ groups:
|
||||
netnamespace by default.
|
||||
scored: false
|
||||
|
||||
- id: 1.6.9
|
||||
text: "Place compensating controls in the form of PSP and RBAC for privileged containers usage (Not Scored)"
|
||||
- id: 6.9
|
||||
text: "Use Security Context Constraints as compensating controls for privileged containers"
|
||||
type: "manual"
|
||||
remediation: |
|
||||
1) Determine all sccs allowing privileged containers:
|
||||
|
@ -4,21 +4,21 @@ id: 2
|
||||
text: "Worker Node Security Configuration"
|
||||
type: "node"
|
||||
groups:
|
||||
- id: 2.1
|
||||
- id: 7
|
||||
text: "Kubelet"
|
||||
checks:
|
||||
- id: 2.1.1
|
||||
text: "Ensure that the --allow-privileged argument is set to false (Scored)"
|
||||
- id: 7.1
|
||||
text: "Use Security Context Constraints to manage privileged containers as needed"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 2.1.2
|
||||
text: "Ensure that the --anonymous-auth argument is set to false (Scored)"
|
||||
- id: 7.2
|
||||
text: "Ensure anonymous-auth is not disabled"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 2.1.3
|
||||
text: "Ensure that the --authorization-mode argument is not set to AlwaysAllow (Scored)"
|
||||
- id: 7.3
|
||||
text: "Verify that the --authorization-mode argument is set to WebHook)"
|
||||
audit: "grep -A1 authorization-mode /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -35,8 +35,8 @@ groups:
|
||||
kubeletArguments in /etc/origin/node/node-config.yaml or set it to "Webhook".
|
||||
scored: true
|
||||
|
||||
- id: 2.1.4
|
||||
text: "Ensure that the --client-ca-file argument is set as appropriate (Scored)"
|
||||
- id: 7.4
|
||||
text: "Verify the OpenShift default for the client-ca-file argument"
|
||||
audit: "grep -A1 client-ca-file /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -51,8 +51,8 @@ groups:
|
||||
The config file does not have this defined in kubeletArgument, but in PodManifestConfig.
|
||||
scored: true
|
||||
|
||||
- id: 2.1.5
|
||||
text: "Ensure that the --read-only-port argument is set to 0 (Scored)"
|
||||
- id: 7.5
|
||||
text: "Verify the OpenShift default setting for the read-only-port argumen"
|
||||
audit: "grep -A1 read-only-port /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -68,15 +68,15 @@ groups:
|
||||
Edit the Openshift node config file /etc/origin/node/node-config.yaml and removed so that the OpenShift default is applied.
|
||||
scored: true
|
||||
|
||||
- id: 2.1.6
|
||||
text: "Ensure that the --streaming-connection-idle-timeout argument is not set to 0 (Scored)"
|
||||
- id: 7.6
|
||||
text: "Adjust the streaming-connection-idle-timeout argument"
|
||||
audit: "grep -A1 streaming-connection-idle-timeout /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
test_items:
|
||||
- flag: "streaming-connection-idle-timeout"
|
||||
set: false
|
||||
- flag: "0"
|
||||
- flag: "5m"
|
||||
set: false
|
||||
remediation: |
|
||||
Edit the Openshift node config file /etc/origin/node/node-config.yaml and set the streaming-connection-timeout
|
||||
@ -87,13 +87,13 @@ groups:
|
||||
- "5m"
|
||||
scored: true
|
||||
|
||||
- id: 2.1.7
|
||||
text: "Ensure that the --protect-kernel-defaults argument is set to true (Scored)"
|
||||
- id: 7.7
|
||||
text: "Verify the OpenShift defaults for the protect-kernel-defaults argument"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 2.1.8
|
||||
text: "Ensure that the --make-iptables-util-chains argument is set to true (Scored)"
|
||||
- id: 7.8
|
||||
text: "Verify the OpenShift default value of true for the make-iptables-util-chains argument"
|
||||
audit: "grep -A1 make-iptables-util-chains /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -110,8 +110,8 @@ groups:
|
||||
default value of true.
|
||||
scored: true
|
||||
|
||||
id: 2.1.9
|
||||
text: "Ensure that the --keep-terminated-pod-volumeskeep-terminated-pod-volumes argument is set to false (Scored)"
|
||||
- id: 7.9
|
||||
text: "Verify that the --keep-terminated-pod-volumes argument is set to false"
|
||||
audit: "grep -A1 keep-terminated-pod-volumes /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -124,13 +124,13 @@ groups:
|
||||
Reset to the OpenShift defaults
|
||||
scored: true
|
||||
|
||||
- id: 2.1.10
|
||||
text: "Ensure that the --hostname-override argument is not set (Scored)"
|
||||
- id: 7.10
|
||||
text: "Verify the OpenShift defaults for the hostname-override argument"
|
||||
type: "skip"
|
||||
scored: true
|
||||
|
||||
- id: 2.1.11
|
||||
text: "Ensure that the --event-qps argument is set to 0 (Scored)"
|
||||
- id: 7.11
|
||||
text: "Set the --event-qps argument to 0"
|
||||
audit: "grep -A1 event-qps /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -147,8 +147,8 @@ groups:
|
||||
the kubeletArguments section of.
|
||||
scored: true
|
||||
|
||||
- id: 2.1.12
|
||||
text: "Ensure that the --tls-cert-file and --tls-private-key-file arguments are set as appropriate (Scored)"
|
||||
- id: 7.12
|
||||
text: "Verify the OpenShift cert-dir flag for HTTPS traffic"
|
||||
audit: "grep -A1 cert-dir /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -161,8 +161,8 @@ groups:
|
||||
Reset to the OpenShift default values.
|
||||
scored: true
|
||||
|
||||
- id: 2.1.13
|
||||
text: "Ensure that the --cadvisor-port argument is set to 0 (Scored)"
|
||||
- id: 7.13
|
||||
text: "Verify the OpenShift default of 0 for the cadvisor-port argument"
|
||||
audit: "grep -A1 cadvisor-port /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -179,8 +179,8 @@ groups:
|
||||
if it is set in the kubeletArguments section.
|
||||
scored: true
|
||||
|
||||
- id: 2.1.14
|
||||
text: "Ensure that the RotateKubeletClientCertificate argument is not set to false (Scored)"
|
||||
- id: 7.14
|
||||
text: "Verify that the RotateKubeletClientCertificate argument is set to true"
|
||||
audit: "grep -B1 RotateKubeletClientCertificate=true /etc/origin/node/node-config.yaml"
|
||||
tests:
|
||||
test_items:
|
||||
@ -193,8 +193,8 @@ groups:
|
||||
Edit the Openshift node config file /etc/origin/node/node-config.yaml and set RotateKubeletClientCertificate to true.
|
||||
scored: true
|
||||
|
||||
- id: 2.1.15
|
||||
text: "Ensure that the RotateKubeletServerCertificate argument is set to true (Scored)"
|
||||
- id: 7.15
|
||||
text: "Verify that the RotateKubeletServerCertificate argument is set to true"
|
||||
audit: "grep -B1 RotateKubeletServerCertificate=true /etc/origin/node/node-config.yaml"
|
||||
test:
|
||||
test_items:
|
||||
@ -208,11 +208,11 @@ groups:
|
||||
scored: true
|
||||
|
||||
|
||||
- id: 2.2
|
||||
- id: 8
|
||||
text: "Configuration Files"
|
||||
checks:
|
||||
- id: 2.2.1
|
||||
text: "Ensure that the kubelet.conf file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 8.1
|
||||
text: "Verify the OpenShift default permissions for the kubelet.conf file"
|
||||
audit: "stat -c %a /etc/origin/node/node.kubeconfig"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -237,8 +237,8 @@ groups:
|
||||
chmod 644 /etc/origin/node/node.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 2.2.2
|
||||
text: "Ensure that the kubelet.conf file ownership is set to root:root (Scored)"
|
||||
- id: 8.2
|
||||
text: "Verify the kubeconfig file ownership of root:root"
|
||||
audit: "stat -c %U:%G /etc/origin/node/node.kubeconfig"
|
||||
tests:
|
||||
test_items:
|
||||
@ -252,8 +252,8 @@ groups:
|
||||
chown root:root /etc/origin/node/node.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 2.2.3
|
||||
text: "Ensure that the kubelet service file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 8.3
|
||||
text: "Verify the kubelet service file permissions of 644"
|
||||
audit: "stat -c %a /etc/systemd/system/atomic-openshift-node.service"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -278,8 +278,8 @@ groups:
|
||||
chmod 644 /etc/systemd/system/atomic-openshift-node.service
|
||||
scored: true
|
||||
|
||||
- id: 2.2.4
|
||||
text: "Ensure that the kubelet service file ownership is set to root:root (Scored)"
|
||||
- id: 8.4
|
||||
text: "Verify the kubelet service file ownership of root:root"
|
||||
audit: "stat -c %U:%G /etc/systemd/system/atomic-openshift-node.service"
|
||||
tests:
|
||||
test_items:
|
||||
@ -293,8 +293,8 @@ groups:
|
||||
chown root:root /etc/systemd/system/atomic-openshift-node.service
|
||||
scored: true
|
||||
|
||||
- id: 2.2.5
|
||||
text: "Ensure that the proxy kubeconfig file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 8.5
|
||||
text: "Verify the OpenShift default permissions for the proxy kubeconfig file"
|
||||
audit: "stat -c %a /etc/origin/node/node.kubeconfig"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -319,8 +319,8 @@ groups:
|
||||
chmod 644 /etc/origin/node/node.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 2.2.6
|
||||
text: "Ensure that the proxy kubeconfig file ownership is set to root:root (Scored)"
|
||||
- id: 8.6
|
||||
text: "Verify the proxy kubeconfig file ownership of root:root"
|
||||
audit: "stat -c %U:%G /etc/origin/node/node.kubeconfig"
|
||||
tests:
|
||||
test_items:
|
||||
@ -334,8 +334,8 @@ groups:
|
||||
chown root:root /etc/origin/node/node.kubeconfig
|
||||
scored: true
|
||||
|
||||
- id: 2.2.7
|
||||
text: "Ensure that the certificate authorities file permissions are set to 644 or more restrictive (Scored)"
|
||||
- id: 8.7
|
||||
text: "Verify the OpenShift default permissions for the certificate authorities file."
|
||||
audit: "stat -c %a /etc/origin/node/client-ca.crt"
|
||||
tests:
|
||||
bin_op: or
|
||||
@ -360,8 +360,8 @@ groups:
|
||||
chmod 644 /etc/origin/node/client-ca.crt
|
||||
scored: true
|
||||
|
||||
- id: 2.2.8
|
||||
text: "Ensure that the client certificate authorities file ownership is set to root:root (Scored)"
|
||||
- id: 8.8
|
||||
text: "Verify the client certificate authorities file ownership of root:root"
|
||||
audit: "stat -c %U:%G /etc/origin/node/client-ca.crt"
|
||||
tests:
|
||||
test_items:
|
||||
|
Loading…
Reference in New Issue
Block a user