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 支持政策

流程

  1. 运行以下命令来更新合规性容器之一。

    • 对于禁用了指标的默认合规容器,请运行以下命令:

      $ 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"}]}]}}}}'
  2. 通过执行以下步骤更新 Collector DaemonSet (DS):

    1. 运行以下命令,将新卷挂载添加到 Collector DS 中:

      $ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"volumes":[{"name":"tmp-volume","emptyDir":{}},{"name":"cache-volume","emptyDir":{"sizeLimit":"200Mi"}}]}}}}'
    2. 运行以下命令添加新 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 节点扫描。

表 14.1. node-inventory 配置
环境变量描述

ROX_NODE_SCANNING_CACHE_TIME

缓存清单被视为过时的时间。默认为 ROX_NODE_SCANNING_INTERVAL 的 90%,即 3h36m

ROX_NODE_SCANNING_INITIAL_BACKOFF

如果找到 backoff 文件,则节点扫描的初始时间(以秒为单位)。默认值为 30s

ROX_NODE_SCANNING_MAX_BACKOFF

backoff 的上限。默认值为 5m,是 Kubernetes 重启策略稳定性计时器的 50%。

表 14.2. 合规性配置
环境变量描述

ROX_NODE_SCANNING_INTERVAL

节点扫描之间的间隔持续时间的基本值。deafult 值为 4h

ROX_NODE_SCANNING_INTERVAL_DEVIATION

节点扫描持续时间可能与基本间隔时间不同。但是,最大值受 ROX_NODE_SCANNING_INTERVAL 限制。

ROX_NODE_SCANNING_MAX_INITIAL_WAIT

第一次节点扫描前等待的最长时间,这是随机生成的。您可以将此值设置为 0, 以禁用初始节点扫描等待时间。默认值为 5m

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 特定版本)

流程

  1. 在 RHACS 门户中,进入到 Vulnerability Management Dashboard
  2. Dashboard 视图标头中选择 Nodes 来查看影响节点的所有 CVE 列表。
  3. 从列表中选择节点,以查看影响该节点的所有 CVE 的详细信息。

    1. 当您选择节点时,为所选节点打开 Node details 面板。Node 视图显示节点的深入详情,并包含由 CVSS 分数以及该节点可修复的 CVE 的信息。
    2. 选择 View All on the CVE by CVSS score widget 标头来查看所选节点上所有 CVE 的列表。您还可以过滤 CVE 列表。
    3. 要将可修复的 CVE 导出为 CSV 文件,请在 Node Findings 部分选择 Export as CSV
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.