組織はクラウド・ベースのサービスの実装を継続しており、この変化は、オンプレミスのActive DirectoryとMicrosoft Entra ID(旧Azure AD)を接続するハイブリッドID環境の幅広い採用につながっています。このようなハイブリッドID環境のデバイスを管理するために、Microsoft Intune(Intune)が最も人気のあるデバイス管理ソリューションの1つとして注目が高まっています。この信頼されたエンタープライズ・プラットフォームは、オンプレミスのActive Directoryデバイスやサービスと簡単に統合できるため、攻撃者が横移動やコード実行を行うために悪用する格好の標的です。
この調査では、Intuneについて背景を説明し、これが組織内でどのように使用されているかを説明します。また、このクラウド・ベースのプラットフォームを使用してカスタムWindowsアプリケーションをデプロイし、ユーザー・デバイスでコードの実行を実現させる方法を示します。さらに、この研究には、防御側がIntuneの横移動の使用を検知するのに役立つ新しいMicrosoft Sentinelルールと、Intuneプラットフォームの防御強化ガイダンスの公開が含まれています。
Andy Robbins氏は2020年に、「頭上からの死:AzureからオンプレミスADへの横移動」というタイトルの優れたブログ記事を公開しました。この記事では、Intuneを悪用してPowerShellスクリプトをターゲット・ホストにデプロイする方法と、その攻撃シナリオに対し防御するための防御ガイダンスについて説明しています。。結果として得られたX-Force® の調査結果は、Windowsアプリケーションを使用してターゲットを絞ったコードを実行する方法と、Windowsホストがそれらのアプリケーションをダウンロードして実行するためのアドホック・トリガーを実行する方法を示し、Robbins氏の研究結果をベースにしたものです。この研究には、横移動を促進するようなIntuneの誤用を検知するための、新たに作成されたMicrosoft Sentinelのルールも含まれており、Intuneプラットフォームの強化ガイダンスを提供しています。
Chris Thompsonは、DEF CON 32 Demo LabsでMaestroという名前のツールをリリースしました。このツールを使用すると、Intuneを介してユーザーとデバイスの偵察を実行したり、Intune PowerShellスクリプトまたはC2フレームワークのWindowsアプリケーションを介してコマンドを実行したりできます。このツールとChrisの研究をぜひチェックしてください。X-Force® の研究は、Microsoft Intuneのウェブインターフェースを介して横移動を行う方法と、コード実行のためにカスタムWindowsアプリケーションの一部として複数のファイルをパッケージ化しデプロイする方法を示している点が異なります。さらに、このX-Force® の研究では、Intune PowerShellスクリプトやWindowsアプリケーションを実行するトリガーの詳細な方法と、Intuneを悪用する横移動アクティビティを検知するためのMicrosoft Sentinel検知ルールロジックのリリースも含まれています。
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。本ニュースレターは【日本語】で配信しています。登録の際はIBMプライバシー・ステートメントをご覧ください。
多くの企業がハイブリッドID環境の採用を始めています。これは、オンプレミスのActive Directory環境とMicrosoft Entra ID(旧Azure AD)の接続を意味します。これにより、ユーザー・デバイスやクラウド・ベースのアプリケーションへのユーザー・アクセスの管理の改善など、組織の柔軟性と効率性が向上します。具体的には、デバイスがハイブリッド結合している場合、オンプレミスのActive DirectoryとMicrosoft Entra IDの両方で表示および管理できます。この構成では、クラウド・ベースのデバイス管理ソリューションの侵害により、ハイブリッド結合されたユーザー・ワークステーションなどのオンプレミス・デバイスへの横移動が容易になります。
Microsoft Intuneはクラウド・ベースのデバイス管理ソリューションであり、Azureに接続されたデバイスなど、ハイブリッド参加済みデバイスの設定管理に利用できます。後続のセクションでは、組織によるIntuneの使用と管理の方法について説明します。
Microsoftは企業内のデバイス管理のための複数のソリューションを提供しています。そのようなソリューションのいくつかを以下に挙げます。
組織がMicrosoft Intuneを使用する主な戦略的ユースケースは次のとおりです。
Microsoftは、Intuneで利用可能なさまざまな役割について、各役割の権限とともに詳細なドキュメンテーションを提供しています。PowerShellスクリプトまたはWindowsアプリケーションの作成を可能にするIntune内の2つの特権ロールは、グローバル管理者とIntuneサービス管理者(別名 Intune管理者 )です。
Microsoft Intune経由でWindowsホスト上でコードを実行するには、いくつかのオプションがあります。PowerShellスクリプトは、スクリプト内で直接コマンドを実行してコードを実行できるようにデプロイすることができます。Windowsデバイス上でのコード実行の別の種類としては、アプリケーションのデプロイメントもあります。注目すべきアプリケーションの種類を以下にいくつかご紹介します。
ログファイルは、 C:\ProgramData\Microsoft\IntuneManagementExtension\LogsのIntune管理拡張機能によって記述されます。これらのログは、デバイスがいつIntuneにチェックインしたか、PowerShellスクリプトやWindowsアプリケーションが実行されたかどうかを確認するのに役立ちます。
IntuneがPowerShellスクリプトを実行すると、ディスク上のC:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Scripts にスクリプトの一時的なコピーが作成され、結果がC:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Resultsに保管されます。スクリプトが完了すると、一時スクリプトと結果は削除されます。
IntuneがWindowsアプリケーションを実行する場合、アプリケーションはC:\Windows\IMECache\[UNIQUE_GUID]からデプロイされ、実行されます。アプリケーションの実行が完了すると、ディレクトリーは削除されます。
セキュリティ製品のベンダーや防御的セキュリティの実践者にはよく知られているいくつかの横移動テクニックがあり、すぐに利用できるドキュメンテーションがMITRE ATT&CK フレームワークにあります。これらのWindowsの横移動技術は、主にプログラムやスクリプトを実行できる管理プロトコルやサービスを利用するものです。脅威アクターやオフェンシブ・セキュリティー実務者が使用する一般的な横移動手法には、プログラムやスクリプトを実行するために、Windows Management Instrumentation(WMI)、スケジュールされたタスク、サービス、分散コンポーネント・オブジェクト・モデル(DCOM)を使用するものが含まれます。運用セキュリティーの観点からは、信頼できるソフトウェアを経由しながらスクリプトとプログラムを実行できる独自の手法を見つけることが非常に重要です。このような手法は、一般的な企業活動に溶け込むことがあり、防御側のセキュリティチームには無視されることがあります。
Microsoft Intune Role-Based Accessセクションに表示されている適切な権限を持つAzureユーザーを侵害した場合は、PowerShellスクリプトまたはWindowsアプリケーションをデプロイすることでIntuneエージェントがインストールされた、任意のWindowsホスト上でコードを実行できます。これは、信頼できるエンタープライズ・ソフトウェアから発生した、目立たずユニークな横移動実行トリガーとして使用できます。
次のセクションに示すシナリオでは、Intune管理センター内で特権アクセスを取得していることを前提としています。さらに、このシナリオの一環として、目標ホストの Cobalt Strike ビーコン を通じてインタラクティブな指揮制御(C2)アクセスを得ること、そしてIntuneを横移動実行トリガーとして利用することを目的としています。
IntuneはEntra ID グループを使ってスクリプトやアプリケーションの実行場所を制御しています。したがって、ターゲットとするホストまたはホストのグループがまだグループのメンバーではない場合は、スクリプトまたはアプリケーションの実行場所を制御できるように、それらに対してグループを作成する必要があります。通常、ハイブリッドID環境では、Entra ID内でユーザーに関連するデバイスを表示できます。これにより、ターゲットにするホストのリストを作成できます。この情報はROADtoolsなどの自動ツールやスクリプトを使って取得することも可能です。
ターゲット・ホストを割り当てるために新しいMicrosoft Entra IDグループを作成する必要がある場合は、Intune管理センター内で「グループ」 > 「新規グループ」を選択します。
以下のそれぞれのスクリーンショットに示すように、ターゲット・ホストまたはユーザーのいずれかを選択できます。この場合、WIN-8675309ホストをターゲットとするグループを作成しています。
グループの概要が表示されるので、それを作成できます
デプロイしたPowerShellスクリプトまたはWindowsアプリケーションのアドホックなトリガーを、Intuneから即時に実行する方法は複数あります。それには、以下が含まれます。
あるいは、次にデバイスが自動的に再起動するか、新しいPowerShellスクリプトやWindowsアプリケーションのために、ホストのIntuneエージェントが次にIntuneにチェックインするまで待つこともできます。
コード実行の代替方法として、PowerShellスクリプトの代わりにWindowsアプリケーションをデプロイする方法があります。この方法では、Intuneエージェントによってターゲット・ホスト上にデプロイおよび実行される複数のファイルをパッケージ化できるため、より柔軟です。これは、複数のファイルを必要とするDLLサイドロード型ペイロードのデプロイなど、ペイロードのデプロイメントにおいては攻撃者の観点から有益です。Dism.exe DLL サイドロードペイロードをIntune Windows アプリケーション経由でデプロイするプロセスについて、以下に詳しく説明します。
MicrosoftのWin32 コンテンツ準備ツールを使って、ペイロードファイルを.intunewinファイル内にパッケージ化します。これは、アプリケーションのセキュアなデプロイメントを可能にする圧縮ファイル形式です。このパッケージがどのように機能するかについての詳細は、こちらのブログ記事をご覧ください。この例には、実行可能ファイルとDLLファイルを含むディレクトリがあります。ここでは、Win32 コンテンツ準備ツールを使用して、これらのファイルを.intunewinファイルにパッケージ化します。
アウトプットされた.intunewinファイルは、指定したアウトプット・ディレクトリーに書き込まれます。この場合はDism.exeと、Dism.intunewin内のDismCore.dllファイルをパッケージ化しました。
Windowsアプリケーション・パッケージが作成されたので、デプロイを進めることができます。Intune管理センター内で、「アプリ」 > 「Windows アプリ」 > 「追加」に移動します。
ドロップダウン・メニューから「Windows アプリ (Win32)」を選択します。
以前に作成した.intunewinファイルをアップロードし、アプリケーションに関する情報を入力します。
次に、installコマンドを 追加します。この場合このコマンドは、実行ファイル(Dism.exe )になります。uninstallコマンドには、何でも入力できます。さらに、このアプリケーションを「システム」として実行することを選択し、デバイスの再起動動作には「特定のアクションなし」を選択しています。「システム」を選択する場合は、これがNT AUTHORITY\SYSTEMアカウントとして実行されることを意味します。
検知ルールは、アプリケーションが既に存在する場合に、そのインストールを防止するために使用されます。したがって、検知ルールの成果が成功した場合、アプリケーションはインストールされません。私たちはアプリケーションを何があっても実行できるようにしたいため、このケースでは存在しないバイナリーの実行を試行するPowerShellスクリプトをアップロードしました。この方法では、検知スクリプトは常に失敗し、アプリケーションが存在しないことを意味するので、インストールは継続されます。
「依存関係」と「上位置換」セクションをスキップして、「割り当て」セクション内にターゲットホストのグループを追加します:
Windowsアプリケーションを作成すると、Intune管理センターにそのアプリケーションが表示され、「割り当て済み」カラムには「はい」が表示されます。これは、Windows アプリケーションが指定したグループに割り当てられ、デプロイして実行されるのを待っていることを意味します。
ターゲット・ホスト上でIntuneエージェントのアドホック・トリガーを実行するために、「IntuneManagementExtension」サービスを再起動します。ターゲット・ホストがIntuneからWindowsアプリケーションをダウンロードして実行するまでに、サービスが再起動してから最大5分かかる場合があります。5分後にターゲット・ホストがWindowsアプリケーションをダウンロードして実行しない場合、サービスを再度起動する必要がある場合があります。アドホック・トリガーを実行するその他の方法は、アドホック・トリガーセクションにあります。
サービスが再起動したら、AgentExecutor.logと、IntuneManagementExtension.log を、ターゲット・ホストの C:\ProgramData\Microsoft\IntuneManagementExtension\Logsディレクトリ内で監視することができます。。AgentExecutor.logの最終変更日以降にファイルが更新されれば、IntuneエージェントはWindowsアプリケーションをダウンロードして実行しています。さらに、C:\Windows\IMECacheディレクトリを監視して、アプリケーションのファイルがいつダウンロードされたかを確認できます。そこには、一意のGUIDで作成されるサブフォルダーがあります。
この時点で、 Windowsアプリケーションがデプロイおよび実行され、WIN-8675309のターゲット・ホスト上でCobalt Strikeビーコンが取得されました。
このセクションでは、この研究で説明する攻撃シナリオに対してIntuneの構成の強度と検知機能を高めるための、いくつかの防御的な考慮事項について概説します。
Intuneを悪用する横移動アクティビティーの検知または脅威ハンティング・ルールを作成するには、まず監査ロギングを有効にする必要があります。Intune管理センター内で、「テナント管理」 > 「診断設定」 > 「診断設定の追加」を選択します。
「AuditLogs」と「OperationalLogs」を選択し、ログを分析ワークスペースに送信することを選択します。
IntuneAuditLogsとIntuneOperationalLogsのスキーマの、Log分析ワークスペースへの書き込みが表示されます。
Log AnalyticsワークスペースでIntuneログの受信を開始したら、 Microsoft Sentinelインスタンスでそのワークスペースを使用して、脅威ハンティングと分析のルールの構築を開始できます。これについては次のセクションで概説します。
現在、この研究で説明されているIntune攻撃シナリオを検知するための、一般公開されたMicrosoft Sentinel向けの分析ルールはありません。したがって、以下のセクションでは、Intune内の以下の攻撃シナリオに対して、Microsoft Sentinelのスケジュールされた分析ルールとして適用できる複数のルール・ロジックを示しています。
これらの分析ルールごとに、環境内でテストとチューニングを適切に実行することをお勧めします。以下にハイライトされているKQLクエリは、この KQL-Queries リポジトリからコピー&ペーストできます。
以下にリンクされているルール・ロジックは、ユーザーがデプロイメント用のPowerShellスクリプトやWindowsアプリケーションを作成するたびに警告を発します。
CreatedPSScriptOrWindowsApp.kql
以下のスクリーンショットは、このMicrosoft Sentinelでトリガーされるルールの例です。
以下でリンクされているルール・ロジックは、PowerShellスクリプトを24時間以内に作成および削除したユーザーを返します。これは、攻撃者がPowerShellスクリプトをデプロイした後に自分の足跡を隠そうとした証拠である可能性があります。
以下のスクリーンショットは、このMicrosoft Sentinelでトリガーされるルールの例を示したものです。
以下にリンクされているルール・ロジックは、Windowsアプリケーションを24時間以内に作成および削除したユーザーを返します。これは、攻撃者が Windows アプリケーションをデプロイした後に自分の足跡を隠そうとした証拠である可能性があります。
CreatedAndDeletedWindowsApp.kql
以下のスクリーンショットは、このMicrosoft Sentinelでトリガーされるルールの例を示したものです。
以下でリンクされているルール・ロジックは、24時間以内にPowerShellスクリプトまたはWindowsアプリケーションを作成し、デバイスの再起動を発行したユーザーを返します。
CreatedPSScriptOrWindowsAppForcedRestart.kql
以下のスクリーンショットは、このMicrosoft Sentinelでトリガーされるルールの例を示したものです。
以下のルール・ロジックでは、24時間以内にPowerShellスクリプトまたはWindowsアプリケーションを作成し、デバイス同期を発行したユーザーが返されます。
CreatedPSScriptOrWindowsAppForcedSync.kql
以下のスクリーンショットは、このMicrosoft Sentinelでトリガーされるルールの例を示したものです。
承認ポリシーを作成し、新しいスクリプトやアプリケーションのデプロイメントの承認に、指定したグループのメンバーが必要となるようにできます。これらのポリシーを、先に概説した検知ルールと組み合わせて適用すると、Intuneインスタンスのセキュリティー体制を大幅に増強できます。
「テナント管理」>「マルチ管理者承認」>「アクセス・ポリシー」>「作成」に移動します。
アクセス・ポリシー名、説明、プロファイル・タイプなどの必要な情報を入力します。プロファイルのタイプでは、「スクリプト」を選択します。
新しいスクリプトのデプロイメントの承認を担当するグループを1つまたは複数追加します。
ポリシーを作成すると、「アクセス・ポリシー」タブに表示されるのを確認できます。
この段階ではポリシーが適用されているため、ユーザーが新しいスクリプトを作成しようとすると、以下のメッセージが表示されます。ビジネス上の正当な理由があるリクエストが送信された後、指定されたグループの承認者はスクリプトのデプロイを許可する必要があります。
上で概説したのと同じ手順を実行して、アプリケーションのデプロイメントの承認を要求することもできます。アクセスポリシーを作成するときは、必ずプロファイルタイプドロップダウンメニューから「アプリ」を選択してください。
「アプリ」のプロファイル・タイプを含む当社のポリシーの概要を確認できます。
これで、ユーザーが新しいアプリケーションを作成しようとすると、このポリシーが適用されるため、以下のメッセージが表示されます。ビジネス上の正当な理由でリクエストを送信した後、指定された承認グループの承認者は、アプリケーションをデプロイする前にそのリクエストを承認する必要があります。
Microsoftには、Microsoft Entra IDのベスト・プラクティス ガイド があり、Microsoft Entra IDの設定を安全にするための詳細なガイダンスを紹介しています。Microsoft Intuneにおける特権的役割の悪用に関する、さらに重要な推奨事項には、次のようなものがあります。
ハイブリッドIDアーキテクチャーの採用とクラウド・ベース・サービスの利用は増え続けています。組織は、ユーザー・エンドポイントや、Office 365やその他のクラウド・ベースのサービスに接続する個人用デバイスを含むエンタープライズ・インフラストラクチャーの管理に、これらのクラウド・ベースのサービスを利用しています。そのため、Microsoft Intuneなどのクラウド・ベースのサービスの不正使用を適切に検知できることが、これまで以上に重要になっています。X-Force®は、この調査において、脅威アクターによって横移動やコード実行のために悪用されかねない、他のビジネス・クリティカルなクラウド・ベースのサービスの防御に関するさらなる調査を明らかにして触発することを目的としています。
この研究についてフィードバックをいただき、ブログ記事のレビューを提供いただいた以下の関係者に対し、特別に謝辞を送ります。