欢迎来到天天文库
浏览记录
ID:39468089
大小:237.00 KB
页数:6页
时间:2019-07-04
《SCA分析代码漏洞》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、hyddd原创,转载请说明。 上次介绍了用FindBugs辅助分析代码漏洞,这次换了一个工具:FortifySCADemo4.0.0。Fortify是一个在安全方面挺出名的公司,这里就不多说了。先介绍一下主角:FortifySCADemo4.0.0,虽然现在不知道FortifySCA的版本是多少,但可以肯定的是,FortifySCADemo4.0.0是一个比较旧的FortifySCA分析器了,并且还是Demo版的,所以无论是界面还是功能上都是比较简陋的。由于FortifySCA不是开源的工具,这里就不提供下载了,大家可以上Fortify主页
2、申请:>。 这次演示的是用FortifySCA静态分析Java代码,和FindBugs不同的是FortifySCA还可以静态分析C/C++,.NET和PL/SQL等代码。一.FortifySCA静态分析原理 由于我不是写这个东东的人,并且接触这个工具时间也有限,所以对它的工作原理认知比较浅,很多是通过它的说明文档得来的。 FortifySCA静态分析分两个阶段: 1.Translation: 把各种语言的源代码转为一种统一的中间语言代码。 2.Analysis: 根据中间代码分析代码漏洞,并得出报告。 Fortify有
3、很多个语言转换器,但核心的静态分析引擎只有一套。二.FortifySCA的使用 先看看FortifySCADemo4.0.0的目录: 这个是FortifySCADemo4.0.0的目录,这里主要有两个文件:auditworkbench.cmd和sourceanalyzer.exe,auditworkbench.cmd是查看静态分析报告的工具,sourceanalyzer.exe是静态代码分析器。这里我们还看到了一个FindBugs的目录,这是因为这个版本的Fortify集成了此功能,你可以通过传参给sourceanalyzer.exe
4、调用FindBugs(但我一般不这么做,可以直接使用FindBugs的话,为什么还要通过sourceanalyzer.exe调呢?)。 开始扫描静态分析,首先CMD进入Java源代码目录,然后“H:Fortifysourceanalyzer.exe-classpath"**/*.jar"-ftest.fpr.”,在当前目录得到结果报告test.fpr。 用auditworkbench打开test.fpr,效果如下图: 这里auditworkbench主要分4部分: 1.左上(Issues):是警告分类,这里Fortify分了3
5、了,严重程度由高至低分别是:hot,warning,info。下面是本次扫描的问题列表,双击即可定位问题代码。 2.右上:源代码。双击问题列表即可自动定位代码。 3.左下(analysistrace):问题处的Trace信息,告诉你问题出现在哪里文件第几行。 4.右下(details):问题的详细说明,还有示范代码。OK,现在看看其他地方,比如:menubar(Options)-->ShowView-->Other,你会看到下图: 这里我看到了一个很像eclipse管理插件的窗口,噢,难道.....OK,让我看看再找找Fortif
6、y的目录看看,找到了这个东西: 这里发现FortifySCA真的是一个Eclipse插件,不过当我兴冲冲地把这个插件放进myeclipse插件库并重启后,发现这个不能识别:<,好像还是差了点东西,这个以后研究。 这个工具还有很多功能,但暂且先写这多。三.FortifySCADemo4.0.0与FindBugs(1.3.7.20081230)对比 今天试着对同一份代码进行静态扫描,发现FindBugs找到的问题种类,数量都比FortifySCADemo4.0.0多很多: FindBugs发现问题种类有:20多种 FortifySC
7、ADemo4.0.0发现问题种类:5种 在分析发现问题后,发现了一个有趣现象,FortifySCADemo4.0.0和FindBugs发现的BUG类型是完全不同,可以说是互补的!其中,FindBugs发现的问题相对比较重要!但FindBugs只是针对Java代码的静态分析器,而FortifySCA则支持更多的语言,并且FortifySCA对发现问题的解释相对比较清晰。 导致这个问题的原因可能是:FortifySCADemo4.0.0这个版本比较老,并且是试用版,规则库和静态分析引擎都不全......如果是最新的FortifySCA商业版,
8、应该是不错,8个分析不同类型问题的静态分析引擎,庞大的规则库.......可是俺这种穷人还没机会试:< 对比两个Java静态分析工具,FortifySCADemo
此文档下载收益归作者所有