关于Fortify Audit Workbench这个工具,用户可以用它来把FPR格式的结果文件打开,从而对Fortify SCA自动扫描出来的那些程序漏洞进行人工的检查、分类、写备注以及标记状态,这个工具不单单是用来查看报告的,它的主要作用是把一堆乱七八糟的扫描告警信息,整理成开发人员能看懂去修复、管理人员能看懂去追踪的最终结论,如果想知道Fortify Audit Workbench怎么审计漏洞,以及Fortify Audit Workbench审计状态怎么同步,操作人员需要重点关注漏洞的分析判断、状态的勾选标记、备注证据的填写以及最后的上传同步这几个步骤。
一、Fortify Audit Workbench怎么审计漏洞
操作人员在使用Audit Workbench进行漏洞检查的时候,比较稳妥的做法是按照危险严重程度、漏洞种类、文件所在的路径、数据传递的路径这些条件,先把问题分一下组,然后操作人员再去优先处理那些风险比较高、能被人利用的可能性更明显的代码问题。在这个软件里,用户可以对FPR文件进行查看和审查,也可以配合SSC平台里的项目结果来进行大家一起参与的协同审查,这里要注意,系统里的问题模板会直接影响到漏洞怎么分类以及怎么在界面上显示。
1、先打开扫描结果文件
操作人员点击菜单栏的【File】然后再点击【Open】,把FPR文件打开以后,首先需要观察左边显示出来的Issues问题列表,还有它们的排列分组方式。
2、查看漏洞上下文
在鼠标选中了某一条漏洞之后,操作人员需要结合【Analysis Trace】数据追踪、【Source Code】源代码以及【Details】详细信息这几个小窗口,去仔细观察数据是怎么流动的,还有代码具体是在哪一行。
3、填写Analysis状态
操作人员需要在【Audit】这个小页签里面去设置Analysis的具体数值,并且还要在旁边补充Comments文字说明。
Audit Workbench这个工具是支持快速审查操作的,操作人员在鼠标选中了多个问题之后,可以用键盘按下Ctrl+Shift+A这几个键,这样就能进入到快速审计的模式里面,然后再通过按下数字键,就可以成批地给这些漏洞分配Analysis的值,这里面的选项有Not an Issue、Reliability Issue、Bad Practice、Suspicious、Exploitable等,若是操作人员所在的公司自己定义了一些个性化的Analysis数值,大家也可以在对应的位置进行点击选择。
这些选项通常可以被通俗地理解为下面几种意思:
(1) Exploitable:就是确定这里真的有会被人利用的风险,需要让开发人员去改代码;
(2) Suspicious:意思是看起来好像有风险,但是操作人员心里拿不准,还要结合具体的业务情况继续确认;
(3) Bad Practice:代表不一定会马上被坏人利用,但是代码的写法的确不好,安全习惯差;
(4) Reliability Issue:这种一般是指代码在稳定性和可靠性方面存在一些毛病;
(5) Not an Issue:就是确认了这里不是真正的漏洞,通常是因为机器报错了,或者是程序根本走不到这条路径上。
二、Fortify Audit Workbench审计状态怎么同步
1、确认项目关联关系
要是操作人员用的FPR文件是从【SSC/Application Security】平台上下回来的协同项目,那么Audit Workbench软件就会在后台记住它和服务器上那个应用版本的对应关系。
在这种情况下,操作人员把漏洞审完之后再进行上传,改好的状态才可以顺利地回到原来的那个应用版本里面去,要是大家想把这个结果上传到另外一个不同的应用版本里,操作人员就必须先把它现在的关联关系给切断,具体的点击路径是【Options】→【Options】→【Server Configuration】→【Disconnect the Current Audit】。
2、上传审计结果
操作人员需要点击软件上方的【Tools】,然后再点击【Upload Audit Project】来把审查完的项目传上去。
3、区分Suppress、Hidden、Removed
操作人员在操作的时候,不要把【Suppress】、【Hidden】和【Removed】这三个功能当成一回事来用。
(1)Suppress这个功能比较适合用在那些确认以后再也不用管的问题上,比如代码已经改好了,或者大家明确决定以后也不打算改的问题,操作人员用了这个功能,系统就会把当前这个问题,以及以后重新扫描时又发现的同一个问题,都长久地标记为suppressed。
(2)Hidden这个功能用起来更像是一个临时把东西藏起来的动作,目的是为了让审查漏洞的人能先专心看别的问题,他们其实还是能看见的。
(3)Removed则是指系统经过好几次扫描并进行结果合并之后,发现旧的扫描报告里明明有、但是最新的扫描报告里已经不存在了的那些问题。
4、处理多人审计冲突
要是好几个人在同一时间去审查服务器上的同一个应用版本,结果导致状态同步失败了,或者是后面的人把前面的人写的东西给覆盖掉了,遇到这种情况通常得去看看SSC平台里面是怎么设置审计冲突解决办法的。
三、审计结果怎样避免反复返工
1、统一审计口径
在开始干活之前,团队内部的成员们得先坐下来商量好,到底遇到了什么样的情况才算作Exploitable,又遇到了什么样的情况才可以被算作Not an Issue。
2、先审高风险问题
操作人员可以先动手去处理Critical、High以及和业务入口关系很密切的那些严重问题,至于那些低风险的毛病可以先往后挪挪。
3、状态和备注一起提交
操作人员千万不能只管去修改Analysis的值,却在旁边一个Comments字也不写。
只要操作人员把备注写得清清楚楚,后面这些状态同步到SSC平台上去以后,开发人员、安全负责人还有负责复核的人员之间就能少一些来回扯皮的沟通。
4、同步后再复查一次
操作人员在点击上传完成之后,自己还要再特意回到SSC或者Application Security的网页里面去,找到对应的那个应用版本看一眼,确认一下刚刚上传的审查状态、文字备注以及标签数值是不是都显示得妥妥当当。
总结
如果想弄明白Fortify Audit Workbench怎么审计漏洞,操作人员就不能只是简单地把告警信息点开然后随手乱改状态,而是必须得结合数据流的走向、前后文的代码、入口是从哪里来的,以及到底有没有必要去修复它这些因素来综合判断;要是想弄明白Fortify Audit Workbench审计状态怎么同步,这里的核心就在于,操作人员必须确认好手里的FPR文件和SSC/Application Security服务器上应用版本之间的关联关系,等到在本地把审查工作干完之后,操作人员要通过点击【Tools】→【Upload Audit Project】来把项目传上去,而且在传完后还要仔细检查Comments、Tag Values、自定义标签以及冲突策略是不是都处于正常的状态。