具代表性的面試主題

系統設計面試:如何設計協調漏洞揭露平台?

系統設計困難
Offer.cc 編輯團隊發佈 更新

題幹

一家 SaaS 公司希望接收外部研究員的漏洞報告,並協調內部團隊、供應商和研究員完成修復與揭露。你會如何設計平台,保護敏感證據與研究員身分,同時避免重複處理、越權存取和揭露失誤?

題幹與適用場景

這是一道安全系統設計題。平台接收外部報告,經過範圍檢查、證據隔離、去重、分流、責任人路由、修復驗證、研究員溝通和公開公告。工程師需要把組織的漏洞揭露政策轉化為可執行的狀態機;政策、法律和合約邊界應先由組織確認,系統負責留下證據、權限和時間線。

面試官考察點

  • 能否畫出研究員、平台、產品團隊、供應商和公開公告之間的信任邊界。
  • 能否把報告生命週期、冪等、去重、權限和稽核設計成可驗證的資料流。
  • 能否在風險、可用性、機密性和修復速度之間做出說明清楚的取捨。
  • 能否把 CVSS 等評分當作輸入,結合資產暴露、可利用性和業務影響排序。

回答前需要釐清的問題

先確認報告來源是匿名、註冊使用者還是受邀研究員,是否允許附件和 API 提交;明確資產範圍、安全港、禁止測試行為和濫用處理。再確認報告量、租戶隔離、地區與資料保留要求、是否需要供應商或 CERT 協調、嚴重性與修復目標、CVE/CNA 責任,以及組織希望何時公開揭露。若題目沒有給規模,應聲明接下來使用的假設。

30 秒回答框架

我會按「接收與隔離、規範化與去重、分流與路由、修復與協調、揭露與稽核」五段展開。公開入口只接受安全格式,附件進入隔離區,絕不在正式環境執行 PoC;隨後建立不可變報告事件流和冪等鍵,按資產、影響和可利用性分流並分配責任人。修復、供應商溝通和研究員更新都走受限工作佇列,公開公告必須經過審批和修復證據校驗,所有動作都留下最小權限稽核記錄。

分步驟深入解答

1. 先畫信任邊界並保護入口

公開表單、專用信箱和 API 進入閘道,做速率限制、驗證碼、內容類型白名單和惡意附件掃描。原始證據寫入加密隔離儲存,分析環境與正式網路分離;只允許必要的靜態查看,不把研究員提供的程式碼或請求直接回放到正式環境。報告中的個人資料單獨加密,按案件和角色授予存取權。

2. 用規範化模型和狀態機承載流程

每個報告應有穩定的 reportId、來源、資產與版本、證據引用、機密等級、嚴重性、責任人、關聯報告和時間線。入口請求帶冪等鍵,重複投遞只追加事件,不重複建立任務。狀態可包括 receivedtriageneeds-infoacceptedrejectedduplicatemitigatedfixedcoordinationdisclosedclosed;狀態轉換寫入追加式稽核日誌,禁止用普通欄位覆蓋歷史。

3. 分流、去重和責任路由

先確認是否在範圍內,再按受影響資產、版本、可利用性、暴露面、資料影響和業務關鍵性排序。CVSS 可以幫助表達嚴重性,但不能取代組織環境中的風險判斷。相似報告用指紋、資產版本和證據相似度產生去重候選,最後由分析員確認並保留研究員署名。根據產品、基礎設施、供應商或外部協調機構路由,設定分離審批和逾期升級。

4. 修復、供應商協調與公開揭露

修復工作透過佇列分發,採用冪等重試和 outbox 記錄外發通知;每次修補或緩解措施都要關聯測試結果和回復點。對外溝通使用案件級權限,向研究員提供進度、補充資料請求和安全聯絡方式。揭露時間由組織政策、供應商回應和風險共同決定。GSA 的公開政策示例包含 2 個工作日確認、最長 90 天保密和修復目標,但這屬於特定組織政策,不能當作普遍法律期限;系統應把這些期限配置為策略輸入並在接近截止時升級。

5. 安全、可靠性與可觀測性

使用 KMS 管理靜態密鑰,傳輸全程加密;按案件、租戶和角色實施最小權限,研究員身分與證據分層保存。佇列消費者必須冪等,失敗訊息進入隔離佇列;報告資料庫、證據儲存和稽核日誌分別備份並演練恢復。監控確認延遲、分流 SLA、修復時長、逾期案件、重複率、揭露錯過率、附件攔截和越權存取告警。NIST SP 800-216 將報告接收、處理、追蹤、協調和溝通視為正式框架要素,可用來檢查流程是否缺環。

高品質示範回答

我先確認範圍、安全港、報告規模、敏感資料、供應商協作和揭露政策。架構上用公開閘道接收報告,原始證據進入隔離儲存,掃描和分析環境與正式環境分離;規範化服務產生冪等的報告事件,按資產、影響和可利用性分流、去重並路由給責任人。修復佇列記錄修補、緩解措施、測試和回復證據,研究員溝通與公開公告都經過案件級權限和審批。策略服務提供確認、升級和揭露截止時間,不能把某個組織的 90 天示例硬編碼成普遍規則。最後以追加式稽核、加密、租戶隔離、失敗重試、備份恢復和逾期指標保證可追責。

常見錯誤

  • 只設計一個信箱收件匣,沒有狀態機、冪等和去重。
  • 把研究員的 PoC 直接在正式環境回放,或讓附件進入同一信任域。
  • 讓所有客服、工程師都能看到研究員身分和原始證據。
  • 只按 CVSS 排序,不結合資產暴露、可利用性和業務影響。
  • 把固定 90 天當成所有組織的法律期限,忽略供應商和政策差異。
  • 沒有修復證據、揭露審批、回復點、逾期升級和稽核恢復演練。

追問及應對

如何接受匿名報告又控制垃圾和濫用?

允許匿名提交,但要求結構化欄位、速率限制、重複指紋和人工分流;高風險附件進入隔離佇列。匿名不等於跳過範圍檢查,系統仍要記錄來源渠道、時間和證據雜湊。

研究員身分洩露怎麼辦?

把身分與技術證據分庫存放,使用案件級別的短時授權和查看稽核。通知、匯出和公告範本預設去識別化,只有得到明確授權的協調人員才可關聯真實聯絡方式。

供應商在揭露截止前沒有回應怎麼辦?

按組織政策提前升級給供應商負責人、法務和外部協調機構,記錄每次通知與風險判斷。系統可延長或調整截止時間,但必須有負責人、理由、審批和新的公開溝通計畫。

兩份報告看起來重複,如何保留貢獻記錄?

先產生相似候選,再由分析員確認根因、資產版本和證據是否相同。合併為主案件後保留兩份報告的時間線、研究員署名和獎勵決定,不能簡單刪除後一份。

如何證明平台真的改善了回應?

分開看確認延遲、分流時長、修復時長、逾期率、重複率、錯誤揭露和越權存取告警,並按嚴重性與資產類型分層。指標異常應觸發抽樣複盤,而不是只追求更高關閉數量。

公開來源

同類題目

相關面試工具

用 Solve 整理系統設計回答

從澄清需求開始,展開規模、架構、元件選擇和取捨。

查看工具