Find-Sec-Bugs 靜態程式碼安全審計安裝使用手冊
目錄
參考原文地址:https://mp.weixin.qq.com/s/xiuLHZ_tXdFjfFqB2qXhJw(其實只是自己實際操作了,不想重複造輪子,換了圖片而已)
1. 前言
是否有在開發完專案釋出以後才被告知你的專案程式碼存在安全問題,還要回去重溫程式碼邏輯,重新修改釋出,是不是特別不想做這一件重複勞動的事情?
這邊給大家介紹一款可在本地使用的程式碼安全掃描外掛,方便在開發階段自動化安全檢查,降低漏洞修復時間和減少漏洞出現的概率。
2. 外掛簡介
外掛介紹:Find-Sec-Bugs 是一款本地 bug 掃描外掛 “FindBugs-IDEA” 的 Java 安全漏洞規則擴充套件庫,它支援在多種主流 IDE 環境進行安裝:Eclipse, IntelliJ, Android Studio 和 NetBeans。
掃描範圍:只掃描 Java 程式碼,支援主流的 Java 開發框架,比如 Spring-MVC, Struts 等。
掃描漏洞型別:通過掃描原始碼,能夠發現128種不同的安全漏洞型別,關於漏洞型別請參考:https://find-sec-bugs.github.io/bugs.htm。
3. 外掛安裝掃描配置介紹
3.1 IntelliJ IDEA 配置介紹
1)版本需求:IntelliJ IDEA 13.0或以上(16年以後釋出的版本基本都支援)
2)準備工作:IntelliJ IDEA:https://www.jetbrains.com/idea/;
FindBugs-IDEA 安裝包:https://plugins.jetbrains.com/plugin/3847-findbugs-idea;
Find-Sec-Bugs 安裝包:http://find-sec-bugs.github.io/。
3.1.1 外掛安裝
演示版本:IntelliJ IDEA 2018.1.3(Community Edition)
IntelliJ 安裝 FindBugs-IDEA 外掛步驟:
“File” -> “Settings” -> “Plugins”.
外掛安裝方式有線上和離線兩種。
線上安裝:直接在 “Plugins” 搜尋欄輸入“Findbugs” ,點選 “Search in repositories”,選中 “Findbugs-IDEA” 後點擊 Install:
離線安裝:若已經下載了外掛壓縮檔案可在 “Plugins” 視窗點選 “Install plugin from disk” 選擇離線安裝。
注意1:FindBugs-IDEA 安裝完成,需要重啟後才可使用。
注意2:FindBugs-IDEA 只針對程式碼規範進行掃描,規則庫內缺乏安全漏洞的規則,因此需要新增安全漏洞規則庫 “Find-Sec-Bugs。
接下來介紹下漏洞規則庫的新增方法。
3.1.2 新增漏洞規則庫
點選 “File” -> “Settings” 會發現 “Settings” 面板新增了 “FindBugs-IDEA” 選項。
選擇 “FindBugs-IDEA” 選項即可在 “Plugins” 內新增相應的掃描規則庫,方法同上,在這邊新增安全漏洞規則庫 “Find-Sec-Bugs”:
3.1.3 掃描配置
“File” -> “Settings” -> “FindBugs-IDEA” -> “Report”.
可根據需求選取要掃描的相關主題,風險警告和準確率,如圖配置選擇進行安全漏洞掃描。
我們這裡關注安全型別的 bug,所以勾選 “Security” 選項。預設報告配置最低風險警告(Minimum rank)是20,準確率(Minimum confidence)是 Medium。
3.1.4 開始原始碼掃描
在專案目錄右鍵會發現多了一個 “FindBugs” 選項,可以選擇分析某個模組或者整個專案。選擇如下所示選項後便開始進行安全掃描:
注意:第一次進行掃描時 IntelliJ 會先對專案進行編譯和檢測依賴包,編譯完成後需要再次執行才會進行真正的掃描。
3.1.5 掃描結果
掃描完成後 “FindBugs-IDEA” 會顯示相應結果,選擇新增安全類相關內容其中一個即可在中間視窗檢視問題程式碼以及對應文章,右側視窗會顯示對應漏洞解釋,解決方案和風險程度。
3.2 Eclipse 配置介紹
1)版本需求:Eclipse 3.3 以上的版本,且安裝 JRE/JDK 1.5 以上版本。
2)準備工作:Eclipse:https://www.eclipse.org;
FindBugs-IDEA 安裝包:http://findbugs.sourceforge.net/downloads.html;
Find-Sec-Bugs 安裝包:http://find-sec-bugs.github.io/;
3.2.1 外掛安裝
演示版本: Eclipse Oxygen.3a Release (4.7.3a)
外掛安裝步驟:“Help” -> “Eclipse Marketplace” -> 搜尋 “FindBugs-IDEA” 外掛。
外掛安裝方式有線上和離線兩種,若已經下載了外掛壓縮包,可將壓縮包解壓至 Eclipse 安裝目錄下的 Plugin 資料夾內。
注意1:FindBugs(新版本已改名為SpotBugs)安裝完成,重啟後即可使用。
注意2:FindBugs 只針對程式碼規範進行掃描,規則庫內缺乏安全漏洞的規則,因此需要新增安全漏洞規則庫 "Find-Sec-Bugs"。
“Window” -> “Preferences”,會發現 “Preferences” 面板新增了 “FindBugs” 選項。
“FindBugs” -> “Plugins and misc. Settings” -> “Add”;新增相應的掃描規則庫。
本文添加了安全漏洞規則庫 "Find-Sec-Bugs":
“Window” -> “Preferences” -> “FindBugs” -> “Reporter Configuration”;可根據需求選取要掃描的相關主題,風險警告和可信度。
如圖配置選擇進行安全漏洞掃描,預設配置最低風險警告是15,最低可信度為Medium。配置好以後即可對原始碼開始進行安全掃描。
3.2.2 開始原始碼掃描
選中需要掃描的專案右鍵選擇:“Find Bugs” -> “Find Bugs”;則開始對專案進行安全掃描。
掃描進度將在視窗右下角顯示:
3.2.3 掃描結果
點選 "Bug Explorer" 可看到以可信度和漏洞型別區分的列表樹:
雙擊對應檔案,可以定位到具體程式碼位置:
右鍵對應檔案,點選 "Show Bug Info" 可檢視對應的漏洞詳情和參考解決方案:
4. 總結
綜合分析 Find-Sec-Bugs 外掛各有優缺點。
優點:允許開發人員在專案開發上線前進行自檢並及時更正,避免上線後的修復流程。可以手動更新規則,提高準確率。
缺點:只支援JAVA適用性較低。掃描原理採用語義分析的方式,專案越大,掃描速度也會隨之降低。