2021/8/9

SonarQube 源碼掃描初體驗

 資安法通過上路之後,政府機關對於應用系統的防護實作必須更加精準,核心系統或採購金額大於一千萬元以上的系統必須執行源碼掃描。但源碼掃描的執行與修補耗費時間與可觀的成本,再交由第三方執行之前,先自己執行一次並完成可行的修補,會是比較好的做法。

1.  SonarQube 是開源套件,可從以下網址下載社群版

https://www.sonarqube.org/success-download-community-edition/

2.下載後解壓縮到D:\SonarQube

3.SonarQube使用JAVA 開發,因此需要安裝JDK 11以上,且設定  %JAVA_HOME% 為安裝目錄。以下雖然會用Docker安裝減少設定的複雜度,但在電腦上掃描時仍會遇到JAVA。請留意,裝 JAVA Runtime會一直鬼打牆,沒用!! 




4.利用Docker WSL2 安裝SonarQube,

4.1 安裝docker (建議至少要有8-16G的RAM)

4.2 取得 SonarQube 影像檔
在裝好Docker的電腦直接下:
docker pull sonarqube


裝好後記得啟動,第一次網址預設會在

5.設定啟動專案

6.準備好VS 2017的MSBuild 相關程式(跟你在開發的編譯器版本要一樣)

7.準備好待掃描原始碼,佈建client 掃描程式

我們的專案不能公開上傳到雲端平台,而且是需要編譯的C#程式,所以要佈建 .NET的Scanner掃描專案。注意,一個方案可能包含多個關聯的小專案,要掃描就要整包掃描,不然會發生找不到東西的問題。

Download and unzip the Scanner for .NET

Visit the official documentation of the Scanner for .NET to download the latest version, and add the executable's directory to the %PATH% environment variable


8.結果瀏覽與修補

Security優先

自動測試覆蓋率會影響分數

留意Code Smell(複製貼上、沒用到的變數、太多空白行、命名格式)、程式認知複雜度、巢狀if波動拳、沒必要的註解、不安全的外部程式碼、補齊無障礙網頁瀏覽的元素