镜像安全洞察

使用 Docker Hub 的镜像安全洞察增强 Docker 镜像的安全性。Docker Hub 允许您使用 Docker Scout 执行一次性静态漏洞扫描或始终最新的镜像分析。

Docker Scout 镜像分析

启用 Docker Scout 镜像分析后,Docker Scout 会自动分析 Docker Hub 存储库中的镜像。

镜像分析会提取软件物料清单 (SBOM) 和其他镜像元数据,并根据安全建议中的漏洞数据对其进行评估。

以下部分描述了如何为 Docker Hub 存储库启用或禁用 Docker Scout 镜像分析。有关镜像分析的更多详细信息,请参阅 Docker Scout

启用 Docker Scout 镜像分析

  1. 登录 Docker Hub

  2. 选择**存储库**。

    将显示您的存储库列表。

  3. 选择一个存储库。

    将显示存储库的**常规**页面。

  4. 选择**设置**选项卡。

  5. 在**镜像安全洞察设置**下,选择**Docker Scout 镜像分析**。

  6. 选择**保存**。

禁用 Docker Scout 镜像分析

  1. 登录 Docker Hub

  2. 选择**存储库**。

    将显示您的存储库列表。

  3. 选择一个存储库。

    将显示存储库的**常规**页面。

  4. 选择**设置**选项卡。

  5. 在**镜像安全洞察设置**下,选择**无**。

  6. 选择**保存**。

静态漏洞扫描

注意

Docker Hub 静态漏洞扫描需要 Docker Pro、Team 或 Business 订阅。

启用静态扫描后,将镜像推送到 Docker Hub 存储库时,Docker Hub 会自动扫描镜像以识别漏洞。扫描结果显示扫描运行时镜像的安全状态。

扫描结果包括

  • 漏洞的来源,例如操作系统 (OS) 包和库
  • 引入漏洞的版本
  • 如果可用,则建议修复版本以修复发现的漏洞。

Docker Hub 静态扫描的更改

从 2023 年 2 月 27 日起,Docker 更改了支持 Docker Hub 静态扫描功能的技术。静态扫描现在由 Docker 原生提供支持,而不是第三方。

由于此更改,扫描现在可以比以前更细致地检测漏洞。反过来,这意味着漏洞报告可能显示更多漏洞。如果您在 2023 年 2 月 27 日之前使用过漏洞扫描,您可能会发现新的漏洞报告列出了更多漏洞,这是由于更彻底的分析造成的。

您无需执行任何操作。扫描将照常运行,不会中断或更改定价。历史数据仍然可用。

启用静态漏洞扫描

存储库所有者和管理员可以在存储库上启用静态漏洞扫描。如果您是团队或企业订阅的成员,请确保您要启用扫描的存储库属于团队或企业层。

当存储库上启用了扫描时,任何具有推送权限的用户都可以通过将镜像推送到 Docker Hub 来触发扫描。

要启用静态漏洞扫描

注意

静态漏洞扫描支持扫描架构为 AMD64、操作系统为 Linux 且大小小于 10 GB 的镜像。

  1. 登录 Docker Hub

  2. 选择**存储库**。

    将显示您的存储库列表。

  3. 选择一个存储库。

    将显示存储库的**常规**页面。

  4. 选择**设置**选项卡。

  5. 在**镜像安全洞察设置**下,选择**静态扫描**。

  6. 选择**保存**。

扫描镜像

要扫描镜像中的漏洞,请将镜像推送到 Docker Hub,推送到您已启用扫描的存储库。

查看漏洞报告

要查看漏洞报告

  1. 登录 Docker Hub

  2. 选择**存储库**。

    将显示您的存储库列表。

  3. 选择一个存储库。

    仓库的**常规**页面将会显示。漏洞报告可能需要几分钟才能出现在您的仓库中。

    Vulnerability scan report
  4. 选择**标签**选项卡,然后选择**摘要**,再选择**漏洞**以查看详细的扫描报告。

    扫描报告显示扫描识别的漏洞,并按严重程度排序,严重程度最高的漏洞列在最前面。它显示包含漏洞的软件包信息、漏洞引入的版本以及漏洞是否在更高版本中已修复。

    Vulnerability scan details

有关此视图的更多信息,请参阅镜像详情视图

检查漏洞

漏洞报告根据严重程度对漏洞进行排序。它显示包含漏洞的软件包信息、漏洞引入的版本以及漏洞是否在更高版本中已修复。

漏洞扫描报告还允许开发团队和安全负责人比较不同标签的漏洞数量,以查看漏洞随时间的推移是减少还是增加。

修复漏洞

一旦识别出一系列漏洞,您可以采取一些措施来修复这些漏洞。例如,您可以

  1. 在Dockerfile中指定更新的基础镜像,检查您的应用程序级依赖项,重新构建Docker镜像,然后将新的镜像推送到Docker Hub。
  2. 重新构建Docker镜像,对操作系统软件包运行更新命令,并将更新版本的镜像推送到Docker Hub。
  3. 编辑Dockerfile以手动删除或更新包含漏洞的特定库,重新构建镜像,然后将新的镜像推送到Docker Hub。

Docker Scout可以为您提供具体的、有上下文背景的修复步骤,以提高镜像安全性。更多信息,请参阅Docker Scout

禁用静态漏洞扫描

仓库所有者和管理员可以禁用仓库上的静态漏洞扫描。要禁用扫描,

  1. 登录 Docker Hub

  2. 选择**存储库**。

    将显示您的存储库列表。

  3. 选择一个存储库。

    将显示存储库的**常规**页面。

  4. 选择**设置**选项卡。

  5. 在**镜像安全洞察设置**下,选择**无**。

  6. 选择**保存**。