FPR文件里不只有漏洞结果,还可能包含源码片段、审计状态、注释和扫描信息。处理Fortify FPR文件怎么合并Fortify FPR合并后结果重复怎么办,先要明确目的:是把旧审计结果带到新扫描,还是把多个独立项目拼到一起。两种需求看着相近,处理方法却不一样。
一、Fortify FPR文件怎么合并
Fortify常见的合并用途,是将同一项目的新旧扫描进行关联。新扫描保留当前问题,旧FPR中的审计状态、标签和评论则迁移到对应问题上。
1、使用Audit Workbench合并
图形界面适合偶尔操作,步骤不算复杂。建议先打开本次新扫描生成的FPR,再选择以前已经审计过的文件。
①使用Audit Workbench打开新扫描FPR。
②进入【Tools】→【Merge Audit Projects】。
③选择旧的已审计FPR文件。
④出现模板选择提示时,确认使用的Issue Template。
⑤查看新增和移除问题数量,再确认合并。
官方说明中,合并后的当前结果以较新的扫描为基础。旧扫描中存在、新扫描中没有的问题会标记为Removed,默认不会显示;评论和自定义标签则会按照问题匹配结果继续保留。
2、使用FPRUtility命令合并
自动化流水线或批量处理时,可以直接使用FPRUtility。该工具通常位于Fortify工具安装目录的bin文件夹中。
①将新扫描结果放在-project后。
②将旧审计文件放在-source后。
③使用-f指定新的输出文件。
④执行完成后,用Audit Workbench打开结果。
-project是主FPR,字段发生冲突时会采用它的数据。使用-f后,原来的两个文件不会被改写;省略该参数,则可能直接覆盖主FPR,所以别图省事把它漏掉。
3、确认合并文件属于同一项目
新旧FPR最好来自同一套代码和相近的扫描环境。
①核对项目名称与代码分支。
②确认扫描文件范围基本一致。
③检查SCA版本和扫描参数。
④对比使用的安全规则内容。
⑤确认源码路径没有整体变化。
Fortify要求参与审计合并的扫描具有相同或接近的分析信息,包括源码范围、库文件、扫描设置和安全内容。差异太大时,工具可能无法把同一问题识别成前后两次扫描中的同一个实例。
4、需要汇总模块时谨慎使用追加
多个模块无法一次完成扫描时,可以在生成结果阶段使用-append,将当前扫描问题追加到已有FPR中。
-append会把前后两次扫描的问题放进同一文件,但不会合并完整的引擎数据,因此官方建议只在无法一次分析整个应用时使用,生成的结果也不支持结果认证。普通的新旧扫描审计迁移,还是优先使用合并。
二、Fortify FPR合并后结果重复怎么办
合并后看到两条名称、文件位置都很接近的问题,不一定真是重复。先看问题状态和Instance ID,再判断是历史结果显示出来了,还是匹配确实失败。
1、检查是否显示了Removed问题
合并文件会同时保存主扫描和次扫描的信息,用于判断新增与移除问题。打开全部状态后,同一位置可能同时看到当前问题和历史记录。
①检查问题的【Analysis】或状态字段。
②区分New、Existing与Removed。
③关闭Removed或Previous结果显示。
④重新统计当前活动问题数量。
如果关闭历史状态后“重复项”消失,说明合并本身没有出错,只是筛选范围放得太宽。
2、对比Instance ID和代码位置
Fortify主要通过问题实例信息判断前后两次扫描是否对应。同一漏洞因文件路径、代码结构或扫描环境变化生成了不同Instance ID,就可能被当成两条问题。
①打开两条疑似重复结果。
②对比【Instance ID】。
③检查文件路径、函数名和问题类别。
④查看源代码行是否发生明显移动。
⑤确认工作目录大小写和层级是否变化。
路径整体迁移、文件重命名或代码大幅重构后,问题匹配更容易出现偏差。此时别直接删除其中一条,先确认哪条属于当前扫描。
3、统一扫描条件后重新合并
新旧FPR缺少的文件不同,或者一份用了新Rulepack、另一份用了旧Rulepack,同一段代码可能产生不同结果。
①统一SCA与安全内容版本。
②使用相同的源码根目录。
③核对翻译与扫描参数。
④重新生成干净的新FPR。
⑤再与旧审计FPR合并一次。
这一步看着有点折腾,但比在结果列表里手工删几十条靠谱。扫描基础不一致,后面怎么调筛选都治不了根本问题。
4、必要时调整实例匹配
FPRUtility支持通过-iidmigratorOptions调整实例ID迁移,也可以使用映射文件人工指定对应关系。
其中-i会启用区分大小写的文件名比较;还可以通过匹配方案或Instance ID映射文件处理特殊迁移。该功能更适合路径规则明确的项目,参数没弄清楚前不要随便套,不然可能把不同问题误认为同一条。
三、FPR合并结果怎么进一步整理
重复原因处理完以后,还要确认审计信息是否保留。别只看问题总数下降了,结果标签和评论全丢了也不算成功。
1、用固定样本验证合并结果
①挑选几条已经审计的问题。
②记录其Instance ID、标签和评论。
③完成合并后重新查找这些问题。
④确认审计状态和历史内容仍然存在。
⑤再核对New与Removed问题数量。
小范围验证没问题,再把命令放进持续集成流程。直接拿整套项目反复试,出了问题很难看出是哪一步造成的。
2、确认无须保留历史后精简FPR
合并文件确认无误,且不再需要旧扫描数据时,可以使用-trimToLastScan移除上一轮扫描结果。
该命令主要用于减小合并FPR体积和缩短打开时间,并不是自动去重工具。执行前要先确认审计迁移已经完成,否则历史对比信息会一起被清掉。
总结
处理Fortify FPR文件怎么合并Fortify FPR合并后结果重复怎么办,重点是把新扫描作为主FPR,把旧审计文件作为数据来源,并保持扫描范围、路径和安全内容一致。出现重复时,先排除Removed历史结果,再查Instance ID和扫描条件,别急着手工删问题。希望本文能为大家合并和整理Fortify FPR结果提供参考,如需进一步了解相关内容,可联系咨询。