安全测试工具Fortify最新版本及使用操作演示
代码测试工具是安全测试、代码审计中经常会用到的一款软件测试工具,支持超过27种语言,超过911,000个组件级API,覆盖810多个SAST漏洞分类。通过Fortify的安全编码规则库,可以定位漏洞根本原因,参考漏洞修复指南。Fortify现在已发布的最新版本是Fortify 22.1.0 版本,首先我们先一起来看一下最新版本与老版本相比有哪些新功能,然后再带大家一起了解一下这款代码审计工具的实操。
最新发布的 Fortify 22.1.0 版本,能高度兼容最新的软件技术,对运营环境常见的应用安全用例的兼容性也更加广泛,主要有以下更新:
操作系统更新
新增对以下操作系统和版本的支持:
- macOS 12
- Windows 11
编译器更新
新增对以下编译器版本的支持:
- Clang 13.1.6
- OpenJDK javac 17
- Swiftc 5.6
- cl (MSVC) 2015 and 2022
构建工具更新
新增对以下构建工具版本的支持:
- Gradle 7.4.x
- MSBuild 14.0, 17.0, 17.1 and 17.2
- Xcodebuild 13.3 and 13.3.1
语言和框架更新
- C# 10
- .NET 6.0
- C/C++ 20
- HCL 2.0
- Java 17
- TypeScript 4.4 和 4.5
现在已经可以支持 Visual Studio 2022、IntelliJ 2021.x。Fortify Audit Workbench、Fortify Eclipse Complete Plugin 和 Fortify Extension for Visual Studio 中的选项菜单能够导入从客户门户下载的 Fortify 所有规则包。
现在在两个 FPR 之间能比较扫描文件的 LOC,并查看 FPR 分析文件的 LOC 计数(-loc),或使用 FPRUtility(-loc,-compareTo)在两个 FPR 之间比较 LOC 计数。
现在,用户可以通过服务器的“rulepackupdate.SocketReadTimeoutSeconds”属性配置 fortifyupdate 的 socket 超时。默认值是 180。
可以用 shortfilename 作为问题模板中的搜索修饰符,来过滤或隐藏与文件名匹配的问题。如果进行全路径匹配,可以继续使用文件搜索修饰符。
以上是代码测试工具Fortify最新版本的一些新的更新与亮点,接下来我们一起来看一下代码测试工具Fortify的实操。
1、通过“Audit Workbench”进行测试。
“Audit Workbench”支持Java语言源代码的测试
(1) 打开桌面Fortify SCA 20.1 代码审计引擎,在主页面选择代码测试语言类型。
①如果是Java语言项目,选择“Scan Java Project”
②如果是非Java语言,选择“Advanced Scan”
(3) 选择被测试代码所在目录
(4) 选择Java版本
(5) 进行代码测试配置
(6) 运行代码测试
(7) 查看代码测试结果
4、测试报告生成
①打开“Audit Workbench”中的“Tools-Reports”,选择“Generate BIRT Report”或者“Generate Legacy Report”
② 在报告模板“Report Template”中选择“Developer Workbook”,点击“Generate”按钮,工具会自动生成报告。
通过“Scan Wizard”进行测试
“Scan Wizard”支持Java、Python、C/C++、.Net、Go、PHP、Flex、Action Script、HTML、XML、JavaScript、TypeScript、Kotlin、SQL、ABAP、ColdFusion语言或框架源代码的测试。
(1)打开Scan Wizard
(2)选择Python文件所在目录
(3)确认测试工具自动识别内容
(4)选择库文件
(5)生成脚本文件
(6)完成脚本文件生成
(7)执行生成的脚本文件
通过命令行进行测试
命令行方式支持各语言源代码的测试
(1)Linux项目测试
以Linux下C/C++程序代码测试为例:
①代码编译在代码测试执行前,首先需要进行C/C++程序代码的编译,如下面的示例:gcc -I. -o hello.o -c helloworld.c通过gcc编译器将代码进行编译。
②代码测试在代码编译后,使用sourceanalyzer命令进行代码文件测试。sourceanalyzer -b <build_id> gcc -I. -o hello.o -c helloworld.c
(a)使用Apple “xcode-select command-line tool”设置Xcode path,同时供Fortify使用。
(b)确保项目相关依赖库文件已经包含在项目中。
(c)针对Swift代码,确保所有第三方模块都已经被包含,包括Cocoapods。
(d)如果项目中包含二进制的属性列表文件,需要将它们转化为XML格式,通过Xcode的putil命令进行转换。
(e)针对Objective-C项目,需要保证头文件能够被获取。
(f)针对WatchKit应用,需要同时转化iPhone应用和WatchKit扩展目标。
③ iOS代码测试执行sourceanalyzer -b <build_id> xcodebuild [<compiler_options>]
(2)iOS项目测试
① iOS项目测试条件
(a) iOS项目需要使用non-fragile Objective-C runtime模式(ABI version 2或3)
(b) 使用Apple “xcode-select command-line tool”设置Xcode path,同时供Fortify使用。
(c) 确保项目相关依赖库文件已经包含在项目中。
(d) 针对Swift代码,确保所有第三方模块都已经被包含,包括Cocoapods。
(e) 如果项目中包含二进制的属性列表文件,需要将它们转化为XML格式,通过Xcode的putil命令进行转换。
(f) 针对Objective-C项目,需要保证头文件能够被获取。
(g) 针对WatchKit应用,需要同时转化iPhone应用和WatchKit扩展目标。
② iOS代码测试执行sourceanalyzer -b <build_id> xcodebuild [<compiler_options>]
测试报告生成
通过“Scan Wizard”生成测试报告
通过“Scan Wizard”方式进行测试执行,会生成.fpr测试结果文件,然后通过命令行方式基于测试结果文件生成测试报告文件。
通过命令行生成测试报告
通过“Scan Wizard”方式或命令行方式生成测试结果文件后,可以基于“ReportGenerator”命令生成测试报告。
下面示例中,基于.fpr结果文件生成PDF格式的测试报告。
ReportGenerator -format pdf -f <my_report>.pdf -source <my_results>.fpr<my_report>.pdf为命名的PDF格式测试报告名称,<my_results>.fpr为测试结果文件名称。
以上就是分享的所有内容,如需软件试用、不同安全测试工具参数比对等,可私信我。