宣告:
本教程是在自己的電腦上本地測試Gosec的效果,所以不涉及其他執行模式,如果想要了解其他模式可以關注後期文件,如果想要自定義交流自定義程式碼掃描規則,可以跟我交流溝通。
背景:
Gosec是一個通過掃描Go AST來檢查原始碼是否存在安全問題的開源專案。公司到成長到一定程度,就需要對程式碼進行審計,針對Go的作為主要的開發語言,我就測試一下Gosec的效果。
使用教程
要求
- 已經配置好Go的開發環境
- 準備一個測試專案程式碼
步驟
1. 進入Go環境src目錄下
執行命令:go get github.com/securego/gosec/v2/cmd/gosec
2. 直接Build
進入到gosec專案目錄:cd ./gosec/
,再執行:make
提示:make後就可以使用gosec來進行程式碼掃描了,並且是全域性的命令
3. 掃描程式碼
進入你準備好的程式碼目錄下,執行:gosec -fmt=json ./...
命令的意思是:檢測當前目錄下的所有的程式碼,並以Json的格式輸出到終端。
然後檢視結果,如果有漏洞的地方,會在Json的資料格式裡寫清楚,並寫清楚危險等級。
Gosec常用命令
1. 直接輸出內容到終端
gosec -fmt=json ./...
支援的格式有:text, json, yaml, csv, sonarqube, JUnit XML, html
2. 輸出到指定檔案
gosec -fmt=json -out=results.json ./...
輸出的格式要個檔案字尾名匹配
3. 指定使用規則
# 指定使用某幾個規則
$ gosec -include=G101,G203,G401 ./...
# 使用預設所有規則,除了某幾個規則
$ gosec -exclude=G303 ./...
更多的使用可以看官方文件:Gosec開源專案地址
本文首發於BigYoung小站