卡巴斯基容器安全可在 SBOM 模式下启动扫描器来检查镜像中是否存在漏洞。在这种情况下,解决方案将扫描专门创建的 SBOM 文件而不是 TAR 存档。
使用 SBOM 的优势如下:
在 CI/CD 中,扫描过程包括两个阶段:接收 SBOM 文件和根据收到的 SBOM 文件扫描镜像。镜像扫描过程实现如下:
为了在 SBOM 模式下进行扫描,卡巴斯基容器安全会运行一个带有预装数据库的扫描器,该数据库包含关于漏洞和其他恶意对象的信息(scanner:v2.0-with-db,scanner:v2.0-with-db-java)。
要在 CI/CD 中进行镜像扫描,您必须在文件中指定以下环境变量的值:
API_TOKEN – 指定卡巴斯基容器安全 API 令牌的值。API_BASE_URL – 指定卡巴斯基容器安全 URL。API_CA_CERT – 指定 Ingress 控制器的的 CA 证书详细信息,可以让在 CI/CD 中运行的扫描器验证数据接收服务器的真实性。如果您使用自签名证书,或者想要跳过使用 Ingress 控制器的 CA 证书检查数据接收服务器这一步骤,用以跳过检查的变量的值提供如下:
SKIP_API_SERVER_VALIDATION: 'true'
COMPANY_EXT_REGISTRY_USERNAME – 指定扫描镜像注册表中的账户名称。COMPANY_EXT_REGISTRY_PASSWORD – 指定扫描镜像的注册表密码。COMPANY_EXT_REGISTRY_TLS_CERT – 指定用于与注册表进行安全连接的证书的详细信息。
证书详细信息以 .PEM 格式的字符串指定:
-----BEGIN CERTIFICATE-----\n... 证书详细信息> ...\n-----END CERTIFICATE----- 。
HTTP_PROXY – 用于 HTTP 请求的代理服务器HTTPS_PROXY – 用于 HTTPS 请求的代理服务器NO_PROXY – 要从代理范围中排除的域或适当的域掩码对于后续扫描,卡巴斯基容器安全会生成 CycloneDX 格式的报告。您还可以生成一个包含 SBOM 的构件,以便在 CI/CD 过程中以 CycloneDX 或 SPDX 格式进行下载。
要在扫描器执行 SBOM 创建时生成 .SPDX 格式的 SBOM 文件:
在 .gitlab-ci.yml 配置文件中输入以下命令:
- /bin/sh /entrypoint.sh $SCAN_TARGET --sbom --spdx --stdout > example.spdx
其中:
<--sbom-json> 指示创建 SBOM 文件。
<--spdx> 指示以 .SPDX 格式生成构件。
<--stdout > example.spdx> 指示数据输出到 .SPDX 格式的文件。
要在扫描器执行 SBOM 创建时生成 .СDX 格式的 SBOM 文件:
在 .gitlab-ci.yml 配置文件中输入以下命令:
- /bin/sh /entrypoint.sh $SCAN_TARGET --sbom --cdx --stdout > example.cdx.json
其中:
<--sbom-json> 指示创建 SBOM 文件。
<--cdx> 指示以 .CDX 格式生成构件。
<--stdout > example.cdx.json> 指示数据输出到 .JSON 格式的文件。
生成的文件(例如 example.cdx.json)被指定为构件:artifacts: paths:
使用 SBOM 文件进行扫描仅适用于扫描镜像是否存在漏洞的情况。如果您的 CI/CD 过程需要扫描其他风险和威胁(例如错误配置),则除了 SBOM 文件之外,还必须单独运行相应的扫描并将其结果添加到镜像处理程序中。
页首