技術交流

Fortify SCA 靜態程式碼分析 掃描原始碼讓漏洞原形畢露

Norman Norman

Fortify SCA 是一個靜態應用軟體安全測試工具(SAST),幫助開發團隊或安全專家分析軟體原始碼中的安全漏洞。Fortify SCA 可以在修復最簡單且成本最少的軟體開發階段,協助開發人員識別出軟體中的安全漏洞加以分級,配合詳細的說明及有效的修補建議,讓開發人員可以迅速且有效的修補漏洞。

Fortify SCA 支援的程式語言超過三十種,舉凡程式開發常見的 Java、JSP、C#、VB.NET、ASP.NET、HTML、PHP、Python、Swift、Ruby…等,均在支援之列。此外,Fortify SCA 還可檢測超過 900 種以上的安全漏洞,並由 Fortify 的安全專家團隊負責維護與新增檢測規則。

Fortify SCA 提供三種主要掃描方式,包括:Command-Line、Audit Workbench 與 Secure Code Plugins,茲分述如下:

Command-Line

所有 Fortify SCA 所支援的程式語言均可經由下指令的方式,針對程式碼進行掃描、分析及輸出分析報告等工作。Fortify SCA 另外還提供 Scan Wizard,透過精靈引導,協助使用者產生複雜的指令集。

基本指令
範例一

透過指令方式,還可以與其他應用程式指令進行整合,只要該應用程式可以透過指令方式執行,便可與 Fortify SCA 的指令進行整合。例如原始碼版本控管系統 SVN,首先以 SVN 指令將原始碼 checkout 到指定目錄後,接著再以 Fortify SCA 指令進行後續與掃描相關之動作。使用者可再進一步將這些指令集合在批次程式(.bat)中再進行排程,便可達到定期自動化掃描的目的。

範例二

Audit Workbench(AWB)

AWB 是 Fortify SCA 所提供的一個圖形化使用者界面,使用者可用 AWB 來指定目標軟體專案目錄,設定掃描參數,接著進行掃描。AWB 於掃描完成後,將掃描結果加以組織並排定優先等級,詳盡的顯示在此圖形界面中。

範例

Secure Code Plugins

Fortify SCA 分別提供了 Eclipse、Visual Stusio、IntelliJ IDEA 及 Android Studio 等開發環境的 Plugins,整合 Fortify SCA 與常用的開發環境,以方便開發人員在開發 Java、.NET Framework、C++、Android APP 等應用程式時,更容易進行源碼掃描,有效針對漏洞進行修正。

範例一:Visual Studio 2017
範例二:Eclipse 4.8

無論以何種方式進行掃描,所產生的掃描結果除了指出程式碼中的安全漏洞外,也提供漏洞的詳細說明與修正建議,協助開發人員迅速採取修正措施。此外,還可依據不同組織分類(例如:OWASP Top 10、CWE/SANS Top 25…)的報告樣本,將掃描結果輸出成不同格式的報告,供開發或稽核人員參考。