代表的な面接トピック

システムデザイン面接:協調的な脆弱性開示(CVD)プラットフォームをどのように設計しますか?

システム設計難しい
Offer.cc 編集チーム公開日 更新日

質問

あるSaaS企業が、外部の研究者からの脆弱性報告を受け付け、修正対応と開示のプロセスを通じて社内チーム、ベンダー、報告者を協調させたいと考えています。機密性の高い証拠や報告者の身元を保護しつつ、重複作業、不正アクセス、開示ミスを防ぐために、このプラットフォームをどのように設計しますか?

プロンプトと適切なコンテキスト

これはセキュリティのシステムデザインに関する質問です。プラットフォームは外部からの報告を受信し、スコープの確認、証拠の隔離、重複の排除、リスクのトリアージ、担当のルーティング、修正対応の検証、報告者とのコミュニケーション、そしてアドバイザリの公開を行います。エンジニアは組織の脆弱性開示ポリシーを実行可能なステートマシンへと変換する必要があります。ポリシー、法的境界、契約上の境界は組織側が定義する入力値であり、システムは証拠、権限、タイムラインを提供します。

面接官が評価するポイント

  • 研究者、プラットフォーム、製品チーム、ベンダー、公開アドバイザリの間で適切な信頼境界線を引けるかどうか。
  • ライフサイクル、冪等性、重複排除、認可、監査が検証可能なデータフローとして表現されているかどうか。
  • リスク、可用性、機密性、修正速度の間のトレードオフを説明できるかどうか。
  • CVSSなどのスコアを入力値として扱い、露出度、悪用可能性、ビジネスへの影響度と組み合わせて評価できるかどうか。

最初に確認すべき明確化事項

報告者が匿名、登録制、招待制のいずれであるか、添付ファイルやAPI経由の送信が許可されているかを確認します。資産のスコープ、セーフハーバー条項、禁止されているテスト手法、不正利用への対処、報告のボリューム、テナント分離、地域およびデータ保持の要件、ベンダーやCERTとの協調、重要度および修正目標、CVE/CNAの管轄、希望する開示ポリシーを明確にします。規模が明示されていない場合は、設定する前提条件を述べてください。

30秒の回答フレームワーク

5つのステージで説明します。「受付と隔離」、「正規化と重複排除」、「トリアージとルーティング」、「修正対応と協調」、そして「開示と監査」です。パブリックゲートウェイは制限された形式のみを受け入れ、添付ファイルは隔離環境に入り、PoCが本番環境で実行されることは決してありません。その後、冪等性キーを持つ正規化された報告イベントストリームが、リスクベースのトリアージと担当割り当てをサポートします。修正対応、ベンダーとの通信、報告者へのアップデートには、制限された作業キューを使用します。公開アドバイザリには承認と修正の証拠が必要であり、すべてのアクションで最小権限の監査ログが生成されます。

ステップごとの詳細な回答

1. 信頼境界を引き、受付を保護する

公開フォーム、専用メールボックス、APIは、レート制限、CAPTCHA、コンテンツタイプのホワイトリスト、悪意のある添付ファイルの検査を備えたゲートウェイに入ります。生の証拠データは暗号化された隔離ストレージに格納され、解析は本番ネットワークから隔離された環境で行われます。必要な静的検査のみが許可され、研究者のコードやリクエストが本番環境に対して直接再生されることはありません。報告者の個人データは個別に暗号化され、ケースやロールごとにアクセス権が付与されます。

2. カノニカルモデルとステートマシンを使用する

各報告は、安定した reportId、ソース、影響を受ける資産とバージョン、証拠への参照、機密レベル、重要度、担当者、関連する報告、タイムラインを保持する必要があります。冪等性キーを使用することで、リトライ時に重複したタスクが作成されるのを防ぎ、イベントの追加のみが行われます。状態には receivedtriageneeds-infoacceptedrejectedduplicatemitigatedfixedcoordinationdisclosedclosed などが含まれます。状態遷移は履歴を上書きするのではなく、追記専用(append-only)の監査ログに記録されます。

3. トリアージ、重複排除、担当のルーティング

最初にスコープを確認し、次に影響を受ける資産、バージョン、悪用可能性、露出度、データへの影響、ビジネス上の重要度によって優先順位を付けます。CVSSは重要度を表すことができますが、環境固有のリスク判断を代替することはできません。フィンガープリント、資産のバージョン、証拠の類似性から重複候補を生成し、アナリストが関係性を確認して報告者のクレジット(帰属)を保護します。個別の承認と期限超過時のエスカレーションを備えた上で、製品チーム、インフラチーム、ベンダー、または外部の調整機関にルーティングします。

4. 修正対応、ベンダーとの協調、開示

冪等なリトライ機能を持つキューと、外部通知用のアウトボックスを通じて修正対応を配信します。すべてのパッチや緩和策は、テスト結果およびロールバックポイントにリンクされます。ケースレベルの認可により、報告者への進捗更新や追加資料の要求を制御します。開示のタイミングは、組織のポリシー、ベンダーの対応、リスクによって異なります。GSAの公開ポリシーは、2営業日以内の受領確認、最大90日間の機密保持、および修正目標を設定している一例です。これは特定の組織のものであり、普遍的な法的期限ではありません。このような日付はポリシーの入力値として扱い、期限が近づくにつれてエスカレーションを行います。

5. システムの保護、復旧、可観測性の確保

KMSで管理された鍵と転送中の暗号化を使用し、ケース、テナント、ロールごとに最小権限を適用して、報告者の身元情報を技術的な証拠とは別個に保存します。キューのコンシューマは冪等でなければならず、処理に失敗したメッセージは隔離キュー(DLQ等)に送られます。報告データベース、証拠ストレージ、監査ログのバックアップと復旧訓練を個別に実施します。受領確認のレイテンシ、トリアージSLA、修正までの時間、滞留報告、重複率、開示期限の超過、添付ファイルのブロック、不正アクセスアラートを監視します。NIST SP 800-216は、脆弱性報告の受領、処理、追跡、調整、伝達をフレームワーク要素として扱っており、網羅性の確認に有用です。

高品質な回答例

まず、スコープ、セーフハーバー、報告ボリューム、機密データ、ベンダー協調、開示ポリシーを明確にします。パブリックゲートウェイが報告を受け付け、生の証拠を隔離ストレージに保管し、スキャンや分析は本番環境から分離して維持します。正規化サービスは冪等な報告イベントを作成し、資産、影響度、悪用可能性を用いてトリアージ、重複排除、ルーティングを行います。修正キューはパッチ、緩和策、テスト、ロールバックの証拠をリンクさせ、報告者とのコミュニケーションやアドバイザリにはケースレベルの認可と承認を使用します。ポリシーサービスは、特定組織の90日間の例を普遍的なルールとしてハードコーディングすることなく、受領確認、エスカレーション、開示の期限を提供します。暗号化、追記専用の監査、テナント分離、リトライ、復旧訓練、期限超過メトリクスにより、説明責任のあるワークフローを実現します。

よくある間違い

  • ステートマシン、冪等性、重複排除を考慮せず、単なる受信トレイ(Inbox)として設計してしまう。
  • 研究者のPoCを本番環境で再現したり、添付ファイルを同じ信頼ドメインに配置したりする。
  • すべてのサポート担当者やエンジニアリングユーザーに、報告者の身元や生の証拠へのアクセス権を与えてしまう。
  • 露出度、悪用可能性、ビジネス影響度を考慮せず、CVSSのみに基づいて順位付けを行う。
  • ポリシーやベンダーの違いを無視し、一律90日を普遍的な法的期限として扱ってしまう。
  • 修正の証拠、開示承認、ロールバックポイント、期限超過エスカレーション、復旧訓練を省略してしまう。

フォローアップの質問と回答

スパムや不正利用を抑えつつ、匿名の報告を受け付けるにはどうすればよいですか?

構造化フィールド、レート制限、重複フィンガープリント、人間によるトリアージを備えた匿名送信を許可し、リスクのある添付ファイルは隔離環境に送ります。匿名送信であってもスコープのチェックは省略されず、システムはチャネル、時刻、証拠のハッシュを記録し続けます。

報告者の身元が漏洩した場合はどうしますか?

身元情報は技術的な証拠とは別に保存し、短期間有効なケース認可を使用し、すべての閲覧履歴を監査します。通知、エクスポート、アドバイザリのテンプレートはデフォルトで情報をマスキング(redaction)し、明示的に権限を与えられたコーディネーターのみが実際の連絡先を紐付けられるようにします。

開示期限までにベンダーから応答がない場合はどうしますか?

ポリシーに従って、ベンダーの責任者、法務チーム、外部調整機関に早期にエスカレーションし、各通知とリスク判断を記録します。どのような期間延長であっても、責任者、理由、承認、改訂されたコミュニケーションプランが必要です。

2つの報告が重複している場合、クレジット(発見者の貢献)をどのように保護しますか?

類似度に基づいて候補を生成し、アナリストが根本原因、資産のバージョン、証拠を確認します。後から届いた報告を削除するのではなく、プライマリケースに統合した上で、双方のタイムライン、報告者の帰属(アトリビューション)、報奨金の決定を保持します。

プラットフォームが対応を改善していることをどのように示しますか?

重要度や資産タイプごとに、受領確認のレイテンシ、トリアージおよび修正にかかる時間、期限超過率、重複率、誤った開示、不正アクセスのアラートを追跡します。クローズされたケース数を単に増やすことを求めるのではなく、異常値に対してサンプリングレビューを実施すべきです。

公開情報ソース

関連する質問

関連面接ツール

システム設計の回答には「回答する」を使用

まず要件を明確にし、スケール、アーキテクチャ、コンポーネント選定、トレードオフの順に進めます。

ツールを見る