Kaspersky Container Security

在精简版 SBOM 模式下运行扫描器

2024年7月4日

ID 276521

卡巴斯基容器安全可在精简版 SBOM 模式下启动扫描器来检查镜像中是否存在漏洞。在这种情况下,解决方案会扫描专门创建的 SBOM 文件,并且该扫描结果在 CI/CD 阶段可用。

通过监听和拦截网络流量获得的数据必须在 CI/CD 环境和解决方案之间安全传输。

您可以生成 .SPDX、.HTML 或 .JSON 格式的下载构件来接收结果。

在 GitLab 中运行扫描器

要在 GitLab 中精简版 SBOM 模式下启动扫描器,需在 CI/CD 进程中配置镜像扫描时编辑 .gitlab-ci.yml 配置文件,如下所示:

  1. 添加在 CI/CD 中启动用于镜像扫描的扫描器的镜像相关信息,如下所示:

    scan_image:

    stage: scanner

    image:

    name:repo.cloud.example.com/repository/company/scanner:v.1.2-lite

    entrypoint: [""]

    pull_policy: always

  2. 指定编排平台标签,如下所示:

    k8s

    在提供的示例中,为 Kubernetes 指定了 k8s 标签,您也可以为其他受支持的编排平台指定标签。

  3. 指定用于对卡巴斯基容器安全的 CI/CD 扫描器请求进行授权的变量,如构建 ID、私有存储库详情、管道 ID 以及 API 令牌,如下所示:

    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 令牌值>

  4. 如需要,请指定一个变量,以使用入口控制器的 CA 证书检查 CI/CD 中的数据接收服务器:

    API_CA_CERT:${KCS_CA_CERT}

    如果未设置 API_CA_CERT 变量,则扫描将会开始但不会结束。

  5. 指定卡巴斯基容器安全的 API 主机服务器的网址:

    API_BASE_URL: <网址>

  6. 指定扫描仪启动时创建 SBOM 文件的命令,支持以下格式之一:
    • 要生成 .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 格式的构件:

      script:

      - /bin/sh /entrypoint.sh $SCAN_TARGET --spdx --stdout > artifact-result.spdx

      artifacts:

      paths:

      - artifact-result.spdx

有关将扫描器配置为在 GitLab 中精简版 SBOM 模式下运行并以 .HTML 格式生成构件的示例

在 Docker 中运行扫描器

要在 Docker 中以精简版 SBOM 模式启动扫描器:

  1. 指定卡巴斯基容器安全的 API 主机服务器的网址:

    -e API_BASE_URL=https://company.local

  2. 指定变量的值以跳过使用 Ingress 控制器的 CA 证书检查数据接收服务器:

    -e SKIP_API_SERVER_VALIDATION=true

  3. 指定用于对卡巴斯基容器安全的 CI/CD 扫描器请求进行授权的 API 令牌,如下所示:

    -e API_TOKEN=<API 令牌值>

  4. 指定要启动扫描器的数据:

    repo.kcs.company.com/images/scanner:v1.2-lite

  5. 如果您需要生成 .SPDX、.HTML 或 .JSON 格式的下载工件,请指定以下内容:

    - <工件格式> --stdout> result. <文件格式>

    例如:

    --html --stdout > result.html

  6. Enter键启动扫描器。

    如果在调用扫描仪时出现域名解析错误(Name does not resolve(名称无法解析)),则必须在组织的内部 DNS 服务器之前指定 API_BASE_URL 变量之前的地址。例如:

    --dns 10.0.xx.x

    API_BASE_URL: https://company.local/

有关将扫描器配置为在 Docker 中精简版 SBOM 模式下运行并以 .JSON 格式生成构件的示例

扫描结果能以您指定的格式获取,也可以在"资源CI/CD“部分查看。

Did you find this article helpful?
What can we do better?
Thank you for your feedback! You're helping us improve.
Thank you for your feedback! You're helping us improve.