# 影響範囲の制御
## 定義
影響範囲の制御(controlling the blast radius)とは、システムを明確な境界に沿って区画化(compartmentalize)し、攻撃や障害が波及する範囲を特定の区画に閉じ込める設計原則である。単一ネットワークにすべての資源を置く構成では、1つの認証情報の侵害がネットワーク上の全デバイスへの到達を許してしまうのに対し、区画化されたシステムでは1区画のセキュリティ侵害や負荷過多が他の区画を危険にさらさない。船舶の隔壁が浸水を1区画に留めて沈没を防ぐのと同じ発想であり、区画は攻撃者・偶発的障害の両方を制約する。Google は役割(role)・場所(location)・時間(time)という3つの独立した軸で区画化を行う。(Source: [[@2020__OReilly__Building Secure and Reliable Systems - Chapter 8 Design for Resilience]] ch.8 §Controlling the Blast Radius)
- **役割分離(role separation)**: ジョブはサービスアカウントのような役割の認証情報を与えられて他のマイクロサービスに認証する。1つのジョブが侵害されると、その役割になりすまして同じ役割を持つ他のジョブが扱うデータ全体へアクセスできてしまうため、異なるデータクラスにアクセスするマイクロサービスは異なる役割で実行すべきである。(Source: ch.8 §Role Separation)
- **場所分離(location separation)**: データセンターやクラウドリージョンといった物理的な場所を境界として区画化する。物理的な場所は自然災害・光ファイバー切断・停電・攻撃者の物理的接近可能範囲といった多くの有害事象が特定の地域に閉じている性質と対応するため、自然な区画境界になる。証明書を全サーバで共有せずデータセンターごとに配布すれば、1拠点の物理的侵害時にその拠点だけを切り離して対応できる。(Source: ch.8 §Location Separation)
- **時間分離(time separation)**: 鍵・クレデンシャルを定期的にローテーション・失効させることで、攻撃者が窃取した秘密情報を使い続けられる期間を制限する。ローテーションを検知できなくても、通常のセキュリティ保守作業(脆弱性パッチ等)が偶然に攻撃者の侵入経路を塞ぐ効果を持つ。(Source: ch.8 §Time Separation)
区画化の実現には、相互認証された RPC で通信当事者の身元を確認し、位置情報などの追加属性を証明書に含めて他区画からの要求を判別できるようにする必要がある。区画は大きすぎると分離の効果が薄く、小さすぎると管理コストが RPC クライアント数に比例して増大するため、インシデント管理・運用チームと相談のうえで区画の粒度(RPC メソッド単位が1つの妥当なバランス)を決める必要がある。(Source: ch.8 §Controlling the Blast Radius)
## 信頼分離とその限界
場所に基づく信頼(location-based trust)には限界がある。Google は自社のコーポレートネットワークで場所そのものには信頼を持たせず、[[BeyondCorp]] のゼロトラスト方式のもとで個々のマシンに発行された証明書と構成情報の申告に基づいてワークステーションを信頼する。データセンター内のサーバについても物理的な場所だけで信頼を確立しない方針を取る。あるレッドチーム演習では、ラックの上に無線デバイスを設置してオープンポートに接続したところ、演習後に片付けに戻った際、几帳面なデータセンター技術者がそのデバイスの配線を「正規のものだろう」という前提で整然と結束バンドで固定していたという逸話が、物理的に安全な区域内であっても場所だけに信頼を帰属させることの難しさを示す。(Source: ch.8 §Limitations of Location-Based Trust)
信頼の分離が確立された後は、保存データの ACL に場所制約を拡張でき、データの保存場所(where)とアクセス可能な場所(who)を分離できる。暗号鍵についても、ある場所のルート鍵を正しい場所にのみ配置する鍵配布システムによって、暗号化・鍵ラッピングを場所に分離できる。グローバルな鍵ツリーからローカルな鍵ツリーへの移行は、ツリー上のすべての親鍵がローカル化されるまで、葉や枝単位では完全な分離にならないため段階的に行う必要がある。(Source: ch.8 §Isolation of Trust, §Isolation of Confidentiality)
## 横断的知見
(本概念は今回の ingest で初めて作成された。複数ソースの突き合わせによる横断的知見は今後の ingest で蓄積する。)
## 未解決の問い
- 役割・場所・時間という3軸の分離は独立に運用できるとされるが、3軸を同時に厳格化した場合の運用コストの複合効果(区画数が軸の積で増大する)はどう見積もるべきか。
- 場所に基づく信頼を排除する BeyondCorp 型の設計は、データセンター間ネットワークのように物理アクセスの困難性が現実の防御層として機能してきた環境にどこまで一般化できるか。レッドチームの逸話は例外事例であり、頻度・費用対効果の定量的評価は本章には無い。
- グローバル鍵ツリーからローカル鍵ツリーへの移行が完了するまでの過渡期間、部分的にローカル化された枝は場所分離の保証をどこまで提供できるか。
## 関連
- ソース: [[@2020__OReilly__Building Secure and Reliable Systems - Chapter 8 Design for Resilience]]
- 概念: [[ブラスト半径]](実験・運用時の影響範囲推定と局所化) / [[多層防御]] / [[レジリエンス]] / [[ゼロトラスト]]
- 実体: [[BeyondCorp]]
## 出典
- Heather Adkins et al. (eds.), *Building Secure and Reliable Systems*, O'Reilly Media, 2020, Chapter 8.