`
zhb8015
  • 浏览: 397365 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

findbugs vs fortify

阅读更多

findbugs 插件安装 :

http://blog.csdn.net/gaofuqi/article/details/22679609

效果不太好,直接在eclipse marketplace安装也可

 

具体应用对比 :

http://www.cnblogs.com/doit8791/archive/2012/10/22/2734730.html

讲解的比较细致

 

下面是工具的对比 :

http://www.cnblogs.com/astwish/articles/3700467.html

 

这次演示的是用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对问题已经有比较清晰的说明,但是还是决定自己总结,这样会更加清晰。(相关问题解释说明稍后补上)

分享到:
评论

相关推荐

    Findbugs源码

    FindBugs的出现是对Fortify等动态分析工具的有效补充,通过静态分析,可以在不执行程序的情况下,检查代码的潜在问题,减少了调试的时间和成本。 FindBugs的工作原理主要基于类型流分析和数据流分析。类型流分析...

    第55天:代码审计-JAVA项目注入上传搜索或插件挖掘1

    学习和实践代码审计,结合使用FindBugs、Fortify SCA等工具,是提升Java项目安全性的关键步骤。同时,开发者应定期关注网络安全动态,了解最新的攻击手段和防御策略,确保项目始终保持在安全的水平线上。对于上述...

    静态代码检测工具

    上述介绍的工具和技术,如 Flawfinder、HP Fortify Software 系列产品以及 FindBugs 等,都是当前市场上广泛使用的重要工具。选择合适的工具并合理利用其功能,可以显著提升软件产品的安全性与质量。

    find_bugs 工具

    在市场搜索框中输入“findbugs”,系统会显示出相关的插件列表。找到`edu.umd.cs.findbugs.plugin.eclipse`这个条目,点击“安装”按钮,按照向导提示完成安装过程。在安装过程中,确保你的Eclipse是最新版本,并且...

    Open Source CheckStyle Tools

    **工作原理**:通过深入分析源代码,Fortify 能够识别出可能导致安全风险的代码段。 **评价**:对于关注应用程序安全性的项目而言,Fortify 是一个不可或缺的工具。 #### 六、结论 通过对以上提到的几款开源工具...

    论文研究-面向J2EE网站的灰盒代码审计的应用研究 .pdf

    当前,已有多种静态代码安全审查工具,如Fortify、FindBugs、PMD、Checkstyle和AppScan等。其中,FindBugs和PMD主要用于分析Java代码本身的结构和潜在的错误;Checkstyle则更多用于分析代码的格式。这些工具在软件...

    静态分析入门+Soot实践

    在实现静态分析时,PMD和SpotBugs(FindBugs的继承者)是常用的工具,它们通过解析源代码生成抽象语法树(AST),然后应用规则来查找潜在的问题。此外,Fortify和IDEA等工具也提供了代码提示和类型检测功能。PMD使用...

    漏洞利用与攻防实践2019-2020秋季_第 1 次课 - 2 - 安全分析手段与模糊测试(邹燕燕)1

    常见的源代码分析工具有Coverity、Fortify和FindBugs等。 1.2 数据流分析 数据流分析关注程序中数据如何沿着执行路径流动,以揭示可能的取值和潜在的漏洞。它能提供强大的分析能力,但可能因为分析大量路径而导致...

    Secure programming with static analysis

    - **开源工具**:如 FindBugs、PMD、Checkstyle 等,适用于各种开发环境,具有良好的社区支持。 - **集成开发环境(IDE)内建支持**:许多现代 IDE 如 IntelliJ IDEA、Eclipse 等都内置了静态分析功能。 #### 行业...

    软件源代码安全测试系统可行性分析报告.doc

    尽管已有如Soot、PC-Lint、Fortify SCA、FindBugs等静态分析工具,但人工代码审查和动态监测仍有其局限性,无法满足大规模软件项目的高效安全检测需求。而随着软件行业的快速发展,市场对高质量、安全可靠的软件产品...

    软件源代码安全测试系统可行性方案分析报告文书.doc

    - **国外研究成果**:国外在静态分析领域取得了显著进展,并开发了多种高效工具,如Soot、PC-Lint、logiscope、Fortify SCA、FindBugs等。 #### 三、项目实施内容及方案 - **总体思路**:基于当前软件安全测试的...

Global site tag (gtag.js) - Google Analytics