Fortify相比codeql的优势在于:
商用工具,拥有许多预设规则,华北源代码检测工具fortify,比较成熟。规则开发模式比较局限,但是对于某些特定场景的规则开发相对简单。适合大规模规则的扫描。
Fortify是一款商业级的源码扫描工具,其工作原理和codeql类似,甚至一些规则编写的语法都很相似。
HP Fortify SCA采用的X-Tier数据流程分析技术,完整分析各种程序语言之执行流程、数据输入/输出及程序语法,即使同一个应用系统中包含了不同语言的源代码,也可以完整分析及串接。透过HP Fortify SCA持续更新的检查规则(Rulepack),让蕞新的弱点可以被发现并修补,使用者也可以自行定义审计规则,针对特殊程序编写规则或要求进行检查。
Fortify自定义规则
1). 在fortify SCA安装的bin目录下找到打开自定义规则编辑器,CustomRulesEditor.cmd,如下图所示:
2). 打开编辑器后,选择File ——>Generate Rule,弹出规则向导框。
3). 自定义规则模板可以按照漏洞类型(Category)和规则类型(Rule Type)进行分类,不管是何种方式分类,这些模板大体上分为,数据污染源tainted规则,数据控制流规则,数据传递规则,源代码检测工具fortify工具,以及漏洞缺陷爆发的sink规则。只要理解了这些规则模板,和开发语言的函数特征,建立规则就简单了。
4) .选择规则包语言,点击next,然后填写报名,源代码检测工具fortify规则,类名,函数名
5). 点击next,设置sink点
1、导航并查看分析结果
在您打开一个用来查看 Fortify Source Code Analyzer (Fortify SCA) 所检测到的问题的 Audit Workbench 项目之后,您可以在 Summary(摘要)面板中审计这些问题,以反映这些问题的严重级别,源代码检测工具fortify采购,以及对该问题执行的安全分析状态。
系统会按审计结果的严重性以及准确性,对审计结果进行分组,并在默认情况下将问题识别为位于“Issues(问题)”面板中的 Hot(严重)列表内。单击 Warning(警告)和 Info(信息),查看分组在这些列表中的问题。
每个列表中的问题数量显示在相关按钮下面。
要检验与 Issues(问题)面板中所列问题相关的代码,选中该问题。源代码部分包含显示在源代码查看器面板中的问题,并在面板的标题中显示文件所包含问题的名称。
2、审计结果分析
本练习将会引导您浏览一下在练习 3 中使用 Fortify SCA 分析小程序产生的结果。请您检查 Fortify SCA 中各种不同分析器所发现的问题,并比较 Fortify SCA 生成的各种不同输出格式。
请考虑 UserServ.java 的内容: