`

用Fortify SCA分析代码漏洞

 
阅读更多
用Fortify SCA分析代码漏洞
2009-02-23 21:51 by hyddd, 13406 阅读, 4 评论, 收藏, 编辑

  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:\Fortify\sourceanalyzer.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(1.3.7.20081230)对比

  今天试着对同一份代码进行静态扫描,发现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个分析不同类型问题的静态分析引擎,庞大的规则库.......可是俺这种穷人还没机会试:<

  对比两个Java静态分析工具,Fortify SCA Demo 4.0.0和FindBugs(1.3.7.20081230),使用FindBugs是不错的选择,它相对比较强些,但如果可以两个都用当然效果更好:>

四.Fortify SCA的Bug类型及解释说明

  虽然Fortify SCA对问题已经有比较清晰的说明,但是还是决定自己总结,这样会更加清晰。(相关问题解释说明稍后补上)

Hot:

//...

Warning:

[Structural]Erroneous String Compare

[Structural]System Information Leak:HTML Comment in JSP

[Semantic]System Information Leak

[Data Flow]System Information Leak

[Data Flow]Denial of Servie

[Control Flow]Null Dereference

[Control Flow]Unreleased Resource

[Control Flow]Missing Check for Null Parmater



Info:

[Structural]Poor Logging Practice:User of a System Output Stream

[Structural]Poor Error Handing:Empty Catch Block

[Structural]Poor Error Handing:Overly Broad Catch

[Structural]Poor Error Handing:Overly Broad Throws

[Structural]J2EE Bad Practices:Leftover Debug Code

[Structural]Dead Code:Unused Method

[Semantic]Insecure Randomness

[Semantic]Denial of Service

[Semantic]SQL Injection



//...



五.参考文档:

1.Fortify规则库:http://www.fortify.com/vulncat/zh_CN/vulncat/index.html

2.相关资源:http://baixar.agox.net/gratis/Fortify-2-2-5.htm
分享到:
评论

相关推荐

    Fortify SCA(SourceCodeAnalysis)安装及使用手册.docx

    Fortify SCA 是一款功能强大的源代码分析工具,旨在帮助开发者和安全专家检测和修复代码中的安全漏洞。本文档提供了 Fortify SCA 的安装和使用指南,旨在帮助用户快速上手使用该工具。 产品特性 Fortify SCA 具有...

    Fortify SCA 代码规则库-支持Java

    Fortify SCA(Software Composition Analysis)是一款强大的静态代码分析工具,专用于检测应用程序中的安全漏洞。它通过分析源代码来识别潜在的安全问题,而无需实际运行程序。在Java开发环境中,Fortify SCA的代码...

    Fortify SCA 19.1.0-fiona.zip

    Fortify Software Security Center (SCA) 是一款由Micro Focus公司开发的强大静态代码分析工具,用于检测应用程序中的安全漏洞。版本19.1.0-fiona是该软件的一个更新版本,包含了一些新特性、修复和改进。这个压缩包...

    Fortify SCA 安装使用手册

    Fortify Software Composition Analysis (SCA) 是一款强大的静态代码分析工具,主要用于检测应用程序中的安全漏洞、许可证合规性和质量缺陷。这款工具能够深入源代码层面对软件进行分析,从而帮助开发团队在早期阶段...

    Fortify SCA 19.zip

    Fortify Software Composition Analysis (SCA) 是一款强大的静态代码分析工具,主要应用于软件安全领域,旨在帮助开发者在编码阶段发现并修复潜在的安全漏洞。Fortify SCA v19 是其第19个版本,提供了更先进的功能和...

    代码审计神器Fortify - Fortify SCA 20.1.1

    Fortify 详细安装使用可参考我的文章 ...通过分析不同类型问题的静态分析引擎分析NST文件,同时匹配所有规则库中的漏洞特征,将漏洞抓取出来,然后形成包含详细漏洞信息的FPR结果文件,用AWB打开查看。

    2020年fortify SCA最新rules.zip

    Fortify SCA的工作原理主要基于静态分析技术,它不需要执行代码就能对源代码进行深度检查,识别出潜在的不安全编程实践、漏洞和反模式。这与动态分析(运行时分析)相比,具有更快、更全面的优点,因为动态分析可能...

    Fortify SCA用户手册

    **Fortify Source Code Analyzer(简称Fortify SCA)**是一款专为软件开发过程中的静态代码分析设计的工具,旨在帮助开发者识别和修复代码中的潜在安全漏洞。它能够扫描多种编程语言的源代码,如Java、C/C++、.NET、...

    Fortify_SCA使用手冊

    Fortify SCA(Software Composition Analysis)是一款强大的静态代码分析工具,专门用于检测应用程序中的安全漏洞。它能够识别出开源组件的版本,以及这些组件可能存在的已知安全问题,从而帮助开发团队在软件开发...

    fortify SCA

    Fortify SCA作为业界领先且广泛使用的源代码分析解决方案,凭借其高级功能,帮助开发者早期识别并轻松修复问题,同时赋能安全领导者审查和优先处理更多代码,节省时间。它不仅提升了开发流程的安全性和效率,还促进...

    2020年fortify SCA最新rules.7z

    Fortify SCA(Software Composition Analysis)是一款强大的静态代码分析工具,用于在软件开发过程中发现潜在的安全漏洞和质量缺陷。2020年的“fortify SCA最新rules.7z”压缩包包含了最新的规则集,这些规则是针对...

    Fortify_SCA_User_Guide_v5.2

    总结来说,Fortify SCA是一个强大的工具,它能帮助开发者提升软件的安全性,防止因代码漏洞导致的数据泄露和安全事件。通过熟练掌握Fortify SCA的使用,开发团队可以更好地管理和维护代码质量,确保软件产品的安全性...

Global site tag (gtag.js) - Google Analytics