【安全测试-fortify源码扫描】linux下的fortify源码扫描
2022-09-21 16:21 码上起舞 阅读(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代码的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库