FPR导入Fortify后,漏洞数量、审计标签或代码位置与原记录不同,需要先确认打开的是哪份结果。Audit Workbench可以直接查看本地FPR,Software Security Center则会将上传文件与应用版本已有结果合并。原始扫描文件、补充过审计意见的文件和服务器最新结果,可能包含不同信息,比较前应先对齐扫描批次。
一、Fortify如何导入FPR审计结果
本地查看、上传服务器和迁移历史审计意见,是三种不同操作。准备文件时,应保留原始副本,并记录源码提交、扫描时间和工具版本。
1、在Audit Workbench中打开FPR
①启动Fortify Audit Workbench,点击【File】→【Open Project】,选择FPR文件,点击【Open】。
②打开【Tools】→【Project Summary】,在【Build Information】中核对构建标识、文件列表和扫描时间。
③在【Analysis Information】中检查扫描引擎版本及安全规则包,确认与本轮扫描记录对应。
FPR能否正常打开与工具版本有关。使用较旧工具处理较新FPR前,应核对版本兼容要求,不能把打开失败直接判断为文件损坏。
2、上传到Software Security Center
①登录SSC,进入【Applications】,选择对应应用及应用版本,再打开【ARTIFACTS】。
②点击【ARTIFACT】→【+ADD FILES】,选择待上传的FPR,核对文件列表后点击【START UPLOAD】。
③上传结束后,在【ARTIFACT HISTORY】检查处理状态;存在审批要求时,完成审批后再核对结果。
④出现【Error Processing】时,点击对应错误编号,查看具体处理消息。
上传完成与处理完成是两个环节。处理尚未结束时,审计页面可能仍显示此前的结果,此时不宜据此判断导入内容缺失。
3、合并已有审计意见
①备份当前FPR,打开准备接收审计信息的项目,选择【Tools】→【Merge Audit Projects】。
②选择另一份FPR,检查合并提示中的新增、移除情况,以及问题模板和标签冲突。
③根据核对结果完成合并,并另存文件,保留合并前的两份输入。
合并审计数据主要用于迁移评论和自定义标签,并不是将两次扫描的漏洞简单相加。较早扫描中存在、最新扫描中未发现的问题可能被标记为Removed,默认不显示。
二、Fortify导入后漏洞详情与原扫描记录不一致如何核验
先把差异分清:是少了记录,还是同一记录的标签、说明或路径变了。不同差异应分别核对,反复上传同一文件通常不能说明原因。
1、区分单次扫描与合并结果
①在SSC中进入目标应用版本的【ARTIFACTS】,找到对应扫描工件,展开详情后点击【DOWNLOAD】。
②需要检查服务器当前合并结果时,再下载【APPLICATION FILE】,将两份文件分别命名保存。
③用Audit Workbench分别打开原始FPR、单次扫描文件和合并文件,核对各自的构建及分析信息。
【APPLICATION FILE】代表应用版本的最新合并结果,不等于某一次上传的原始文件。若原始记录与单次扫描一致,而合并结果不同,应继续检查历史审计信息和后续上传记录。
2、按具体漏洞核对代码路径
①在原记录中找到存在差异的漏洞,记录Instance ID、漏洞类别、文件路径、函数及相关语句。
②在导入结果中定位对应记录,比较输入源、危险操作和中间调用节点,确认是否属于同一条问题路径。
③对照扫描时的源码提交,检查文件是否重命名、函数是否移动,以及当前查看的代码是否已经更新。
④回到【Project Summary】,比较文件范围、依赖库、规则包及扫描参数,排查是否拿了不同范围的扫描结果。
两个漏洞名称相同,并不足以证明它们是一条记录。行号变化也不一定表示导入错误;如果当前工作区比扫描版本多了代码,应先恢复对应提交再核对。
3、检查过滤条件和审计历史
①在Audit Workbench中打开【Options】→【Options】→【Audit Configuration】→【Appearance】。
②根据检查需要启用【Show Suppressed Issues】、【Show Removed Issues】和【Show Hidden Issues】,同时核对搜索条件及当前过滤集。
③若相似问题被折叠,检查【Collapse Issues】,展开具体记录后再比较。
④选中问题,打开【History】,核对评论、标签及审计操作的时间和人员。
过滤变化会影响可见记录,历史审计意见则可能改变标签内容。应把扫描器发现的信息与人工审计信息分开比较,不能因为标签发生变化,就认定扫描路径也被改写。
三、差异确认后如何修正并复查
校正时,应保留原文件和处理记录,再处理错误关联或审计冲突。这样修正后仍能解释差异从哪里产生,避免只留下最终结果。
1、纠正上传的应用版本
①核对SSC中的应用版本与扫描构建记录,确认是否上传到了其他分支、产品或版本。
②使用Audit Workbench上传时,若项目保留了错误关联,进入【Options】→【Options】→【Server Configuration】,点击【Disconnect the Current Audit】。
③再选择【Tools】→【Upload Audit Project】,重新确认目标应用版本,上传后检查工件处理状态。
④对错误目标中的记录,按项目管理流程处理并登记原因;不要用再次上传替代对原错误记录的处置。
协作审计下载的项目会保留应用版本关联。文件名改成新版本,并不会自动改变该关联,重新上传前仍需核对。
2、抽查修正后的记录
①选取几条能够明确对应的漏洞,分别检查代码路径、评论、标签,以及Removed或Suppressed等状态。
②再次下载目标工件,用Audit Workbench打开,确认结果来源及审计内容符合本次处理预期。
③保存原始FPR、修正后文件和核对说明;仍有差异时,整理扫描日志、工具版本及相关记录,继续定位。
总结
安全审计往往需要多人接力,开发人员关注代码怎么改,审计人员还要知道之前为什么作出某个判断。一份来源清楚的FPR,能让双方沿着同一批代码继续处理问题,也方便在版本更新后查回旧结论。把原始扫描与后续审计修改分别留存,交接时就能少一些猜测,复核也更容易落到具体记录。希望这些操作能帮助大家顺利完成Fortify结果导入与核验。如果有审计配置、结果迁移等方面的需求,欢迎联系咨询。