第37篇:fortify代码审计工具的使用技巧(1)-审计java代码过程
Part1 前言
在正式文章之前,插播一下:恭喜梅西圆梦,获得世界杯冠军,加冕球王,一场精彩绝伦的球赛。开心之后,还是要静下心学习的,我们也要继续努力。
Fortify全名叫Fortify SCA,是惠普公司HP的出品的一款源代码安全测试工具,这家公司也出品过另一款很厉害的Web漏洞扫描器叫Webinspect。美国的Fortify、美国的Coverity、美国的Codesecure、美国的IBM AppScan Source以色列的Checkmarx、加拿大的Klockwork是现在国际上比较出名的几款代码审计工具,今天就讲一下fortify的使用吧,其它工具的使用后续再介绍。
Fortify对于新手是可以快速上手的,但是它绝不是一款傻瓜工具,它有很多的自定义操作,还有命令行操作,还可以自己编写规则库,这些都需要大家仔细阅读Fortify的说明书,再次强调一遍,仔细阅读说明书,后续ABC_123会抽时间慢慢讲。
求助:哪位朋友有Codesecure、IBM Security AppScan Source的破解版或者是试用版,方便的话发我试用一下,保证不用于商业目的,Thanks♪(・ω・)ノ
Part2 具体使用过程
Fortify的安装过程
安装过程比较简单,我就挑关键步骤讲解了。下载安装包之后,一直点击“下一步”就行,这里需要选择一个license文件foritfy.license。
接下来按照默认,一直点击“下一步”即可。
软件打开如下所示:
升级中文规则库
接下来重点看一下如何升级中文规则库。打开Audit Workbench快捷方式,在弹出的gui界面,点击Options选项,点开Security Content Management选项,点击Update Security Content - zh_CN选项可以升级Fortify的中文规则库。
出现以下弹窗,说明中文规则库升级成功。
如果受license限制,无法升级到最新的规则库,那么可以跟有商业版的朋友要一个最新版的中文规则库,手工对ExternalMetadata及rules两个文件夹的文件进行替换。
在C:\Program Files\Fortify\Fortify_SCA_and_Apps_20.1.1\Core\config目录下,将以下文件进行替换。
再看一下Security Content Management配置,发现规则库已经不是2019年的,已经是2022年的。
审计Java代码过程
如果是java项目,可以直接点击“Scan Java Project”选项。
这里java version,可以选择web应用的java代码的所在环境的java版本,这里我们选择1.8。
如果扫描对象是Java web代码,就选择“Yes”,如果不是Java web,就选择No,其它的选项保持默认即可。
接下来点击“Scan”,Fortify就开始对代码进行代码审计了。
这时候发现,对于webgoat源代码Fortify只扫描出了36个高危漏洞,为啥最基本的sql注入漏洞没扫描出来呢?重新理一下思路,Fortify扫描源代码漏洞前,是需要对源码编译的,没有jar包有些类肯定是编译不成功的。
加载jar包重新扫描
接下来打开pom.xml查看web应用需要依赖哪些jar包,将所有需要jar包放到webgoat目录下即可,Fortify会自动识别和加载.jar文件。如果web应用所依赖的jar包太多,手工找起来太麻烦,可以直接解压编译后的.war文件或者springboot的.jar文件获取所有jar包文件。
重新运行fortify扫描一下,加载jar包后扫描出了81个高危漏洞,这样的扫描结果看起来还算是正常。
Fortify扫描结果展示界面如下:
代码审计结果
Fortify的Diagram功能非常强大,以图表形式展示源代码中漏洞触发点的从开始到触发的所有过程,我们可以借助此功能,分析是否有过滤函数对漏洞触发的特殊字符进行了过滤。
这个界面给出了中文的漏洞修补建议。
点击“Group By”按钮,可以以不同漏洞分类标准对漏洞进行不同的分类展示。
如果遇到误报,可以选择“Hide in AWB”,对该漏洞结果进行隐藏。
最后是生成报告功能,这个功能我一般不用,只是作为参考,一般都是自己写代码审计报告。
中文乱码解决
Fortify默认的编码不是UTF-8,导致部分中文的Java代码会出现乱码问题。如果是单文件乱码,可以使用Edit选项卡下的Set Encoding进行设置,鼠标光标在右侧代码框内点击一下,否则此项功能不能用,但是这种方法只适用于单个文件的乱码解决。
如下所示,可以选择不同的文本编码,中文可选择UTF-8编码:
如下图所示,乱码问题成功解决。
如果想一劳永逸解决乱码问题,只能在Fortify的配置文件中指定Java文件的编码了
C:\Program Files\Fortify\Fortify_SCA_and_Apps_20.1.1\Core\private-bin\awb\productlaunch.cmd,在命令行最后添加-Dfile.encoding=utf-8。
Part3 总结
1. 后续还会继续分享Fortify代码审计工具的使用教程,也会分享Checkmarx、Coverity等代码审计工具的使用教程,敬请期待。
专注于网络安全技术分享,包括红队攻防、蓝队分析、渗透测试、代码审计等
每周一篇,99%原创,敬请关注
第37篇:fortify代码审计工具的使用技巧(1)-审计java代码过程相关推荐
- 【代码审计篇】 代码审计工具Fortify基本用法详解
文章目录 前言 一.工具介绍 二.安装过程 三.升级中文规则库 四.代码审计过程 五.代码审计结果 六.中文乱码解决 前言 本篇文章讲解代码审计工具Fortify的基本用法,感兴趣的小伙伴可以研究学习 ...
- 【项目实战】Java代码反编译工具的使用 以及 如何对Java代码进行混淆?
一.背景 现在交付给客户的代码,虽然不是以源码的形式交付,但是还经常会需要进行反编译,如何更好的做到反编译呢?本文探讨的是如何进行反编译的方法. 二. Java代码反编译工具的使用 (1)使用jad ...
- Java 在线编程编译工具上线,直接运行Java代码
前言 大家好,我是小哈~ 周末没出去浪,花了点时间,在我的个人网站上线了一款小工具.啥工具呢?一款可以在线编译 Java 代码并运行输出结果的小工具. 大家都知道,甲骨文刷 Java 版本号非常积极, ...
- Java代码加密混淆工具有哪些?
在Java中,代码加密混淆工具可以帮助开发者将源代码进行加密和混淆处理,以增加代码的安全性和保护知识产权.以下是一些流行的Java代码加密混淆工具: 第一款:ProGuard:ProGuard Pro ...
- 第43篇:国内商用代码审计工具CodePecker啄木鸟的使用教程
Part1 前言 最近感染了新冠,大病初愈,没有气力写复杂的文章了,就抽空把<代码审计工具系列教程>写完吧,前面几期介绍了商用代码审计工具Fortify.Checkmarx.Cover ...
- license 验证服务器唯一机器码_代码审计工具Fortify 17.10及Mac平台license版本
介绍17.10版本安装指导工具使用云端试用价值 介绍 Fortify SCA是一个静态源代码安全测试工具.它通过内置的五大主要分析引擎对源代码进行静态的分析和检测,分析的过程中与其特有的软件安全漏洞规 ...
- 静态代码审计工具Cobra/Cobra-W/find-sec-bugs
8.4更新 cobra关键解析流程: ## cli.py ->start scan_engine(target_directory=target_directory, a_sid=a_sid, ...
- PowerShell攻防进阶篇:nishang工具用法详解
PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...
- PHP代码审计工具——rips
一.代码审计工具介绍 代码审计工具可以辅助我们进行白盒测试,大大提高漏洞分析和代码挖掘的效率. 在源代码的静态安全审计中,使用自动化工具辅助人工漏洞挖掘,一款好的代码审计软件,可以显著提高审计工作的效 ...
最新文章
- 网站用户登录验证:Servlet+JSP VS Struts书剑恩仇录
- 【java开发系列】—— spring简单入门示例
- t66y.buzz index.php,6.FizzBuzz
- springboot嵌入thymeleaf后css404_SpringBoot2整合Thymeleaf
- 算法(第4版)Robert Sedgewick 刷题 第一章(1)
- 设计一代码,逆置带头结点的动态单链表L
- x264 的 cache详解
- python中msg函数_Python 中闭包函数和装饰器
- linux下java基于UDP编程聊天_基于Linux下的UDP编程
- linux 驱动 (2)---Linux input子系统最清晰、详尽的分析
- nyoj 4 ASCII码排序(set,multiset)
- IE、FireFox、Opera三种浏览器Document对象的方法对比
- 主播助理的三种常见工作类型
- .net中 参数out,ref,params的区别
- c语言程序运行的单词翻译,c语言常见英语词汇带翻译
- 安川机器人SOCKET 通讯
- 绝地求生:你知道哪种枪的射速最快吗?它100发子弹只要8秒!
- Win8 Metro App里玩XNA:移植XNA游戏到Win8
- 关于大学数学建模一些推荐的软件
- CyberPanel – 完全基于OpenLiteSpeed的虚拟主机控制面板