Go 部落格

Go 的漏洞管理

Go 安全團隊的 Julie Qiu
2022 年 9 月 6 日

我們很興奮地宣布 Go 新支援的漏洞管理功能,這是我們協助 Go 開發人員了解可能影響他們的已知漏洞所邁出的第一步。

本文章概述了目前可用的內容和這個專案的後續步驟。

概述

Go 提供了分析您的程式碼庫和浮現已知漏洞的工具。此工具由 Go 安全團隊策劃的 Go 漏洞資料庫提供支援。Go 的工具會減少結果中的雜訊,僅浮現您的程式碼實際呼叫的函式中的漏洞。

Architecture diagram of Go's vulnerability management system

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 年第 2 季調查結果
上一篇:Go 1.19 發布!
部落格索引