Fortify介绍
Fortify是一款强大的静态代码扫描分析工具,其发现代码漏洞缺陷的能力十分强悍,主要是将代码经过编译,依托于其强大的内置规则库来发现漏洞的。其次fortify SCA团队在开发此商业工具时,也提供了自定义规则的接口,只要经过正版授权后,便可以在此基础上自定义规则,来增强Fortify SCA的漏洞识别能力,同时经过自定义规则,也可以降低误报,使静态分析的准确度和性。
默认情况下,Fortify SCA使用安装的安全编码规则包来检查源代码,并定义一系列可能出现的问题,如可者李勇的安全漏洞和不良的编码缺陷。
安全编码规则中的规则分析受支持语言的和扩展的API包中的函数,并将分析结果记录在Fortify SCA中。每一个问题的解释包含了对问题的描述和建议的解决方案,一边更好的解决程序中的漏洞和缺陷。也可以通过创建自定义规则包来准确地分析特定的应用程序,验证专门的安全规则以及细化Fortify SCA所报告的问题。
Fortify自定义规则
1). 在fortify SCA安装的bin目录下找到打开自定义规则编辑器,d,如下图所示:
2). 打开编辑器后,选择File ——>Generate Rule,弹出规则向导框。
3). 自定义规则模板可以按照漏洞类型(Category)和规则类型(Rule Type)进行分类,不管是何种方式分类,这些模板大体上分为,数据污染源tainted规则,数据控制流规则,数据传递规则,以及漏洞缺陷爆发的sink规则。只要理解了这些规则模板,和开发语言的函数特征,建立规则就简单了。
4) .选择规则包语言,点击next,然后填写报名,类名,函数名
5). 点击next,设置sink点
Fortify扫描Qt项目
Fortify对于C++类型的代码扫描需要结合编译指令实现,但Fortify支持的C++指令并不多,所以有些类似使用Qt工具开发的项目就需要做一定调整来适配Foritfy的扫描。使用gcc或者cl级别的命令来实现会很麻烦,因为需要对于Qt的qmake工具运行逻辑有一定深入分析,熟知其生成的Makefile以来的环境和make工具,难度较大,所以更建议以Visual Studio的Fortify插件为入口,先将Qt项目转成Visual Studio项目,再使用插件扫描,这样就会容易很多。
我们简单介绍一下流程:
1、在Visual Studio中安装Qt Visual Studio Tools插件和Fortify插件。
2、在Qt插件的Qt Opt选项中配置编译套件,该套件位置可以在Qt对应版本下面,比如Qt\Qt5.12.8\5.12.8\msvc2017。
3、使用Qt插件的Open Qt Project File (.pro)...打开对应的Qt项目,并使用插件的Convert custom build steps to Qt/MSBuild选项,将项目转成vs项目,并生成对应的.vcsproj文件。
测试能成功运行后,就可以使用Fortify进行扫描了。步骤类似与上面的Android项目,即可生成对应的fpr文件。另外,如果想要使用命令来自动化的进行项目扫描,但不知道一个类型的项目如何进行适配,可以解压使用插件生成的fpr文件。查看其中audit.fvdl文件中的sun.mand属性内容,里面包含了该项目生成扫描中间文件的指令参数,可以参考了解如何配置自动化的扫描平台。
fottify全名叫:Fortify SCA ,是HP的产品 ,是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。
FortifySCA支持的21语言,分别是如下图:
以上信息由专业从事源代码审计工具fortify sca的华克斯于2024/5/23 7:15:05发布
转载请注明来源:http://www.zhizhuke.cn/qyzx/hksxxkj-2757246129.html