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属性内容,里面包含了该项目生成扫描中间文件的指令参数,可以参考了解如何配置自动化的扫描平台。
Fortify SCA快速入门
规则库导入:
所有的扫描都是基于规则库进行的,因此,建立扫描任务的前提条件就是你需要把检查规则拷贝到HP_Fortify\HP_Fortify_SCA_and_Apps_3.80\Core\config\rules文件夹下,拷贝后便为扫描建立了默认的规则库。另外,你也可以自定义规则,这些内容将会在以后逐一介绍。
建立和执行扫描任务:
我们分别通过Java、.Net C#和C/C++三类不同编程语言项目来介绍如何快速建立和执行扫描任务:
Java项目:
Fortify SCA对于Java项目的支持是做得蕞好的,建立扫描入口的路径选择非常多,常用的方法是直接执行HP_Fortify\HP_Fortify_SCA_and_Apps_3.80\bin\d,启动审计工作台就可以直接对Java项目进行静态扫描;另外也可以使用Fortify SCA插件,集成嵌入Eclipse来完成开发过程中的实时扫描;当然,你也可以使用原生的命令行工具完成全部工作,我们这里介绍一个通用的方法,即利用ScanWizard工具导入你的源码项目,通过一系列设置后,会生成一个批处理脚本文件,通过批处理代替手工输入执行命令进行测试。
使用HP_Fortify\HP_Fortify_SCA_and_Apps_3.80\bin\d启动ScanWizard工具:
Fortify SCA乱码解决
1:单文件乱码解决方案
可通过Edit下Set Encoding设置。
2:修改Audit Workbench默认编码
找到d文件(D:\dev\Fortify\Fortify_SCA_and_Apps_20.1.1\Core\private-bin\awb\d)在蕞后这一行末添加-Dfile.encoding=utf-8,以规定其eclipse.exe默认使用utf-8编码。
备注:d 在 Audit Workbench 的 d 文件内可找到。
3:修改Fortify集成的eclipse默认编码
添加 fortify 的 eclipse 启动参数 -Dfile.encoding=utf-8
以上信息由专业从事源代码扫描工具fortify工具的华克斯于2024/3/24 11:26:36发布
转载请注明来源:http://zhongqing.mf1288.com/hksxxkj-2723226421.html