一、 Fortify SCA概述
1、Source Code Analysis 阶段概述
Audit Workbench 会启动 Fortify SCA“Scanning(扫描)”向导来扫描和分析源代码。该向导整合了以下几个分析阶段:
转换:使用源代码创建中间文件,源代码与一个 Build ID相关联,Build ID通常就是项目名称。
扫描与分析:扫描中间文件,分析代码,并将结果写入一个Fortify Project Results(FPR)文件。
校验:确保所有源文件均包含在扫描过程中,使用的是正确的规则包,且没有报告重大错误。
2、安全编码规则包概述
安全编码规则包是 Fortify Software 安全研究小组多年软件安全经验的体现,并且经过其不断努力改进而成。这些规则是通过对编码理论和常用编码实践的研究,而取得的软件安全知识的巨大积累,并且在 Fortify Software 安全研究小组的努力下不断扩展和改进。每个安全编码规则包均包含大量的规则,每个规则定义了一个被 source code analysis 检测出的特定异常行为。
一旦检测出安全问题,安全编码规则包会提供有关问题的信息,让开发人员能够计划并实施修复工作,这样比研究问题的安全细节更为有效。这些信息包括关于问题类别的具体信息、该问题会如何者利用,以及开发人员如何确保代码不受此漏洞的威胁。
安全编码规则包支持多种编程语言,也支持各种经过扩展的第三方库和配置文件。
有关当前安全编码规则包的信息,请参见《安全编码规则包参考》。
Fortify “Function(函数)”面板:
Function(函数)面板显示了项目中的函数/方法列表。使用“Function(函数)”面板可找出该函数在源代码中的位置,了解函数是否应用和匹配某个规则,以及编写和验证自定义规则。
“Function(函数)”面板具有以下选项:
Show(显示):确定显示在该列表中的函数。
Group by(分组方式):将函数归类到各个包和类中,显示层次结构或直接显示所有函数而不进行分组。
Include unused funct(包括未使用的函数):显示源代码中的每个函数。默认情况下,列表中不会包含未使用的函数。
Fortify SCA扫描结果展示
1.根据漏洞的可能性和严重性进行分类筛选
我们观察fortify扫描的每一条漏洞,会有如下2个标识,严重性(IMPACT)和可能性(LIKEHOOD),这两个标识的取值是从0.1~5.0,我们可以根据自己的需要筛选展示对应严重性和可能性范围的漏洞,这些漏洞必须修复,其他不严重的或者难以利用的漏洞可以作为中低危漏洞做选择性修复。如果我们的应用是新闻资讯或者体育类应用,那么我们可以把阈值调高,增加漏报率,降低误报率。如果我们的应用是金融理财或交易类应用,那么我们可以把阈值调低,增加误报率,降低漏报率