Go 安全政策

概觀

本文檔說明 Go 安全團隊處理報告問題的流程,以及您能期待的回報。

報告安全漏洞

Go 發行版中的所有安全性漏洞都應透過電子郵件報告至 security@golang.org。此郵件會傳送給 Go 安全性團隊。

為確保您的報告不會被標記為垃圾郵件,請在電子郵件的任何地方包含「vulnerability」一詞。請為您的報告電子郵件使用有意義的主旨。

您的電子郵件將在 7 天內收到確認,並且您會在解決之前持續收到進度更新。您的問題將在 90 天內修復或公開。

如果您在 7 天內未收到電子郵件回覆,請再次透過 security@golang.org 與 Go 安全性團隊聯繫。請確保您的電子郵件中包含 vulnerability 一詞。

如果您在 3 天後仍未收到報告確認,您的電子郵件可能已被標記為垃圾郵件。在這種情況下,請 在此處提交問題。選擇「我想報告 Google 產品(SQLi、XSS 等)中的技術安全性或濫用風險相關漏洞」,並將「Go」列為受影響產品。

追蹤

根據問題的性質,Go 安全性團隊會將其歸類為 PUBLIC、PRIVATE 或 URGENT 追蹤中的問題。所有安全性問題都將發出 CVE 編號。

Go 安全性團隊不會為安全性問題指定傳統的細緻嚴重性標籤(例如 CRITICAL、HIGH、MEDIUM、LOW),因為嚴重性高度取決於使用者如何使用受影響的 API 或功能。

例如,encoding/json 剖析器中資源耗盡問題的影響取決於剖析的內容。如果使用者從其本機檔案系統剖析受信任的 JSON 檔案,影響可能會很低。如果使用者從 HTTP 請求主體剖析不受信任的任意 JSON,影響可能會高得多。

話雖如此,以下問題追蹤信號表示安全團隊認為問題的嚴重性或影響範圍。例如,影響許多使用者的中等至重大影響問題是此政策中的私人追蹤問題,而影響輕微或影響僅少數使用者的問題是公開追蹤問題。

公開

公開追蹤中的問題會影響利基組態、影響非常有限或已廣為人知。

公開追蹤問題標記為 Proposal-Security,透過 Go 提案審查程序 討論公開修正,並回傳到下一個預定的 次要版本(約每月一次)。版本公告包含這些問題的詳細資訊,但沒有預先公告。

過去公開問題的範例包括

私人

私人追蹤中的問題違反已承諾的安全屬性。

私人追蹤問題會在下一版預定的 次要版本 中修正,並在此之前保密。

在版本發布前三天到七天,會將預先公告發送至 golang-announce,公告即將發布的版本中存在一個或多個安全修正程式,以及問題是否影響標準函式庫、工具鏈或兩者,以及每個修正程式的保留 CVE ID。

過去私人問題的一些範例包括

緊急

緊急追蹤問題會威脅 Go 生態系統的完整性,或在野外被積極利用,導致嚴重損害。目前沒有近期範例,但會包含 net/http 中的遠端程式碼執行,或 crypto/tls 中的實際金鑰復原。

緊急追蹤問題會私下修復,並觸發立即專門的安全版本,可能沒有預先公告。

如果您認為現有問題與安全性相關,我們請您寄送電子郵件至 security@golang.org。電子郵件應包含問題 ID 和簡短說明,說明為何應根據此安全政策處理該問題。

揭露流程

Go 專案使用下列揭露流程

  1. 收到安全報告後,會指派一位主要處理人員。此人會協調修復和發布流程。

  2. 確認問題並確定受影響的軟體清單。

  3. 稽核程式碼以找出任何潛在的類似問題。

  4. 如果在諮詢提交者後,確定需要 CVE 編號,主要處理人員會取得一個。

  5. 為最近兩個主要版本和 head/master 修訂版準備修正程式。為最近兩個主要版本準備修正程式,並合併至 head/master。

  6. 在套用修正程式的當天,會將公告傳送至 golang-announcegolang-devgolang-nuts

這個程序可能需要一些時間,特別是在需要與其他專案的維護者協調時。我們將盡一切努力盡可能及時地處理錯誤,但是,遵循上述程序以確保一致處理揭露非常重要。

對於包括指派 CVE 編號的安全問題,問題會公開列在 CVEDetails 網站上的「Golang」產品 以及 國家漏洞揭露網站

接收安全更新

接收安全公告的最佳方式是訂閱 golang-announce 郵件清單。任何與安全問題相關的訊息都會加上 [security] 前綴。

對此政策的評論

如果您有任何建議可以改善此政策,請 提交問題 以供討論。