Docker Scout 中的数据收集和存储
Docker Scout 的镜像分析通过收集您分析的容器镜像的元数据来实现。此元数据存储在 Docker Scout 平台上。
数据传输
本节描述了 Docker Scout 收集并发送到平台的数据。
镜像元数据
Docker Scout 收集以下镜像元数据:
- 镜像创建时间戳
- 镜像摘要
- 镜像暴露的端口
- 环境变量名称和值
- 镜像标签的名称和值
- 镜像层顺序
- 硬件架构
- 操作系统类型和版本
- Registry URL 和类型
镜像摘要在镜像构建并推送到 Registry 时为镜像的每一层创建。它们是层内容的 SHA256 摘要。Docker Scout 不创建摘要;它们是从镜像 manifest 中读取的。
这些摘要会与您自己的私有镜像以及 Docker 的公共镜像数据库进行匹配,以识别共享相同层的镜像。共享大部分层的镜像被认为是当前正在分析的镜像的基础镜像匹配项。
SBOM 元数据
软件物料清单 (SBOM) 元数据用于将包类型和版本与漏洞数据进行匹配,以推断镜像是否受到影响。当 Docker Scout 平台从安全公告中收到关于新 CVE 或其他风险因素(例如泄露的 Secret)的信息时,它会将此信息与 SBOM 进行交叉引用。如果存在匹配项,Docker Scout 会在显示 Docker Scout 数据的用户界面中显示结果,例如 Docker Scout 仪表板和 Docker Desktop。
Docker Scout 收集以下 SBOM 元数据:
- 包 URL (PURL)
- 包作者和描述
- 许可证 ID
- 包名称和命名空间
- 包方案和大小
- 包类型和版本
- 镜像内的文件路径
- 直接依赖项的类型
- 总包数
Docker Scout 中的 PURL 遵循 purl-spec 规范。包信息来源于镜像内容,包括 OS 级程序和包,以及应用程序级包,例如 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 的关键功能。