原始碼掃描工具Fortify SCA與FindBugs的簡單對比
前段時間因為工作原因需要對java原始碼進行掃描,現結合使用經驗對靜態程式碼掃描工具Fortify SCA與FindBugs進行一個簡單的對比。
一、Fortify SCA
Fortify SCA是由全球領先的軟體安全產品解決方案供應商Fortify Software開發,致力於幫助客戶在軟體開發生命週期中建立安全機制,杜絕軟體安全漏洞,避免經濟上和聲譽上的損失。
掃描原理:FortifySCA首先通過呼叫語言的編譯器或者直譯器把前端的語言程式碼(Java、C、C++等原始碼)轉換成一種中間媒體檔案NST(Normal Syntax Trcc),將其原地阿媽之間的呼叫關係、執行環境、上下文等分析清楚。然後通過匹配所有規則庫中的漏洞,若發現存在漏洞就抓取出來,顯示在Fortify SCA掃描結果中。
是否收費:收費
支援語言: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模式需要繼承它的介面,編寫自己的校驗類,屬於高階技巧)。
是否收費:開源
支援語言:Java
使用方式:IDE外掛(Eclipse、NetBeans、Intellij IEDA)、GUI
支援系統:Windows、Linux
分析頁面:
報告格式:XML
&n