14.3. 扫描 RHCOS 节点主机
对于 OpenShift Container Platform,Red Hat Enterprise Linux CoreOS (RHCOS)是 control plane 唯一支持的操作系统。虽然对于节点主机,OpenShift Container Platform 支持 RHCOS 和 Red Hat Enterprise Linux (RHEL)。使用 Red Hat Advanced Cluster Security for Kubernetes (RHACS),您可以扫描 RHCOS 节点漏洞并检测潜在的安全威胁。
RHACS 扫描在节点主机上安装的 RHCOS RPM,作为 RHCOS 安装的一部分,以了解任何已知的漏洞。
首先,RHACS 会分析并检测 RHCOS 组件。然后,它使用 RHEL 和 OpenShift 4.X Open Vulnerability 和评估语言(OVAL) v2 安全数据流来匹配识别的组件的漏洞。
-
如果使用
roxctl
CLI 安装 RHACS,您必须手动启用 RHCOS 节点扫描功能。当您在 OpenShift Container Platform 上使用 Helm 或 Operator 安装方法时,这个功能会被默认启用。
14.3.1. 启用 RHCOS 节点扫描
如果使用 OpenShift Container Platform,您可以使用 Red Hat Advanced Cluster Security for Kubernetes (RHACS)启用对 Red Hat Enterprise Linux CoreOS (RHCOS) 节点的扫描。
先决条件
- 要扫描安全集群的 RHCOS 节点主机,您必须在 OpenShift Container Platform 4.11 或更高版本上安装了安全集群。如需有关支持的管理和自我管理的 OpenShift Container Platform 版本的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 支持政策。
流程
运行以下命令来更新合规性容器之一。
对于禁用了指标的默认合规容器,请运行以下命令:
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":"disabled"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
对于启用了 Prometheus 指标的合规性容器,请运行以下命令:
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":":9091"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
通过执行以下步骤更新 Collector DaemonSet (DS):
运行以下命令,将新卷挂载添加到 Collector DS 中:
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"volumes":[{"name":"tmp-volume","emptyDir":{}},{"name":"cache-volume","emptyDir":{"sizeLimit":"200Mi"}}]}}}}'
运行以下命令添加新
NodeScanner
容器:$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"command":["/scanner","--nodeinventory","--config=",""],"env":[{"name":"ROX_NODE_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"spec.nodeName"}}},{"name":"ROX_CLAIR_V4_SCANNING","value":"true"},{"name":"ROX_COMPLIANCE_OPERATOR_INTEGRATION","value":"true"},{"name":"ROX_CSV_EXPORT","value":"false"},{"name":"ROX_DECLARATIVE_CONFIGURATION","value":"false"},{"name":"ROX_INTEGRATIONS_AS_CONFIG","value":"false"},{"name":"ROX_NETPOL_FIELDS","value":"true"},{"name":"ROX_NETWORK_DETECTION_BASELINE_SIMULATION","value":"true"},{"name":"ROX_NETWORK_GRAPH_PATTERNFLY","value":"true"},{"name":"ROX_NODE_SCANNING_CACHE_TIME","value":"3h36m"},{"name":"ROX_NODE_SCANNING_INITIAL_BACKOFF","value":"30s"},{"name":"ROX_NODE_SCANNING_MAX_BACKOFF","value":"5m"},{"name":"ROX_PROCESSES_LISTENING_ON_PORT","value":"false"},{"name":"ROX_QUAY_ROBOT_ACCOUNTS","value":"true"},{"name":"ROX_ROXCTL_NETPOL_GENERATE","value":"true"},{"name":"ROX_SOURCED_AUTOGENERATED_INTEGRATIONS","value":"false"},{"name":"ROX_SYSLOG_EXTRA_FIELDS","value":"true"},{"name":"ROX_SYSTEM_HEALTH_PF","value":"false"},{"name":"ROX_VULN_MGMT_WORKLOAD_CVES","value":"false"}],"image":"registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8:4.3.8","imagePullPolicy":"IfNotPresent","name":"node-inventory","ports":[{"containerPort":8444,"name":"grpc","protocol":"TCP"}],"volumeMounts":[{"mountPath":"/host","name":"host-root-ro","readOnly":true},{"mountPath":"/tmp/","name":"tmp-volume"},{"mountPath":"/cache","name":"cache-volume"}]}]}}}}'
14.3.2. 分析和检测
当您将 RHACS 与 OpenShift Container Platform 搭配使用时,RHACS 会创建两个协调容器来分析和检测,Compliance 容器和 Node-inventory 容器。Compliance 容器已经是早期 RHACS 版本的一部分。但是,Node-inventory 容器带有 RHACS 4.0,仅适用于 OpenShift Container Platform 集群节点。
启动后,Compliance 和 Node-inventory 容器在五分钟内开始对 Red Hat Enterprise Linux CoreOS (RHCOS)软件组件的第一个清单扫描。接下来,Node-inventory 容器会扫描节点的文件系统来识别已安装的 RPM 软件包并报告 RHCOS 软件组件。之后,清单扫描会定期进行,通常每四个小时进行。您可以通过为 Compliance 容器配置 ROX_NODE_SCANNING_INTERVAL 环境变量来自定义默认间隔。
14.3.3. 漏洞匹配
Central 服务(包括 Central 和 Scanner)执行漏洞匹配。扫描程序使用红帽的开放漏洞和评估语言(OVAL) v2 安全数据流来匹配 Red Hat Enterprise Linux CoreOS (RHCOS)软件组件上的漏洞。
与早期版本不同,RHACS 4.0 不再使用 Kubernetes 节点元数据来查找内核和容器运行时版本。相反,它使用已安装的 RHCOS RPM 来评估该信息。
14.3.4. 相关环境变量
您可以使用以下环境变量在 RHACS 上配置 RHCOS 节点扫描。
环境变量 | 描述 |
---|---|
|
缓存清单被视为过时的时间。默认为 |
|
如果找到 backoff 文件,则节点扫描的初始时间(以秒为单位)。默认值为 |
| backoff 的上限。默认值为 5m,是 Kubernetes 重启策略稳定性计时器的 50%。 |
环境变量 | 描述 |
---|---|
|
节点扫描之间的间隔持续时间的基本值。deafult 值为 |
|
节点扫描持续时间可能与基本间隔时间不同。但是,最大值受 |
|
第一次节点扫描前等待的最长时间,这是随机生成的。您可以将此值设置为 |
14.3.5. 识别节点中的漏洞
您可以使用 Vulnerability Management 视图来识别节点中的漏洞。识别的漏洞包括:
- Kubernetes 核心组件。
容器运行时(Docker、CRI-O、runC 和 containerd)。
注意Red Hat Advanced Cluster Security for Kubernetes 可以识别以下操作系统中的漏洞:
- Amazon Linux 2
- CentOS
- Debian
- Garden Linux (Debian 11)
- Red Hat Enterprise Linux CoreOS (RHCOS)
- Red Hat Enterprise Linux (RHEL)
- Ubuntu (AWS、Microsoft Azure、GCP 和 GKE 特定版本)
流程
-
在 RHACS 门户中,进入到 Vulnerability Management
Dashboard。 - 在 Dashboard 视图标头中选择 Nodes 来查看影响节点的所有 CVE 列表。
从列表中选择节点,以查看影响该节点的所有 CVE 的详细信息。
- 当您选择节点时,为所选节点打开 Node details 面板。Node 视图显示节点的深入详情,并包含由 CVSS 分数以及该节点可修复的 CVE 的信息。
- 选择 View All on the CVE by CVSS score widget 标头来查看所选节点上所有 CVE 的列表。您还可以过滤 CVE 列表。
- 要将可修复的 CVE 导出为 CSV 文件,请在 Node Findings 部分选择 Export as CSV。