文章目录

  • 前言
  • 一、工具介绍
  • 二、安装过程
  • 三、升级中文规则库
  • 四、代码审计过程
  • 五、代码审计结果
  • 六、中文乱码解决

前言

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


一、工具介绍

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

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

二、安装过程

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

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

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

三、升级中文规则库

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

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

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

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

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

四、代码审计过程

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

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

如果扫描对象是Java Web代码,就选择 Yes,如果不是Java Web,就选择 No
其他的选项保持默认即可。

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

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

五、代码审计结果

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

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

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

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

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

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

六、中文乱码解决

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

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

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

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

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


以上就是代码审计工具Fortify的基本用法,后续会更新Fortify在代码审计中的各种操作以及审计流程。

本文到此结束,感谢您的观看!!!


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

  1. python代码覆盖率怎么统计的_Python代码覆盖率统计工具coverage.py用法详解

    1.安装coverage pip install coverage 安装完成后,会在Python环境下的\Scripts下看到coverage.exe: 2.Coverage 命令行 coverage ...

  2. Python 包管理工具:pip 用法详解 + 常用pip指令

    pip 作为 python 包管理工具,在 python 引用第三方库的时候常常会使用到.那么 pip 怎么用呢,python 常用的 pip 指令有哪些?接下来这篇文章告诉你. 目录 阅前须知 第三 ...

  3. python中permute_PyTorch中permute的用法详解

    PyTorch中permute的用法详解 permute(dims) 将tensor的维度换位. 参数:参数是一系列的整数,代表原来张量的维度.比如三维就有0,1,2这些dimension. 例: i ...

  4. python定义类object_Python之ClassObject用法详解

    类和对象的概念很难去用简明的文字描述清楚.从知乎上面的一个回答中可以尝试去理解: 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行 ...

  5. python的reshape方法_numpy库reshape用法详解

    numpy.reshape(重塑) 给数组一个新的形状而不改变其数据 numpy.reshape(a, newshape, order='C')参数: a:array_like 要重新形成的数组. n ...

  6. mysql decimal 类型_MySQL数据类型DECIMAL用法详解

    MySQLDECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据. 要定义数据类型为DECIMAL的列,请使用以下语法: ...

  7. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

  8. [网络安全提高篇] 一一九.恶意软件动态分析经典沙箱Cape的安装和基础用法详解

    终于忙完初稿,开心地写一篇博客. "网络安全提高班"新的100篇文章即将开启,包括Web渗透.内网渗透.靶场搭建.CVE复现.攻击溯源.实战及CTF总结,它将更加聚焦,更加深入,也 ...

  9. sqlmap工具使用用法详解

    2019独角兽企业重金招聘Python工程师标准>>> sqlmap工具使用用法详解 QLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的 ...

最新文章

  1. Cocos事件监听(JS)
  2. javascript之iframe
  3. python中内存管理机制一共分为多少层_python 内存管理机制
  4. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
  5. java调用kettle批量执行
  6. springboot秒杀课程学习整理1-1
  7. HttpClient4.3.x的连接管理
  8. iOS网络请求 get - post 区别
  9. 电大计算机网考视频,2016年12月电大计算机网考多媒体技术复习资料 整理版.doc...
  10. 思科与华为设备OSPF配置命令对比
  11. HCIP 3-4月考试战报
  12. c++ win10下 遍历文件夹的方式, dirent.h头文件缺失问题
  13. 【电脑操作】【鼠标】无线鼠标无反应怎么办?
  14. 关于公布部分非法刊物的通知及冀职改办字[2006]48号
  15. 手机中的传感器之光线传感器(Android实现)
  16. 【优化算法】粒子群优化灰狼算法【含Matlab源码 006期】
  17. IT行业的各岗位职责[转]
  18. linux系统tar命令慢,Linux系统下tar命令的使用技巧
  19. IoC容器Autofac
  20. php对接第三方接口

热门文章

  1. Java通SAS下载sas脚本
  2. python识别火车票二维码_Python实现查询12306火车票信息
  3. IT66311 是一款单输入、单输出 HDMI 2.0 重新定时缓冲器,支持高达 6.0Gbps 的信令速率。
  4. C语言中 - 是什么意思?
  5. Delphi2010开发DataSnap服务器(一)
  6. java基础学习总结(二)——开篇(转载于孤傲苍狼博主的心得体会)
  7. 【Word/word2007】将标题第1章改成第一章
  8. Win10正常安装Matlab7.0后,运行出现Runtime Error错误解决方法
  9. 端口扫描工具终极用法
  10. 操作系统进程同步实验报告