在精简版 SBOM 模式下运行扫描器
卡巴斯基容器安全可在精简版 SBOM 模式下启动扫描器来检查镜像中是否存在漏洞。在这种情况下,解决方案会扫描专门创建的 SBOM 文件,并且该扫描结果在 CI/CD 阶段可用。
通过监听和拦截网络流量获得的数据必须在 CI/CD 环境和解决方案之间安全传输。
您可以生成一个构件,用于以 .SPDX、.HTML、.JSON 或 .CDX 格式进行下载,从而获取结果。
在 GitLab 中运行扫描器
要在 GitLab 中精简版 SBOM 模式下启动扫描器,需在 CI/CD 进程中配置镜像扫描时编辑 .gitlab-ci.yml 配置文件,如下所示:
- 添加在 CI/CD 中启动用于镜像扫描的扫描器的镜像相关信息,如下所示:
scan_image:
stage: scanner
image:
name:repo.cloud.example.com/repository/company/scanner:v.2.0-lite
entrypoint: [""]
pull_policy: always
- 指定编排平台标签,如下所示:
k8s
在提供的示例中,为 Kubernetes 指定了
k8s
标签,您也可以为其他受支持的编排平台指定标签。 - 指定内部版本 ID、扫描镜像的镜像仓库数据和用于安全连接到此仓库的证书、管道 ID 和授权来自卡巴斯基容器安全中的 CI/CD 扫描程序的请求的 API 令牌等变量,如下所示:
SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
COMPANY_EXT_REGISTRY_TLS_CERT: ${COMPANY_EXT_REGISTRY_TLS_CERT}
BUILD_NUMBER: ${CI_JOB_ID}
BUILD_PIPELINE: ${CI_PIPELINE_ID}
API_TOKEN:
<API 令牌值>
HTTP_PROXY
–<用于 HTTP 请求的代理服务器>
HTTPS_PROXY
–<用于 HTTPS 请求的代理服务器>
NO_PROXY
–<要从代理范围排除的域或合适的域掩码>
COMPANY_EXT_REGISTRY_TLS_CERT
变量中用于与镜像仓库进行安全连接的证书的详细信息以 .PEM 格式的字符串指定:
-----BEGIN CERTIFICATE-----\n...
证书详细信息
> ...\n-----END CERTIFICATE-----
。 - 如需要,请指定一个变量,以使用入口控制器的 CA 证书检查 CI/CD 中的数据接收服务器:
API_CA_CERT: ${KCS_CA_CERT}
如果未设置
API_CA_CERT
变量,则扫描将会开始但无法完成。 - 指定卡巴斯基容器安全的 API 主机服务器的网址:
API_BASE_URL:
<网址>
- 指定在扫描器用以下其中一种受支持的格式启动时创建构件的命令:
- 要生成 .JSON 格式的构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json
artifacts:
paths:
- artifact-result.json
- 要生成 .HTML 格式的构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --html --stdout > artifact-result.html
artifacts:
paths:
- artifact-result.html
- 要生成 .SPDX 格式的 SBOM 构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --spdx --stdout > artifact-result.spdx
artifacts:
paths:
- artifact-result.spdx
- 要生成 .JSON 格式的 SBOM 构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --cdx --stdout > artifact-result.cdx.json
artifacts:
paths:
- artifact-result.cdx.json
- 要生成 .JSON 格式的构件:
在 Docker 中运行扫描器
要在 Docker 中以精简版 SBOM 模式启动扫描器:
- 指定卡巴斯基容器安全的 API 主机服务器的网址:
-e API_BASE_URL=https://company.local
- 指定变量的值以跳过使用 Ingress 控制器的 CA 证书检查数据接收服务器:
-e SKIP_API_SERVER_VALIDATION=true
- 指定用于对卡巴斯基容器安全的 CI/CD 扫描器请求进行授权的 API 令牌,如下所示:
-e API_TOKEN=
<API 令牌值>
- 指定要启动扫描器的数据:
repo.kcs.company.com/images/scanner:
v2.0-lite
- 如果需要生成可供下载的构件,请指定以下内容:
-
<工件格式>
--stdout> result.<文件格式>
例如:
--html --stdout > result.html
- 按Enter键启动扫描器。
如果在调用扫描仪时出现域名解析错误(
Name does not resolve
(名称无法解析)),则必须在组织的内部 DNS 服务器之前指定API_BASE_URL
变量之前的地址。例如:--dns 10.0.xx.x
API_BASE_URL: https://company.local/
扫描结果能以您指定的格式获取,也可以在"资源 → CI/CD“部分查看。