文档首页/ 开源治理服务 CodeArts Governance/ 最佳实践/ 通过流水线自动完成CodeArts制品产物二进制成分分析
更新时间:2025-05-27 GMT+08:00
分享

通过流水线自动完成CodeArts制品产物二进制成分分析

应用场景

随着软件功能的不断扩大,软件面临的安全风险也在增加,如何快速精准地识别软件安全风险成了一大难题。

  • 传统方式需要用户打包后再手动上传软件包进行扫描,然后查看扫描结果获取软件漏洞信息,过程繁琐。
  • 不同的软件漏洞风险影响不同,需手动识别。

通过搭建流水线,可实现从代码仓到获取软件漏洞结果的整个流程,同时可以通过配置不同的准出条件,对软件漏洞实现分级管理。

方案优势

  • 搭建简单,无需重复配置

    只需在搭建流水线时配置一次,即可重复实现完成修改代码、构建出包、漏洞扫描的完整流程。

  • 漏洞风险分级治理

    支持配置准出条件,实现对不同风险等级软件漏洞的分级管理并对扫描结果进行拦截。

约束限制

流水线可配置定时任务或外部触发执行,为避免不必要的扫描次数浪费,使用插件需要购买二进制成分分析包周期版本,暂时不支持购买按需套餐包的用户使用插件。

操作流程

本文介绍如何通过流水线完成代码修改、构建出包、漏洞扫描的全过程,基本操作流程如下:

步骤1:新建规则和策略

步骤2:新建Scrum项目

步骤3:新建代码仓库

步骤4:新建编译构建任务

步骤5:新建流水线

步骤6:查看插件执行结果

步骤1:新建规则和策略

  1. 登录华为云官网,单击页面右上角“控制台”。
  2. 在页面左上角单击,打开服务列表。
  3. 搜索“流水线”。
  4. 单击“流水线 CodeArts Pipeline”,进入流水线服务首页。
  5. 单击右上角头像图标,在下拉菜单中选择“租户设置”,进入租户设置页面。
  6. 单击左侧导航“策略管理 > 规则”,进入规则管理页面。
  7. 单击“新建规则”,进入“新建规则”页面,配置以下信息。

    表1 配置规则信息

    参数项

    说明

    名称

    规则名称,使用自动生成的即可。

    类型

    规则类型,选择“测试”。

    选择插件

    规则绑定的插件名称,选择“二进制软件成分分析”。

    插件版本

    规则绑定的插件版本,不同插件版本输出的阈值可能有差异,例如选择“1.0.0”。

    阈值配置

    配置检查项阈值,例如图1所示。

    图1 新建规则

  8. 单击“确定”,完成规则创建。
  9. 单击左侧导航“策略”,进入策略管理页面。
  10. 单击“新建策略”,进入“新建策略”页面,输入策略名称,勾选新建好的规则。

    图2 新建策略

  11. 单击“确定”,完成策略创建。

步骤2:新建Scrum项目

  1. 单击顶部导航栏“首页”。
  2. 在所有项目下单击“Scrum > 新建项目”。
  3. 选择“Scrum”项目模板,单击“选用”,进入新建项目页。
  4. 项目名称填写“Scrum01”,其它保持默认即可。
  5. 单击“确定”后,进入到“Scrum01”项目下。

步骤3:新建代码仓库

  1. 在页面导航栏选择“代码 > 代码托管”,进入代码托管页面。
  2. 单击“新建仓库”,选择“按模板新建”。
  3. 单击“下一步”,选择“Java Maven Demo”模板。
  4. 单击“下一步”,填写仓库名称。
  5. 单击“确定”,完成代码仓库的创建。

步骤4:新建编译构建任务

  1. 在页面导航栏选择“持续交付 > 编译构建”,进入编译构建页面。
  2. 单击“新建任务”,根据需要配置任务信息。

    1. 配置基本信息:填写任务名称,选择Repo代码源,选择已创建的代码仓库,选择默认分支master,单击“下一步”。
    2. 选择构建模板:选择Maven系统模板,单击“确定”,进入“构建步骤”页面,使用默认配置即可。

  3. 单击“保存”,完成构建任务的创建。

步骤5:新建流水线

  1. 在页面导航栏选择“持续交付 > 流水线”,进入流水线页面。
  2. 单击“新建流水线”,根据需要配置流水线信息。

    1. 基本信息:配置以下信息,单击“下一步”。
      表2 流水线基本信息

      配置项

      配置建议

      名称

      流水线名称,使用默认生成的即可。

      代码源

      选择“Repo”。

      代码仓

      选择已创建的代码仓库

      默认分支

      选择“master”分支。

    2. 选择模板:选择“空模板”,单击“确定”。

  3. 进入“任务编排”页面,系统默认生成两个阶段(“流水线源”和“阶段_1”),单击“新建阶段”新增一个阶段“二进制成分分析”。

    1. 配置构建阶段
      1. 单击“阶段_1”的“新建任务”,弹出“新建任务”侧滑框。
      2. 单击“构建”分类,找到“Build构建”插件。
      3. 将鼠标移动到插件,单击“添加”,选择已创建的构建任务,选择构建任务关联的仓库,产物标识输入“javaSample”。
      4. 单击“任务配置”,将任务ID设置为“build”。
      5. 单击“确定”,完成任务配置。
    2. 配置二进制成分分析阶段
      1. 单击“二进制成分分析”阶段的“新建任务 > 从空任务新建”,弹出新建任务侧滑框。
      2. 单击“通用”分类,找到“下载制品产物”插件。
      3. 将鼠标移动到插件,单击“添加”,产物链接输入“${{jobs.build.artifacts.javaSample}}”。
        • “build”为构建阶段中设置的任务ID。
        • “javaSample”为构建阶段中“Build构建”插件中设置的产物标识。
      4. 单击“添加步骤”,在“测试”分类找到“二进制软件成分分析”插件,使用默认配置。
      5. 单击“确定”,完成任务配置。
      6. 单击“二进制成分分析”阶段的“准出条件”,在弹出的侧滑框里添加准出条件,将鼠标移动到“标准策略准出条件”上,单击“添加”,并选择已创建好的策略
      7. 单击“确定”,完成准出条件配置。

  4. 任务编排完成后,单击“保存并执行 > 执行”,开始执行流水线。

步骤6:查看插件执行结果

  1. 流水线执行完成后,进入详情页面。
  2. 单击“二进制成分分析”阶段的“下载制品产物”任务,弹出侧滑框。
  3. 在侧滑框的“任务日志”页面,单击“详情”,页面跳转到开源治理服务对应构建包的扫描详情页面,即可查看扫描结果。
  4. 在侧滑框的“任务结果”页面,单击“二进制软件成分分析”可以直接查看部分扫描结果。
  5. 单击准出条件,可查看扫描结果是否满足设置的规则,从而控制流水线执行。

    • 当扫描结果满足条件时,流水线继续执行。
    • 当扫描结果不满足条件,流水线停止执行。

相关文档