セキュリティとプライバシーに関するホワイトペーパー (概要)第10章
第 10 章: ロギング、モニタリング、およびインシデント対応
FileBolt の可観測性はゼロ知識の境界と一致する必要があります。システムは障害を特定し、攻撃を検出し、パフォーマンスを定量化する必要があります。 新たな機密データ漏洩ベクトルを導入することなく。この章では、ログに記録されるイベントを定義し、特定の情報の記録を明示的に禁止し、アラートと異常検出方法の概要を説明します。 セキュリティ インシデント対応 (IR) プロセスと外部コミュニケーションの原則について詳しく説明します。
10.0 概要
- SHOULD: ログとモニタリングは必要な運用イベントとセキュリティ イベントのみをカバーし、集計とサンプリングを利用して生の詳細の保持を最小限に抑えます。
- してはなりません: ログ、APM、またはエラー レポートには、CEK、URL フラグメント (
location.hash)、またはフラグメントを含む完全な URL。 - してはなりません: 平文コンテンツ、復号化されたチャンク、または導出可能なキー マテリアルを記録しないでください。
- MUST:封じ込め対策を講じて、列挙、ブルートフォース、トラフィックスパイク、異常なパターンの検出とアラートを確立します。
- MUST: インシデント対応プロセス (トリアージ、封じ込め、法医学、修復、レビュー、コミュニケーション) を維持します。
10.1 ログに記録されたイベント (ミニマリズム)
システム ログと監視は、「運用とセキュリティに必要な」一連のイベントのみを対象とし、可観測性システムへのユーザー コンテンツや機密の資格情報の取り込みを回避する必要があります。 イベントはライフサイクル、認証、ストレージ/ネットワーク、セキュリティ保護に分類されており、集約することをお勧めします。
10.1.1 転送ライフサイクル イベント
- 転送の作成 (transferId の生成)
- チャンクのアップロードが完了しました (平文ではなく暗号文レベルでログに記録されます)
- マニフェストの書き込み/更新
- 有効期限のクリーンアップ、ユーザーの削除/取り消し (クリーンアップ タスクのトリガーと完了を含む)
- ダウンロードの開始/完了 (暗号文のダウンロード レベルで測定)
10.1.2 認証および認可イベント
- セッショントークンの発行、検証の失敗(スコープの不一致、期限切れ、取り消しなど)
- 長期的なログイン トークン検証の失敗 (管理アクションが拒否されました)
- 不審なアクセス パターン: 401/403/404 の異常なスパイク
注: 「結果コードと理由コード」のみを記録します。 してはなりません レコードトークン平文、認可ヘッダー平文、または署名パラメータ平文。
10.1.3 システムの健全性とパフォーマンスのメトリクス
- リクエストのレイテンシー (p50/p95/p99)、エラー率、スループット
- オブジェクトストレージの読み取り/書き込み失敗率、オリジンフェッチ失敗率、再試行回数
- エッジノードの異常、キューのバックログ、バックグラウンドのクリーンアップタスクの成功率
- 帯域幅とトラフィックの傾向 (合計ディメンション)
10.1.4 セキュリティ保護イベント
- レート制限トリガー、WAF/ファイアウォール ルールのヒット
- 疑わしい列挙/ブルートフォース動作のしきい値トリガー
- 異常な同時実行性とトラフィック パターン (同じソースからの高い同時実行性、異常なリソース ヒート)
10.1.5 集約とサンプリング
- SHOULD: カウントとレイテンシ分位数を分/時間ごとに集計して、粒度の高いログを削減します。
- SHOULD: 成功したリクエストを高頻度でサンプルし、エラーと異常なパスについてのみ必要な詳細を保持します。
- SHOULD: 監査とマシン分析を容易にするために、異常なイベントの安定した分類フィールド (eventType、reasonCode など) を保持します。
10.2 禁止されている情報 (CEK、フラグメント、資格情報)
ゼロナレッジへの取り組みを維持するための鍵は、すべての可観測性システムにわたって「機密データの禁止」ポリシーを厳密に施行することです。 このポリシーは、サーバー ログ、APM、エラー報告、サードパーティ監視、クライアント ログ、ブラウザ コンソール出力をカバーする必要があります。
10.2.1 サーバー側で記録してはなりません
- CEK (コンテンツ暗号化キー) および派生可能なマテリアル
- URL フラグメント (
#...),location.hash、およびフラグメントを含む完全な URL - 平文コンテンツ: ファイルの平文、プレビュー コンテンツ、復号化されたチャンク、または平文の概要
- 機密資格情報の平文: セッショントークン、長期トークン、認証ヘッダー平文、署名付き URL の署名フィールド平文
デバッグのために URL のログ記録が必要な場合: MUST サニタイズ (フラグメントの削除、機密性の高いクエリの編集または削除) を行い、これをコード レベルで強制します (手動の規則に依存しません)。
10.2.2 クライアント側で記録してはなりません
- 印刷しないでください
location.href運用環境では (フラグメントが含まれる場合があります) - フラグメント、CEK、または noncePrefix を含む URL をエラー レポートに含めないでください
- デバッグ ログと開発ツールの出力はデフォルトで無効にするか最小化する必要があります
SHOULD: 出力/レポートの前に URL サニタイズと機密フィールドのフィルタリングを内部で実行する、フロントエンド上の統合ログ/レポート機能をカプセル化します。
10.3 モニタリングメトリクスとアラート (可用性、パフォーマンス、セキュリティ)
10.3.1 可用性とパフォーマンスのアラート
- エラー率アラート: 5xx でのスパイク、4xx での異常な上昇 (認証失敗と悪用を区別)
- レイテンシーアラート: p95/p99 しきい値違反、リージョンオリジンフェッチ異常
- ストレージ アラート: オブジェクト ストレージの書き込み失敗、読み取りタイムアウトの増加
- クリーンアップ タスク アラート: 期限切れのクリーンアップ バックログ、過剰な削除タスクの再試行
10.3.2 セキュリティ警告
- レートリミットヒット率の異常上昇
- 同じソースからの高頻度の 401/403/404、列挙/ブルート フォースの疑いあり
- 異常な単一リソースのダウンロード帯域幅/同時実行、トラフィックのフラッディングまたはホットリンクの疑い
- 重要なポリシーの変更 (WAF ルール、CSP/ヘッダーの変更など) は、変更監査とアラートをトリガーする必要があります (該当する場合)
10.3.3 アラートガバナンス
- SHOULD: ローテーション/エスカレーション パスを使用してアラート (P0/P1/P2) を分類します。
- SHOULD: デバウンス/ウィンドウ集計をノイズの多いメトリクスに適用して、アラート疲労を回避します。
- SHOULD: 機密データを除く、最小限の診断情報 (理由コード、傾向グラフ、影響を受ける地域/ルート) を各アラートに添付します。
10.4 異常の検出と悪用の特定
ファイル転送サービスは当然、列挙、ブルート フォース、トラフィック フラッディング、リソース乱用のリスクに直面します。このセクションでは、検出可能な信号と応答原理について概説します。 特定のしきい値と戦略は、ビジネス規模と誤検知コストに基づいて動的に調整する必要があります。
10.4.1 一般的な異常パターン
- Enumeration:短時間での transferId / リソース パスの大規模なプローブ、404/401/403 の急増。
- ブルートフォース: ショート コード/パスワード/トークンの試行頻度が高く、異常な失敗率曲線。
- トラフィックの洪水: 単一リソースの異常な帯域幅、同じソースからの大量の同時接続、繰り返しのダウンロード。
- プロトコルの異常:不合理なチャンク順序、重複アップロード、頻繁な中断/再試行、異常な UA パターン。
10.4.2 緩和戦略 (原則)
- SHOULD: レート制限、段階的禁止、チャレンジ メカニズム (該当する場合)、ASN/リージョン/フィンガープリントに基づく動的ポリシー。
- SHOULD: 誤検知の影響を受けやすいパスに対しては、より穏やかな戦略 (遅延、セグメント化されたスロットルなど) を採用します (通常のユーザーは頻繁にダウンロードする可能性があります)。
- MUST: 実行されたアクションの監査可能なトリガー (理由コード、しきい値カテゴリ) を保持し、サポート チャネルを提供します (該当する場合)。
10.5 インシデント対応プロセス
FileBolt は、迅速な損害制御、レビュー可能性、透明性のあるコミュニケーションを確保するために、セキュリティ インシデント対応 (IR) プロセスを確立しなければなりません。 ゼロナレッジ コミットメントに影響を与える可能性のあるイベント (XSS、サプライ チェーン インジェクション、フラグメントのログ漏洩など) は、最高の優先度として扱われる必要があります。
- Triage: 影響範囲と重大度 (P0/P1/P2 など) によって分類し、エスカレーション パスと所有者を定義します。
- Containment:リスク源を迅速に隔離します(攻撃源の禁止、機能の一時的な無効化、ポリシーの強化、キー/トークンのローテーション)。
- フォレンジックとレビュー: 最小限のログとメトリクスに基づいてタイムラインを再構築します。意思決定、影響、修復、改善を文書化します。
- 修復と検証: 必要に応じて、パッチ、回帰テスト、セキュリティ検証、サードパーティ スキャンの再テストを展開します。
- コミュニケーションと開示: 攻撃対象領域を拡大することなく、ユーザーおよび一般の人々に透過的に説明します。必要に応じて、ステータス ページのインシデント レポートを公開します。
外部とのコミュニケーションでは、鍵素材または平文が漏洩する可能性があるかどうか、影響範囲、講じられた措置、およびユーザーが講じる必要がある措置 (存在する場合) を明確にする必要があります。
10.6 データの保持とアクセス制御
ログと監視データ自体は機密資産です。漏洩と悪用のリスクを最小限に抑えるために、最短の有用な保存期間と最小権限のアクセス制御を適用する必要があります。
- SHOULD: ログの種類ごとに異なる保存期間を設定します (エラーとセキュリティ イベントの場合は少し長く、成功したリクエストの詳細の場合は保存期間が短くなるか保存されません)。
- SHOULD: ログおよび監視プラットフォームに最小特権アクセス (RBAC) を使用し、アクセス監査を保持します。
- SHOULD: ログのエクスポート/共有時にサニタイズと最小化を実行します (機密の資格情報と PII の持ち運びを禁止します)。
10.7 サードパーティの監視と統合の原則
サードパーティの APM/エラー追跡ツールは、デフォルトで URL、ヘッダー、フォーム フィールド、およびデバイス情報を収集する場合があります。 サードパーティの監視を使用する場合は、その収集の境界がゼロナレッジのコミットメントに違反していないことを確認してください。
- MUST: ダウンロード/復号化ページでサードパーティのスクリプトをロードしないでください (第 9 章と一致します)。
- MUST: サードパーティのコレクションを明示的に構成します。フラグメントなし、機密ヘッダーのプレーンテキストなし、プレーンテキストのコンテンツなし。
- SHOULD: レポート用の URL サニタイズを統合します。機密フィールドを含む可能性のあるペイロードを禁止または強力にマスクします。
- SHOULD: エンドポイントの収集面を削減するために、クライアント側の詳細な追跡よりもサーバー側で集約されたメトリクスを優先します。
10.8 関連クレーム ID (予約済み)
この章では、「機密データのログ、アラート、および IR、サードパーティ監視の制約の禁止」について説明します。 対応するクレーム ID が 付録: クレーム ID のマスター リスト 唯一の信頼できる情報源として。