C/C++源码扫描系列- Fortify 篇
环境搭建
Linux搭建
解压的压缩包,然后执行 ./Fortify_SCA_and_Apps_19.2.1_linux_x64.run 按照引导完成安装即可,安装完成后进入目录执行sourceanalyzer来查看是否安装完成
然后将 rules 和 ExternalMetadata 拷贝到对应的目录中完成规则的安装。
Fortify的工作原理和codeql类似,首先会需要使用Fortify对目标源码进行分析提取源代码中的信息,然后使用规则从源码信息中查询出匹配的代码。
Fortify常见问题解决方法
内存不足问题
在应用Fortify SCA实施源代码扫描过程中内存不足是分析器(sourceanalyzer)经常报出的一类问题,如下:
扫描过程中:
1、com.fortify.sca.analyzer.AbortedException: There is not enough memory available
2、to complete analysis. For details on making more memory available;
There were 3 problems with insufficient memory. Results may be incomplete.
因此,我们必须对JVM参数进行调整,增加虚拟器内存大小。
(1)确认安装64位的Fortify SCA程序;(这是一个众所周知的JVM问题,32为虚拟机内存大小及其有限);
(2)安装一个64位的jre,并将其替换HP_Fortify﹨HP_Fortify_SCA_and_Apps_3.80﹨的jre目录(就算你安装了64位的Fortify SCA程序,源代码检测工具fortify版本,该程序默认的jre仍然是32位的);

Fortify扫描Qt项目
Fortify对于C++类型的代码扫描需要结合编译指令实现,但Fortify支持的C++指令并不多,所以有些类似使用Qt工具开发的项目就需要做一定调整来适配Foritfy的扫描。使用gcc或者cl级别的命令来实现会很麻烦,因为需要对于Qt的qmake工具运行逻辑有一定深入分析,熟知其生成的Makefile以来的环境和make工具,难度较大,所以更建议以Visual Studio的Fortify插件为入口,先将Qt项目转成Visual Studio项目,源代码检测工具fortify 价格,再使用插件扫描,这样就会容易很多。

我们简单介绍一下流程:
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项目,源代码检测工具fortify代理商,即可生成对应的fpr文件。另外,如果想要使用命令来自动化的进行项目扫描,源代码检测工具fortify,但不知道一个类型的项目如何进行适配,可以解压使用插件生成的fpr文件。查看其中audit.fvdl文件中的sun.java.command属性内容,里面包含了该项目生成扫描中间文件的指令参数,可以参考了解如何配置自动化的扫描平台。
华克斯-源代码检测工具fortify由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司为客户提供“Loadrunner,Fortify,源代码审计,源代码扫描”等业务,公司拥有“Loadrunner,Fortify,Webinspect”等,专注于行业软件等行业。,在苏州工业园区新平街388号的名声不错。欢迎来电垂询,联系人:华克斯。
产品:华克斯
供货总量:不限
产品价格:议定
包装规格:不限
物流说明:货运及物流
交货说明:按订单