聲明:
本教程是在自己的電腦上本地測試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小站