提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
最近跟源码检测工具干上了,上期写了一篇sonarqube 工具的安装步骤,这期继续另一个源码检测工具fortify 安装与使用步骤。。
提示:以下是本篇文章正文内容,下面案例可供参考
一、fortify简介
fortify也是一款比较流行的源码检测工具,原理是将被检测语言(如JAVA/C/C++/C#源代码)转换成一种中间媒体文件NST(Normal Syntax Tree)再进行检测。
fortify支持的检测语言有:
1、asp.net
2、VB.Net
3、c#.Net
4、ASP
5、VBscript
6、VS6
7、java
8、JSP
9、javascript
10、HTML
11、XML
12、C/C++
13、PHP
14、T-SQL
15、PL/SQL
16、Action script
17、Object-C (iphone-2012/5)
18、ColdFusion5.0 - 选购
19、python -选购
20、COBOL - 选购
21、SAP-ABAP -选购
二、安装
1.安装文件下载
较sonarqube而言, fortify的安装就显得特别简单了,,只需一个安装包傻瓜式操作即可。
下载地址(借用网上一小伙伴网盘地址):Fortify SCA 20.1.1百度网盘下载
提取码:mem2
2.安装步骤
安装包解压后如下:
1.Fortify_SCA_and_Apps_20.1.1_windows_x64.exe 为安装包
2.fortify.license为注册文件
2.1安装
点击安装包:Fortify_SCA_and_Apps_20.1.1_windows_x64.exe
next 下一步:
选择接受协议后,点击下一步:
选择默认安装路径即可,下一步:
默认勾选Fortify Audit Workbench下的两个选择,然后根据需要安装对应的插件:这里我安装了eclipse与Interllij IDEA Analysis,然后下一步:
直接下一步(软件会默认选择压缩文件下载的证书文件(fortify.license)):
到了比较关键的一步,网上许多教程会让把更新的网址清除掉,这里我选择不删,因为后续检测报告需要设置成中文时,需要网址更新中文包(详见步骤3.更新中文包), 下一步
选择no,然后下一步:
这一步选择是否在安装文件目录下生成示例源码(供安装完成后测试),看个人需要,我这里选择了是,这样就不用到处找各种语言源码测试安装后的软件是否有问题了。。
下一步:
等待安装完成。
取消勾选更新,点击finish
2.2替换jar包
将解压文件下的fortify-common-20.1.1.0007.jar文件拷贝到实际安装目录下的Core\lib下
2.3 替换ExternalMetadata与rules文件
将压缩文件下的ExternalMetadata与rules文件替换到安装目录下的Core\config文件下,
3.更新中文包
更新中文包为了生成的报告为中文格式(大部分为中文,小部分仍为英文)
1.点击Audit Workbench
2.提示是否更新规则,这里默认选NO
3.点击软件左上角工具栏options下的options:
点击左侧的安全内容管理,然后在下侧选择栏中对应选择中文的更新内容包
选择后会自动更新:(如果在安装软件时把更新网址清除掉(见2.1安装部分),那这里就不会更新,导致无法生成中文报告)
更新完后选择OK
再点OK结束操作:
好了,至此,安装部分完成,让我们进入下一章节,工具使用部分。
三、工具使用
安装完成后的程序目录下有几个快捷方式,其中主要用到Audit Workbench与Scan Wizard,安装官方文档说明,Audit Workbench主要用于检测java代码,Scan Wizard则可用于全部代码检测。
实际Audit Workbench也可用于检测所有语言,只不过在使用中发现当前版本Fortify SCA 20.1.1无法使用Audit Workbench检测C/C++项目,暂未知原因,在安装Fortify SCA 20.1.1之前本人也安装了SCA 19版本,同样情况,唯一不同的是Fortify SCA 20.1.1可以使用Scan Wizard检测C/C++项目,但SCA 19使用Scan Wizard检测C/C++项目会报错,详见下面使用部分;
3.1 使用Audit Workbench检测项目源码
3.1.1检测JAVA代码
打开Audit Workbench后,点击Scan java Project
选择待检测的JAVA文件,此处使用项目生成的示例JAVA代码(在安装文件目录下的Samples下,最好把这个文件拷贝到非本软件安装路径下)
根据java项目使用的版本选择对应的版本,此处示例源码是java 1.5,故选择1.5,然后点OK
默认选择后点击Scan(扫描)
待扫描完成:
完成后会生成一个新界面:界面上会显示扫描出现的问题数量(Total Issues )
至此,项目扫描即为完成,导出报告见3.3部分
3.1.2检测其他非 java代码(C#、PHP等)
同样打开Audit Workbench界面,点击Adanced Sacn(高级扫描)
任选一种语言源码(此处选择C#)
默认next
默认都勾选,然后在configure Rulepacks中默认都勾选,然后Next
这里与扫描java项目配置不同,在是否是Java EE Web application下选择NO,下面的选择框部分(这个项目是否用高级权限运行?),根据项目实际情况勾选,最后点击Scan开始扫描
同样等待扫描完成:
扫描完成后通用会生成一个新的界面,同JAVA部分:
本版本此部分检测C++/C代码会报错,与3.1.2通用的操作步骤,在点击Scan后,报错如下:(由于时间有限,总共只研究了两天不到时间,暂未知原因,等待后续空了再研究)
3.2 使用Scan Wizard检测项目源码
Scan Wizard检测源码没有使用Audit Workbench方便,Scan Wizard步骤多一些。
1.点击Scan Wizard打开检测界面,点击Add Project Root 添加检测项目:
2.选择源码项目(此处选择C++项目为示例)
3.点击next
4.软件识别出具体语言类型后会在下图中间的Show Languages in Source Tree下显示出来(中间红框处),若示例源码非完整项目,则无法识别显示,且后续扫描基本失败;界面下侧的Enable Build Integration处不同的语言源码会显示不同的可选择项,(部分语言此处全灰不可选),出现可选项后,需要根据实际需要选择其中一个,否则可能导致后续扫描失败;选择后点击next
5.选择下面红框选项后,点击next
6.再次勾选下面红框后点击next,
注意:记住下图中上侧的Script文件路径(E:\codetest\Samples\advanced\c++\VS2013\Sample1),完成后需要点击路径下的.bat文件(FortifySample1.bat)完成项目扫描;下侧红框里的Scan result name处为后续完成扫描后在上述路径下生成的报告文件
7.完成后,点击finish
8.转到步骤6中显示的路径下(E:\codetest\Samples\advanced\c++\VS2013\Sample1),双击步骤6中设置的Script文件FortifySample1.bat
正常的话会显示进度,进度完成后命令提示符框消失,且在上述路径下会生成步骤6中设置的Scan result name文件FortifySample1.fpr
9.点击步骤6中设置的路径下的Scan result name文件FortifySample1.fpr,该文件默认使用Audit Workbench打开,完成后与3.1部分使用Audit Workbench扫描项目后界面一致,至此,扫描完成。
3.3 报告导出
在项目扫描完成后出现的界面处,点击
在下图中的Format处可设置生成报告的文件类型,以及报告的生成路径,完成后点击Generate
完成后弹成功提示框:
然后在生成报告的路径下打开查看即可:
小结:正常情况Audit Workbench与Scan Wizard都可检测不同语言代码,且Audit Workbench提供了更友好更简单的检测步骤;
本版本Audit Workbench不可检测C/C++代码问题,待后续有空再研究。
总结
没啥总结的,下期见,各位老铁