第 9 章 使用 Container Security Operator 扫描 pod 镜像


Container Security Operator (CSO)是 OpenShift Container Platform 和其他 Kubernetes 平台上提供的 Clair 安全扫描程序的一个附加组件。通过 CSO,用户可以扫描与活跃 pod 关联的容器镜像以了解已知漏洞。

注意

没有 Red Hat Quay 和 Clair 时 CSO 无法正常工作。

Container Security Operator (CSO)包括以下功能:

  • 监视与指定或所有命名空间上的 pod 关联的容器。
  • 查询容器来自漏洞信息的容器 registry,只要镜像的 registry 支持镜像扫描,如带有 Clair 扫描的 Red Hat Quay registry。
  • 通过 Kubernetes API 中的 ImageManifestVuln 对象公开漏洞。
注意

要在 Kubernetes 上安装 CSO 的说明,请从 Container Security OperatorHub.io 页面中选择 Install 按钮。

9.1. 在 OpenShift Container Platform 中下载并运行 Container Security Operator

使用以下步骤下载 Container Security Operator (CSO)。

注意

在以下步骤中,CSO 安装在 marketplace-operators 命名空间中。这允许在 OpenShift Container Platform 集群的所有命名空间中使用 CSO。

步骤

  1. 在 OpenShift Container Platform 控制台页面中,选择 Operators OperatorHub 并搜索 Container Security Operator
  2. 选择 Container Security Operator,然后选择 Install 进入 Create Operator Subscription 页面。
  3. 检查设置(所有命名空间和自动批准策略),然后选择 Subscribe。在 Installed Operators 屏幕中几分钟后会出现 Container Security
  4. 可选:您可以在 CSO 中添加自定义证书。在本例中,在当前目录中创建一个名为 quay.crt 的证书。然后,运行以下命令将证书添加到 CSO 中:

    $ oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
    注意

    您必须重启 Operator pod 才能使新证书生效。

  5. 进入到 Home Overview。至镜像漏洞的链接会出现在 status 部分中,以及目前发现的漏洞数量的列表。选择查看安全分类的链接,如下图所示:

    Access CSO scanning data from the OpenShift Container Platform dashboard

    重要

    Container Security Operator 目前为 Red Hat 安全公告提供了有问题的链接。例如,可能会提供以下链接 :https://access.redhat.com/errata/RHSA-2023:1842%20https://access.redhat.com/security/cve/CVE-2023-23916。URL 中的 %20 代表空格字符,但它目前将两个 URL 组合为一个不完整的 URL,例如 https://access.redhat.com/errata/RHSA-2023:1842https://access.redhat.com/security/cve/CVE-2023-23916。作为临时解决方案,您可以将每个 URL 复制到您的浏览器中,以导航到正确的页面。这是一个已知问题,并将在以后的 Red Hat Quay 版本中解决。

  6. 对于任何检测到的安全漏洞,您可以在此时进行两个操作之一:

    1. 选择到这个漏洞的链接。您会进入容器 registry、Red Hat Quay 或其他来自容器的 registry,您可以在其中查看有关漏洞的信息。下图显示了从 Quay.io registry 中检测到的漏洞示例:

      The CSO points you to a registry containing the vulnerable image

    2. 选择 namespaces 链接以进入 Image Manifest Vulnerabilities 页面,您可以在其中查看所选镜像的名称以及运行该镜像的所有命名空间。下图显示了特定存在安全漏洞的镜像在两个命名空间中运行:

      View namespaces a vulnerable image is running in

执行此流程后,您可以了解哪些镜像存在安全漏洞,您必须做什么才能修复这些漏洞,以及镜像运行的每个命名空间。了解这一点,您可以执行以下操作:

  • 警报运行需要更正漏洞的镜像的用户。
  • 通过删除启动镜像所在 pod 的部署或对象来停止镜像运行。

    注意

    如果删除 pod,可能需要几分钟时间才能在仪表板上重置漏洞。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.