JAVA静态代码审计神器:Fortify

前言

手动审计代码能力不够,可以用工具来凑,推荐使用JAVA代码审计神器:Fortify

介绍

Fortify 是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,通过与软件安全漏洞规则集进行匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并可导出报告。扫描的结果中包括详细的安全漏洞信息、相关的安全知识、修复意见。

原理

代码转换:Fortify首先将前端代码(如Java、C++等)通过编译器或解释器转换成一种中间表示文件,称为Normal Syntax Tree(NST)

漏洞分析:通过内置的五大分析引擎,对NST文件进行细致分析,匹配安全漏洞规则库中的特征。

报告生成:一旦发现漏洞,Fortify会抓取相关信息,并生成包含详细漏洞信息的FPR(Fortify Project Result)报告文件,供开发者在AWB(Application Security Workbench)中查看。

首先通过调用语言的编译器或者解释器把前端的语言代码(如JAVA,C/C++源代码)转换成一种中间媒体文件NST(Normal Syntax Tree),将其源代码之间的调用关系,执行环境,上下文等分析清楚。通过分析不同类型问题的静态分析引擎分析NST文件,同时匹配所有规则库中的漏洞特征,将漏洞抓取出来,然后形成包含详细漏洞信息的FPR结果文件,用AWB打开查看。

功能

静态代码分析:Fortify 会对源代码进行静态分析,找出可能导致安全漏洞的代码片段。它能识别多种类型的安全漏洞,如 SQL 注入、跨站脚本(XSS)、缓冲区溢出等。

数据流分析:Fortify 不仅分析单个代码文件,还跟踪应用程序的数据流。这有助于找到更复杂的漏洞,如未经验证的用户输入在应用程序中的传播路径。

漏洞修复建议:当 Fortify 发现潜在的安全漏洞时,它会为开发人员提供修复建议。这有助于开发团队更快地解决问题,降低应用程序的风险。

集成支持:Fortify 可以与多种持续集成(CI)工具(如 Jenkins、Bamboo 等)和应用生命周期管理(ALM)工具(如 Jira、Microsoft Azure DevOps 等)集成,实现自动化的代码扫描和漏洞跟踪。

报告和度量:Fortify 提供了丰富的报告功能,帮助团队了解项目的安全状况和漏洞趋势。通过这些报告,管理层可以更好地了解应用程序的安全风险,并采取相应的措施。

安装

下载地址:
链接: https://pan.baidu.com/s/1GIzf1xi7cCNvkB6I-p7bUg?pwd=uk9d 

1、下载Fortify

从网盘下载,文件大小1G左右

解压以后的内容:

2、安装Fortify

双击exe文件安装

同意协议

选择安装位置,默认在C盘,如果C盘空间不足可以选择其他磁盘

默认即可

找到license的位置,默认会定位到exe安装文件同目录下的license文件,不用修改

更新服务器,删掉清空

SCA设置,默认的No

安装样例源码,默认的Yes

准备安装

大概等几分钟以后,安装完成。

3、替换jar包

把解压目录下的fortify-common-20.1.1.0007.jar,复制到安装目录下,覆盖。

如果没有正确替换jar包,会报以下错误:

4、复制规则文件

复制解压出来的规则文件夹到安装文件夹。

如果rules的文件放置不正确,扫描的时候会报以下错误:

5、启动Fortify

第一种方式:左下角windows徽标,输入audit,找到Audit Workbench启动

第二种方式,在bin目录下双击auditworkbench.cmd启动

启动中

是否更新规则文件,可以点Yes

启动成功:

扫描项目,左上角File——Scan Java Project

选择需要扫描的项目文件夹

选择项目的JDK版本

扫描选项

扫描结果:

到此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值