一、Fortify SCA
1.1软件简介
Fortify SCA是目前业界最为全面的源代码白盒安全测试工具,它能精确定位到代码级的安全问题,完全自动化的完成测试,最广泛的安全漏洞规则,多维度的分析源代码的安全问题。由于它是一款商业软件,这里只找到了一个早起的版本(V5.1)进行测试。
Fortify SCA主要的特性和优点如下:
1、业务最完整的静态代码分析器,以最大和最全面的安全编码规则为基础,而且这些规则可以不断地进行更新,以适应新的软件安全漏洞。
2、跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言。
3、在确认安全漏洞上有十分高的准确性。
4、可以精确地定位漏洞产生的全路径,方便开发人员对漏洞进行修复。
5、支持多种软件开发平台。
1.2在windows上安装
1、双击安装包中的exe即可安装。
2、选择Fortify提供的授权文件所在路径(即fortify.license),点击‘NEXT’按钮。
3、选择相应的安装路径,点击‘NEXT’按钮。
4、选择相应的组件进行安装,在此处请注意,fortify默认不安装IDE插件,如果需要安装相应的IDE插件,如图所示:在此处我选择了基于eclipse3.x,VS2005的插件(选择安装VS的插件之前,得首先安装VS的IDE),然后点击‘NEXT’按钮。
5、再点击‘NEXT’按钮即可完成安装。
6、添加相应的规则库,可直接联网下载最新的规则库,或是将安装包下的fotify_rule文件夹下rules_ZH.rar解压缩到fortify安装目录下的Core\config\rules位置。
7、安装完成后把系统时间改成2008年,方可正常使用。
1.3使用Audit Audit Workbench扫描目录
1、首先在开始菜单->所有程序->Fortify Software->Audit Workbench,启动Audit Workbench,界面如下。
2、建议采用Advanced Scan,然后选中要扫描的目录,点击确定按钮即可扫描。
确保所提供的项目源代码和相关依赖的库文件是完整的。
1.4分析Fortitfy SCA扫描的结果
1、审计结果的基本概念
审计:将Fortify SCA 扫描分析出来的结果中的漏洞进行审查,分析,定性,指导开发人员进行漏洞的修复工作。
Hide/Suppress/Suspicious/Not An Issue四个的不同
Hide: 是将此漏洞不显示出来,在报告中也不显示出来
Suppress:是此漏洞不是问题,可以不用看的
Suspicious: 是审计的一个定性,这个问题有可能是真的,值得怀疑。
Not An Issue: 也是审计的一个定性,说明这一漏洞不是个问题。
2、首先是将扫描结果导成后缀为fpr文件,然后用Audit WorkBench打开该文件,界面如下所示
3、验证测试结果的正确性,有效性(包括application,project,build information,analysis information)
4、将(Group By)分组方式选择为按Category(漏洞种类)分组,这也是最常用的分组方式,然后在下面对相应的漏洞进行定性,审记;如图所示
5、可以跟踪该漏洞产生的全路径,有两种方式跟踪,建议采用第二种图表方式,比较直观;
6、选择下面选项卡中Detail,Recommandation,可以获得相应的漏洞的详细说明,以及推荐的解决办法;如图所示:
7、导出经过审计,定性的扫描结果的报表,可以有两种格式,一种是HTML,一种是PDF,建议导出报告模式选择Fortify Developer Workbook,如图所示:
1.5常见的缺陷类型
Dangerous File Inclusion:危险文件包含
Cross-Site Scripting:跨站脚本
HTTP Response Splitting:HTTP相应分割
System Information Leak:系统信息泄露
Insecure Randomness:不安全的随机数
SQL Injection:SQL注入
Log Forging:日志攻击
Unrelease Resource:资源泄露
二、FireLine
1.1软件简介
360火线(Fireline)是360公司技术委员会牵头,Web平台部Qtest团队开发的一款免费静态代码分析工具。主要针对移动端Android产品进行静态代码分析。其最为突出的优点就是资源泄漏问题的全面检测。同时,火线与360信息安全部门合作,推出了一系列针对移动端安全漏洞的检测规则。360火线提供免费使用,扫描速度快,并支持Android Studio插件,Jenkins插件,Gradle部署等多种集成方式。
1.2 Windows系统下使用命令行运行
下载后的文件为fireline.jar。
运行jar前要先确认系统环境中已安装Java JDK。
在命令行中输入以下命令,点击确定。
java -jar D:\fireline\fireline.jar -s=D:\fireline\horizon-project -r=D:\fireline\test
参数解释:
【必填项】-s或scanSrcDir为被扫描的项目工程路径
【必填项】-r或reportSaveDir为火线报告输出路径
4.扫描完成后,在存放报告路径下找到testReport.html进行查看。
5.点击问题详情列表页签,可显示问题分类,并可查看具体的代码片段和修复建议。
1.3 Fireline可扫描的问题类型
安全类:如SQL注入风险、目录遍历隐患、应用程序备份恢复隐患等;
日志类:日志敏感信息输出、日志函数中进行变量赋值等;
内存类:Stream资源关闭、数据库资源关闭、资源关闭异常;
空指针类和多线程类。
三、安全报告
3.1安全风险等级评定标准
序号
风险等级
评定标准说明(符合以下条件之一)
1
高
1)偏离国家行业相关标准规范要并且该项偏离会直接引发严重问题(如获得程序源代码、可远程读写系统文件或操纵后台数据、可远程以普通用户身份执行命令或进行拒绝服务攻击、可远程以管理用户身份执行命令、可大量攻击用户造成恶劣影响等);
2)安全漏洞的利用会对系统造成严重影响且容易利用(如获得程序源代码、可远程读写系统文件或操纵后台数据、可远程以普通用户身份执行命令或进行拒绝服务攻击、可远程以管理用户身份执行命令、可大量攻击用户造成恶劣影响等);
3)与以上相当危害程度的其他安全漏洞。
2
中
偏离国家行业相关标准规范要求并且该项偏离会造成部分信息暴露等问题但不会直接引发严重问题(如读取后台数据库);
安全漏洞的利用会对系统造成一定的影响(如获得通信过程中的某些非明感信息);
安全漏洞的利用虽会对系统造成严重影响但很不容易利用;
与以上相当危害程度的其他安全漏洞。
3
低
未发现明显的安全问题;
未偏离相关国家行业标准规范要求;
安全漏洞的利用不会对系统造成明显的安全隐患(如通过安全漏洞的利用只会获取系统组件的某些信息);
与以上相当危害程度的其他安全漏洞。
3.2安全报告样例
以网上办事大厅为例,分别使用工具Fortify和fireline共进行两轮扫描,具体参见测试报告文档。
3.2.1 Fortify报告
测试环境:
中间件:windows_tomcat6
数据库:windows_mysql5.5.8
Jdk版本:1.7.0_17
操作系统:windows10
测试工具:Fortify
本次安全测试,包括办事大厅前台页面和后台的管理页面,经检测共发现:高危问题1个,中危问题67个,低危问题55个。漏洞分类图如下
具体可参见报告文档Fortify源码扫描.pdf。
3.2.2 Fireline报告
测试环境:
中间件:windows_tomcat6
数据库:windows_mysql5.5.8
Jdk版本:1.7.0_17
操作系统:windows10
测试工具:Fireline
本次安全测试,包括办事大厅前台页面和后台的管理页面,经检测共发现:高危问题12个,中危问题13个,低危问题426个。
具体可参见报告文档fireline源码扫描结果\test\testReport.html。
四、日常安全测试流程
安全测试在项目整体功能测试基本完成后进行,由于不同工具侧重点不一样,建议先使用appscan或Acunetix Web Vulnerability Scanner(以下简称AWVS)进行整体的安全扫描测试,之后针对需要扫描的源码进行源码安全扫描,可选择Fortify或fireline中的一种或两种。前者的安全扫描主要排查工程中的安全类漏洞,后者对安全漏洞进行复查并对代码规范进行检查。相比较而言,AWVS和Fortify的输出报告均为英文文档,可读性不是太好,而且Fortify的需要对缺陷进行一一审计,根据实际判断缺陷的严重性,对工程中的jar包依赖较高,jar包不全很容易造成扫描报错或者扫描不全面。故建议源码扫描使用Fireline为主,配合AWVS和appscan进行安全漏洞的整体测试。
————————————————
版权声明:本文为CSDN博主「toto1222」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/toto1222/article/details/96483494/