卡巴斯基容器安全

在 CI/CD 进程中扫描构件

卡巴斯基容器安全允许您扫描 CI/CD 中使用的镜像。要从 CI/CD 扫描镜像,您应该配置卡巴斯基容器安全与 CI/CD 过程的集成。

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

要扫描 CI/CD 过程中使用的镜像或存储库(为了扫描配置文件),请向运行卡巴斯基容器安全扫描器的 CI/CD 管道添加一个阶段。

要从 CI/CD 扫描镜像,请在用于集成存储库的配置文件中,指定扫描器的 API_BASE_URL( 卡巴斯基容器安全 API 服务器的网址)和 API_TOKEN(用于访问卡巴斯基容器安全 API 的令牌)环境变量。您还必须指定API_CA_CERT(用于验证 API 解决方案的主机服务器的证书)或SKIP_API_SERVER_VALIDATION=true以跳过此扫描。

扫描结果将被转发到服务器并显示在管理控制台的“资源CI/CD”部分中。提供的表格会列出被扫描的镜像,显​示风险评估的结果,并指示检测到的漏洞。

您可以单击镜像名称链接来打开包含镜像扫描结果详细信息的页面。此页面类似于显示仓库镜像扫描结果的页面

卡巴斯基容器安全还显示每个对象的构件的类型。使用两种主要构件:

  • 文件系统是包含配置文件的存储库。
  • 容器镜像是用于容器运行时实现的模板。

对于每个扫描对象,您可以指定内部版本编号(BUILD_NUMBER)和内部版本

BUILD_PIPELINE)。这些参数可用于确定对象失效的具体阶段。

对于 CI/CD 镜像,不提供重新扫描。

卡巴斯基容器安全在 CI/CD 中执行以下类型的扫描:

  • 扫描镜像仓库中的镜像。该解决方案在成功内部版本后运行扫描并将镜像保存到镜像仓库中。
  • 扫描 TAR 存档中的镜像。TAR 存档存储为内部版本构件,解决方案将在下一个构建管道中扫描该构件。
  • 扫描 Git 存储库,可以通过以下方式之一执行:
    • 针对 Git 存储库中的项目分支(单个开发路径)
    • 针对提交(项目时间线中的状态快照或检查点)

要扫描镜像仓库的镜像:

运行以下格式的命令来启动扫描:

/scanner [TARGET] --stdout

其中:

  • <TARGET> – 注册表中映像的完整地址。
  • <--stdout> 是到安全事件日志的输出。

要访问注册表,您必须在环境变量中设置登录名COMPANY_EXT_REGISTRY_USERNAME和密码(令牌)COMPANY_EXT_REGISTRY_PASSWORD
要使用证书与注册表建立安全连接,您必须在 COMPANY_EXT_REGISTRY_TLS_CERT 环境变量中将证书详细信息指定为 .PEM 格式的以下字符串: -----BEGIN CERTIFICATE-----\n... 证书数据 > ...\n-----END CERTIFICATE-----

GitLab CI/CDJenkins CI/CD中扫描镜像的示例。

要从 TAR 存档扫描镜像:

  1. 使用任何用于创建容器化镜像的应用程序构建镜像并将其保存为 TAR 存档。
  2. 运行以下格式的命令来启动扫描:

    /scanner [TARGET] --file --stdout

    其中:

    • <TARGET> – 包含要扫描的镜像的文件的路径。
    • <--file> – 表示扫描TARGET文件的标志。
    • <--stdout> 是到安全事件日志的输出。

    包含用于扫描 TAR 存档的设置的配置文件示例

要扫描 Git 存储库:

  1. 在 Git 存储库的配置文件中,在环境变量中指定用于访问存储库的令牌(GITHUB_TOKENGITLAB_TOKEN)。
  2. 运行以下格式的命令来启动扫描:

    /scanner [TARGET] --repo [--branch BRANCH] [--commit COMMIT] --stdout

    其中:

    • <TARGET> – Git 存储库的网址 (URL)。
    • <--repo> – 表示扫描TARGET文件的标志。
    • <--branch BRANCH> – 要扫描的存储库的分支。
    • <--commit COMMIT> – 要扫描的提交所对应的哈希值。
    • <--stdout> 是到安全事件日志的输出。

    带环境变量的配置文件示例,用于从 Git 存储库扫描镜像

要扫描

文件系统,您必须使用带有vX.XX-with-db数据库的扫描器镜像。要扫描 IaC 文件,必须授予扫描器访问容器内文件的权限(例如,通过安装包含文件的卷或将文件复制到容器文件系统)。

要扫描文件系统,

运行以下格式的命令来启动扫描:

/scanner [TARGET] --sources --stdout

其中:

  • <TARGET>– 用于扫描的文件夹的路径
  • <--sources> 指示需要扫描文件系统中的文件的标志
  • <--stdout> 是到安全事件日志的输出。

配置文件示例,包含用于扫描文件系统中文件的变量

扫描结果可以在“资源CI/CD”中查看,或以 .SPDX、.JSON 和 .HTML 格式下载。