源代碼掃描工具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

相關文章
相關標籤/搜索