【代码审计篇】 代码审计工具Fortify基本用法详解

简介: 本篇文章讲解代码审计工具Fortify的基本用法,感兴趣的小伙伴可以研究学习一下,文中部分地方可能会有遗漏,麻烦各位大佬指正,深表感谢!!!

一、工具介绍


Fortify全名叫Fortify SCA ,是惠普公司HP的出品的一款源代码安全测试工具,这家公司也出品过另一款Web漏洞扫描器,叫做 Webinspect。美国的FortifyCoverityCodesecureIBM AppScan Source 以色列的Checkmarx、加拿大的Klockwork是现在国际上比较出名的几款代码审计工具,那么接下来就Fortify来介绍一下使用方法。

Fortify代审工具是可以快速上手的,并不是一款傻瓜工具,该工具中有很多自定义操作,还有命令行操作,同时还可以自己编写规则库(详细的使用说明请参考Fortify的说明书)。


二、安装过程


该工具安装过程较为简单,打开安装包,一直点击 “下一步”,到这里选择fortify.license文件

image.png

接下来按照默认,一直 “下一步” 即可。

image.png

安装完成,打开工具界面,如下所示

image.png

三、升级中文规则库


如上工具现已安装完成,接下来需要升级一下中文规则库,打开 Audit Workbench 快捷方式,在弹出的gui界面,点击 Options 选项,然后点击 Security Content Management 选项,点击 Update Security Content – zh_CN选项可以升级Fortify的中文规则库。

image.png

出现该弹窗,说明中文规则库升级成功。


如果受license限制,无法升级到最新的规则库,那么可行的方法就是通过其他渠道获取一个最新的中文规则库,手工对 ExternalMetadatarules 两个文件夹的文件进行替换。

目录位置:C:\Program Files\Fortify\Fortify_SCA_and_Apps_21.2.3\Core\config

image.png

将最新版的两个文件夹替换,在回软件中看 Security Content Management 配置,Version信息为最新日期即为替换成功。


四、代码审计过程


如果是java项目,可直接点击 Scan Java Project选项。

image.png

弹窗java version,可以选择web应用的java代码的所在环境的java版本,这里我们选择 1.8

image.png

如果扫描对象是Java Web代码,就选择 Yes,如果不是Java Web,就选择 No

其他的选项保持默认即可。

image.png

接下来点击 Scan,Fortify就开始对代码进行代码审计了。

image.png

扫描完成后,Fortify工具将扫描结果显示在界面上,如下图所示

image.png

五、代码审计结果


Fortify的 Diagram功能非常强大,以图表形式展示源代码中漏洞触发点的从开始到触发的所有过程,我们可以借助此功能,分析是否有过滤函数对漏洞触发的特殊字符进行了过滤。

image.png

同时在 Recommendations 这里给出了中文的漏洞修补建议。

image.png

点击 Group By 按钮,可以以不同漏洞分类标准对漏洞进行不同的分类展示。

image.png

如果代审过程中遇到误报,可以选择Hide in AWB,对该漏洞结果进行隐藏。

image.png

当代码完成后,需要生成报告,点击Tools -> Reports -> Generate BIRT Report/ Generate Legacy -> 选择生成报告类型以及导出格式。

image.png

这个功能导出报告可以作为参考,但是实际代码审计报告还是需要自行编写。


六、中文乱码解决


Fortify默认的编码不是UTF-8,导致部分中文的Java代码会出现乱码问题,如果是单文件乱码,可以使用 Edit选项卡下 Set Encoding 进行设置,鼠标光标在右侧代码框内点击一下,否则此项功能不能用,但这种方法只适用于单个文件的乱码解决。

image.png

点击 Set Encoding里弹出文本编码框,可看到有不同文本编码可选,中文则选择 UTF-8 编码。

image.png

上面刚刚提到这个方法只适用于单个文件,如果想一劳永逸解决乱码问题,需要在Fortify的配置文件中指定java文件的编码了。

C:\Program Files\Fortify\Fortify_SCA_and_Apps_21.2.3\Core\private-bin\awb 路径下有一个 productlaunch.cmd 的文件。在命令行最后添加 -Dfile.encoding=utf-8

image.png

编辑保存,重新启动软件即可!!!

目录
相关文章
|
1月前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
40 2
|
2月前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
62 1
|
6月前
|
SQL 安全 数据可视化
代码审计神器:Fortify SCA 保姆级教程
代码审计神器:Fortify SCA 保姆级教程
代码审计神器:Fortify SCA 保姆级教程
|
安全 Java 测试技术
聚合型代码审计工具QingScan使用实践
笔者最近看到很多公众号在推荐QingScan这款扫描器平台,也好奇了起来,花了半小时将QingScan搭建了起来;
213 0
聚合型代码审计工具QingScan使用实践
|
11月前
|
安全 小程序 PHP
PHP代码审计(七)Rips源代码审计系统使用教程
上一篇中提到的Seay源代码审计系统是由C#编写的winform程序,现在已经停止更新了,但是,还是比较好用的。 PHP代码审计还有另一个工具,也是一个神器Rips
304 0
|
11月前
|
安全 小程序 PHP
PHP代码审计(五)PHP代码审计方法与步骤
(1):获取到网站源码(这就是废话……) (2):将网站部署到你自己的环境中,能运行。 这里特殊说明一下我的习惯,我本地的环境与线上的环境基本上保持一致,这样在本地审计及线上部署的时候能发现更多的问题。不建议说是随便搭个环境能跑起来就行,这样不是很严谨。 (3):拿到源码之后,浏览大概的项目结构。
123 0
|
11月前
|
Shell PHP Windows
PHP代码审计(四)PHP文件操作函数(2)
改变文件所有者。如果成功则返回 TRUE,如果失败则返回 FALSE。 语法:chown(file,owner)
74 0
|
11月前
|
安全 Unix Shell
PHP代码审计(四)PHP文件操作函数(1)
改变文件所有者。如果成功则返回 TRUE,如果失败则返回 FALSE。 语法:chown(file,owner)
71 0
|
11月前
|
安全 小程序 PHP
PHP代码审计(六)Seay源代码审计系统使用教程
www.cnseay.com/ 当然,这个已经不能访问了。 软件的版本比较早,需要.NET framework3.5框架,我这里是软件启动的时候自动提醒安装,如果没有自动提醒,那么你需要手动安装.NET frameWork3.5框架,否则,程序应该是没有办法运行。
1136 0