源代码扫描工具Fortify SCA与FindBugs的简单对比
前段时间因为工作原因需要对java源代码进行扫描,现结合使用经验对静态代码扫描工具Fortify SCA与FindBugs进行一个简单的对比。
一、Fortify SCA
Fortify SCA是由全球领先的软件安全产品解决方案供应商Fortify Software开发,致力于帮助客户在软件开发生命周期中建立安全机制,杜绝软件安全漏洞,避免经济上和声誉上的损失。
扫描原理:FortifySCA首先通过调用语言的编译器或者解释器把前端的语言代码(Java、C、C++等源代码)转换成一种中间媒体文件NST(Normal Syntax Trcc),将其源代码之间的调用关系、执行环境、上下文等分析清楚。然后通过匹配所有规则库中的漏洞,若发现存在漏洞就抓取出来,显示在Fortify SCA扫描结果中。
风险类型:参考CWE、OWASP
是否收费:收费
支持语言:Java,JSP,C#,C,C++,PHP,VB.NET,ASP.NET,COBOL,ColdFusion,Transact-SQL,PL/SQL,JavaScript/Ajax,Classic,ASP,VBScript,VB6
支持系统:Windows、Linux、Mac OS
安装方式:IDE插件(Eclipse、VS、WSAD、RAD)、命令行
分析页面:

报告格式:PDF
二、FindBugs
FindBugs是由马里兰大学提供的一款开源静态代码分析软件。
扫描原理:Findbugs检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种 Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。我们还可以自己配置检查规则(做哪些检查,不做哪些检查),也可以自己来实现独有的校验规则(用户自定义特定的bug模式需要继承它的接口,编写自己的校验类,属于高级技巧)。
风险类型:
·Bad practice 常见代码错误,用于静态代码检查时进行缺陷模式匹配
·Correctness 可能导致错误的代码,如空指针引用等
·Dodgy code 糟糕的代码
·Experimental 实验
·Internationalization 国际化相关问题
·Malicious code vulnerility 恶意的代码漏洞
·Multithreaded correctness 多线程问题
·Performance 性能问题
是否收费:免费
支持语言:Java
使用方式:IDE插件(Eclipse、NetBeans、Intellij IEDA)、GUI
支持系统:Windows、Linux
分析页面:

报告格式:XML
使用Fortify SCA与FindBugs扫描同一份源代码结果差异较大。两个工具所针对的威胁类型(可参见上文风险类型项)不同,可结合起来使用,有助于更多地发现源代码问题。
源代码扫描工具Fortify SCA与FindBugs的简单对比的更多相关文章
- TOSCA自动测试工具跟QTP 和 Selenium的简单对比
1. 一个课程里的,可以做个简单的参考,有些地方不是很准确
- Fortify SCA 分析代码漏洞全解
上次介绍了用FindBugs辅助分析代码漏洞.这次换了一个工具:Fortify SCA Demo 4.0.0.Fortify是一个在安全方面挺出名的公司,这里就不多说了.先介绍一下主角:Fortify ...
- python代码安全扫描工具
python代码安全扫描工具:Coverity. Fortify.SecMissile(漏扫,对源代码提供基于语义的搜索和分析能力,实现已知安全漏洞的快速扫描)
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说... root@xi4ojin:~# cd ...
- 小白日记29:kali渗透测试之Web渗透-扫描工具-Vega
WEB扫描工具-Vega 纯图形化界面,Java编写的开源web扫描器.两种工作模式:扫描模式和代理模式[主流扫描功能].用于爬站.处理表单,注入测试等.支持SSL:http://vega/ca.cr ...
- Coverity代码扫描工具
1.说明:Coverity代码扫描工具可以扫描java,C/C++等语言,可以和jenkins联动,不过就是要收钱,jenkins上的插件可以用,免费的,适用于小的java项目 2.这是Coverit ...
- 十大web安全扫描工具
本文来源:绿盟整理 <十大web安全扫描工具> 十大web安全扫描工具 扫描程序可以在帮助造我们造就安全的Web 站点上助一臂之力,也就是说在黑客"黑"你之前, 先测 ...
- web安全测试---AppScan扫描工具
安全测试应该是测试中非常重要的一部分,但他常常最容易被忽视掉. 尽管国内经常出现各种安全事件,但没有真正的引起人们的注意.不管是开发还是测试都不太关注产品的安全.当然,这也不能怪我们苦B的“民工兄 弟 ...
- Lint——Android SDK提供的静态代码扫描工具
Lint和FindBugs一样,都是静态代码扫描工具,区别在于它是Android SDK提供的,会检查Android项目源文件的正确性.安全性.性能.可用性等潜在的bug并优化改进. 下图简单地描述了 ...
随机推荐
- 怎样解决python dataframe loc,iloc循环处理速度很慢的问题
怎样解决python dataframe loc,iloc循环处理速度很慢的问题 1.问题说明 最近用DataFrame做大数据 处理,发现处理速度特别慢,追究原因,发现是循环处理时,loc,iloc ...
- oracle延迟块清除
oracle在执行一些DML操作时,会在block上有活动事务的标志,如果一个事务commit后,由于某些block在commit之前已经写回datafile, 或者事务影响到的block数过多,则c ...
- LINQ学习笔记(三)
下面对各子句解释 from子句:查询表达式的开始子句,查询表达式必须以from子句开头. 格式:from u in source 其中u表示范围变量,它表示源序列中的每个后续元素,source为数据源 ...
- 高启全:长江存储自主3D NAND,DRAM研发欢迎美光一起加入(千秋大业,慢慢做)
台湾DRAM教父高启全转战大陆紫光集团操盘存储器大计划超过1年,日前晋升长江存储的执行董事.代行董事长,接受DIGITIMES独家专访公开未来规划:他指出,已齐聚500名研发人员在武汉投入3D NAN ...
- Decision Tree
Decision Tree builds classification or regression models in the form of a tree structure. It break d ...
- 关于C中可变长参数
前言 可变长参数指函数的参数个数在调用时才能确定的函数参数.基本上各种语言都支持可变长参数,在特定情形下,可变长参数使用起来非常方便.c语言中函数可变长参数使用“...”来表示,同时可变长参数只能位于 ...
- 进程交互还可以使用QSharedMemory
官方例子: http://doc.qt.io/qt-5/qtcore-ipc-sharedmemory-example.html 查了一下,QSharedMemory没有自带任何信号.我的想法: 1. ...
- 基于QT的在线打字练习软件助手(C/S模型)good
简介 通过基于QT中QTcpServer和QTcpSocket以及UI编程,实现了基于TCP协议的C/S模型在线打字练习软件助手,服务端处理各客户端打字数据,以及显示在线打字客户列表即实时更新打字 ...
- Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(图文并茂,还有实例下载)
[文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Window ...
- .NET错误:未找到类型或命名空间名称
现象:编译项目时提示未找到类型或命名空间名称"... " 解决方法:如果是未找到类型,检查是否引用了类型所在的命名空间,使用using指令:如果是未找到命名空间,那么检查是否引用了 ...