文章总结: 本文详细介绍了使用Fortify工具进行Java项目代码审计的全流程,包括工具启动、JDK版本选择、扫描参数配置、漏洞扫描执行等关键步骤。重点分析了因未导入完整Maven依赖导致的漏报问题,并提供了配置阿里云镜像、修改本地仓库路径等具体解决方案。通过SQL注入漏洞的实例演示了Fortify的Diagram视图和函数调用栈分析功能,最后简要说明了报告导出和工具获取方式。 综合评分: 82 文章分类: 代码审计,安全工具,漏洞分析,WEB安全,安全开发
【代码审计】Fortify浅用
原创
十月的进阶之路 十月的进阶之路
十月的进阶之路
2026年4月15日 16:08 重庆
在小说阅读器读本章
去阅读
快乐的一天从摸鱼开始,又从摸鱼结束
目录
- 启动
Fortify工具 - 选择项目
JDK版本 - 扫描参数配置
- 启动漏洞扫描
- 扫描漏洞数量分析(含
Maven依赖配置) - 漏洞抽样分析(以
SQL注入为例) - 审计报告导出
Fortify工具获取与安装
1. 启动Fortify
启动Fortify工具后,首先需区分项目类型,重点区分Java项目与其他类型项目,便于后续针对性配置扫描规则。
2. 选择项目的JDK版本
根据当前审计项目的实际JDK版本进行选择,确保扫描环境与项目运行环境一致,避免因版本不匹配导致扫描异常或结果偏差。
3. 扫描配置
进入扫描配置界面,按以下标准配置参数,兼顾安全风险覆盖与代码质量检测,适配Java EE项目场景:
- 安全关注度:
Show me all issues that may have security implications覆盖全量安全风险,适配远程+本地双重防护,不遗漏潜在安全隐患; - 代码质量:
Show me all code quality issues兼顾安全检测与代码规范、项目稳定性,同步排查代码层面的非安全类问题; - 是否
Java EE应用:Yes启用Java EE专属扫描规则,针对性检测Java EE项目特有的安全漏洞; - 是否高权限运行:
Yes强化高权限场景下的风险检测,确保高权限操作相关的漏洞无遗漏。
4. 开始扫描
配置完成后,点击开始扫描,扫描时长根据项目大小而定,期间无需手动操作,等待扫描完成即可。
5. 扫描漏洞数量分析
扫描完成后,查看初步扫描结果,会发现存在较多漏报情况——甚至基础的SQL注入漏洞都未被检测出来。
核心原因是未导入项目完整依赖,导致Fortify无法全面解析项目代码,扫描结果不准确。因此,需通过Maven导入项目完整依赖,同时配置国内镜像解决网络访问问题,具体操作如下。
5.1 配置Maven镜像与本地仓库
在用户目录(路径:C:\Users\xxx\.m2\)下,找到settings.xml文件(若不存在则新建),添加如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 阿里云镜像(解决Maven网络访问问题)-->
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<!-- 本地仓库位置(建议修改到指定路径,避免C盘占用过大) -->
<localRepository>D:/local_repository</localRepository>
</settings>
5.2 导入项目依赖
打开项目根目录(含pom.xml文件),执行如下Maven命令,导入项目所有第三方依赖:
mvn clean compile
5.3 项目迁移(无Maven环境场景)
若需将项目迁移到无Maven环境的电脑上进行审计,可执行如下命令,将所有第三方依赖包合并到项目中,便于直接移动整个项目:
mvn dependency:copy-dependencies
执行完成后,所有依赖jar包会自动复制到项目目录下的 target/dependency/ 文件夹中。
5.4 重新扫描验证
导入完整依赖后,重启Fortify工具,重新执行扫描操作,得到的扫描结果会大幅完善,之前未检测出的SQL注入等漏洞也能被精准识别。
6. 漏洞抽样分析
选取扫描结果中的一个SQL注入漏洞,结合Fortify的Diagram视图进行深度分析,可清晰发现:数据从source(输入源)到sink(执行点)的传输过程中,未经过任何过滤处理,且未使用预编译语句,最终导致SQL注入漏洞产生。
同时,Fortify提供完整的函数调用栈,可直观追溯漏洞产生的代码路径,便于快速定位问题根源、分析漏洞危害。
注: 其他漏洞不再详细分析,该靶场代码已在前期通过手工方式完整审计过。
7. 报告导出
实际审计工作中,一般不使用Fortify自带的报告导出功能,相关操作界面参考如下。
8. Fortify工具获取以及安装教程
网上一大把,不写了。
摸鱼跑路,byby~~
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:十月的进阶之路 十月的进阶之路 十月的进阶之路《【代码审计】Fortify浅用》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论