在 SBOM 模式下运行扫描器
卡巴斯基容器安全可在
模式下启动扫描器来检查镜像中是否存在漏洞。在这种情况下,解决方案将扫描专门创建的 SBOM 文件而不是 TAR 存档。使用 SBOM 的优势如下:
- 扫描镜像是否存在漏洞所需的资源更少。
- 由于正确操作的自动验证和解决方案组件的正确使用,减少了扫描时间。
- 能够扫描镜像中的所有现有漏洞,无一例外。
- 扫描结果可靠性高。
在 CI/CD 中,扫描过程包括两个阶段:接收 SBOM 文件和根据收到的 SBOM 文件扫描镜像。镜像扫描过程实现如下:
- CI/CD 扫描器生成镜像组件列表,并将生成的构件发送到卡巴斯基容器安全。
- 使用镜像处理程序,解决方案将收到的 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 过程中以
或 格式进行下载。要在扫描器执行 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 文件之外,还必须单独运行相应的扫描并将其结果添加到镜像处理程序中。