SCA分析代码漏洞.doc_第1页
SCA分析代码漏洞.doc_第2页
SCA分析代码漏洞.doc_第3页
SCA分析代码漏洞.doc_第4页
SCA分析代码漏洞.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

hyddd原创,转载请说明。上次介绍了用FindBugs辅助分析代码漏洞,这次换了一个工具:Fortify SCA Demo 4.0.0。Fortify是一个在安全方面挺出名的公司,这里就不多说了。先介绍一下主角:Fortify SCA Demo 4.0.0,虽然现在不知道Fortify SCA的版本是多少,但可以肯定的是,Fortify SCA Demo 4.0.0是一个比较旧的Fortify SCA分析器了,并且还是Demo版的,所以无论是界面还是功能上都是比较简陋的。由于Fortify SCA不是开源的工具,这里就不提供下载了,大家可以上Fortify主页申请:。这次演示的是用Fortify SCA静态分析Java代码,和FindBugs不同的是Fortify SCA还可以静态分析C/C+,.NET和PL/SQL等代码。一.Fortify SCA静态分析原理由于我不是写这个东东的人,并且接触这个工具时间也有限,所以对它的工作原理认知比较浅,很多是通过它的说明文档得来的。Fortify SCA静态分析分两个阶段:1.Translation:把各种语言的源代码转为一种统一的中间语言代码。2.Analysis:根据中间代码分析代码漏洞,并得出报告。Fortify有很多个语言转换器,但核心的静态分析引擎只有一套。二.Fortify SCA的使用先看看Fortify SCA Demo 4.0.0的目录:这个是Fortify SCA Demo 4.0.0的目录,这里主要有两个文件:auditworkbench.cmd和sourceanalyzer.exe,auditworkbench.cmd是查看静态分析报告的工具,sourceanalyzer.exe是静态代码分析器。这里我们还看到了一个FindBugs的目录,这是因为这个版本的Fortify集成了此功能,你可以通过传参给sourceanalyzer.exe调用FindBugs(但我一般不这么做,可以直接使用FindBugs的话,为什么还要通过sourceanalyzer.exe调呢?)。开始扫描静态分析,首先CMD进入Java源代码目录,然后“H:Fortifysourceanalyzer.exe -classpath */*.jar -f test.fpr .”,在当前目录得到结果报告test.fpr。用auditworkbench打开test.fpr,效果如下图:这里auditworkbench主要分4部分:1.左上(Issues):是警告分类,这里Fortify分了3了,严重程度由高至低分别是:hot,warning,info。下面是本次扫描的问题列表,双击即可定位问题代码。2.右上:源代码。双击问题列表即可自动定位代码。3.左下(analysis trace):问题处的Trace信息,告诉你问题出现在哪里文件第几行。4.右下(details):问题的详细说明,还有示范代码。OK,现在看看其他地方,比如:menubar(Options)-Show View-Other,你会看到下图:这里我看到了一个很像eclipse管理插件的窗口,噢,难道.OK,让我看看再找找Fortify的目录看看,找到了这个东西:这里发现Fortify SCA真的是一个Eclipse插件,不过当我兴冲冲地把这个插件放进myeclipse插件库并重启后,发现这个不能识别:,好像还是差了点东西,这个以后研究。这个工具还有很多功能,但暂且先写这多。三.Fortify SCA Demo 4.0.0与FindBugs(0081230)对比今天试着对同一份代码进行静态扫描,发现FindBugs找到的问题种类,数量都比Fortify SCA Demo 4.0.0多很多:FindBugs发现问题种类有:20多种Fortify SCA Demo 4.0.0发现问题种类:5种在分析发现问题后,发现了一个有趣现象,Fortify SCA Demo 4.0.0和FindBugs发现的BUG类型是完全不同,可以说是互补的!其中,FindBugs发现的问题相对比较重要!但FindBugs只是针对Java代码的静态分析器,而Fortify SCA则支持更多的语言,并且Fortify SCA对发现问题的解释相对比较清晰。导致这个问题的原因可能是:Fortify SCA Demo 4.0.0这个版本比较老,并且是试用版,规则库和静态分析引擎都不全.如果是最新的Fortify SCA商业版,应该是不错,8个分析不同类型问题的静态分析引擎,庞大的规则库.可是俺这种穷人还没机会试:四.Fortify SCA的Bug类型及解释说明虽然Fortify SCA对问题已经有比较清晰的说明,但是还是决定自己总结,这样会更加清晰。(相关问题解释说明稍后补上)Hot:/.Warning:StructuralErroneous String CompareStructuralSystem Information Leak:HTML Comment in JSPSemanticSystem Information LeakData FlowSystem Information LeakData FlowDenial of ServieControl FlowNull DereferenceControl FlowUnreleased Resource Control FlowMissing Check for Null ParmaterInfo:StructuralPoor Logging Practice:User of a System Output StreamStructuralPoor Error Handing:Empty Catch BlockStructuralPoor Error Handing:Overly Broad CatchStructuralPoor Error Handing:Overly Broad ThrowsStructuralJ2EE Bad Practices:Leftover Debug CodeStructuralDead Code:Unused MethodSemanticInsecure RandomnessSemanticDenial of ServiceSemanticSQL I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论