従来のネットワークセキュリティは、境界防御(北南トラフィック)に重点を置いてきました。しかし、一度境界を突破されると、内部ネットワーク(東西トラフィック)での攻撃者の横移動(ラテラルムーブメント)を防ぐことが困難でした。この課題を解決するのがマイクロセグメンテーションです。
本記事では、マイクロセグメンテーションについて以下の内容を解説します。
- マイクロセグメンテーションの概念と従来のネットワークセグメンテーションとの違い
- フラットネットワークが抱えるセキュリティリスク
- セグメント設計の基本的な考え方とベストプラクティス
- SDN(ソフトウェア定義ネットワーク)との関係性
- ホストベースとネットワークベースの実装アプローチ
この記事を読むことで、マイクロセグメンテーションの必要性を理解し、ゼロトラスト時代に適したネットワーク分割の設計指針を策定できるようになります。
前提知識
本記事を理解するために、以下の知識があることを前提としています。
- ネットワークの基本概念(VLAN、サブネット、ファイアウォール)を理解している
- ゼロトラストの基本原則を把握している
- TCP/IPの基礎知識がある
ゼロトラストの基本原則については、ゼロトラストセキュリティ入門 - 基本原則と7つの柱を理解するを先に読むことをお勧めします。
期待される学習成果
本記事を読み終えると、以下のことができるようになります。
- マイクロセグメンテーションの定義と目的を説明できる
- フラットネットワークのリスクを具体的に説明できる
- 北南トラフィックと東西トラフィックの違いを理解できる
- セグメント設計の基本方針を策定できる
- 実装アプローチを比較し、適切な選択ができる
マイクロセグメンテーションとは何か
マイクロセグメンテーションは、ネットワークを細かいセグメント(区画)に分割し、各セグメントに対して個別のセキュリティポリシーを適用するネットワークセキュリティ手法です。ゼロトラストセキュリティの重要な構成要素であり、「最小権限の原則」をネットワークレベルで実現します。
従来のネットワークセグメンテーションとの違い
従来のネットワークセグメンテーションとマイクロセグメンテーションには、明確な違いがあります。
| 観点 | 従来のネットワークセグメンテーション | マイクロセグメンテーション |
|---|---|---|
| 粒度 | サブネット・VLAN単位 | ワークロード・アプリケーション単位 |
| 対象トラフィック | 北南トラフィック(境界通過) | 東西トラフィック(内部通信) |
| 実装方法 | 物理ファイアウォール・ルーター | ソフトウェア定義・エージェント |
| ポリシー管理 | IPアドレス・ポート基準 | アイデンティティ・属性基準 |
| 適応性 | 静的・手動変更が必要 | 動的・自動適応が可能 |
flowchart TB
subgraph traditional["従来のネットワークセグメンテーション"]
direction TB
fw1["ファイアウォール"]
subgraph vlan1["VLAN 10: Webサーバー"]
web1["Web1"]
web2["Web2"]
end
subgraph vlan2["VLAN 20: APサーバー"]
ap1["AP1"]
ap2["AP2"]
end
fw1 --> vlan1
fw1 --> vlan2
web1 <-.->|"制御なし"| web2
ap1 <-.->|"制御なし"| ap2
end
subgraph micro["マイクロセグメンテーション"]
direction TB
subgraph seg1["セグメント1"]
mweb1["Web1"]
end
subgraph seg2["セグメント2"]
mweb2["Web2"]
end
subgraph seg3["セグメント3"]
map1["AP1"]
end
subgraph seg4["セグメント4"]
map2["AP2"]
end
mweb1 -->|"許可されたトラフィックのみ"| map1
mweb2 -->|"許可されたトラフィックのみ"| map2
end北南トラフィックと東西トラフィック
ネットワークトラフィックは、その方向性によって2種類に分類されます。
北南トラフィック(North-South Traffic)
クライアントとサーバー間、つまり外部ネットワークと内部ネットワーク間を流れるトラフィックです。従来のファイアウォールは、この北南トラフィックの制御に特化していました。
東西トラフィック(East-West Traffic)
データセンターやクラウド環境内部で、ワークロード間を流れるトラフィックです。現代のデータセンターでは、東西トラフィックが全体の80%以上を占めるといわれています。
flowchart TB
subgraph external["外部ネットワーク"]
client["クライアント"]
end
subgraph perimeter["境界防御"]
fw["ファイアウォール"]
end
subgraph internal["内部ネットワーク"]
direction LR
web["Webサーバー"]
app["APサーバー"]
db["DBサーバー"]
web <-->|"東西トラフィック"| app
app <-->|"東西トラフィック"| db
end
client -->|"北南トラフィック"| fw
fw -->|"北南トラフィック"| webマイクロセグメンテーションは、この東西トラフィックを可視化し、制御することで、内部ネットワークにおけるセキュリティを大幅に強化します。
フラットネットワークのリスク
多くの組織では、内部ネットワークがフラット(平坦)な構成になっています。フラットネットワークでは、一度内部に侵入した攻撃者が自由に移動できるため、重大なセキュリティリスクを抱えています。
フラットネットワークとは
フラットネットワークとは、内部のすべてのシステムが同一のネットワークセグメントに配置され、相互に自由に通信できる状態を指します。管理が容易で通信の遅延が少ないというメリットがありますが、セキュリティ上は大きな脆弱性となります。
flowchart TB
subgraph flat["フラットネットワーク(同一セグメント)"]
direction TB
attacker["侵入した攻撃者"]
subgraph targets["すべてのシステムにアクセス可能"]
web["Webサーバー"]
app["APサーバー"]
db["DBサーバー"]
file["ファイルサーバー"]
ad["Active Directory"]
end
attacker -->|"自由に移動可能"| web
attacker -->|"自由に移動可能"| app
attacker -->|"自由に移動可能"| db
attacker -->|"自由に移動可能"| file
attacker -->|"自由に移動可能"| ad
endラテラルムーブメント(横移動)の脅威
ラテラルムーブメント(Lateral Movement)とは、攻撃者が最初に侵害したシステムを足がかりに、ネットワーク内を横方向に移動し、より価値の高いターゲットに到達する攻撃手法です。
フラットネットワークでは、以下の理由からラテラルムーブメントが容易になります。
- 無制限の内部通信: すべてのシステムが相互に通信可能
- 可視性の欠如: 東西トラフィックの監視が困難
- 検知の遅延: 正当な通信と攻撃の区別が困難
- 被害の拡大: 一度侵入されると全システムが危険にさらされる
実際のインシデント事例から学ぶ
多くの重大なセキュリティインシデントでは、ラテラルムーブメントが攻撃の成功に大きく寄与しています。
典型的な攻撃シナリオ
flowchart LR
subgraph phase1["フェーズ1: 初期侵入"]
phish["フィッシングメール"]
endpoint["従業員端末を侵害"]
end
subgraph phase2["フェーズ2: 横移動"]
recon["内部偵察"]
cred["認証情報の窃取"]
spread["他システムへ侵入"]
end
subgraph phase3["フェーズ3: 目標達成"]
target["重要データに到達"]
exfil["データ窃取/暗号化"]
end
phish --> endpoint
endpoint --> recon
recon --> cred
cred --> spread
spread --> target
target --> exfilこのような攻撃に対して、マイクロセグメンテーションは以下の効果を発揮します。
- 移動範囲の制限: 各セグメント間の通信を厳密に制御
- 異常検知の向上: 許可されていない通信を即座に検知
- 被害の局所化: 侵害されても影響範囲を最小限に抑制
- フォレンジックの支援: 通信ログによる追跡が容易
セグメント設計の考え方
効果的なマイクロセグメンテーションを実現するには、適切なセグメント設計が不可欠です。ここでは、設計の基本原則と具体的なアプローチを解説します。
セグメント設計の基本原則
マイクロセグメンテーションの設計では、以下の原則に従います。
原則1: デフォルト拒否(Deny by Default)
すべての通信をデフォルトで拒否し、明示的に許可されたトラフィックのみを通過させます。これにより、不要な通信経路を排除できます。
原則2: 最小権限アクセス(Least Privilege)
各ワークロードには、業務に必要な最小限の通信のみを許可します。
原則3: アプリケーション中心の設計
IPアドレスやポートではなく、アプリケーションの要件に基づいてポリシーを設計します。
セグメント分割の粒度
セグメントの分割粒度は、セキュリティ要件と運用負荷のバランスを考慮して決定します。
| 粒度レベル | 説明 | ユースケース |
|---|---|---|
| 環境別 | 本番/開発/テスト環境を分離 | 基本的な分離要件 |
| 層別 | Web/AP/DB層を分離 | 3層アーキテクチャ |
| アプリケーション別 | 各アプリケーションを分離 | マルチテナント環境 |
| ワークロード別 | 各VM/コンテナを分離 | 高セキュリティ要件 |
flowchart TB
subgraph env["環境別セグメンテーション"]
direction LR
prod["本番環境"]
dev["開発環境"]
test["テスト環境"]
end
subgraph tier["層別セグメンテーション(本番環境内)"]
direction TB
webtier["Webティア"]
apptier["APティア"]
dbtier["DBティア"]
webtier -->|"HTTP/HTTPS"| apptier
apptier -->|"TCP/3306"| dbtier
end
subgraph app["アプリケーション別セグメンテーション"]
direction LR
crm["CRMアプリ"]
erp["ERPアプリ"]
hr["HRアプリ"]
endポリシー設計のベストプラクティス
効果的なセグメンテーションポリシーを設計するためのベストプラクティスを紹介します。
1. 通信フローの可視化から始める
現状のトラフィックを把握せずにポリシーを設計すると、必要な通信を遮断してしまう可能性があります。まず、アプリケーション間の通信フローを可視化します。
2. ラベルベースのポリシーを採用する
IPアドレスベースのポリシーは、動的な環境では管理が困難です。環境(env=prod)、アプリケーション(app=crm)、役割(role=web)などのラベルを使用します。
3. 段階的に適用する
いきなり厳格なポリシーを適用するのではなく、以下の段階で進めます。
flowchart LR
subgraph stages["段階的導入アプローチ"]
s1["フェーズ1<br/>監視モード"]
s2["フェーズ2<br/>アラートモード"]
s3["フェーズ3<br/>一部適用"]
s4["フェーズ4<br/>完全適用"]
end
s1 -->|"通信パターン学習"| s2
s2 -->|"ポリシー調整"| s3
s3 -->|"段階的拡大"| s44. 例外管理プロセスを確立する
業務要件により一時的にポリシーを緩和する必要がある場合の承認プロセスを定義します。
SDN(ソフトウェア定義ネットワーク)との関係
マイクロセグメンテーションの実現には、SDN(Software-Defined Networking)技術が重要な役割を果たします。
SDNの基本概念
SDNは、ネットワークの制御プレーン(Control Plane)とデータプレーン(Data Plane)を分離し、ソフトウェアでネットワークを集中管理する技術です。
flowchart TB
subgraph control["制御プレーン"]
controller["SDNコントローラー"]
policy["ポリシーエンジン"]
controller <--> policy
end
subgraph data["データプレーン"]
direction LR
sw1["仮想スイッチ1"]
sw2["仮想スイッチ2"]
sw3["仮想スイッチ3"]
end
controller -->|"ポリシー配布"| sw1
controller -->|"ポリシー配布"| sw2
controller -->|"ポリシー配布"| sw3
sw1 <-->|"トラフィック"| sw2
sw2 <-->|"トラフィック"| sw3SDNがマイクロセグメンテーションを可能にする理由
従来の物理ネットワークでは、セグメント変更のたびにハードウェア設定の変更が必要でした。SDNにより、以下のことが可能になります。
1. 動的なポリシー適用
ワークロードの作成・変更・削除に応じて、リアルタイムでセキュリティポリシーを適用できます。
2. 論理的なセグメント作成
物理的なネットワーク構成に依存せず、論理的にセグメントを作成できます。
3. 一元管理
複数のデータセンターやクラウド環境にまたがるポリシーを一元的に管理できます。
主要なSDNソリューション
マイクロセグメンテーションを実現する主要なSDNソリューションには、以下があります。
| ソリューション | 提供元 | 特徴 |
|---|---|---|
| NSX | VMware (Broadcom) | vSphere環境との高い親和性 |
| Cisco ACI | Cisco | ハードウェアとの統合 |
| Azure NSG/ASG | Microsoft | Azureネイティブ |
| AWS Security Groups | Amazon | AWSネイティブ |
| Calico | Tigera | Kubernetes向け |
実装アプローチの比較
マイクロセグメンテーションの実装には、大きく分けて3つのアプローチがあります。それぞれの特徴と適用場面を理解することで、適切な選択が可能になります。
ホストベースアプローチ
ホストベースアプローチは、各ワークロード(VM、コンテナ、物理サーバー)にエージェントをインストールし、ホスト上のファイアウォール(iptables、Windows Firewall など)を制御する方式です。
メリット
- ワークロード単位の細かな制御が可能
- ネットワーク構成に依存しない
- ワークロードの移動に追従できる
デメリット
- エージェントのインストール・管理が必要
- レガシーシステムへの適用が困難な場合がある
- エージェント自体が攻撃対象になる可能性
主要な製品: Illumio、Guardicore(Akamai)、Carbon Black
ネットワークベースアプローチ
ネットワークベースアプローチは、仮想スイッチやSDNコントローラーでトラフィックを制御する方式です。
メリット
- エージェント不要でワークロードへの影響が少ない
- ネットワーク機器の機能を活用できる
- 高いパフォーマンス
デメリット
- 特定のハイパーバイザーやネットワーク機器に依存
- 暗号化されたトラフィックの検査が困難
- 物理サーバーへの適用が制限される場合がある
主要な製品: VMware NSX、Cisco ACI、Juniper Contrail
クラウドネイティブアプローチ
クラウドネイティブアプローチは、クラウドプロバイダーが提供するセキュリティ機能を活用する方式です。
メリット
- クラウド環境との高い親和性
- 追加コストが抑えられる
- クラウドプロバイダーによる運用・保守
デメリット
- クラウドプロバイダーごとに異なる実装
- オンプレミスとの統合が困難
- 機能の制約がある
主要な機能: AWS Security Groups、Azure NSG/ASG、GCP Firewall Rules
実装アプローチの選定基準
環境や要件に応じて、適切なアプローチを選定します。
flowchart TB
start["実装アプローチの選定"]
q1{"環境は?"}
q2{"エージェント<br/>導入可能?"}
q3{"SDN基盤<br/>あり?"}
host["ホストベース"]
network["ネットワークベース"]
cloud["クラウドネイティブ"]
hybrid["ハイブリッド"]
start --> q1
q1 -->|"クラウドのみ"| cloud
q1 -->|"オンプレミス/ハイブリッド"| q2
q2 -->|"可能"| host
q2 -->|"困難"| q3
q3 -->|"あり"| network
q3 -->|"なし"| hybrid多くの組織では、単一のアプローチではなく、複数のアプローチを組み合わせたハイブリッド実装が現実的な選択肢となります。
マイクロセグメンテーションの導入ステップ
マイクロセグメンテーションを組織に導入する際の実践的なステップを解説します。
ステップ1: 現状把握と可視化
まず、現在のネットワーク構成とトラフィックパターンを把握します。
flowchart LR
subgraph discovery["ディスカバリーフェーズ"]
asset["資産の洗い出し"]
flow["通信フロー分析"]
dep["依存関係マッピング"]
end
asset --> flow --> dep実施すべき作業は以下のとおりです。
- ネットワーク上のすべての資産(サーバー、アプリケーション)を特定
- アプリケーション間の通信フローを可視化
- 業務に必要な通信と不要な通信を識別
- 重要資産とその保護優先度を決定
ステップ2: セグメント設計
可視化した情報をもとに、セグメント設計を行います。
考慮すべき要素は以下のとおりです。
- 機密性: データの機密度に応じたセグメント分離
- 規制要件: PCI DSS、HIPAAなどの規制対象システムの分離
- 業務要件: 業務プロセスに必要な通信の確保
- 運用性: 管理可能な粒度の設定
ステップ3: ポリシー定義
各セグメント間の通信ポリシーを定義します。
|
|
ステップ4: 段階的な適用
定義したポリシーを段階的に適用します。
- 監視モード: ポリシーを適用せず、違反トラフィックを記録
- アラートモード: 違反時にアラートを発報(通信は許可)
- 一部ブロック: 低リスクなセグメントから適用開始
- 全面適用: 全セグメントにポリシーを適用
ステップ5: 継続的な運用と改善
マイクロセグメンテーションは導入して終わりではありません。継続的な運用と改善が必要です。
- 新規アプリケーション追加時のポリシー設定プロセス
- 定期的なポリシーレビューと不要ルールの削除
- セキュリティインシデント発生時のポリシー見直し
- クラウド移行などの環境変化への対応
Kubernetes環境でのマイクロセグメンテーション
コンテナとKubernetesの普及により、マイクロセグメンテーションの実装方法も進化しています。
Kubernetesにおける課題
Kubernetes環境では、以下の特性がマイクロセグメンテーションを複雑にします。
- 動的なIPアドレス: Podは短命でIPアドレスが頻繁に変わる
- 高速なスケーリング: 数秒でPodが起動・終了
- サービスメッシュ: サービス間通信の抽象化
- ネームスペース: 論理的な分離の概念
NetworkPolicyによる実装
Kubernetesは、NetworkPolicyリソースによるマイクロセグメンテーションをサポートしています。
|
|
このNetworkPolicyは以下の制御を行います。
tier: webラベルを持つPodに適用- Ingressは
ingress-nginxネームスペースからの8080/TCPのみ許可 - Egressは
tier: appのPodとmonitoringネームスペースのみ許可
CNI(Container Network Interface)プラグインの選択
NetworkPolicyを実際に適用するには、対応するCNIプラグインが必要です。
| CNIプラグイン | 特徴 |
|---|---|
| Calico | 高機能、BGPサポート、大規模環境向け |
| Cilium | eBPFベース、L7ポリシー対応 |
| Weave Net | シンプル、小規模環境向け |
| Antrea | VMware製、NSXとの統合 |
まとめ
マイクロセグメンテーションは、ゼロトラストセキュリティを実現するための重要な技術です。本記事で解説した内容を振り返ります。
マイクロセグメンテーションの本質
- ネットワークを細かいセグメントに分割し、東西トラフィックを制御する
- フラットネットワークのリスク(ラテラルムーブメント)を軽減する
- 「デフォルト拒否」と「最小権限」の原則に基づく
設計と実装のポイント
- 通信フローの可視化から始める
- ラベルベースのポリシー設計を採用する
- 段階的に導入し、継続的に改善する
実装アプローチの選択
- ホストベース: ワークロード単位の細かな制御
- ネットワークベース: SDN環境での効率的な実装
- クラウドネイティブ: クラウド環境との高い親和性
- 多くの場合、ハイブリッドアプローチが現実的
マイクロセグメンテーションの導入は、一朝一夕には完了しません。しかし、適切な計画と段階的な実装により、組織のセキュリティ態勢を大幅に強化できます。次のステップとして、VPNからZTNA(ゼロトラストネットワークアクセス)への移行ガイドで、ネットワークアクセスの近代化についても学んでいきましょう。