建立 VDP

計畫政策對任何 VDP 而言至關重要,且必須謹慎制定。 安全性研究人員參與 VDP 時,最先看到的就是計畫政策。內容旨在訂定計畫的語氣、定義期望,並定義你為選擇參與的研究人員的承諾。

如何建立及代管計畫政策

請根據以下準則草擬 VDP 的計畫政策。計畫政策通常只有 1 至 3 頁,通常包含以下主題:

  • 研究人員的承諾
  • 檢測指引
  • 計畫的範圍

你必須向所有潛在研究人員提供計畫政策,如果您打算只向少數受邀的研究人員推出 VDP,則計畫政策需要某種存取權控管機制,才能讓您邀請的研究人員使用,但僅開放其他使用者使用。研究人員還需要提交報表,例如,網路表單或連結至票券系統的電子郵件別名,以便追蹤報表。設定 VDP 的線上資源時,請考量這一點。

第三方安全漏洞揭露功能和錯誤獎勵平台通常會提供以下功能:

  • 建立、編輯及發布政策的方式
  • 建立私人程式的存取權控管
  • 以舒適的步調自動邀請駭客
  • 方便處理收到報告的收件匣功能

第三方平台也提供多項諮詢服務,協助簡化建立和啟動 VDP 的程序。一般而言,第三方平台和諮詢服務付費。考慮使用第三方的成本與好處,以及在內部建構和管理計劃,決定最適合貴機構的發展方向。

如需有關要在計畫政策中加入的內容的其他靈感,請參閱美國司法部的《AFramework for a Vulnerability Disclosure Program for Online Systems》。

計畫政策利害關係人

在擬定計畫政策時,請考慮與利害關係人合作的方式。不同的團隊可能會提供關於制定政策的考量事項。

相關人員 考量重點
Legal
  • 請與法務團隊合作,草擬駭客參與計畫時適用的計畫政策和條款。
  • 研究人員並未獲得報酬,因此沒有適當理由遵循詳細的新手上路規定或繁瑣的條款。
義大利
  • 請與您的 IT 團隊合作,協助您制定測試需求和範圍,例如不建立阻斷服務條件。
工程
  • 工程團隊可能針對測試規範和範圍提供意見,包括最難或最不值得留意的安全漏洞類型。
PR
  • 請與公關團隊合作,檢查有關揭露聲明的政策用語。
安全性
  • 安全性團隊通常會主導政策的製定事宜。
  • 安全性團隊可能會收到駭客的意見回饋,並會隨著時間與其他利害關係人重複修訂政策。

研究人員的承諾

研究人員的承諾會解釋該機構承諾遵守政策所述測試準則,以實踐善意參與的研究人員所做出的承諾。例如,承諾在指定時間範圍內回應所有收到的安全性報告,並向使用者說明我們接受及修正哪些安全漏洞報告。

示例:

<貴機構名稱> 致力與安全性研究人員合作,協助找出並修正 Google 系統和服務中的安全漏洞。只要您秉持善意行事並遵守本政策所述規範,我們就會盡力履行下列規範:
  • 在三個工作天內初步回覆安全漏洞報告
  • 在 10 個工作天內,決定我們是否會接受 (有意修正問題) 或拒絕 (將您的報告視為誤判或可接受的風險) 您的安全漏洞報告
  • 即時掌握最新消息,瞭解我們接受檢舉時的補救措施

在計畫政策中採用安全港用語,即可確保研究人員不會為了測試系統而對系統採取法律行動,只要秉持善意採取行動,並遵守政策中所述的所有準則即可。

檢測指引

測試指南說明在 VDP 範圍內的安全性測試,以及不屬於研究範圍的測試,應交由研究人員避免。如果您希望研究人員專注於某些類型的安全漏洞,不妨透過本節來說明。

範例:
執行安全性測試時,請遵守下列規範:

  • 請只針對自己的帳戶和資料 (例如建立測試帳戶) 進行測試。如果您發現一個安全漏洞可能導致存取其他使用者的資料,請先與我們聯繫,然後再進行測試。
  • 如果您在測試時不慎存取其他使用者的資料,請通知我們,且不要儲存任何這類使用者資料。
  • 請勿執行會造成阻斷服務條件或實際工作環境服務降級的測試。
  • 社交工程不在這項計畫的適用範圍內,請勿試圖為我們的機構或使用者進行社交工程。


我們特別希望瞭解以下類型的安全漏洞和影響:

  • 遠端程式碼執行
  • 導致機密資料 (例如工作階段資訊) 存取的 XSS
  • 導致機密資料或功能存取的 SQL 插入
  • 導致機密資料或功能存取的商業邏輯缺陷


我們較不對下列類型的安全漏洞感興趣,這些安全漏洞較有可能
遭系統拒絕為誤判或已接受的風險:

  • 在沒有狀態變更功能的頁面上缺少 X-Frame-Options 標頭
  • 未經驗證的自動掃描器結果
  • 不太可能有人利用,和/或對安全性沒有實際影響的問題

範圍

範圍定義了研究人員可以用來測試的資產,以及哪些資產不視為 VDP 的一部分。您需要仔細考量範圍,並盡可能擴大範圍,而不會使您的團隊超載。您願意納入測試範圍的程度越高,就越有可能獲得安全性研究人員的參與。但是,請不要太寬廣,以免團隊無法跟上收到的報表。先從涵蓋的幾項資產開始著手當您更瞭解會收到的報告量時,請擴大範圍。逐步公開 VDP 對外公開前,請設法將所有內容都納入測試範圍。

關於如何在計畫政策中界定範圍的方式,新增每個資產或領域的詳細資料,將有助於安全研究人員瞭解您重視的事項,以及該將心力投注在哪些領域。也可以加入一些提示,說明如何安全地測試資產。範例如下:

資產 mail.example.com
說明 使用者存取電子郵件時使用的主網域。
有趣的安全漏洞和影響
  • 導致他人未經授權存取其他使用者的電子郵件的安全漏洞。
  • 無法復原其他使用者的電子郵件或整個帳戶。
可能遭拒的問題
  • SPF
  • 網路釣魚或促成網路釣魚的問題
  • 傳送疑似惡意附件的能力
測試規範 請只針對您所擁有或已明確同意授權的帳戶進行測試。建立測試帳戶時,請在使用者名稱中加入「vdptest」。您可以前往 mail.example.com/new 建立測試帳戶。

以上是相當詳細的您也可以加入範圍內和範圍外資產的簡單清單:

範圍內

  • mail.example.com
  • example.com

不在支援範圍內

  • blog.example.com

取得 VDP 資源

您必須先備妥特定資源,才能推出 VDP。您需要下列資源:

  • 查看收到的安全漏洞報告
  • 與駭客聯絡
  • 尋找資產擁有者及回報錯誤
  • 修正錯誤
  • 安全漏洞管理 / 補救措施

重新審視主要相關人員的情況

如果您還未與主要相關人員討論 VDP,請盡快回頭檢視他們討論 VDP 的推出時程,並準備好將發布所需的資源排入佇列。舉例來說,您可能會想與工程領導人合作,確保他們的團隊已準備好處理推出後前幾週內可能存在的大量安全性錯誤。確保在偵測和回應系統中區分快訊的分類方式,都知道 VDP 推出日期,並考慮在測試開始時分配更多時間和資源。您也需建立團隊來支援 VDP 的每日作業。

組成您的團隊

執行 VDP 需要大量營運及中斷推動的工作。如果您嘗試查看、從技術上驗證及回應收到的每一項安全漏洞,並提交每個錯誤、追蹤狀態,以及您自行向研究人員提供更新資訊,則可能會讓您感到疲乏。即使沒有大型安全團隊,也應找到注重安全思維的志工,一起協助打造團隊來協助實施及執行 VDP。您仍會希望 VDP 定義的「負責人」或「領導者」,這將是 VDP 成功的關鍵,但您也需要團隊來支援該領導者。

建立輪值時間表

取得資源並願意為 VDP 提供協助後,請設定輪值時間表,開始建立一些架構。您可以視需要建立此屬性,但每週輪替是很常見的做法。「本週任務」時,您必須負責:

  • 分類:查看收到的安全漏洞報告
    • 從技術層面驗證報表,並做出「接受」或「拒絕」決定
    • 向回報問題的駭客告知你的決定
    • 如果無法重現問題,可以視需要向駭客索取更多資訊
    • 如果安全漏洞有效,請向正確的擁有者回報美容錯誤
  • 安全漏洞管理 - 推動現有安全漏洞
  • 通訊 - 為安全性研究人員提供現有報表的最新資訊
    • 研究人員可能會主動詢問現有報表的最新資訊;請查看相關資訊,並視需要回覆
    • 如果安全漏洞已修正,請將這一點告知研究人員,讓對方知道他們付出的努力會為貴機構帶來正向改變。您甚至可以加入範本語言,要求研究人員通知您修正結果是否遺漏,或如果某些方法可能會略過您的修正。

視您收到的報表數量、這些報表的複雜程度,以及個別任務的技能和知識而定,隨時都可能需要數小時到一整週的時間。以下提供有助於順利輪流的旋轉提示:

  • 確保您的團隊已準備好採取行動,在特別艱難的週間提供支援並提供協助。
  • 已備妥良好的交遞程序。如果有問題需要立即向下一位輪值人員處理,請寫下一些遞交備忘稿,或在當週結束即時對話。
  • 建立自動排程功能,確保所有人都知道自己的輪值時間。 這跟為每位使用者建立週期性日曆項目一樣簡單。
  • 尤其是在 VDP 開始的時候,請務必與值班人員再次確認,確保他們記得當天是他們週,並瞭解他們是否需要任何協助。如果輪替作業中有較資淺的資源,請安排更高階的資源,確保他們能放心使用,並在時間加速成長時提出問題。
  • 靈活替換週別。難免有人會遭遇緊急狀況,且必須在週間休息,或是有人會度假等。此時,請鼓勵團隊視需要交換週數,以便協調所有人的行程。
  • 建立職務專用的「一覽表」,概略說明必須涵蓋的義務,包括相關做法說明文件。

自行決定內部和第三方平台

目前為止,大部分指南都是以您在內部建構及執行 VDP 為基準。有多種諮詢服務和平台可協助您建立及執行 VDP。這些第三方通常須支付費用,但可協助您瞭解如何建立、啟動及執行 VDP。有些平台甚至會提供分類服務,協助您查看收到的安全漏洞報告、協助處理與駭客的通訊,以及只將有效報告提報給您的團隊。決定要在內部還是使用第三方平台建構此程序,取決於您的需求和可用資源。如果您的預算較高,但人力不多,建議您利用第三方來推動程式運作。如果這麼做的話,建議您投入時間自行建構程式。

接收報告

如果您決定使用第三方平台,駭客應該有辦法直接向您提交報告。如果您是在內部建構程式,則需自行建構。可以是能在問題追蹤工具中自動建立支援單或錯誤的電子郵件地址 (例如 security@example.com),也可以是包含必要表單欄位的網路表單,表單欄位必須連結至與計畫政策位於同一頁面,或位於相同頁面。無論採用哪種形式,最好都會告知駭客您希望採用的格式。請注意,要求駭客提交特定格式的報告不一定能達成目的,但也不用擔心這樣的問題。以下是在報告提交表單中要求的範例:

標題:[請為問題新增一行說明,例如「XSS in mail.example.com」
導致工作階段遭竊"]

摘要:[請簡短說明安全漏洞及其重要性,例如:由於缺少逸出,您可以傳送電子郵件給其他使用者,包含 XSS 酬載,讓攻擊者能夠竊取包含工作階段資訊的其他使用者 Cookie。這樣一來,攻擊者就能登入受害者的帳戶。]重現步驟:[請填入如何重現安全漏洞的逐步操作說明。]
1.
2.
3.

遭受攻擊的情境和影響:[安全漏洞可能被利用的方式為何?這項
問題造成哪些安全性影響?]修復建議:[選擇性。如果您想瞭解如何修正或修復這個問題,請在這裡新增。]