使用 Concert 工具包

IBM® Concert工具包提供了一系列软件开发工具、实用程序和模板,可简化数据生成并自动上传到 Concert

概述

Concert 基于从上载的 SBOM 文件中摄取的数据,或通过与企业的第三方工具和服务集成,提供对应用前景的全面了解。 Concert 工具包简化了以支持格式生成、验证和上传 SBOM 文件的过程。 该工具包包括一套可简化常见任务的实用程序,例如通过与 CI/CD 管道集成自动摄取 SBOM 数据和漏洞扫描的脚本。 请参考以下文件夹,访问 Concert 工具包和实用程序所需的资源:

Concert工具包可作为一个容器映像在一个可公开访问的容器注册表中使用。 该镜像包括与 Concert 交互所需的脚本,其设计目的是通过在容器内执行命令来作为独立容器运行。 运行工具包容器需要容器运行时,如 DockerPodman

您可以使用工具包和实用程序执行以下任务:
  • 使用 cdxgen 工具从代码库生成 CycloneDX 格式的软件包 SBOM,或使用 syft 工具生成容器映像。
  • 使用 sbom-utility 工具验证软件包 SBOM 文件。
  • 以自定义 Concert 定义的格式生成应用程序、构建和部署 SBOM 文件。
  • 验证 Concert 定义的 SBOM 文件。
  • 以自定义 Concert-defined 格式生成证书清单文件。
  • 将 CSV/XLSX 文件转换为 OSCAL 目录 JSON 文件。
  • 将 SBOM 文件和漏洞扫描上传至 Concert
注意:工具包提供了生成 CycloneDX SBOM 文件的基本方法。 对于更高级的情况,可直接在容器中使用 cdxgensyft 。 确保将生成的文件输出到 /toolkit-data 目录,以便退出容器后在主机上访问这些文件。 请参阅 工具包实用程序列表下的挂载选项。

下载工具箱

Concert工具包在可公开访问的IBM Cloud Container Registryicr.io) 中提供,可使用DockerPodman 等容器运行时下载。 您还可以设置TOOLKIT_IMAGE环境变量,以便以后使用。 例如:
export TOOLKIT_IMAGE="icr.io/cpopen/ibm-concert-toolkit:v1.1.0"
docker pull ${TOOLKIT_IMAGE}

导出工具包前缀命令

运行工具包容器需要容器运行时,如 DockerPodman

如果使用code-scan,则导出变量HOST_DIR_SRC_CODE。 在export命令中替换为源代码目录的路径,以允许容器访问位于/data/src 目录中的代码。
export HOST_DIR_SRC_CODE=<HOST-DIR-SRC-CODE>
为了向工具包提供必要的输入文件和访问工具包生成的文件,需要在主机系统上选择一个目录挂载到容器内。 这是所有公用事业公司的要求。 要导出变量HOST_DIR_TOOLKIT_DATA,请使用以下命令。 您可以将导出命令中的原始目录替换为主机上的任意目录。 验证目录是否具有所有读取、写入和执行权限(可通过运行chmod 777 ${HOST_DIR_TOOLKIT_DATA} 来实现)。
export HOST_DIR_TOOLKIT_DATA=<HOST-DIR-TOOLKIT-DATA>
使用以下命令将工具包前缀命令导出到环境变量TOOLKIT_PREFIX_CMD。 使用该变量运行后续工具包命令。
export TOOLKIT_PREFIX_CMD="docker run \
  -v ${HOST_DIR_SRC_CODE}:/data/src \
  -v ${HOST_DIR_TOOLKIT_DATA}:/toolkit-data \
  --rm \
  ${TOOLKIT_IMAGE} \
  /bin/bash -c"
  • -v ${HOST_DIR_SRC_CODE}:/data/src 将源代码目录从主机挂载到容器中。 只有在 code-scan 工具扫描源代码时才需要这样做。
  • -v ${HOST_DIR_TOOLKIT_DATA}:/toolkit-data 将主机目录从变量 $ {HOST_DIR_TOOLKIT_DATA} 挂载到容器的 /toolkit-data 目录中。 /toolkit-data 是容器中的所需目录。
  • --rm 用于在退出后移除容器。 这不是必须的,但通常被认为是清理空间的最佳做法。
  • {TOOLKIT_IMAGE}是一个变量,包含公共IBM Cloud Container Registry中工具包容器的镜像名称和标记。
  • /bin/bash -c 使用 bash 在容器中运行指定命令。 确保 -c 之后的内容都用双引号括起来。 参考示例
注意:如果遇到权限相关问题,请在 export 命令中添加参数 -u 0:0 以根用户身份运行容器。

下载示例配置文件

工具包为 Concert 实用程序提供了示例配置文件。 如果要生成自己的配置文件,可以参考这些文件。

将工具包前缀 ${TOOLKIT_PREFIX_CMD} 导出为环境变量后,运行以下命令将示例配置文件复制到 TOOLKIT_DIR 目录:

${TOOLKIT_PREFIX_CMD} "cp -rL /app/samples /toolkit-data"

下载的示例文件位于主机上 TOOLKIT_DIR 目录下名为 samples 的子目录中。