ポリシーリスクを可視化。自然な言葉でポリシーに関する疑問を解決します。 デモを申し込む →
Published:
適用前にマイクロセグメンテーションポリシーを検証する方法
by FireMon
マイクロセグメンテーションは、定義するのは簡単ですが、実装するのは困難です。文書上、その目標は明快です。
- 必要なものだけにアクセスを制限する
- 不要なラテラルムーブメントを排除する
- ワークロード全体で最小権限を適用する
しかし、ポリシー衛生が欠如していると、ルールが実態を反映しないことがあります。実際には、ほとんどの環境は次のような状態にあります。
- 長年にわたる漸進的な変更の積み重ねで構築されている
- 文書化されていない依存関係が多数存在する
- 1つの変更が事業全体を停止させかねない、脆弱で相互に絡み合った網の目となっている
このため、多くのセグメンテーションプロジェクトは停滞し、あるいは完全に失敗します。モデルが間違っているからではありません。検証前にポリシーが適用されるからです。本記事では、本番環境を停止させることなくリスクを低減できるよう、適用前にマイクロセグメンテーションポリシーを検証する方法を解説します。
根本的な問題:検証なき適用
ほとんどのセグメンテーションの取り組みは、次のパターンをたどります。1. セグメンテーションの意図を定義する 2. 意図をルールに変換する 3. 適用を展開する 4. 発生した障害をトラブルシューティングする 問題はステップ4です。検証を行わずにセグメンテーションを適用すると、次のことが起こります。
- 正当な通信が遮断される
- 隠れた依存関係が表面化する
- チームが圧力を受けて変更を元に戻す
結果は予測どおりです。セグメンテーションは運用上のものではなく、机上のものになってしまいます。
「検証」が実際に意味するもの
検証とはルールをレビューすることではありません。検証とは、次の問いに答えることです。このセグメンテーションポリシーを適用した場合、どの通信が引き続き機能し、どの通信が機能しなくなるのか。 そのためには、以下をシミュレーションする必要があります。
- 実際のアクセス経路
- デバイス間のルールの相互作用
- システム間の依存関係
ステップ1:現在のアクセスのモデルを構築する
セグメンテーションを定義する前に、現在実際に何が許可されているのかを把握する必要があります。これには設定のレビュー以上のものが求められます。以下の要素から構築されたモデルが必要です。
- ベンダーをまたぐファイアウォールルール
- ネットワークトポロジーとルーティング
- オブジェクトグループとアドレスマッピング
- 入手可能な場合はトラフィックの挙動
アウトプット
実効アクセス経路の一覧:App_Server → DB_Server (1433) App_Server → Logging_Service (514) App_Server → Backup_System (445) これがベースラインとなります。
ステップ2:過剰に許可されたアクセスを特定する
ほとんどのブラウンフィールド環境には、次のものが含まれています。
- 広範な「any 許可」ルール
- 恒久化してしまった一時的な例外
- 重複するオブジェクトグループ
- 冗長なアクセス経路
セグメンテーションは、存在すべきでないアクセスがどこに存在するかを特定することから始まります。
例
App_Server → DB_Server (1433) ← 必要 App_Server → Backup_System (445) ← 不要 App_Server → Reporting_DB (1433) ← 意図しないもの これが削減目標を定義します。
ステップ3:セグメンテーションの意図を定義する
セグメンテーションポリシーは、次のように定義すべきです。
- 明示的に許可されたフロー
- デフォルト拒否の姿勢
- 環境固有の制約
意図の例
許可:App_Server → DB_Server (1433) 拒否:App_Server → その他すべての内部システム これが望ましい状態です。
ステップ4:意図をポリシー変更に変換する
意図は次のものに変換する必要があります。
- ファイアウォールルール
- セキュリティグループの更新
- マイクロセグメンテーションプラットフォームのポリシー
これにより、ポリシーの提案状態が作成されます。この時点で、多くのチームは展開に進みます。しかし、本来ここで検証を行う必要があります。
ステップ5:セグメンテーションポリシーをシミュレーションする
提案されたセグメンテーションルールは、実際に適用することなく環境のモデル上で適用されます。このシミュレーションでは、次の処理が行われます。
- すべてのアクセスパスを再計算する
- ルールの順序と優先度を適用する
- デバイスおよびレイヤー間の相互作用を評価する
システムは次の問いに答えます。このセグメンテーションを適用した場合、どの接続が残るのか。
ステップ6:破損とギャップを特定する
検証によって、2つの重要なカテゴリが明らかになります。
1. 遮断される正当なフロー
これらは、ブロックされてしまう必要な接続です。 例 App_Server → Logging_Service (514) ← 必要だが含まれていない これらが示すのは次のとおりです。
- ポリシー定義の欠落
- 隠れた依存関係
2. 残存する意図しないアクセス
これらは、セグメンテーションの意図に反して開いたままとなるフローです。 例 App_Server → Backup_System (445) ← 代替パス経由で依然として許可 これらが示すのは次のとおりです。
- 不完全な適用
- デバイスをまたぐ複数パスによる露出
ステップ7:適用前にポリシーを調整する
シミュレーション結果に基づいて、次を実施します。
- 必要な許可ルールを追加する
- 意図しないアクセスパスを削除する
- ルールの範囲と順序を調整する
このプロセスは、実際のアクセスが意図したアクセスと一致するまで繰り返されます。
ステップ8:適用レイヤー全体で検証する
ハイブリッド環境では、セグメンテーションは次の範囲に及びます。
- ネットワークファイアウォール
- クラウドのセキュリティグループ
- ホストベースのマイクロセグメンテーション
検証では、次の点を確認する必要があります。
- レイヤー間でポリシーが一貫していること
- 適用ポイント間にギャップがないこと
- システム間で競合するルールがないこと
ステップ9:確信を持って適用する
適用は、検証を終えた後にのみ行うべきです。この段階では、次の状態になっています。
- 想定されるアクセスが把握されている
- 破損への対応が完了している
- リスクが最小化されている
展開は実験ではなく、実行になります。
実際の運用ではどうなるか
検証がない場合:
- セグメンテーションが適用される
- アプリケーションが停止する
- チームは欠落しているルールの特定に追われる
検証がある場合:
- セグメンテーションがシミュレーションされる
- ギャップが早期に特定される
- 混乱なく適用が行われる
これがZero Trustにとって重要な理由
Zero Trustは次の要素に依存します。
- 精密なセグメンテーション
- 継続的な適用
- 設計段階からの最小限のアクセス
しかし、次の場合にZero Trustは機能しません。
- ポリシーの意図が実際の適用と一致していない
- 依存関係が十分に把握されていない
- 変更によって意図しないアクセスが生じる
検証により、設計した内容がそのまま適用されることが保証されます。
FireMon の役割
FireMon は、次の機能によってこの検証を可能にします。
- ファイアウォールおよび各環境を横断したポリシーのモデル化
- 適用前におけるセグメンテーション変更のシミュレーション
- 意図しないアクセスおよび破損した依存関係の特定
- 適用レイヤー間の一貫性の検証
FireMon は、セグメンテーションの意図と適用システムとの間に位置するガバナンスレイヤーとして機能します。
まとめ
多くのセグメンテーションプロジェクトは、戦略が誤っているために失敗するのではありません。理解に先立って適用が行われるために失敗します。検証は、マイクロセグメンテーションをリスクから管理されたプロセスへと変えます。
よくあるご質問
マイクロセグメンテーションポリシー検証とは、提案されたセグメンテーションルールを、ネットワーク全体の実効アクセスに関するポリシーベースのモデルに対してシミュレーションし、適用が行われる前に、どのトラフィックが引き続き機能し、どのトラフィックが遮断されるかを判断するプロセスです。
検証されていないセグメンテーションルールを展開すると、正当なトラフィックが遮断され、隠れた依存関係が表面化し、変更の切り戻しを余儀なくされる可能性があります。その結果、セグメンテーションは運用上の統制ではなく机上の取り組みにとどまってしまうため、組織は適用前にマイクロセグメンテーションポリシーを検証する必要があります。
マイクロセグメンテーションポリシー検証は、提案されたルールを実際のアクセスパスに対してシミュレーションし、ログ収集やバックアップの接続の欠落など、遮断される正当なフローを、適用が本番システムに影響を及ぼす前に特定することで、アプリケーション障害を防止します。
マイクロセグメンテーションポリシー検証の最初のステップは、環境内のすべてのベンダーにわたるファイアウォールルール、ネットワークトポロジー、オブジェクトグループ、ならびにポリシー、トポロジー、構成データから、実効アクセスパスをすべてマッピングし、現在のアクセス状況のベースラインモデルを構築することです。
シミュレーションは、提案されたセグメンテーションルールを実際に適用することなく環境モデルに適用し、提案されたルールが既存のアクセスパスに与える影響の評価、ルールの順序と優先順位の評価、デバイス間の相互作用の分析を行うことで、適用後にどの通信が残るかを正確に明らかにします。
マイクロセグメンテーションポリシー検証は、セグメンテーションの意図が実際の適用と一致していること、依存関係が漏れなくマッピングされていること、そしてポリシー変更が意図しないアクセスパスを生じさせることなく設計段階から最小限のアクセスを強制することを確実にし、Zero Trust を支えます。