CheckMarx中文网站 > 最新资讯 > Checkmarx扫描基线怎么建立 Checkmarx基线更新后新增问题怎么识别
教程中心分类
Checkmarx扫描基线怎么建立 Checkmarx基线更新后新增问题怎么识别
发布时间:2026/07/24 17:11:42

  项目持续迭代后,扫描结果中往往同时存在历史遗留问题、反复出现的问题和本次修改引入的问题。如果没有稳定的参照扫描,只比较两次结果总数,很容易把规则调整、扫描范围扩大或文件路径变化误认为代码新增风险。了解Checkmarx扫描基线怎么建立Checkmarx基线更新后新增问题怎么识别,可以帮助团队明确比较起点,让后续修复和版本评审更有依据。

  一、Checkmarx扫描基线怎么建立

 

  Checkmarx中的扫描基线,通常是同一项目、同一分支上成功完成的一次完整SAST扫描。后续的增量扫描和结果比较,会以已有扫描结果作为参照,因此第一次建立基线时不能只扫描临时修改的文件。

 

  1、确定基线对应的代码版本

 

  建立基线前,需要选择代码相对稳定的主分支、发布分支或已经完成测试的版本节点。

 

  ①确认需要建立基线的项目和代码仓库。

 

  ②选择主分支或准备发布的分支。

 

  ③记录当前代码提交编号。

 

  ④确认源码目录已经完整提交。

 

  ⑤清理构建产物、临时文件和无关测试数据。

 

  ⑥记录当前使用的查询预设、排除规则和语言模式。

 

  不要在代码分支、查询预设和扫描目录同时变化的情况下建立基线。后续结果发生波动时,将很难判断变化到底来自代码还是扫描配置。

 

  2、执行一次完整SAST扫描

 

  ①登录Checkmarx One。

 

  ②进入【工作区】→【项目】。

 

  ③找到目标项目,点击【扫描】。

 

  ④在【扫描源】中选择代码仓库或上传压缩文件。

 

  ⑤确认仓库地址、分支名称或上传文件无误。

 

  ⑥在扫描器列表中开启【SAST】。

 

  ⑦关闭【增量扫描】。

 

  ⑧核对查询预设、文件筛选和语言设置。

 

  ⑨点击【开始扫描】。

 

  第一次扫描应覆盖项目的完整源码。扫描失败、结果不完整或只包含部分目录的任务,不适合作为后续比较基线。

 

  3、确认基线扫描有效

 

  ①打开目标项目。

 

  ②进入【扫描历史】。

 

  ③找到刚刚完成的扫描。

 

  ④确认扫描状态为成功完成。

 

  ⑤检查【扫描类型】是否为完整扫描。

 

  ⑥核对分支、文件数量、代码行数和查询预设。

 

  ⑦记录扫描编号和完成时间。

 

  如果扫描文件数量明显少于项目实际文件,或者预设与项目原有规则不一致,应修正配置后重新执行完整扫描。基线一旦确定,相关信息需要保留,不能只记住扫描日期。

 

  4、配置后续增量扫描

 

  ①在项目列表中点击目标项目右侧的更多操作按钮。

 

  ②进入【项目设置】→【规则】。

 

  ③点击【添加规则】。

 

  ④在扫描器中选择【SAST】。

 

  ⑤选择与增量扫描相关的参数。

 

  ⑥设置是否允许单次扫描覆盖该规则。

 

  ⑦根据项目规模调整增量变化阈值。

 

  ⑧点击【保存】。

 

  后续手动发起扫描时,也可以在扫描页面勾选【增量扫描】。如果代码变化超过设定阈值,平台会改为执行完整扫描,避免只分析局部文件造成结果缺失。

  二、Checkmarx基线更新后新增问题怎么识别

 

  基线更新后,不能简单地用“当前问题总数减去原问题总数”计算新增问题。旧问题可能被修复,也可能因路径变化重新匹配;查询预设增加规则后,历史代码中的问题也可能第一次被检测出来。

 

  1、直接比较两次SAST扫描

 

  ①进入【工作区】→【项目】。

 

  ②打开目标项目。

 

  ③点击【扫描历史】。

 

  ④勾选原基线扫描和更新后的扫描。

 

  ⑤点击【比较SAST结果】。

 

  ⑥展开对应的语言和漏洞类型。

 

  ⑦点击具体结果查看代码路径。

 

  用于比较的两次扫描应来自同一个项目、同一个仓库分支或同一种压缩包结构。扫描对象不同,即使页面可以进行比较,结果也可能缺少实际判断价值。

 

  2、区分新增、重复和已修复问题

 

  比较结果中,【新增】表示新扫描中出现、旧扫描中没有匹配记录的问题;【重复】表示两次扫描中都存在的问题;【已修复】表示旧扫描存在,但新扫描已经无法检测到的问题。

 

  查看新增结果时,还要继续打开问题详情,核对查询名称、文件路径、源节点、目标节点和完整攻击路径。仅凭严重程度和漏洞名称相同,不能确认两条结果属于同一个问题。

 

  3、确认新增问题是否由代码引入

 

  ①打开新增问题的详情。

 

  ②记录问题所在文件和代码位置。

 

  ③回到代码仓库查看基线提交与当前提交之间的差异。

 

  ④确认相关文件是否在本次版本中新增或修改。

 

  ⑤检查危险数据来源、传播过程和目标调用是否由本次修改形成。

 

  ⑥将确认后的问题分配给对应开发人员。

 

  如果问题出现在本次新增文件或修改方法中,并且攻击路径与代码变化一致,通常可以判断为本次版本引入的问题。

 

  4、排除扫描配置造成的新增结果

 

  ①分别打开两次扫描的详细信息。

 

  ②对比查询预设名称。

 

  ③检查文件排除规则是否变化。

 

  ④核对扫描目录、代码行数和文件数量。

 

  ⑤确认两次扫描使用相同的语言模式。

 

  ⑥检查是否新增了自定义查询。

 

  ⑦确认查询版本或严重程度规则是否发生调整。

 

  新的查询预设可能在原有代码中发现过去未检测的问题。这类结果会显示为新增,但不代表漏洞一定是在本次代码提交中产生。评审时应标记为“规则变化发现”,不要直接计入版本新增缺陷。

  三、基线更新后怎么保证新增问题判断连续

 

  基线更新并不是把旧扫描简单替换掉。更新前后如果没有保留清晰的交接关系,后续看到的“新增问题”就可能混入规则变化、扫描范围调整和文件结构变化。比较稳妥的做法,是先完成新旧基线核对,再正式切换后续扫描的参照点。

 

  1、更新前先完成一次固定条件的完整扫描

 

  ①确认主分支已经合并本阶段准备纳入基线的代码。

 

  ②检查查询预设、语言模式和文件排除规则是否已经确定。

 

  ③进入【工作区】→【项目】,打开目标项目。

 

  ④点击【扫描】,选择当前主分支或完整源码包。

 

  ⑤开启【SAST】,关闭【增量扫描】。

 

  ⑥确认扫描范围后启动完整扫描。

 

  ⑦扫描结束后进入【扫描历史】,核对分支、提交编号、文件数量和代码行数。

 

  这次完整扫描应当代表当前阶段真实、稳定的代码状态。临时关闭部分查询、源码上传不完整或扫描中途失败的结果,都不适合直接作为新基线。

 

  2、在切换基线前完成新旧结果交接

 

  ①进入【扫描历史】。

 

  ②勾选旧基线扫描和准备作为新基线的完整扫描。

 

  ③点击【比较SAST结果】。

 

  ④分别查看【新增】【重复】和【已修复】结果。

 

  ⑤对新增问题逐条核对代码提交和扫描配置。

 

  ⑥确认问题来自代码变化还是查询范围变化。

 

  ⑦完成问题归类后,再确定新扫描为下一阶段参照。

 

  对于查询预设新增后检测出来的问题,可以单独标记为规则调整发现;对于本次代码提交直接形成的新攻击路径,则应归入版本新增问题。两类结果都可能显示为新增,但修复责任和评审口径并不相同。

 

  3、保留能够追溯基线变化的记录

 

  基线更新后,应同步记录旧基线扫描编号、新基线扫描编号、代码提交、分支名称、查询预设、排除规则和更新时间。

 

  如果项目使用缺陷管理平台,还可以把基线变更记录关联到发布任务或安全评审任务中。后续发现新增问题数量异常时,团队可以快速判断是代码发生了集中变化,还是扫描配置改变了检测范围。

 

  旧基线不宜在新基线建立后立即清理。至少保留一个完整版本周期,便于重新比较问题路径、状态继承和修复结果。等新基线经过后续扫描验证,结果连续性没有异常,再进行历史数据整理会更稳妥。

  总结

 

  扫描基线真正解决的是“以哪一次代码和哪一套规则作为比较起点”的问题。处理Checkmarx扫描基线怎么建立Checkmarx基线更新后新增问题怎么识别时,既要用完整扫描建立稳定参照,也要在更新基线前完成新旧结果比较,并区分代码变更、查询调整和扫描范围变化带来的新增结果。把基线信息和变更原因保留下来,后续的漏洞修复、版本评审和结果追溯才不会因为参照点变化而失去连续性。如有相关使用需求,欢迎联系咨询。

135 2431 0251