51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4610|回复: 2
打印 上一主题 下一主题

用Fortify SCA分析代码漏洞

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-16 13:21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  上次介绍了用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集成了此功能,你可以通过传参给sourceanalyz
er.exe调用FindBugs(但我一般不这么做,可以直接使用FindBugs的话,为什么还要通过sourceanalyzer.ex
e调呢?)。

  开始扫描静态分析,首先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是不
错的选择,它相对比较强些,但如果可以两个都用当然效果更好:>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情

    2016-8-23 11:30
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2018-11-1 09:32:58 | 只看该作者
    LZ,有没有安装包啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-3-2 11:25
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2019-1-22 16:24:55 | 只看该作者
    问一下,4.0怎么设置成中文?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-25 19:57 , Processed in 0.068414 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表