クラウドコンピューティングが必要ですか? 今すぐ始める

実用的観点からの(マイクロ)セグメンテーション

Stiv Kupchik

執筆者

Stiv Kupchik

July 13, 2023

Stiv Kupchik

執筆者

Stiv Kupchik

Stiv Kupchik は、Akamai の Security Researcher Team Lead です。彼のリサーチプロジェクトは、OS 内部、脆弱性調査、マルウェア分析を軸に進んでいます。Black Hat、Hexacon、44CON などの会議で研究発表を行っています。サイバーセキュリティの専門家であるだけでなく、物理学でも理学士を有しています。

マイクロセグメンテーションは、それだけでは機能しません。見えないものは守れないからです。適切なセグメンテーションは、トラフィックを整理して取りまとめるネットワーク可視性がある場合のみ有効です。

はじめに

ネットワークセグメンテーションの実行は困難です。いいえ、そうではありません。 ネットワークセグメンテーション は簡単に実行できます。ただし、エンドユーザーやネットワークの運用性に影響を与えずにネットワークをセグメント化しつつセキュリティを確保することは、ほぼ不可能です。

私たち(Akamai Security Intelligence Group のリサーチャー)は、 ラテラルムーブメント(横方向の移動) の緩和戦略としてネットワークセグメンテーションに言及することが多々あり、 Patch Tuesday での助言、独自のマルウェアレポート、脆弱性に関する忠告、その他の調査資料で取り上げています。 

この記事では、実用的で具体的なセグメンテーション戦略と、防御者にとっての現実的なベストプラクティスを紹介します。私たちの目標は、あくまでもネットワークの運用性やエンドユーザー体験に大きな影響を与えることなくセキュリティ上の大きなメリットをもたらす実行可能なセグメンテーション戦略について論じることです。

適切なセグメンテーションは困難ですが、ネットワークの保護に関してはすぐに成果が得られます。それを明確にするために、ここではネットワーク侵害のさまざまな段階に対処するいくつかの セグメンテーション戦略 を取り上げます。 

実際のネットワークはそれぞれ異なるということに注意してください。私たちは一般的な推奨事項を提示することを目指していますが、状況に合わせて戦略を調整する必要があります

目次

ネットワークセグメンテーションとは
ネットワークセグメンテーションのガイドライン
             - セグメンテーションポリシーの策定方法
サイバー攻撃のキルチェーンの破壊
             - 初期アクセス
             - ラテラルムーブメント
                          - RDP、VNC、TeamViewer、その他のリモート・デスクトップ・プロトコル
                          - SSH
                          - MS-RPC と SMB
                          - PowerShell、WMI、WinRM
                          - SNMP
                          - Telnet と Berkeley r コマンド
            - 流出
 - 一般的なセグメンテーションワークフロー
            - リングフェンシング
            - アプリケーションリングフェンシング
            - マイクロセグメンテーション
セグメンテーションと他の防御レイヤーの相乗効果
            - 検知
            - レスポンス
            - シミュレーション
- まとめ

ネットワークセグメンテーションとは

ベストプラクティスや戦略について説明する前に、まず議題を定義する必要があります。ネットワークセグメンテーションには、ネットワークを「分割」(セグメント化)し、誰が何にどのようにアクセスできるかを定義することが含まれます(たとえば、Web サーバーには HTTP/S 経由でのみアクセスできるなど)。 

従来、これは VLAN と物理ファイアウォールを使用して実現されてきましたが、最近ではファイアウォールとセグメンテーションに対するソフトウェアベースのアプローチが多く見られるようになっています(Akamai Guardicore Segmentationなど)。どちらのアプローチにもメリットとデメリットがありますので、私たちはどちらか一方を推奨することはしません。私たちが推奨するのは、ベンダーに依存せず、あらゆる場所に適用できるポリシーや戦略です。

VLAN、アクセス・コントロール・リスト(ACL)、および IP 範囲を使用したトラフィック制御から、ベンダーに依存しないカスタムラベルの使用へ移行することで、マイクロセグメンテーションの領域に入ることとなります。 このブログ記事で紹介する戦略はすべて、マイクロセグメンテーションを使用することを前提としています

セグメンテーションを必要としないように戦略とガイドラインを適応させることは可能なはずですが、すべての VLAN、ACL、および IP リストを定義して維持するプロセスはおそらく非現実的であり、もしくはすべてのネットワーク管理者とエンジニアがすぐに疲れ果ててしまいます(すべての財務サーバーの IP 範囲/グループを定義してみてください。それは可能かもしれませんが、そのリストを正確に長期間維持することはできるでしょうか?しかも、それは 1 つのサーバーグループにすぎません。エンタープライズネットワークには、エンドユーザー、ドメインコントローラー、ドメイン管理者、プリンターなど、他にも多くの要素が存在します)。

ネットワークセグメンテーションのガイドライン

セグメンテーションの方法について論じる前に、主な前提条件である可視性について論じる必要があります。マイクロセグメンテーションは、それだけでは機能しません。見えないものは守れないからです。 適切なセグメンテーションは、トラフィックを整理して取りまとめるネットワーク可視性がある場合のみ有効です。通常、トラフィックは多すぎるため、現実的に人間の目で解析することはできません。

ネットワークトラフィックの可視化の対照比較。左:トラフィックと接続のビジュアルマップ。右:ネットワーク・スニフィング・ツールである Wireshark のスクリーンショット(未加工パケットの要約を表示)。 図 1:可視化ツールによるネットワークの可視化とネットワークスニフィングによる生データの比較

図 1 では、ネットワーク内で大量のトラフィックが発生していることを確認できます(説明のために、図にはダミーネットワークも示されています)。ネットワークを通過するすべてのトラフィックに適用されるポリシーを作成することは現実的に不可能です。 

その代わりに、小さな単位ごとにセキュリティを改善する小規模なセグメンテーションのミニプロジェクトに重点を置きます(これは マイクロセグメンテーションであり、 マクロセグメンテーションではありません)。包括的な目標を設定するのは良いことですが、ネットワークの脅威モデルに基づいて徐々にセキュリティを強化する方が好ましいでしょう。

脅威のモデリングとは何でしょうか?それは、対処する予定である脅威や サイバー攻撃のタイプを定義する方法であり、それに応じて優先順位が定められます。たとえば、中小企業は国家が支援する攻撃者に遭遇する可能性は低いですが、 銀行はそうではないかもしれません

機密情報を大量に保存している場合、 データ流出が最大の脅威になる可能性があります。小規模企業は 境界に重点を置くことを推奨します。なぜなら、適切にセグメント化するほど多くのマシンがネットワーク内に存在しないためです。ネットワークに攻撃者がはびこることを恐れている場合は、 ラテラルムーブメント(横方向の移動)のセグメンテーションから始めることを検討してください。悪者の手に渡ってはならないビジネスクリティカルなアプリケーションがあるなら、まずは リングフェンシング を行うことが重要となります。

セグメンテーションポリシーの策定方法

実際のセグメンテーション戦略に進む前に、適切なセグメンテーションに不可欠と思われるガイドラインや原則について説明します。

アクセスしやすいものほど、送信できる出力を少なくする必要がある

一般的に、受信トラフィックの多いサーバーは、Web サーバーやファイルサーバーなど、どちらかと言えばリクエストを処理する側のサーバーです(ドメインコントローラーもこのカテゴリに分類されます)。このようなサーバーでは、送信トラフィックの数を制限するか、少なくとも厳密に定義する必要があります。 

また、出力と入力の両方に対する制限を最小限にすると、サーバーを攻撃者にピボットとして利用されるリスクが生じます。なぜなら、そのサーバーは攻撃者にとってアクセスしやすく、ネットワークのより広範囲にアクセスするために利用できるからです。

ポリシーを緩和する必要がある場合は、他の防御メカニズムを使用する

マシンから発信されるトラフィックには大きなばらつきがあるため、一部のマシンに対してはポリシーを緩和しなければなりません。したがって、多くの例外を設ける必要があります。 

たとえば、ジャンプ・ボックス・サーバーです。これは、さまざまなユーザーがさまざまなプロトコルでさまざまなサーバーに接続するために利用します。過度に許容しなければ、すべてのユースケースをカバーすることはできませんが、そうするとセグメンテーションの目的がすべて損なわれてしまいます。 

このような場合は、代わりに他の 防御メカニズム を採用し、厳格に制限するのが最善です(ジャンプボックスの例ではより強力なユーザーアクセス制御を使用する、監視サービスのアラートしきい値を低くするなど)。

セグメンテーションは、それだけでは機能しない

セグメンテーションを開始するときにすでに存在していたトラフィックだからといって、そのトラフィックを許可する必要はありません。生成されるトラフィックが不要であると見なされれば、既存のアプリケーションやサーバーの設定を変更しなければならない場合があります。場合によっては、既存の設定を参照して、そもそもなぜトラフィックが存在しているのかを把握する必要があります。

サイバー攻撃のキルチェーンの破壊

大まかに言うと、サイバー攻撃のキルチェーンは次の 3 つに分けることができます。

  1. ネットワークへの初期アクセス

  2. ラテラルムーブメント段階 

  3. 侵害後のマシン操作 

侵害後の操作とは、攻撃者が侵入したネットワーク内の各マシン上で実行する操作です。具体的な操作は攻撃キャンペーンによって異なります。たとえば、 クリプトジャッキングキャンペーン ではクリプトマイナーをインストールして実行し、ランサムウェアキャンペーンでは機微な情報を流出させて暗号化します。 

ここでは、セグメンテーションによってキルチェーン 

(図 2)の一部を阻止する方法について説明します。

ランサムウェアのキルチェーン。初期アクセスから始まり、ラテラルムーブメント、流出、暗号化が続き、身代金要求、(ランサムウェアオペレーターにとっての)潜在的な利益で終わります。 図 2:ランサムウェアのキルチェーン

初期アクセス

この場合、セグメンテーションは従来のファイアウォールと同様に、受信すべきではないネットワーク外からの受信トラフィックをブロックします。これは通常、インターネットからのトラフィックですが、自身のネットワークに接続されているサードパーティーのネットワークからのトラフィックである場合もあります。 

したがって、公開されている Secure Shell(SSH)ポートやリモート・デスクトップ・プロトコル(RDP)ポート(基本的に「 ラテラルムーブメント 」のセクションに記載されているすべてのポート)をブロックすることが推奨されます。実際のところ、ネットワーク外、特にインターネットから発信されるトラフィックに対しては、 拒否リストではなく許可リストを使用するのが好ましい です(たとえば、常にアクティブなインターネットスキャナーがどれくらいあるか考えてください)。

初期アクセス防止のセグメンテーションの基本原則をまとめた表。(1)RDP、SSH、SMB など、リモート制御やリモート実行に利用できるインターネットからの受信トラフィックをブロックする。(2)メンテナンス可能な許可リストを使用して、ネットワークに入ることが許されるインターネットソースを制限する。(3)Web サーバーなど、インターネットに公開する必要があるマシンに対してのみ、インターネットアクセスを許可する。

もちろん、他のセキュリティツールと同様、プラクティス(またはポリシー)のセグメンテーションであらゆる脅威に対処できるわけではありません。この場合、セグメンテーションですべての初期アクセスベクトルをカバーすることはできず、セグメンテーションのみに依存するとネットワークはリスクにさらされます。多くの侵害は、フィッシングメールやリンク、その他の形態のソーシャルエンジニアリングから始まります。 

また、一部のセキュリティ侵害は、許可する必要のあるプロトコルに脆弱性がある場合や、インターネットに正当に公開されているサービス(VPN サーバーなど)を利用するための認証情報が弱い場合に発生します。そのため、セグメンテーションだけに依存して初期アクセスを防止するのではなく、セグメンテーションに加えてホストと電子メールの保護のためのセキュリティソリューションを採用することが推奨されます。

ラテラルムーブメント

ラテラルムーブメントを実行する方法は数多くありますが、ここではそのすべてを取り上げず、マシン上にすでに存在する正当なプロセスを通じて、プロトコル(RDP や SSH など)、RPC ベースのサービス(サービスマネージャーやタスクスケジューラーなど)、管理ツール(PowerShell や WMI など)、または Linux で使用できるプロトコルやツール( こちらの記事を参照)を利用して実行される可能性のあるラテラルムーブメントを阻止することに重点を置きます。

ワンデイ脆弱性またはゼロデイ脆弱性については取り上げません。なぜなら、そのような脆弱性はあらゆる製品や実装に存在し得るため、一般的な戦略を適用することは現実的ではないからです。私たちが推奨できるのは、セグメンテーションだけです。アクセスできなければ、悪用するのは非常に困難だからです。

プロトコルごとの考慮事項について説明する前に、すべてに当てはまる 2 つの原則を確認します。

ラテラルムーブメント(横方向の移動)防止のセグメンテーションの基本原則をまとめた表。(1)ユーザーマシン間のトラフィックを厳格に制御する。(2)インターネットアクセスを厳格に制御する

ユーザーは他のユーザーのマシンに(とりわけネットワーク経由で)アクセスする必要はありません。IT 業務を行っている人でない限り、他のユーザーのマシンにリモートで接続する理由はそれほどありません。そのため、ネットワークの運用性を大幅に低下させることなくユーザーマシン間のトラフィックを制限する必要があります。

また、このセクションで説明するプロトコルはリモート制御やリモート実行に利用できるため、初期アクセスベクトルとしても利用できます。そのため、繰り返しになりますが、これらのプロトコルを介した任意のインターネットアクセスを制限する必要があります。

ツール/プロトコル

ポート

RDP

3389

VNC

5900 以上

X Window System

6000 以上

TeamViewer

5938、80、443

AnyDesk

6568、80、443

SSH

22

MS-RPC

135、49152 以上

SMB

445、139

WinRM

5985、5986

SNMP

161

rexec

512

rlogin

513

rsh

514

図 3:ラテラルムーブメントに利用できる一般的なツール/プロトコル(およびそのポート)

RDP、VNC、TeamViewer、その他のリモート・デスクトップ・プロトコル

これらのサービスはインタラクティブでグラフィカルであるため、自動での使用はかなり制限されています。したがって、サーバー間でこれらのプロトコルが使用されているのを目にするのはそれほど多くないと予想されます(「予想される」という言葉が重要です。目にした場合は、その理由を調べる必要があります)。 

ユーザーマシン間でも同じ推論が当てはまります。ユーザーが互いに接続する必要はないはずです。これらの仮定の例外として、ジャンプボックスやターミナルサーバーがあります。それらを利用すれば、ユーザーが環境を転々と移動したりサーバーに接続したり、IT 担当者がユーザーマシンに接続したり、アプリケーション所有者がアプリケーションサーバーに接続したりできます。 

このような例外には、セグメンテーションを使用して適切なポリシーを作成することで対処する必要がありますが、この取り組みは適切なアイデンティティアクセス管理(IAM)ソリューションで補う必要があります。

リモート・デスクトップ・プロトコルの基本原則をまとめた表。(1)ユーザーマシン間の RDP を制限する。(2)サーバー間の RDP を制限する。(3)IT マシンによる RDP の使用を許可する。(4)管理アクセスやリモート制御にはジャンプ・ボックス・サーバーを使用する。ユーザーによるジャンプ・ボックス・サーバーへのアクセスを許可する

攻撃者は、バックドアとして、そして永続的な方法として、サードパーティーのリモート・デスクトップ・サーバーをインストールすることがあります。 ネットワークにとって未知のリモート・デスクトップ・トラフィックまたはソフトウェアを検知した場合、それを調査する必要があります

SSH

SSH の概念は RDP と似ていますが、話はより複雑です。SSH はターミナル(テキスト)ベースであるため、ソフトウェアとのやり取りに非常に使いやすく、SSH を使用するプログラムやスクリプトがあります。さらに、SSH は、SSH によってファイル転送プロトコルをカプセル化した SFTP など、安全性の低いプロトコルをカプセル化するためにも使用されます。

そのため、SSH では他の RDP よりもはるかに綿密なアプローチが必要です。ネットワークトラフィックを適切に可視化できなければ、エンドユーザーやネットワークの運用性に影響を与えずに SSH を適切にセグメント化することは極めて困難です。

SSH の基本原則をまとめた表。(1)既存のトラフィックと論理ユニットに基づいて SSH をマイクロセグメント化する。(2)IT 担当者とアプリケーション所有者が必要なサーバーに SSH でアクセスすることを許可する。(3)ジャンプ・ボックス・サーバー間で任意のユーザーが SSH によってアクセスすることを制限する。

MS-RPC と SMB

MS-RPC と SMB のどちらも、すぐにラテラルムーブメントに利用できるわけではありません。しかし、これらを土台として構築された他のプロトコルは、すぐにラテラルムーブメントに利用できます(図 4 を参照)。SMB はファイル転送と通信に使用され、RPC は定義されたインターフェースからリモート機能を呼び出すために使用されます。RPC に SMB が使用されることもあるため、これらは密接に結合されています。また、これらは Windows ドメインシステムに組み込まれているため、適切にセグメント化することは極めて困難です。 

たとえば、ドメイン認証は RPC ベースのプロトコルである Netlogonで実行されます。ドメイン・グループ・ポリシーとログオンスクリプトは、 SYSVOLというドメインコントローラー上の共有フォルダに格納され、ドメインに参加しているマシンは SMB を使用してこれにアクセスします。

SMB と RPC をブロックすることは、ドメイン全体を破壊しなければ、実質的に不可能です。それでは、どうすればよいでしょうか?SMB では、論理ユニットに基づいてポリシーを作成できます。宛先がファイルサーバーでない限り、ほとんどのサーバーとマシンは SMB を使用して相互に通信すべきではありません。そのため、適切なリングフェンシングセグメンテーションにより、SMB のリスクを緩和できます。

SMB の基本原則をまとめた表。(1)セグメント間の SMB を制限する。(2)ドメインコントローラーに SMB を許可するが、他のセキュリティツールではアラート感度を高める。

同様のアプローチを RPC に適用することもできますが、SMB とは異なり、ファイルサーバーに RPC トラフィックを許可する必要はないため、制限をより厳しくすることができます。また、RPC はユーザーモードで処理されるため、ターゲットのサービスまたはプロセスに応じてセグメンテーションポリシーを作成することができます。したがって、プロセスベースまたはサービスベースのルールを処理できるセグメンテーションエージェントがある場合にのみ、ラテラルムーブメントに悪用され得る RPC インターフェースに対処するだけでよいです。 

次の表には、ラテラルムーブメントを防止するために管理する必要がある RPC インターフェースが記されています。

手法

用途

RPC インターフェース

宛先プロセス

サービス

PsExec              

サービスマネージャーと通信してリモートバイナリを実行します。通常は、悪性のバイナリを SMB でリモートコピーした後に使用されます

MS-SCMR

services. exe

 

レジストリ

レジストリをリモートで変更して、持続性を確保したり、ログオンスクリプトを実行したり、セキュリティを低下させたりします

MS-RRP

svchost.exe

RemoteRegistry

Task Scheduler

コマンド実行のためにスケジュールされたタスクをリモートで作成します

MS-TSCH

スケジュール

DCOM

RPC より上にある別の抽象化レイヤー。WMI など、さまざまなシステムコンポーネントとリモートでやり取りするために使用できます

MS-DCOM

DcomLaunch

図 4:ラテラルムーブメントに利用できる RPC インターフェース

これらの RPC インターフェースでのすべての操作が悪性であるわけではないため(たとえば、監視ソリューションやウォッチドッグがサービスの健全性を確認するためにリモートでサービスマネージャーとやり取りするなど)、既存の RPC 通信を調査することが推奨されます。通常は RPC インターフェースにリモートでアクセスしない場合(またはソースリストを絞り込むことができる場合)、その RPC インターフェースに関するセグメンテーションポリシーを作成し、セキュリティを強化することをお勧めします。

MS-RPC の基本原則をまとめた表。(1)ラテラルムーブメントに利用できる RPC インターフェースをホストするプロセスまたはサービスへの通信を制限する。(2)監視またはウォッチドッグに使用されるサーバーから発信されるトラフィックを許可する。

PowerShell、WMI、WinRM

PowerShell と WMI はどちらもリモートマシンとやり取りでき、そのインタラクションは Windows Remote Management (WinRM)によって支えられています。正当な使用法は通常、(WMI を使用した)リモート管理またはリモート監視であるため、ネットワーク内でのユースケースはほとんどありません。任意の使用を制限して、監視サーバーまたは IT マシンでの使用のみを許可するセグメンテーションポリシーを作成できるはずです。 

もちろん、例外が発生する可能性はあり、開発者が利便性向上のために広範囲にわたってリモート PowerShell を使用した事例がいくつか見られました。そのため、個別の判断が必要となります。

PowerShell、WinRM、および WMI の基本原則をまとめた表。(1)任意のユーザーの使用を制限する。(2)IT マシンと監視サーバーを許可する。(3)個別に特定のユーザーによる使用を許可する。

SNMP

簡易ネットワーク管理プロトコル(SNMP:Simple Network Management Protocol)は、特に Linux マシンでよく使用されている監視ソリューションです。また、SNMP には EXTEND プラグインがあります。これは、Linux のラテラルムーブメントに関する記事で説明したとおり、リモートでのスクリプト実行に悪用される場合があります(また、Akamai はこのプラグインを Infection Monkeyに実装しました)。SNMP エージェントの新しいリリースでは、EXTEND プラグインはデフォルトでリモートコマンドに対して有効になっていませんが、プラグインを有効にして SNMP エージェントをコンパイルすることは依然として可能です。また、パッチが適用されておらず EXTEND プラグインが有効になっているバージョンを実行しているマシンも確認されています。

SNMP は監視に使用されるため、SNMP トラフィックが監視サーバーからのみ発信され、ネットワークの他の部分からは発信されないよう制限することが推奨されます。また、監視サーバーから発信される EDR アラートにも注意し、攻撃者によってネットワークの他の部分のプロキシとして使用されないようにすることをお勧めします。 

異なる製品によって複数の監視サーバーが使用されている場合は、異なる論理ユニットのセグメンテーションによる分離も検討する必要があります(たとえば、財務サーバーに対してのみ使用している監視ソリューションがある場合、そのソリューションが Web サーバーにアクセスすることを許可してはなりません)。

Telnet と Berkeley r コマンド

Telent と Berkeley r コマンドはあまり一般的ではなく、ほとんどが SSH に置き換えられています。これについては、Linux のラテラルムーブメントに関する記事で説明しました。しかし、稀だからといって、その存在を無視してよいわけではありません。結局のところ、攻撃者は一般的な手段であるかどうかを気にせず、利用可能なあらゆる手段を使用します。 

これらのプロトコルをより安全なプロトコル(SSH など)に置き換えるか、少なくとも安全性の高いチャネルでトラフィックをカプセル化することが推奨されます。それが可能でない場合は、SSH と同じセキュリティプラクティスを適用します。

流出

小説『1984 年』のように、あらゆる発信トラフィックを制御しない限り、セグメンテーションのみを使用して攻撃時のデータ流出を防ぐことは現実的には期待できません。インターネットは広大であり、ユーザーがネットワークから接続しているすべてのサイトとサーバーに対して正確な判定を行うことは現実的ではありません。そのため、攻撃者は他のすべてのアウトバウンドトラフィックの中に流出の試みを簡単に忍ばせることができます。

アウトバウンドトラフィックを制御するのではなく、機微な情報にアクセスできるユーザーを制御することの方が実現可能性が高いです。アウトバウンドトラフィックを制限できる唯一の場所は、ネットワーク内のサーバーです。ユーザーマシンとは異なり、アウトバウンドトラフィックの宛先のばらつきがかなり少ないはずです。

データ窃取防止の基本原則をまとめた表。(1)ネットワーク内のサーバーからのアウトバウンドトラフィックの宛先を制限する。(2)内部ファイルサーバー内の機密ファイルとフォルダに対して厳格なアクセス制御を行う。(3)内部データベースに対してリングフェンシングとセグメンテーションを行い、必要な場合のみ内部データベースにアクセスできるようにする。

一般的なセグメンテーションワークフロー

このセクション全体の原則は、「存在するからといって、許可されるべきではない」です。ネットワークの一部をセグメント化する場合、ビジネスクリティカルなアプリケーション(SWIFT など)であっても、運用ユニット(ドメインコントローラーなど)であっても、または環境(運用サーバーなど)であっても、最初にすべきことは既存のトラフィックの調査です(図 5)。 

既存のトラフィックを分析した後に、関連するフローを許可して残りを制限するポリシーを作成できます(これは、セグメンテーションによってではなくアプリケーション所有者が対処する必要のある誤設定を見つける機会でもあります)。 

ブロックポリシーをすぐに適用せずに、アラート専用モードでしばらく実行することが推奨されます。意図したとおりにポリシーが実行されており、ポリシー違反アラートが最小限または制御された量であると判断された場合にのみ、制限ポリシーに移行します。 

また、現在の環境(セグメント化を開始する前に存在していた環境)と将来の環境(セグメンテーションポリシーを適用した後の環境)を区別することも重要です。最初にセグメンテーションを実行するときは、注意を払い、そのネットワークについて学習し、物事を壊さないようにする必要があります。 

そして、新しいポリシーを追加する際には、既存のセグメンテーションポリシーを考慮する必要があります。通常の運用に必要な場合はポリシーによる例外や許可を設定しますが、ネットワークを拡張しているからといって既存のポリシーを無視してはなりません。

一般的なセグメンテーションワークフローのフローチャート。既存のトラフィックの分析、セグメンテーションポリシーの作成、ポリシー違反の監視、ポリシーのブロッキングモードへの移行という 4 つの要素で構成されるサイクルです。 図 5:一般的なセグメンテーションワークフロー

リングフェンシング

リングフェンシングを行う際は、主にネットワークの他の部分とセグメントのインターフェースや世界とセグメントのインターフェースに着目します。セグメント内で何が起こっているかは考慮せずに、セグメント化したいネットワークの部分に出入りするものを制御することを目指します。

リングフェンシングの基本原則をまとめた表。(1)ドメインコントローラーや SIEM など、ネットワークに不可欠なサーバーとの通信を許可する。(2)特定のデータベースなど、ビジネスロジックに必要なネットワーク内の他のサーバーとの通信を許可する。(3)任意のユーザーによるセグメントへのアクセスを、必要な場合のみに制限する。(4)サーバーからのアウトバウンドトラフィックとサーバーへのインバウンド・インターネット・トラフィックを制限する。

アプリケーションリングフェンシング

リングフェンシングをさらに一歩進め、個々のマシンの目的に合わせてそれぞれにポリシーを適用することができます。たとえば、サーバーがデータベースとしてのみ機能する場合、データベースポートを介したアクセスのみを許可する必要があります(Web ポートを介した Web サーバーへのアクセスなど)。

しかし、これはそれほど簡単ことではありません。通常、そのサーバーへのアクセスを必要とするサービス(ウォッチドッグ、パフォーマンスモニター、IT など)が数多く存在します。また、そのアクセスポートは通常、ラテラルムーブメント手法によく似ています。それらは通常、何らかのリモートコントロールを軸として行われるからです(たとえば、リモートウォッチドッグは、PsExec ラテラルムーブメント手法と同様の方法でサービスマネージャーにクエリーを実行します。呼び出しを区別する唯一の方法がディープ・パケット・インスペクションですが、これは通常は使用できません)。

この課題を克服するためには、すでにサービスにアクセスする必要があるもの以外に追加のトラフィックを許可する必要がある場合に、許可されるソースを監視を行うセグメントに制限することが推奨されます。

また、ユーザーが必要としない機密の場所へのアクセスを制限することもできます。内部アプリケーションだけがデータベースを利用している場合、任意のユーザーがそのデータベースに対してクエリーを実行できるようにする理由はほとんどありません。私たちの見解では、任意のユーザーによるアクセスをブロックすることは最も重要なセキュリティ対策です。なぜなら、多くの攻撃は侵害されたユーザーから始まるからです。

アプリケーションリングフェンシングの基本原則をまとめた表。(1)Web サーバーへの Web トラフィックなど、役割に基づいてサーバーへの通信を許可する。(2)サーバーのオペレーション(ウォッチドッグなど)に必要な通信を許可するが、許可されるソースを監視を行うマシンまたはそのセグメントのみに制限する。(3)ユーザーがアクセスできるべきではない内部サーバーへのユーザーによるアクセスをブロックする。

マイクロセグメンテーション

マイクロセグメンテーションを行う際、私たちはセグメンテーションポリシーに別の粒度レイヤーを適用しており、役割や感度に基づいてセグメント内のマシンを分離します。これは、アプリケーションリングフェンシングと一般的なリングフェンシングのハイブリッドと考えることができます。 リングフェンシングとの大きな違いは、セグメント内のトラフィックを制御することと、ネイバーを自動的に信頼しないことです

ここでの原則は、同じセグメント内にあるからといって、隣接するマシンからのトラフィックを信頼してはならないということです。攻撃者は、セグメントに関係なく、利用できるあらゆる接続を利用してネットワーク全体に伝播しようとします。 

したがって、セグメント内に同じ種類のアプリケーションサーバーがあっても、それらがすべてのポートとプロトコルで相互に通信できるようにする理由はありません。マイクロセグメンテーションとは、ネットワークセグメント内でも、同じ役割を持つマシン間でも、あらゆる種類のトラフィックにポリシールールを適用することを意味します。

もちろん、同じセグメント内のマシンは通常、より緊密に結び付いているため、過度に許容することなくポリシーを追加することは困難です。

マイクロセグメンテーションの基本原則をまとめた表。(1)セグメント内の任意の接続を制限する。(2)必要な場合のみ、セグメント内の通信を許可する。

ネットワーク内のセグメントの定義のしかたによっては、アプリケーションリングフェンシングの原則をそのままマイクロセグメンテーションの原則として利用できる場合もあります。たとえば、ネットワークをユーザーセグメント、データベースセグメント、Web サーバーセグメントに分割する場合、 アプリケーションリングフェンシング の原則をマイクロセグメンテーションにも利用できます。ただし、その場合は各アプリケーションセグメント内の異なるマシン間で同じ原則を適用する必要があります。

一方、ネットワークが財務セグメント、営業セグメント、IT セグメントに分割されており、各セグメントにサーバーとユーザーマシンが混在している場合は、よりクリエイティブになる必要があります。一般的なリングフェンシング戦略をセグメントに適用した後に、セグメント間およびセグメント内のポリシーを作成しなければなりません。各セグメントをミニネットワークと見なすことができます。その後、各セグメントを、そのセグメントに含まれるさまざまなアプリケーションやマシンタイプに分けることができます(たとえば、営業セグメントの場合、ファイルサーバー、データベース、およびユーザーマシンがある可能性があります)。各種類のマシンを新しいセグメントとして扱い、再びガイドラインに従ってリングフェンシングやアプリケーションリングフェンシングを行うことができます。

図 6 は、さまざまセグメンテーション戦略の関係をまとめたものです。

理論上のネットワークを示す図。インフラセグメント、財務セグメント、営業セグメントがあります。財務セグメントには、デスクトップマシンとデータベースサーバーがあります。これらの間のセグメンテーションには、マイクロセグメンテーションと表示されています。営業セグメントには、デスクトップマシン、サーバー、データベースがあります。デスクトップマシンとサーバー間のセグメンテーションには、マイクロセグメンテーションと表示されています。インフラセグメントには、ドメインコントローラー、モニタリングサブセグメント、Web サーバーサブセグメントがあります。Web サーバー間のセグメンテーションは、マイクロセグメンテーションです。モニタリングサブセグメントまたはドメインコントローラーと財務セグメントの間のセグメンテーションは、アプリケーションリングフェンシングと見なすことができます。3 つのセグメントの間の一般的なセグメンテーションは、一般的なリングフェンシングです。 図 6:組織ネットワークのセグメンテーション戦略

セグメンテーションと他の防御レイヤーの相乗効果

適切なネットワークセグメンテーションによって、攻撃者がネットワークを侵害するために越えなければならないハードルが非常に高くなりますが、それが唯一の防御層であってはなりません。検知、対処、シミュレーションを含む防御が必要です。

検知

100% 安全なシステムやネットワークは存在しません。また、 ゼロデイ 脆弱性は常に存在します。そのため、十分な熱意と才能さえあれば、攻撃者はどこにでも侵入できてしまいます。これは必ずしも現実的なシナリオではありません(ゼロデイ脆弱性の開発にはコストがかかり、思い付きでは行えないため)。しかし、私たちは、現実から目をそらすより最悪の状況に備える方が良いと考えています。

このアプローチでは、セグメンテーションと検知を組み合わせます。攻撃者がネットワーク内に足がかりを見つけてラテラルムーブメントを実行したとしても、ツールによってそれを検知し、脅威を解決します。たとえば、ホスト脅威検知のための EDR、Web アクセス・モニタリング・ツール、習慣的な脅威ハンティングアクティビティです。重要なのは、疑わしい活動が検知され警告が出されることと、それらの警告を調査するためのチームがあることです。

検知に加えて、フラットネットワークよりもセグメント化されたネットワークの方が優れている点が 3 つあります(図 7)。

  1. ネットワークに侵入するために必要なスキルレベルが高くなり、低スキルの攻撃者を阻止できます。ほとんどの攻撃者はゼロデイ脆弱性を利用できないため、ネットワークの脅威モデルを考慮すると、優れたネットワーク・セグメンテーション・ポリシーがほとんどの攻撃者に対する十分な抑止力となる可能性があります。

  2. ネットワーク内で攻撃者が経なければならないホップ数が多いほど、侵入を完了するまでの時間と手順が増え、検知される可能性が高くなります。

  3. また、攻撃者を「チョークポイント」に誘導して、より簡単に識別することもできます。これはハニーポットやカナリアによって行うことができ、さらには警戒を強めるだけでも行えます。 

フラットネットワーク内の侵入とセグメント化されたネットワーク内の侵入の違いを示すインフォグラフィック。どちらのネットワークも、サーバーセグメント、ドメイン管理セグメント、ドメインコントローラーで構成されています。フラットネットワークでは、攻撃者は感染したマシンからネットワークのすべての部分に即座に伝播することができます。セグメント化されたネットワークでは、最初にネットワークセグメントに移動し、次にドメイン管理セグメントに移動し、最後にドメインコントローラーに移動します。 図 7:フラットネットワーク内の侵入とセグメント化されたネットワーク内の侵入の比較。フラットネットワークでは、すべての部分に同時に到達可能であり、侵入者はすぐに目標に到達できます。セグメント化されたネットワークでは、攻撃者は段階を踏んで行動する必要があります。

対処

脅威を検知するだけでは不十分です。アラートや侵害に迅速に対応する必要もあります。 ランサムウェア攻撃に関するレポートによると、暗号化に対する侵害には数日しかかかりません。つまり、わずか数日間で侵害を検知し、ネットワークから追い出さなければなりません。前述したように、適切なセグメンテーションによって攻撃の速度が低下しますが、それでも攻撃には迅速に対処する必要があります。

セグメンテーションと対処には、2 つの相乗効果があります。

  1. セグメンテーションによって、対処に費やせる時間が増えます。 なぜなら、攻撃を完了させるのに長い時間がかかるようになり、アラートを発する障壁となる場所(攻撃者のトラフィックがセグメンテーションポリシーに抵触する場所)が増えるからです。

  2. セグメンテーションを対処に利用できます。ネットワークのさまざまな部分へのアクセスを制限および制御するためのセグメンテーションポリシーとルールを作成するのと同じ方法で、アセットを隔離するためのルールを作成できます。これにより、攻撃をさらに進めることができなくなります。インシデント対応計画やワークフローにセグメンテーションを組み込むことと、緊急時に隔離ルールを迅速に展開するツールを備えておくことは、ネットワーク侵害に対処する上で極めて重要です。

シミュレーション

計画上では、可能な限りセグメント化された安全なネットワークを構築し、あらゆる攻撃を検知できるようになっていても、 計画というものは初めて敵と接触する時には機能しません。そのため、初めての敵が攻撃者であってはなりません。 

シミュレーションを行うのはそのためです。 レッドチーム は、攻撃者のようにシステムをハッキングしてみることで、敵を想定することができます。また、ネットワーク侵害自動シミュレーションツール(Akamai のオープンソースツールである Infection Monkeyなど)でも、同じことを行えます。 

シミュレーションにより、攻撃者が悪用する可能性のある防御の弱点を発見できます。定期的にチェックを行い、その結果に対処することで、ネットワークのセキュリティを大幅に強化することができます。

まとめ

ネットワークセグメンテーションは、ネットワークのセキュリティを強化し、ネットワークベースの脅威に対処するために役立つツールです。また、セキュリティ上の価値を即座にもたらすツールでもあり、これを利用すれば長いセグメンテーションプロジェクトや困難なセグメンテーションプロジェクトを開始する必要がなく、作業を複数のサブプロジェクトに分割でき、各サブプロジェクトでネットワークのセキュリティ体制が一歩ずつ改善されます。 

ネットワーク管理者がそれを行えるように、Akamai はセグメンテーションポリシーやセグメンテーション戦略に関するさまざまなガイドラインを提供してきました。当社の推奨が実用的であり、組織のセキュリティ強化に役立てば幸いです。

Akamai Security Intelligence Group は今後も、さまざまなセキュリティトピックに関する調査の監視、研究、公開に取り組みます。リアルタイムで最新情報や最新の調査結果を知りたい方は、ぜひ Twitter で Akamai をフォローしてください!



Stiv Kupchik

執筆者

Stiv Kupchik

July 13, 2023

Stiv Kupchik

執筆者

Stiv Kupchik

Stiv Kupchik は、Akamai の Security Researcher Team Lead です。彼のリサーチプロジェクトは、OS 内部、脆弱性調査、マルウェア分析を軸に進んでいます。Black Hat、Hexacon、44CON などの会議で研究発表を行っています。サイバーセキュリティの専門家であるだけでなく、物理学でも理学士を有しています。