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 Desktop。

Docker Scout 收集以下 SBOM 元数据:

  • 包URL(PURL)
  • 包作者与描述
  • 许可证 ID
  • 包名和命名空间
  • 包方案与大小
  • 包类型和版本
  • 镜像内的文件路径
  • 直接依赖的类型
  • 总包数量

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

环境元数据

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

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

本地分析

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

出处

对于带有 来源证明(provenance attestations) 的镜像,Docker Scout 除了 SBOM 外,还会存储以下数据:

  • 材料
  • 基础镜像
  • 版本控制系统(VCS)信息
  • Dockerfile

数据存储

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

  • 位于美国东部的亚马逊网络服务(AWS)服务器
  • Google Cloud Platform (GCP) 位于美国东部的服务器上

数据将根据docker.com/legal中所述的流程进行使用,以提供Docker Scout的核心功能。