PSIRT
協同漏洞揭露:如何經營漏洞揭露計畫
遲早會有人在您的產品中發現漏洞。協同漏洞揭露決定了對方能否私下通知您、您能否在攻擊者得知之前完成修正,以及您的客戶是否能先從您這裡得知消息。
更新日期
什麼是協同漏洞揭露?
協同漏洞揭露(CVD)是指在修正或緩解措施可用之前,由發現者與廠商私下處理新發現的漏洞,之後再公開發布的做法。CERT Guide to Coordinated Vulnerability Disclosure 將其描述為:從漏洞發現者收集資訊、協調相關利害關係人之間的資訊分享,並揭露漏洞及其緩解措施,包括對大眾揭露。
對產品廠商而言,CVD 分為兩部分。對外的部分(接收通報與發布資安公告)是本頁的主題;對內的部分(驗證、修正與發布)則是漏洞管理生命週期。兩者通常都由 PSIRT 負責。
CVD、完全揭露與漏洞獎勵計畫的比較
| 協同揭露 | 完全揭露 | 漏洞獎勵計畫 | |
|---|---|---|---|
| 定義 | 私下通報、修正,再於約定時間公開 | 發現者立即公開細節,無論是否通知廠商 | 為有效發現支付獎金的計畫 |
| 由誰掌控時程 | 廠商與發現者共同決定,有時會有協調者參與 | 發現者 | 計畫條款,通常遵循 CVD |
| 對使用者的風險 | 最低:在修正推出或期限屆滿後才公開細節 | 最高:攻擊者與防禦者同時得知 | 與 CVD 相同 |
| 成本 | 分級研判與回應所需的人力時間 | 計畫外的緊急工作 | 人力時間加上獎金,通常還有平台費用 |
漏洞獎勵計畫並不能取代漏洞揭露計畫(VDP),而是疊加在其上的誘因。每家廠商都需要一個讓任何人都能通報漏洞的管道;獎勵計畫只是決定哪些通報能獲得獎金。
漏洞揭露政策應包含哪些內容
漏洞揭露政策是規範您計畫條款的公開文件。漏洞揭露的國際標準 ISO/IEC 29147 將其中一項列為必要元素(偏好的聯絡管道),並建議其他多項元素。完整的政策涵蓋:
- 如何通報。專用的電子郵件地址或網頁表單,以及安全傳送敏感細節的方式,例如公開的加密金鑰。
- 應包含哪些資訊。受影響的產品與版本、重現步驟、影響,以及聯絡通報者的方式。
- 範圍。涵蓋哪些產品、版本與服務,以及禁止使用哪些測試方法,例如阻斷服務或存取其他使用者的資料。
- 安全港條款。承諾不會對遵循政策、出於善意的研究採取法律行動。
- 通報者可以期待什麼。您何時確認收到通報、如何持續告知進度,以及修正的目標時間。
- 揭露時程。細節何時公開,以及修正耗時較長時如何處理。
- 發布。資安公告在哪裡發布,以及您是否指派 CVE ID。
- 致謝。是否以及如何致謝通報者,以及您是否支付獎金。
政策應簡短而具體。通報者會閱讀它,以判斷向您通報是否安全、是否值得投入心力。
可直接套用的政策範本
以下範本依循美國網路安全暨基礎設施安全局(CISA)發布的漏洞揭露政策範本架構,並以我們自己的文字撰寫。請替換方括號中的內容,並在發布前請您的法務團隊審閱授權一節。
漏洞揭露政策,[公司名稱]
最後更新:[日期]
我們歡迎您通報我們產品與服務中的資安漏洞。
本政策說明如何通報漏洞,以及您可以期待我們
採取哪些行動。
授權
只要您秉持善意努力遵循本政策,我們即視您的
研究為經授權的研究。我們不會因此對您採取或
建議採取法律行動。若第三方因您遵循本政策所
進行的研究而對您採取法律行動,我們將公開表明
您的研究已獲授權。
準則
- 發現潛在漏洞後,請盡快通知我們。
- 避免侵犯隱私、干擾正式環境系統,以及任何
破壞或竄改資料的行為。
- 僅在確認漏洞所需的範圍內使用漏洞利用程式。
請勿用它存取或竊取資料、維持持續性存取,
或移動至其他系統。
- 在您揭露之前,請給我們合理的時間修正問題。
範圍
涵蓋範圍:[產品、版本與網域]。
不在範圍內:阻斷服務、社交工程、實體攻擊,
以及[其他排除項目]。
如何通報
請將您的通報寄至 [[email protected]] 或 [網頁表單]。
請使用 [公開金鑰連結] 加密敏感細節。請附上受影響的
產品與版本、重現步驟及影響。
您可以期待我們
- 我們會在 [3] 個工作天內確認收到您的通報。
- 我們會確認漏洞是否存在,並在修正之前持續告知
您進度,包括任何造成修正延遲的情況。
- 我們會在 [90 天內] 發布資安公告,並依您的意願
列名致謝。
security.txt:讓您的聯絡方式容易找到
政策唯有在研究人員找得到時才能發揮作用。2022 年 4 月發布的 RFC 9116 定義了 security.txt,這是一個透過 HTTPS 於
/.well-known/security.txt 提供的小型文字檔。
Contact: mailto:[email protected]
Expires: 2027-09-30T23:00:00.000Z
Encryption: https://example.com/pgp-key.txt
Policy: https://example.com/security/disclosure-policy
Acknowledgments: https://example.com/security/thanks
Preferred-Languages: en
Canonical: https://example.com/.well-known/security.txt
- 必要欄位:
Contact與Expires。RFC 9116 建議將到期日設在一年以內,避免檔案內容過時。 -
選用欄位:
Policy、Encryption、Acknowledgments、Preferred-Languages、Canonical與Hiring。 - 簽章:RFC 建議使用 OpenPGP 明文簽章,並設定
Canonical。
請在 Expires 日期之前於行事曆設定提醒。過期的檔案會讓研究人員以為沒有人在處理。
禁運期與揭露時程
禁運期是指從通報到公開發布之間的期間。最常被引用的準則是 Google Project Zero 的政策:廠商有 90 天推出修補程式,細節則在修補程式推出 30 天後公開。需要多一點時間的廠商可以申請寬限期,總計最多 104 天。若漏洞已遭實際利用,期限則縮短為 7 天。
您自己的政策可以設定不同的條款,許多通報者也會接受。重要的是時程要以書面明訂、持續告知通報者進度,並在期限到來之前而非之後申請延長。按時發布並附有緩解措施的資安公告,勝過毫無音訊。
CVE ID 與 CNA
大多數資安公告都附有 CVE ID,讓客戶與工具能夠比對。ID 由 CVE Numbering Authority(CNA)指派,也就是獲授權在約定範圍內指派 ID 的組織。許多軟體廠商是自家產品的 CNA,因此能依自己的時程指派 ID 並發布紀錄。如果您不是 CNA,則由範圍涵蓋您產品的 CNA,或 CNA of Last Resort 指派。
多方協調
有些漏洞會同時影響許多廠商:例如廣泛使用的函式庫、通訊協定或晶片中的缺陷。這時會由協調者協助聯繫所有受影響的廠商,並議定統一的發布日期。
- CERT/CC 隸屬於卡內基美隆大學軟體工程研究所,負責協調多廠商案件,並發布 CERT CVD 指南。
- 歐盟各國的國家級 CSIRT。依據 NIS2,每個成員國都會指定一個 CSIRT 作為其 CVD 協調者。它在通報者與廠商之間擔任受信任的中介,協商揭露時程、處理影響多個實體的漏洞,並接受匿名通報。
- ENISA 的歐洲漏洞資料庫(EUVD)依 NIS2 設立,自 2025 年 5 月起運作,發布公開已知漏洞的資訊,包括經歐盟協調處理的漏洞。
ISO/IEC 29147 也涵蓋您同時身兼兩種角色的情況:您的產品含有其他廠商有漏洞的元件,您必須向上游通報,同時也要通知自己的客戶。
收到通報之後
- 確認收到:在政策承諾的時間內回覆,並提供通報者追蹤編號。
- 驗證通報內容並評定嚴重程度。
- 找出受影響的範圍:包含有漏洞的程式碼或元件的每一項產品、每一個版本與每一個受支援的分支。
- 修正並發布每一個受影響的分支,同時持續告知通報者進度。
- 發布資安公告,附上 CVE ID、受影響版本、修補方式與致謝。機器可讀的資安公告採用 CSAF,VEX 則告知客戶哪些產品不受影響。
包含角色、時程與指標的完整流程,請參閱漏洞管理生命週期。
法規正讓 CVD 政策成為強制要求
歐盟 Cyber Resilience Act(CRA)要求製造商「建立並執行協同漏洞揭露政策」,並提供通報漏洞的聯絡地址,包括第三方元件中的漏洞(附件 I 第 II 部分)。這些義務自 2027 年 12 月 11 日起適用;請參閱CRA 的要求。NIS2 第 21 條第 2 項第 e 款將漏洞處理與揭露列為基本與重要實體必須採取的資安措施之一。在美國,Executive Order 14028 指示制定軟體供應鏈指引,其中包括參與漏洞揭露計畫。
向主管機關通報是另一項義務,且已經適用:自 2026 年 9 月 11 日起,製造商一旦得知其產品中有遭積極利用的漏洞,必須在 24 小時內透過 CRA 的 Single Reporting Platform 發出早期預警。完整時程請參閱CRA 的要求。
通報的價值,取決於您對已出貨內容的紀錄
每一份通報都會引出同一個首要問題:我們的哪些版本包含這個漏洞?CRACI 在自己的執行器上執行您的 GitHub Actions 建置,並記錄每個作業實際擷取的套件,包括遞移相依套件、從 CI 快取還原的套件,以及任何鎖定檔都沒有列出的相依套件。建置歷程會顯示過去哪些建置包含有漏洞的相依套件,讓您知道受影響的期間;資產清冊檢視則顯示哪些軟體版本部署到哪些產品。
CRACI 會跨建置與儲存庫彙整 SBOM,並持續重新評估受監控的 SBOM,因此一旦開源元件中的漏洞公布,您就能看到它出現在哪些地方。資安團隊會分級研判發現,並將其交給負責修正的團隊;CRACI 支援 VEX,而政策關卡可在特定 CVE 修正後,封鎖仍包含該 CVE 的建置。請參閱漏洞追蹤。
協同漏洞揭露:常見問題
什麼是協同漏洞揭露?
協同漏洞揭露(CVD)是指發現漏洞的人私下向廠商通報、廠商進行修正,並在使用者能夠自我保護後公開細節的流程,公開日期通常由雙方議定。當廠商無法聯繫或有多家廠商受影響時,CERT/CC 或國家級 CSIRT 等協調者就會介入。
VDP 與漏洞獎勵計畫有什麼不同?
漏洞揭露計畫(VDP)告訴任何人如何通報漏洞以及可以期待什麼,但不會為發現支付獎金。漏洞獎勵計畫則為有效發現支付獎金給研究人員,通常限定於特定範圍,且常透過獎勵平台進行。大多數組織會先建立 VDP;獎勵計畫是疊加在其上的選擇性項目,而非替代方案。
漏洞揭露政策應包含哪些內容?
至少要說明如何通報:聯絡地址或表單。ISO/IEC 29147 也建議說明通報應包含哪些內容、如何安全地溝通、通報者可以期待什麼以及何時、涵蓋範圍、如何發布資安公告,以及如何致謝通報者。大多數政策還會加上安全港聲明與揭露時程。
什麼是 security.txt?
security.txt 是 RFC 9116 所定義的純文字檔,於 /.well-known/security.txt 提供,告訴研究人員該向哪裡通報漏洞。它必須包含 Contact 與 Expires 欄位,並可連結到您的政策、加密金鑰與致謝頁面。
一般的揭露期限有多長?
90 天是最廣為引用的準則。Google Project Zero 給予廠商 90 天推出修補程式,並在修補程式推出 30 天後公開細節;若漏洞已遭實際利用,期限則為 7 天。您自己的政策可以設定不同的條款,協調者也會逐案協商。
協同漏洞揭露政策是強制性的嗎?
越來越多情況下是。歐盟 Cyber Resilience Act 要求具有數位元素之產品的製造商建立並執行 CVD 政策,並提供通報的聯絡地址;NIS2 也將漏洞處理與揭露列為必要的資安措施之一。在其他地區,客戶與採購規範也經常要求提供 CVD 政策。
我需要成為 CNA 才能取得 CVE ID 嗎?
不需要。CVE Numbering Authority(CNA)在自己的範圍內指派 CVE ID,許多廠商會成為自家產品的 CNA。如果您不是 CNA,可由範圍涵蓋您產品的 CNA,或 CNA of Last Resort 指派 ID。