Docker Scout 中的数据收集和存储

Docker Scout 的图像分析通过从您分析的容器图像中收集元数据来进行。该元数据存储在 Docker Scout 平台上。

数据传输

本节介绍 Docker Scout 收集并发送到平台的数据。

图像元数据

Docker Scout 收集以下图像元数据:

  • 图像创建时间戳
  • 图像摘要
  • 镜像暴露的端口
  • 环境变量名称和值
  • 图像标签的名称和值
  • 图像层的顺序
  • 硬件架构
  • 操作系统类型和版本
  • 注册表 URL 和类型

当构建镜像并将其推送到注册表时,会为镜像的每一层创建镜像摘要。它们是层内容的 SHA256 摘要。 Docker Scout 不会创建摘要;而是创建摘要。它们是从图像清单中读取的。

这些摘要会与您自己的私有映像和 Docker 的公共映像数据库进行匹配,以识别共享相同层的映像。共享大部分图层的图像被视为与当前正在分析的图像匹配的基本图像。

SBOM元数据

软件物料清单 (SBOM) 元数据用于将软件包类型和版本与漏洞数据进行匹配,以推断映像是否受到影响。当 Docker Scout 平台从安全公告中收到有关新 CVE 或其他风险因素(例如泄露的机密)的信息时,它会将此信息与 SBOM 交叉引用。如果存在匹配,Docker Scout 会在显示 Docker Scout 数据的用户界面(例如 Docker Scout 仪表板和 Docker 桌面)中显示结果。

Docker Scout 收集以下 SBOM 元数据:

  • 包 URL (PURL)
  • 包作者和描述
  • 许可证 ID
  • 包名和命名空间
  • 封装方案和尺寸
  • 软件包类型和版本
  • 图像内的文件路径
  • 直接依赖类型
  • 包裹总数

Docker Scout 中的 PURL 遵循 purl-spec规范。包信息来源于镜像的内容,包括操作系统级别的程序和包,以及应用程序级别的包,如maven、npm等。

环境元数据

如果您通过 Sysdig 集成将 Docker Scout 与运行时环境集成,则 Docker Scout 会收集有关您的部署的以下数据点:

  • Kubernetes 命名空间
  • 工作负载名称
  • 工作负载类型(例如 DaemonSet)

本地分析

对于在开发人员计算机上本地分析的图像,Docker Scout 仅传输 PURL 和层摘要。这些数据不会永久存储在 Docker Scout 平台上;它仅用于运行分析。

出处

对于带有出处证明的镜像 ,Docker Scout 除了 SBOM 之外还存储以下数据:

  • 材料
  • 基础镜像
  • VCS信息
  • Dockerfile

数据存储

为了提供 Docker Scout 服务,数据使用以下方式存储:

  • 位于美国东部的服务器上的 Amazon Web Services (AWS)
  • 位于美国东部的服务器上的 Google Cloud Platform (GCP)

根据 docker.com/legal中描述的流程使用数据来提供 Docker Scout 的关键功能。