Go 部落格
Go 語言的漏洞管理
我們很高興地宣佈 Go 對漏洞管理提供新支援,這是我們幫助 Go 開發者瞭解可能影響他們的已知漏洞的第一步。
本文概述了當前可用的內容以及該專案的後續步驟。
概述
Go 提供了工具來分析您的程式碼庫並發現已知漏洞。這些工具由 Go 漏洞資料庫支援,該資料庫由 Go 安全團隊維護。Go 的工具只顯示您的程式碼實際呼叫的函式中的漏洞,從而減少結果中的干擾。

Go 漏洞資料庫
Go 漏洞資料庫(https://vuln.go.dev)是關於公共 Go 模組中可匯入包的已知漏洞的全面資訊來源。
漏洞資料來自現有來源(例如 CVE 和 GHSA)以及 Go 包維護者的直接報告。這些資訊隨後由 Go 安全團隊稽核並新增到資料庫中。
我們鼓勵包維護者貢獻有關其專案中公共漏洞的資訊,並更新有關其 Go 包中現有漏洞的資訊。我們的目標是使報告過程順暢便捷,因此請向我們傳送您的建議以進行改進。
Go 漏洞資料庫可以在瀏覽器中訪問 pkg.go.dev/vuln 檢視。有關資料庫的更多資訊,請參閱 go.dev/security/vuln/database。
使用 govulncheck 進行漏洞檢測
新的 govulncheck 命令是一種低干擾、可靠的方式,可幫助 Go 使用者瞭解可能影響其專案的已知漏洞。Govulncheck 分析您的程式碼庫,並根據您的程式碼中哪些函式間接呼叫了易受攻擊的函式,僅顯示實際影響您的漏洞。
您可以使用 go install 安裝最新版本的 govulncheck
$ go install golang.org/x/vuln/cmd/govulncheck@latest
然後,在您的專案目錄中執行 govulncheck
$ govulncheck ./...
Govulncheck 是一個獨立工具,以便在我們收集使用者反饋時進行頻繁更新和快速迭代。從長遠來看,我們計劃將 govulncheck 工具整合到 Go 的主發行版中。
整合
儘早在開發和部署過程中瞭解漏洞總是更好的。要將漏洞檢查整合到您自己的工具和流程中,請使用 govulncheck -json。
我們已將漏洞檢測整合到現有的 Go 工具和服務中,例如 Go 包發現網站。例如,此頁面顯示了 golang.org/x/text 各個版本中的已知漏洞。透過 VS Code Go 擴充套件的漏洞檢查功能也即將推出。
後續步驟
我們希望您會發現 Go 對漏洞管理的支援很有用,並幫助我們改進它!
Go 對漏洞管理的支援是一個新功能,目前正在積極開發中。您可能會遇到一些錯誤和限制。
我們非常希望您能透過以下方式貢獻並幫助我們改進:
我們很高興與您合作,共同構建一個更好、更安全的 Go 生態系統。
下一篇文章:Go 開發者調查 2022 年第二季度結果
上一篇文章:Go 1.19 釋出了!
部落格索引