AkamaiがLayerXを買収へ、あらゆるブラウザ上でAI利用の制御を強化。 詳細を見る

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

Stiv Kupchik

執筆者

Stiv Kupchik

July 13, 2023

Stiv Kupchik

執筆者

Stiv Kupchik

Stiv Kupchik is a Security Researcher Team Lead at Akamai. His research projects revolve around OS internals, vulnerability research, and malware analysis. He has presented his research at conferences such as Black Hat, Hexacon, and 44CON. In addition to being a cybersecurity professional, Stiv also has a BSc in physics.

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

はじめに

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

私たち(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のラテラルムーブメントに関する記事で説明したとおり、リモートでのスクリプト実行に悪用される場合があります(また、Infection Monkeyにも実装されています)。SNMPエージェントの新しいリリースでは、EXTENDプラグインはデフォルトでリモートコマンドに対して有効になっていませんが、プラグインを有効にしてSNMPエージェントをコンパイルすることは依然として可能です。また、パッチが適用されておらずEXTENDプラグインが有効になっているバージョンを実行しているマシンも確認されています。

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

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

TelnetとBerkeley rコマンド

Telnetと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は今後も、さまざまなセキュリティトピックに関する調査の監視、研究、公開に取り組みます。リアルタイムの最新情報、およびセキュリティ関連の調査について詳しくお知りになりたい場合は、X(旧Twitter)でフォローしてください。



Stiv Kupchik

執筆者

Stiv Kupchik

July 13, 2023

Stiv Kupchik

執筆者

Stiv Kupchik

Stiv Kupchik is a Security Researcher Team Lead at Akamai. His research projects revolve around OS internals, vulnerability research, and malware analysis. He has presented his research at conferences such as Black Hat, Hexacon, and 44CON. In addition to being a cybersecurity professional, Stiv also has a BSc in physics.