5分でハント:Microsoft 365における危険なマルチテナント アプリケーションの検出

2025年9月9日
Lucie Cardiet
サイバー脅威リサーチマネージャー
5分でハント:Microsoft 365における危険なマルチテナント アプリケーションの検出

5分間ハントについて:5分間ハントは、以下の新機能です。 Vectra AIプラットフォームで利用できる新機能です。毎週、製品内で特定の攻撃者の行動に焦点を当てた短いハントスニペットを見つけることができ、それを検知 するためにすぐに実行できるクエリを提供します。

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

Microsoft 365のマルチテナント型アプリケーションは、組織横断的なアクセスを想定して設計されているが、設定を誤ると危険なバックドアを作りかねない。トグル1つで内部リソースを外部ユーザーにさらすことができる。攻撃者は同意ベースの攻撃によってこれを悪用し、認証情報を盗むことなく不正アクセスを獲得する。セキュリティ研究者は最近、この弱点が22以上のマイクロソフトの内部サービスへのアクセスを可能にすることを実証した。SOCチームにとって、これは、誤った設定や意図せずに有効化されたマルチテナント型アプリが攻撃対象領域を大幅に拡大することを意味する。

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

敵はいくつかの方法でこの弱点を突いてくる:

  1. Consentフィッシング
    マルチテナントのアプリが公開されると、攻撃者はユーザーを騙してOAuthの同意を与えることができる。いったん承認されると、攻撃者がコントロールするアプリは、認証情報を盗む必要なくリソースにアクセスするための正当なトークンを獲得します。
  2. 誤った権限からのトークン発行
    アプリがマルチテナントとして誤って登録された場合、Entra ID はリソーステナントではなく、ユーザー自身のテナントからアクセストークンを発行することがあります。これは、攻撃者が認証されることを意味しますが、間違った権限によって、チェックを回避し、アプリケーションが付与するつもりのなかったアクセスを継承します。
  3. Service Principal Instantiation(サービスプリンシパルのインスタンス化
    同意プロンプトを受け入れると、被害者のテナント内にアプリケーションのサービスプリンシパルが自動的に作成される。攻撃者はこれを悪用して、アクセスを持続させたり、他のアプリ間でパーミッションを連鎖させてスコープをエスカレートさせたりする。
  4. 脆弱なアプリの列挙
    サブドメインをスキャンしてclient_idパラメータを分析することで、攻撃者はどのアプリがマルチテナントとして設定されているかを特定することができる。特に、開発者がシングルテナントでの利用を想定しているにもかかわらず、共通エンドポイントを有効にしている場合は、それぞれが潜在的なエントリポイントになります。
  5. 内部システムへのピボット
    一旦アクセス権を獲得すると、攻撃者は接続されたアプリケーション、内部ポータル、または API を探索することができます。マイクロソフトの事例では、この結果、エンジニアリング・ハブ、リスク・レジスタ、さらにはビルド・インフラストラクチャまで、すべて個人の Microsoft 365 アカウントからアクセスできることが暴露されました。

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

搾取を検知に変える

それでは、自分のEntra ID環境でこれらのリスクを発見する方法を考えてみましょう。設定ミスは常に明白な痕跡を残すわけではありませんが、Entra ID のすべての変更は監査証跡を残します。アプリケーションのAvailableToOtherTenants プロパティが "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 Platformをすでにご利用の場合は、「Investigate(調査)」タブでこのハントやその他のハントをご覧いただけます。

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

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

よくあるご質問(FAQ)