5-Minute Hunt: Microsoft 365 におけるリスクのあるマルチテナントアプリの検知

2025年9月9日
Lucie Cardiet
サイバー脅威リサーチマネージャー
5-Minute Hunt: Microsoft 365 におけるリスクのあるマルチテナントアプリの検知

5-Minute Hunt は Vectra AI プラットフォームの Investigate タブ で利用できる新機能です。 Vectra AI プラットフォーム で毎週、特定の攻撃者の振る舞いに焦点を当て、それを検知するためのすぐに実行可能なクエリを製品内で短く紹介します。

マルチテナント型アプリがリスクにさらされる理由

Microsoft 365 のマルチテナントアプリは組織間アクセス用に設計されていますが、設定を誤ると危険なバックドアとなります。1つのトグルで内部リソースが外部ユーザーに公開される可能性があります。攻撃者はこれを同意ベース攻撃で悪用し、資格情報を盗むことなく不正アクセスを獲得します。最近、セキュリティ研究者はこの弱点により 22 を超える Microsoft 内部サービスにアクセスできたことを実証しました。SOC チームにとってこれは、設定ミスや意図せず有効化されたマルチテナントアプリが攻撃面を大幅に拡大することを意味します。

マルチテナント型アプリを悪用する攻撃者の手口

攻撃者は以下の方法でこれらの弱点を突きます。

  1. 同意フィッシング
    公開されたマルチテナントアプリを使い、ユーザーを騙して OAuth 同意を与えさせます。一度承認されれば、攻撃者が管理するアプリは資格情報を盗むことなく正規のトークンを取得できます。
  2. 誤った権限からのトークン発行
    アプリが誤ってマルチテナントとして登録されている場合、Entra ID はリソーステナントではなくユーザーテナントからアクセストークンを発行することがあります。攻撃者は「誤った権限元」によって認証され、検証を回避し、本来許可されるはずのないアクセスを獲得します。
  3. サービスプリンシパルの生成
    同意プロンプトを承認すると、自動的に被害者のテナントにアプリ用のサービスプリンシパルが作成されます。攻撃者はこれを利用してアクセスを持続させたり、他アプリを横断して権限を連鎖的に拡大したりします。
  4. 脆弱なアプリの列挙
    サブドメインをスキャンして分析する クライアントID パラメータを使用することで、攻撃者はどのアプリがマルチテナントとして設定されているかを特定することができます。特に、開発者がシングルテナントでの使用を想定しているにもかかわらず、共通エンドポイントを有効にしたままにしている場合は、それぞれが潜在的なエントリーポイントになります。
  5. 内部システムへのピボット
    アクセスを得た後、攻撃者は接続されたアプリケーション、内部ポータル、API を探索できます。Microsoft の事例研究では、エンジニアリングハブ、リスクレジスター、ビルドインフラまでもが個人の Microsoft 365 アカウントから利用可能になっていました。

リスクは単一のミスステップにあるのではなく、マルチテナント設定が同意やトークン発行とどのように相互作用するかにある。1つの不適切な設定のアプリケーションによって、環境全体が権限のないユーザーに開放され、攻撃者が機密データを探索したり、特権をエスカレートしたりする足がかりを与えてしまう可能性があります。

悪用を検知に変える

それでは、自分のEntra ID環境でこれらのリスクを発見する方法を考えてみましょう。設定ミスは必ずしも明らかな痕跡を残しませんが、Entra IDのすべての変更は監査証跡を残します。アプリケーションの 他のテナントへ利用可能 プロパティが "true "に反転するそのため、アプリが意図的かどうかに関わらずマルチテナント化されているケースを素早く特定することができます。

以下のクエリは、まさにそのことを示すために作成されています。このクエリは、マルチテナント・アクセスを可能にする最近の変更を検索し、必要なコンテキスト(誰が、どこから、いつ変更を行ったか)を提供します。

クエリの目的:マルチテナントアクセスを有効にするためにテナント内のアプリケーションが変更されたかどうかを検知 し、変更の詳細を調査すること。

SELECT timestamp, vectra.identity_principal, operation, extended_properties, object_id, device_properties, client_ip, modified_properties
FROM m365.active_directory._all WHERE any_match(modified_properties, m -> (m.display_name 
LIKE '%AvailableToOtherTenants%' AND m.new_value LIKE '%true%'))
AND timestamp > date_add('day',-30, now())
ORDER BY タイムスタンプ DESC 
LIMIT 100

結果で注目すべきポイント

このクエリを実行すると、マルチテナントアクセスを許可するためにアプリケーションがいつ、どのように変更されたかを明確に知ることができます。合法的なビジネス上の変更と潜在的な悪意のある活動を区別するために、以下の領域に注目してください。

  1. マルチテナント・アクセス用に変更されたアプリケーション
    どのアプリケーションが他のテナントのアクセスを許可するように変更されたかをよく見てください。ビジネスクリティカルなアプリケーションでこの設定が必要になることはほとんどないため、予期しないエントリがあれば赤信号が発せられるはずです。
  2. 変更を行った ID またはユーザ
    vectra.identity_principalフィールドは、誰が変更を行ったかを示します。開発者、管理者、または通常アプリ登録を扱うべきでないアカウントでしょうか?このコンテキストは、内部者のミスや外部からの侵害をすぐに指摘することができます。
  3. 変更要求のクライアントIPアドレス
    client_ipを既知の範囲またはジオロケーションデータと照合します。見慣れないIP、外国の地域、または既知の悪意のあるソースは、攻撃に関与している可能性があります。
  4. 修正のタイミングパターン
    構成の変更がいつ行われたかに注目してください。営業時間外のアクティビティ、複数回の変更、週末や祝日に集中した異常な変更などは、攻撃者の振る舞いと一致することがよくあります。これらのデータポイントを組み合わせることで、日常的なIT操作と、より詳細な調査に値する疑わしい変更とを区別することができます。

さらなる調査方法

クエリによってマルチテナント化されたアプリケーションが表示された場合、以下の手順を使用して、その変更が安全か、意図的か、悪意があるかどうかを判断してください。

  • マルチテナント構成が意図的なものであり、許可されたもの であるかどうかを確認する。
  • 潜在的な影響を評価するために、 申請の許可と範囲を確認する。
  • 変更するユーザーアカウントが 侵害されていないか確認する。
  • クライアントのIPに 地理的な異常がないか、または既知の悪意のある発信元がないか調べる。
  • マルチテナントアクセス要件のビジネス正当性の検証。
  • 不正な変更と思われる場合は、一時的にアプリケーションを無効にすることを検討すること

まとめ

たった1つの設定ミスのアプリケーションによって、攻撃者は本来アクセスできないはずのアクセス権を得ることになります。このハントを定期的に実行することで、SOCチームは不正な変更を迅速に発見し、同意に基づく不正使用が拡大する前にシャットダウンすることができます。

Vectra AI プラットフォームをすでにご利用の場合は、「Investigate(調査)」タブでこのハントやその他のハントをご覧いただけます。

まだユーザーではありませんか?Vectra AI PlatformがID、ネットワーク、クラウドの検知ギャップをどのように解決するか、セルフガイドデモでご覧ください。

Vectra AIプラットフォームの5分間ハント機能のスクリーンショット
Vectra AIプラットフォームの5分間ハント機能のスクリーンショット

よくあるご質問(FAQ)