团队里预设被反复改动,表面看是有人点错了几下,实质是预设被当成了个人偏好而不是受控配置,结果就是同一个仓库今天扫出一批问题,明天换了预设又变了口径,研发与安全两边都很难对齐。要把这件事管住,思路分两条线:一条线把预设的创建、更新、删除权限收紧,另一条线把预设本身做成可追溯、可回滚的配置资产。
一、Checkmarx扫描预设被反复改动怎么办
预设在Checkmarx里本质是一组查询集合,用于扫描时选择以影响结果口径;在CxSAST里预设是扫描必选项,入口集中在预设管理器里。
1、先把预设改动的入口收敛到一个地方
让团队统一从【Settings】→【Scan Settings】→【Preset Manager】进入管理界面,不在别的页面临时改查询组合,避免同一件事出现多套改法导致你无法复盘谁改了什么。
2、用克隆代替直接改动现有预设
如果有人想做试验,不要在正在使用的预设上直接增删查询,先在预设管理里把现有预设克隆一份,命名上加上试验标识,再在克隆副本上改;这样线上扫描口径不会被“顺手一改”带偏。
3、把默认预设与团队预设分层
把官方预设当作基线参考,只允许查看与引用;真正给团队跑流水线的,用独立命名的自定义预设承载,并且把流水线参数固定为该自定义预设名,避免临时切换到别的预设造成结果漂移。
4、把导入导出当成变更发布动作
需要发布新版本预设时,在【Preset Manager】里用【Export Preset】导出XML留档,再由具备权限的人在目标环境用【Import Preset】导入,导入后再点【Save】确认生效;不要让多人在同一个环境里边讨论边修改。
5、把预设与项目配置绑成固定口径
在项目配置阶段把预设选定后固定下来,新项目默认也用同一套预设口径,减少每个项目负责人各选各的情况;当确实要变更预设,先走预设变更再改项目引用,顺序别颠倒。
二、Checkmarx预设权限怎么管理
权限管理要先分清你用的是CxSAST还是Checkmarx One,两者的权限模型不同,但目标一致:大多数人只需要看与用,少数人负责创建,极少数人能更新与删除。预设管理在Checkmarx One里也明确拆成查看、创建、更新、删除四类角色能力。
1、在Checkmarx One里用预设专用角色拆权限
在身份与访问管理里,给普通使用者分配view-preset让他只能看到预设;需要新建的人加create-preset;只有预设管理员才给update-preset与delete-preset,避免出现“谁都能改”。
2、用【Settings】进入身份与访问管理配置角色
登录Checkmarx One后进入【Settings】→【Identity and Access Management】,在【Roles】里创建或调整角色,再把预设相关的动作角色加入到自定义角色里,最后按用户或用户组分配到位。
3、在CxSAST侧用角色与权限做最小可用集
如果你是CxSAST部署形态,先确认现有用户被分配了哪些系统角色,再把能改系统配置的人控制在极少数;原则是扫描执行与结果查看可以下放,配置管理权限集中到安全平台管理员。
4、把预设变更权限与查询维护权限分离
预设是扫描口径,查询是规则库能力,实际管理时建议两者分开授权;能维护查询的人不一定能改线上预设,能改线上预设的人也不一定要改查询,以免一处变更引发连锁影响。
三、Checkmarx预设变更留痕怎么做
只收权限还不够,预设属于长期运行的扫描资产,你需要能回答三个问题:这套预设什么时候改的、改了哪些查询、出了问题怎么回退。把留痕做成流程化动作,后面遇到争议时才有证据链。
1、用版本号写进预设名称
在预设命名里加入版本号与日期,例如团队名加版本号加年月日,让每次发布都有唯一标识,流水线也只认某个明确版本,减少口头沟通误差。
2、导出XML进代码库做审阅
每次变更前先在【Preset Manager】用【Export Preset】导出XML,提交到代码库走评审,评审通过后再导入到生产环境;这样你能清楚看到新增或删除了哪些查询条目。
3、用克隆保留可回滚副本
变更时先克隆出一个新预设做修改,旧预设保留不动并标记为上一版,出现误报激增或漏报时,直接把项目引用切回上一版即可止损。
4、把删除做成受控动作
删除预设前要求先导出留档,再确认没有任何流水线与项目仍在引用该预设;删除权限只给极少数账号,并且在变更记录里写清删除原因与替代预设名。
总结
预设被反复改动,核心不是提醒大家小心点,而是用权限与流程把入口锁住。在CxSAST里把预设管理统一到【Settings】→【Scan Settings】→【Preset Manager】并用导入导出与克隆控制变更节奏;在Checkmarx One里按view-preset、create-preset、update-preset、delete-preset拆分授权,再用版本号与XML留档把变更做成可追溯、可回滚的资产管理。