代码改变世界

【安全测试-fortify源码扫描】linux下的fortify源码扫描

  码上起舞  阅读(5231)  评论(0编辑  收藏  举报

一、准备好安装压缩包和license文件,上传到linux服务器下

上传完成后,开始后续安装步骤。

二、解压gz安装包

#tar -zxvf Fortify_SCA_and_Apps_20.1.0_Linux.tar.gz

 

 #解压后,文件夹如下:(license文件,rules.zip是单独拷贝进去的,解压后应该有一个后缀为.run的文件)

三、开始安装

1.准备好安装路径 /data/fortify/fortify_install

2.准备好license的路径/data/fortify/fortify_zip/fortify.license

3.开始安装

#./Fortify_SCA_and_Apps_20.1.0_linux_x64.run

 

 #输入y,接受license授权,输入安装路径,以及license的路径

 

 #看到finished installing,表示安装完成

四、替换rules规则(如果不替换,扫描过程会报错:无规则)

第三步安装完成后,替换安装路径 /data/fortify/fortify_install/Core/config/下的rules,截图如下

#解压我们在第一步拷贝到linux服务器上的rules.zip,得到rules文件夹

#直接覆盖替换/data/fortify/fortify_install/Core/config/rules文件夹

#cp -rf /data/fortify/fortify_zip/rules /data/fortify/fortify_install/Core/config/rules (注意,目录的层级结构不变)

五、设置fortify的中文语言

#进入到fortify的安装目录/data/fortify/fortify_install/bin,输入对应的值进行设置

#cd /data/fortify/fortify_install/

#./scapostinstall

六,检测安装是否成功

#source .bash_profile

如下,出现版本信息和usage信息,则表示安装成功,可以开始使用

注意:安装完成后,自动会将安装路径添加到环境变量中,如果shell连接没有断开过,则需要source一下,source过后,可以直接使用 sourceanalyzer、BIRTReportGenerator等命令,如果没有执行source命令,则要进入bin目录下,按截图方式使用

七、使用

#sourceanalyzer -b SCG-AuthCenter -clean

#sourceanalyzer -b auth1 --clean
#sourceanalyzer -b auth1 .
#sourceanalyzer -b auth1 -scan -f auth1.fpr

#/data/fortify/fortify_install/bin/../Core/private-bin/awb/eclipse/eclipse -vm /data/fortify/fortify_install/bin/../jre/bin/java -name Fortify Report Generation -noSplash --launcher.suppressErrors -startup /data/fortify/fortify_install/bin/../Core/lib/awb-startup-20.1.0.0158.jar -productType BIRT- -application com.hp.fortify.birt.report.generator.console.Application -template "CWE Top 25 2019" -format pdf -output auth4.pdf -source auth1.fpr --SecurityIssueDetails --UseFortifyPriorityOrder -consoleLog -vmargs -Dcom.fortify.InstallRoot=/data/fortify/fortify_install/bin/.. -Xmx1500M

注意:

1.第三行的命令,最后有个点,表示当前目录

2.最后这个命令,本来是可以直接使用BIRTReportGenerator -template “xxx” -format pdf这样的命令格式的,但是遇到了8.1的问题,所以换成了原始的命令行(在bin目录下编辑BIRTReportGenerator,将最后一行echo输出,即可查看原始命令)

fortify扫描后的解决方案

https://github.com/wooyunwang/fortify/

八Troubleshooting

8.1 BIRTReportGenerator 生成报告时,一直提示没有指定template,原因是经过BIRTReportGenerator的脚本进行入参处理后,template 和参数之间多了个空格,导致原命令无法识别,所以我们在用BIRTReportGenerator生成报告的时候,直接用原始命令

#/data/fortify/fortify_install/bin/../Core/private-bin/awb/eclipse/eclipse -vm /data/fortify/fortify_install/bin/../jre/bin/java -name Fortify Report Generation -noSplash --launcher.suppressErrors -startup /data/fortify/fortify_install/bin/../Core/lib/awb-startup-20.1.0.0158.jar -productType BIRT- -application com.hp.fortify.birt.report.generator.console.Application -template "CWE Top 25 2019" -format pdf -output auth4.pdf -source auth1.fpr -showSuppressed --SecurityIssueDetails --UseFortifyPriorityOrder -consoleLog -vmargs -Dcom.fortify.InstallRoot=/data/fortify/fortify_install/bin/.. -Xmx1500M

 

8.2 扫描 C++代码,需要本地有编译环境
在本地strawberry目录下有wingw32-make ,可以直接在cmd中make执行
有时候会失败,直接g++执行即可
C/C++源码扫描
例:源码路径fortify-example
sourceanalyzer -b fortify-example make
sourceanalyzer -b fortify-example -scan -f fortify-example.fpr

 

8.3.fortify扫描jar包提示No valid input files were specified. (Use the -scan option to analyze previously-built sources.)

原因:fortify扫描不支持扫描jar包,只支持java源代码扫描
解决方法,不单独制定jar包进行扫描,选择文件夹包含java代码的

(评论功能已被禁用)
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示