前言
上一篇文章 【程式開發筆記】保證軟體品質一定要做程式碼檢測 (上) | 開源程式碼檢測平台 (SonarQube) - 大漠國渡 ,已經教大家安裝 SonarQube 以及SonarScanner,接下來就可以進行原碼檢測了😁在檢測前,我們案需要建立專案, 取得檢測指令,並透過指令執行檢測~指令的部分會教大家做成批次檔(.bat),方便日後的檢測,不用一值輸入重複的指令。
成功完成原碼檢測後,可以在 SonarQube 上查看檢測報告,並透過報告上提供的修正放是進行修復,修復後可以透過同一指令進行複測,進而確認修復結果。
如何看 SonarQube 的檢測報告📈,之後會再專門寫一篇文章,來為大家做個詳細內容的分享。
前言
使用 SonarQube 進行程式碼檢測
一、建立「檢測專案」
二、執行「專案檢測」
(一)、建立「執行原碼檢測」批次檔 (.bat)
(二)、執行「原碼檢測」
三、檢測結果說明
(一)、檢測結果
(二)、解讀 - 檢測結果「類別」
(三)、解讀 - 檢測結果「燈號等級」
(四)、解讀 - 檢測結果「Bugs 嚴重程度」
(五)、解讀 - 檢測結果「標準」
(六)、解讀 - 檢測結果「建議修正指引」
四、匯出「檢測結果」報表
(一)、匯出「檢測結果」報表
(二)、解讀「檢測結果」報表
相關文章
參考資料
使用 SonarQube 進行程式碼檢測
一、建立「檢測專案」
1. 先登入 SonarQube,若未修改密碼或未建立帳號,可以參考前一篇文章進行登入。.png)
2. 登入 SonarQube 系統後,按下「Add Project」,再按下「Manually」。
.png)
3. 設定「專案鍵值」,輸入「專案顯示的名稱」(用來分辨專案),按下「設置」。
.png)
4. 點選「創建憑證」,按下「創建」。
.png)
5. 取得「憑證」後,按下「繼續」。
.png)
6. 選擇「技術架構」及「作業系統 (OS)」,之後會產出一個執行原碼檢測的指令
(1) 「技術架構」的部分,因為我是開發網站 (WEB),所以用到的語言很多 (如 : JavaScript、Java、Html...等),所以圖上是選擇其他。
(2) 「作業系統 (OS)」,我是用 Windows 所以圖上是選擇 Windows ,記得依你的系統選擇阿~😏
(3) 指令要記得好好保存 。(我暫時沒有找到遺失指令後,怎麼找回來的方法)😅
.png)
二、執行「專案檢測」
(一)、建立「執行原碼檢測」批次檔 (.bat)
1. 先到你要檢測的程式碼路徑下,點擊滑鼠「右鍵」,選擇「新增」,再選擇「文字文件 (.txt)」。.png)
2. 編輯「文字文件 (.txt)」,並貼上「執行原碼檢測的指令」,在來就是修改SonarScanner 執行程式位置。
.png)
3. 將「文字文件 (.txt)」重新命名。
.png)
4. 名稱自己決定,重點是將附檔名變更為「批次檔(.bat)」。
.png)
5. 將要檢測的「程式碼檔案」放入指定的路徑內。
.png)
(二)、執行「原碼檢測」
1. 執行「批次檔(.bat)」。.png)
2. 開始執行原碼檢測,檢測完畢後,會自動關閉視窗。
.png)
三、檢測結果說明
(一)、檢測結果
完成檢測後,專案卡上面就會呈現燈號,結果正常 (綠色燈號,燈號等級 A) 是最好的。如果是錯誤的話,就要再看 Bugs、弱點、Hotspots Reviewed 或 氣味,哪一個燈號是紅燈燈號 (燈號等級 B、C、D、E),都表示有要修改的項目,那個就要趕緊修復啦~ 避免自己的系統被駭客入侵。
.png)
(二)、解讀 - 檢測結果「類別」
1. 錯誤 (Bugs) : 編碼的錯誤將損毀你的程式碼,需要立即的修復。在這個類別的項目都要進行修復,這些錯誤都可能造成系統無法正常運行,導致功能不法運作。
2. 弱點 : 使程式碼中出現一個容易受到攻擊的點。
弱點這個類別的項目建議進行修復,這些錯誤都可以被有心人是運用,導致「系統風險、資安風險」不可被忽視,基本上還是屬於要修復的項目,只是沒有錯誤 (Bugs) 急迫。
3. 氣味 : 屬於一種可維護性問題,會使你的程式碼混亂且難以維護。
氣味類別是建議要調整的程式碼,這些問題會造成使用者難以維護,或者是維護成本高的問題,這些問題都會有提供建議,使我們的程式碼標準化,而不是雜亂無章的。
有時間的話,建議做調整,提升可維護性,減少成本。
4. 安全熱點 : 與漏洞不同,安全疑慮熱點不一定是容易受到攻擊的問題點。安全疑慮熱點重點顯示了需要人工檢查的有安全疑慮的程式碼段落。
安全熱點跟弱點有點類似,但不一定會發生問題,只要控管好的話,因此是需要人工檢查是否真的有問題。
安全熱點有三的等級(高、中、低),基本上我會修正高、中兩個等級,他們是屬於風險比較高的,這的類別也是屬於有時間的話,建議做調整的項目。
(三)、解讀 - 檢測結果「燈號等級」
1. 燈號等級 A : 0 個 Bugs。2. 燈號等級 B : 至少 1 個次要的 Bugs。
3. 燈號等級 C : 至少 1 個主要的 Bugs。
4. 燈號等級 D : 至少 1 個嚴重的 Bugs。
5. 燈號等級 E : 至少 1 個阻礙程式運行的 Bugs。
(四)、解讀 - 檢測結果「Bugs 嚴重程度」
1. 阻礙 : 錯誤高機率會影響運作中的應用程序行為,如 : 記憶體洩漏、未關閉的JDBC連接...等。(必須立即修復代碼)
2. 嚴重 : 錯誤低機率會影響生產的應用程序行為,也可能是表示安全漏洞的問題,
如 : 沒有抓取到的區塊、SQL注入...等。(必須立即修復代碼)
3. 主要 : 質量缺陷嚴重影響開發人員的程式撰寫。(建議做調整)
如 : 重複的區塊、未使用的參數。
4. 次要 : 質量缺陷會稍微影響開發人員的程式撰寫。(建議做調整)
如 : 每行書寫不應太長、“switch” 語句應至少包含3種情況。
5. 訊息 : 發現錯誤或質量缺陷並提醒。(建議做調整)
.png)
(五)、解讀 - 檢測結果「標準」
「標準」是由一些組織根據實際情況所統計的項目,這些會是屬於目前最常見的攻擊手法,因此這些問題風險最高,這邊的問題在上述類別都已包含在內,在這邊所列是應最優先處理的項目。如 : 開放網路軟體安全計畫所列的「前十大網路應用系統安全安全弱點 (OWASP TOP 10)」。
.png)
(六)、解讀 - 檢測結果「建議修正指引」
案例 : HTML 裡它建議我們把 改為較新的 HTML5 標籤 。操作方式,就是他所列的問題旁有「Why is this an Issue」,點擊後下方會呈現問題說明及「建議修正指引」,快速的協助我們修正項目。
.png)
四、匯出「檢測結果」報表
(一)、匯出「檢測結果」報表
1. 選擇更多,點選「CNES Report」,在選擇要匯出的專案,按下「Generate」,並儲存報表。.png)
2. 四個檔案,較常使用的會是 WOED、EXCLE 檔,因為一般人使用者都有OFFICE 軟體可以開啟,那我會以這兩的檔案做簡易的說明。
.png)
3. WOED 檔,為主要的報表。
.png)
(二)、解讀「檢測結果」報表
1. 紅框部分對應了 SonarQube 檢測結果卡片的燈號。說明同「三、檢測結果說明 」的「(一)、檢測結果」。
.png)
2. 紅框部分對應了類別的問題數量 ,紅框部分下面的表是「有問題的項目」清單。
說明同「三、檢測結果說明 」的「(二)、解讀 - 檢測結果「類別」。
.png)
3. EXCLE 檔是將「有問題的項目」清單的內容更詳細列出。
.png)
相關文章
【程式開發筆記】輕鬆了解網站安全10大風險,開放網路軟體安全計畫 (OWASP TOP 10) - 大漠國渡【程式開發筆記】保證軟體品質一定要做程式碼檢測 (上) | 開源程式碼檢測平台 (SonarQube) - 大漠國渡
參考資料
SonarQubeChineseDoc8.1大漠
大漠國渡
系統安全
弱點描
程式開發筆記
開放網路軟體安全計畫
資訊安全
JAVA
NodeJs
openjdk
OWASP
OWASP TOP 10
SonarQube
SonarScanner
本文同步發表於:【程式開發筆記】保證軟體品質一定要做程式碼檢測 (下) | 開源程式碼檢測平台(SonarQube) - 大漠國渡




























































































