CheckMarx中文网站 > 最新资讯 > Checkmarx怎么配置扫描增量阈值 Checkmarx增量扫描范围异常如何调整
教程中心分类
Checkmarx怎么配置扫描增量阈值 Checkmarx增量扫描范围异常如何调整
发布时间:2026/08/21 13:26:29

  Checkmarx One的SAST增量扫描主要用于缩短频繁代码提交后的安全检测时间。它并不是只扫描本次修改的几个文件,而是以最近一次全量扫描为基线,分析累计发生变化的文件以及与这些文件存在关联的Closure代码。因此,增量任务比Git变更文件多并不一定异常。处理“Checkmarx怎么配置扫描增量阈值,Checkmarx增量扫描范围异常如何调整”时,重点是判断阈值、全量基线和当前分支是否处于同一套扫描链路中。

  一、Checkmarx怎么配置扫描增量阈值

 

  当前Checkmarx One允许在租户级和项目级配置SAST增量阈值,可调范围为0.5%~10%,调整步长为0.5%,默认值为7%。项目单独配置后,会覆盖租户默认值。

 

  1、设置租户默认增量阈值

 

  如果多个项目的代码规模和提交方式相近,可以先设置统一的默认值。

 

  ①进入【Global Settings】,打开账户级SAST配置。

 

  ②找到【Incremental threshold】,查看当前增量阈值。

 

  ③日常提交规模较小时,可先保持【7%】作为基准,不需要为了缩短扫描时间直接调到最高值。

 

  ④如果大量正常提交都会超过当前比例,可按照【0.5%】步长逐级调整。

 

  ⑤保存后,再通过实际扫描历史观察增量任务和全量任务的变化。

 

  当代码变化超过配置的增量阈值时,Checkmarx会将任务转换为全量扫描,因此这个数值控制的是“什么时候不再适合继续做增量扫描”,而不是要求工具只扫描固定百分比的代码。

 

  2、给特殊项目设置独立阈值

 

  大型项目、Monorepo或提交规模明显不同的项目,可以单独设置。

 

  ①打开目标项目的【Project Settings】。

 

  ②进入【Rules】,点击【Add Rule】。

 

  ③将扫描器设置为【SAST】。

 

  ④参数选择【Incremental threshold】,再填写项目需要的比例。

 

  ⑤保存后发起新的增量任务,并在扫描历史中确认最终执行的是增量还是全量扫描。

 

  如果全局阈值已经修改,但某个项目表现没有变化,应优先检查【项目级规则】。项目设置具有更高优先级。

 

  3、确认增量扫描已经真正启用

 

  增量扫描需要已经存在一份成功的全量扫描结果,没有完整基线时不能直接建立正常的SAST增量分析。

 

  ①手动发起任务时启用【Incremental scan】。

 

  ②使用Checkmarx One CLI时,可加入:

 

  --sast-incremental=true

 

  ③通过API触发时,将SAST扫描配置中的incremental设置为true。

 

  ④第一次扫描或重新建立基线时执行【全量扫描】,后续再进入增量流程。

 

  二、Checkmarx增量扫描范围异常如何调整

 

  增量范围异常通常有三种表现:扫描文件明显比本次提交多、修改文件没有被正确识别,或者明明要求增量却最终执行了全量扫描。排查时不要只比较Git本次提交文件数。

  1、扫描范围比修改文件多很多

 

  Checkmarx会扫描Changed Files以及与其相关的Closure Files,同时增量变化会相对于最近一次全量扫描持续累积。因此连续多次修改后,分析范围逐渐扩大属于正常机制。

 

  ①查看【Scan History】,找到当前分支最近一次【Full Scan】。

 

  ②判断全量扫描以后是否已经连续进行了大量增量扫描。

 

  ③主动执行一次【全量扫描】,重新建立分析基线。

 

  ④全量完成后只做一次小范围代码修改,再重新执行增量扫描进行对照。

 

  ⑤如果此时范围明显缩小,说明原问题主要来自累计变化,而不是阈值失效。

 

  2、部分修改没有进入预期扫描范围

 

  ①确认扫描使用的是正确【项目】和【分支】。

 

  ②检查当前分支是否已经建立有效的全量基线。

 

  ③检查流水线上传的源码目录,确认目标文件确实进入扫描包。

 

  ④查看【文件排除规则】,排除目录、扩展名或路径过滤造成的遗漏。

 

  ⑤分支长期开发时,先同步最新基准代码,再重新执行扫描,避免分支内容与既有基线差异过大。

 

  Checkmarx项目页面的结果与分支关联,因此检查异常扫描时,应始终在同一Project和Branch下比较对应Scan History。

 

  3、增量扫描自动变成全量扫描

 

  ①查看当前【增量阈值】究竟来自租户设置还是项目规则。

 

  ②检查累计代码变化是否已经超过该比例。

 

  ③确认项目至少有一次成功的【全量扫描】。

 

  ④如果变化量确实超过阈值,不要把自动全量扫描判断成配置失败。

 

  ⑤项目经常自动回退全量时,再分析是阈值过低,还是全量基线维护间隔过长。

 

  Checkmarx明确规定,SAST增量变化超过阈值后会转换为全量扫描;默认阈值为7%,自定义后则按照当前项目实际配置判断。

 

  三、增量扫描怎么保持稳定

 

  阈值解决的是单次变化规模问题,长期稳定性则取决于全量基线和团队提交方式。如果只不断提高阈值,虽然能减少自动全量任务,却可能让增量分析范围越来越大。

 

  1、建立固定的全量基线

 

  ①主分支定期安排【全量扫描】,不要长期只运行增量任务。

 

  ②大规模合并、目录重构或依赖关系明显改变后,主动执行【全量扫描】重新校准。

 

  ③功能分支开发时间较长时,及时同步主分支,减少与基线之间的长期差异。

 

  ④记录每次重新建立基线后的增量扫描耗时和扫描范围,用于比较配置效果。

 

  2、根据扫描历史调整阈值

 

  ①统计一段时间内【增量扫描】和【自动全量扫描】的次数。

 

  ②如果多数普通提交刚好超过当前阈值,可小幅提高【增量阈值】。

 

  ③如果扫描范围已经很大,即使没有超过阈值,也应优先重新执行全量扫描。

 

  ④项目经常接近【10%】上限时,应重新规划提交粒度和全量扫描周期,而不是继续依赖阈值解决。当前SAST可配置的增量阈值上限就是10%。

  总结

 

  Checkmarx增量扫描是否合理,不能只用本次修改了多少文件来判断,还要结合最近一次全量基线和代码依赖关系观察。稳定的增量扫描策略应兼顾反馈速度与分析覆盖,避免为了减少全量任务而持续放宽阈值。通过扫描历史长期观察范围和耗时变化,更容易判断当前策略是否真正适合项目。如需进一步了解Checkmarx增量扫描阈值配置、扫描范围异常判断与全量基线管理,欢迎联系咨询。

135 2431 0251