OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)

《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在 OpenShift 4.12 + RHACS 3.74 + RH Quay 3.8.4 等环境中验证

文章目录

  • 准备环境
  • 在 DevOps 不同阶段对镜像进行漏洞扫描
    • RedHat 建议的镜像漏洞修复策略
  • 统一的镜像漏洞扫描引擎 - Clair
    • RedHat 官方网站的镜像扫描结果
    • RedHat Quay 的镜像扫描结果
    • quay.io 的镜像扫描结果
    • RHACS 的镜像扫描结果
  • 漏洞库更新速度和扫描频率的差异
  • 演示视频

准备环境

可参照以下文档在 OpenShift 上安装 Red Hat Quay:《OpenShift 4 - 安装 ODF 并部署红帽 Quay (1 Worker)》或《OpenShift 4 - 安装 ODF 并部署红帽 Quay (3 Worker)》
可参照以下文档在 OpenShift 上安装 Red Hat ACS:《OpenShift Security (2) - 安装 Red Hat Advanced Cluster Security(RHACS)》

在 DevOps 不同阶段对镜像进行漏洞扫描

在 DevOps 过程中需经历构建镜像、存储镜像和运行镜像的过程,其中在构建镜像和运行镜像阶段,可使用 RedHat ACS 对镜像进行安全扫描;而在镜像存储阶段,一方面可以使用来自 registry.redhat.io 或 quay,io 的镜像加强云原生应用的安全,另一方面可以使用 RedHat Quay 产品对存储的镜像进行安全扫描,从而让私有镜像仓库更加安全。
OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第1张图片

RedHat 建议的镜像漏洞修复策略

根据《OpenShift 4 - RedHat 是如何对容器镜像的安全漏洞进行风险评估的》一文可知,RedHat 将 CVE 安全漏洞的风险分为 4 个等级:Critical-严重、Important-重要、Moderate-中级、Low-低级。

由于每年都会出现大量的 CVE(根据 RedHat 的统计,2022 年 RedHat 发布的产品中发现有多达 1656 个 CVE),因此每出现一个 CVE 就去修复不太实际。RedHat 建议用户重点关注 Critical 和 Important 级别的 CVE,因为这些 CVE 不是比较容易实现攻击,就是一旦攻击后造成的损失比较严重。

统一的镜像漏洞扫描引擎 - Clair

要实现对镜像漏洞的扫描就需要有扫描引擎,除此之外还需要有扫描库。

  1. 扫描引擎反映漏洞扫描的能力。例如除了可针对 Linux 操作系统外能否能对 Java、Python 等应用环境进行安全扫描。
  2. 扫描库代表扫描引擎能扫描出哪些 CVE。通常扫描库需要定期更新,才能及时扫描识别出最新的 CVE。

无论是 RedHat ACS、RedHat Quay,还是 RedHat 官方镜像仓库、公共镜像仓库,他们共同构成了 RedHat 云原生安全的整体方案。这些软件或网站都使用了基于 RedHat 的开源镜像扫描软件 - Clair 4,因此无论是在哪里对容器进行安全扫描,都可以为用户提供统一的容器安全漏洞信息。尤其是 Critical 和 Important 级别的 CVE,各软件或网站有能力提供一致的安全扫描结果(因为不同软件或网站的 CVE扫描库更新频率有差异,因此个别时间的扫描结果有可能存在少量差异)。

RedHat 官方网站的镜像扫描结果

先访问 https://catalog.redhat.com/software/containers/search 网站,然后找到 “Red Hat Universal Base Image 8” 镜像。Architecture 选择 amd64、Tag 选择 8.6-943,然后在 Security 中即可查看到该镜像包含的不同级别 CVE 的数量、以及镜像整体健康度级别了。

如下图,该镜像此时包括 4 个 Important 级的 CVE,但是不包含 Critical 级的 CVE。这些是 RedHat 建议需要高度关注和尽快修复的 CVE。
OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第2张图片

RedHat Quay 的镜像扫描结果

在安装完 RedHat Quay 后,可将上述 UBI 8 的镜像 registry.access.redhat.com/ubi8:8.6-943 导入到 RedHat Quay 中,RedHat Quay 就会对该镜像进行安全扫描。
OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第3张图片
查看扫描结果并只显示 Fixable 的漏洞,确认也是有 4 个 Important 级的漏洞,没有 Critical 级别漏洞。
OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第4张图片

quay.io 的镜像扫描结果

先在 quay.io 注册账号并登录,然后再将 registry.access.redhat.com/ubi8:8.6-943 镜像导入到 quay.io 中。然后 quay.io 会自动对该镜像进行安全扫描。
OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第5张图片
查看扫描结果并只显示 Fixable 的漏洞,确认同样有 4 个 Important 级的漏洞,没有 Critical 级别漏洞。
OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第6张图片

RHACS 的镜像扫描结果

  1. 登录 RHACS,在 Dashboard 中点击 Images at most risk 区域的 View All 按钮进入IMAGES 页面。
  2. 点击 MANAGE WATCHES 按钮,然后在下图中将 registry.access.redhat.com/ubi8:8.6-943 镜像导入。
    OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第7张图片
  3. 查看该镜像的扫描结果,确认同样也有 4 个 Fixable 的 Important 级别的 CVE。

OpenShift 4 - 在 DevOps 的构建、存储和运行阶段对容器镜像进行漏洞扫描(附视频)_第8张图片

漏洞库更新速度和扫描频率的差异

虽然 Quay、RHACS 和 RedHat 官方网站都使用了 RedHat Clair 开源项目作为漏洞扫描引擎,但是他们的漏洞库更新频率和漏洞扫描周期会有差异。当一个新的漏洞刚刚被发现和修复后,并不会完全同时在三个平台的扫描结果中体现出来。根据笔者的测试会依次在 Quay(quay.io 和 RedHat Quay)、RHACS 和 RedHat 官方网站的扫描结果中体现出来。

演示视频

你可能感兴趣的:(devops,openshift,运维)