源代码扫描工具Fortify SCA与FindBugs的简单对比

 
 

前段时间由于工做缘由须要对java源代码进行扫描,现结合使用经验对静态代码扫描工具Fortify SCA与FindBugs进行一个简单的对比。html

1、Fortify SCA

Fortify SCA是由全球领先的软件安全产品解决方案供应商Fortify Software开发,致力于帮助客户在软件开发生命周期中创建安全机制,杜绝软件安全漏洞,避免经济上和声誉上的损失。前端

扫描原理:FortifySCA首先经过调用语言的编译器或者解释器把前端的语言代码(Java、C、C++等源代码)转换成一种中间媒体文件NST(Normal Syntax Trcc),将其源代码之间的调用关系、执行环境、上下文等分析清楚。而后经过匹配全部规则库中的漏洞,若发现存在漏洞就抓取出来,显示在Fortify SCA扫描结果中。java

风险类型:参考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)、命令行spa

分析页面:插件

 报告格式:PDF命令行

2、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扫描同一份源代码结果差别较大。两个工具所针对的威胁类型(可参见上文风险类型项)不一样,可结合起来使用,有助于更多地发现源代码问题。

 

原文出处:https://www.cnblogs.com/canyezhizi/p/10980851.html

相关文章
相关标签/搜索