卡巴斯基容器安全

在 SBOM 模式下运行扫描器

卡巴斯基容器安全可在

模式下启动扫描器来检查镜像中是否存在漏洞。在这种情况下,解决方案将扫描专门创建的 SBOM 文件而不是 TAR 存档。

使用 SBOM 的优势如下:

  • 扫描镜像是否存在漏洞所需的资源更少。
  • 由于正确操作的自动验证和解决方案组件的正确使用,减少了扫描时间。
  • 能够扫描镜像中的所有现有漏洞,无一例外。
  • 扫描结果可靠性高。

在 CI/CD 中,扫描过程包括两个阶段:接收 SBOM 文件和根据收到的 SBOM 文件扫描镜像。镜像扫描过程实现如下:

  • CI/CD 扫描器生成镜像组件列表,并将生成的构件发送到卡巴斯基容器安全。
  • 使用镜像处理程序,解决方案将收到的 SBOM 文件转发到扫描器进行扫描。

    为了在 SBOM 模式下进行扫描,卡巴斯基容器安全会运行一个带有预装数据库的扫描器,该数据库包含关于漏洞和其他恶意对象的信息(scanner:v2.0-with-dbscanner: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 过程中以

格式进行下载。

要在扫描器执行 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 文件之外,还必须单独运行相应的扫描并将其结果添加到镜像处理程序中。