卡巴斯基容器安全可在精简版 SBOM 模式下启动扫描器来检查镜像中是否存在漏洞。在这种情况下,解决方案会扫描专门创建的 SBOM 文件,并且该扫描结果在 CI/CD 阶段可用。
通过监听和拦截网络流量获得的数据必须在 CI/CD 环境和解决方案之间安全传输。
您可以生成 .SPDX、.HTML 或 .JSON 格式的下载构件来接收结果。
在 GitLab 中运行扫描器
要在 GitLab 中精简版 SBOM 模式下启动扫描器,需在 CI/CD 进程中配置镜像扫描时编辑 .gitlab-ci.yml 配置文件,如下所示:
scan_image:
stage: scanner
image:
name:repo.cloud.example.com/repository/company/scanner:v.1.2-lite
entrypoint: [""]
pull_policy: always
k8s
在提供的示例中,为 Kubernetes 指定了 k8s
标签,您也可以为其他受支持的编排平台指定标签。
SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
BUILD_NUMBER: ${CI_JOB_ID}
BUILD_PIPELINE: ${CI_PIPELINE_ID}
API_TOKEN: <API 令牌值>
API_CA_CERT: ${KCS_CA_CERT}
如果未设置 API_CA_CERT
变量,则扫描将会开始但不会结束。
API_BASE_URL: <网址>
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json
artifacts:
paths:
- artifact-result.json
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --html --stdout > artifact-result.html
artifacts:
paths:
- artifact-result.html
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --spdx --stdout > artifact-result.spdx
artifacts:
paths:
- artifact-result.spdx
有关将扫描器配置为在 GitLab 中精简版 SBOM 模式下运行并以 .HTML 格式生成构件的示例
在 Docker 中运行扫描器
要在 Docker 中以精简版 SBOM 模式启动扫描器:
-e API_BASE_URL=https://company.local
-e SKIP_API_SERVER_VALIDATION=true
-e API_TOKEN=<API 令牌值>
repo.kcs.company.com/images/scanner:v1.2-lite
- <工件格式>
--stdout> result. <文件格式>
例如:
--html --stdout > result.html
如果在调用扫描仪时出现域名解析错误(Name does not resolve
(名称无法解析)),则必须在组织的内部 DNS 服务器之前指定 API_BASE_URL
变量之前的地址。例如:
--dns 10.0.xx.x
API_BASE_URL: https://company.local/
有关将扫描器配置为在 Docker 中精简版 SBOM 模式下运行并以 .JSON 格式生成构件的示例
扫描结果能以您指定的格式获取,也可以在"资源 → CI/CD“部分查看。
页首