Language:
Microsoft は、Microsoft Entra ID のアプリケーションを介して API を公開し、サードパーティアプリケーションが Microsoft Entra ID 自体、また Microsoft 365 (O365) や Azure クラウドなどでアクションを実行できるようにします。「API アクセス許可」は、必要とするサービスプリンシパルだけが利用できるこれらの API へのアクセスを保護します。アクセス許可の承認は、「アプリケーションロールの割り当て」または「同意の付与」と呼ばれています。
一部の Microsoft API (以下を参照) に対する特定のアクセス許可は、Microsoft Entra ID テナント全体に深刻な脅威をもたらす可能性があります。これは、これらのアクセス許可を持つサービスプリンシパルが、グローバル管理者などの強力な管理者ロールを持つユーザーよりも目立たないながらも、非常に強力なユーザーになるためです。これを悪用すると、攻撃者は多要素認証 (MFA) をバイパスし、ユーザーパスワードのリセットを避けることができます。
アクセス許可は、正当と見なされると、テナントのアタックサーフェスを拡大させます。アクセス許可が正当でない場合、権限昇格や永続化といった悪意のある試みである可能性があります。
Microsoft ドキュメント「アクセス許可と同意の概要」に記載されているように、Microsoft Entra ID の API アクセス許可には次の 2 つのタイプがあります。
この露出インジケーターは、両タイプのアクセス許可を調べます。API アクセス許可は、ユーザーではなくサービスプリンシパルのみに適用可能であるため、サービスプリンシパルに関してのみ報告を行います。
この露出インジケーターは、Microsoft Graph API および従来の Azure AD Graph API へのアクセスを可能にするアクセス許可にも重点を置いています。特に、次の危険なアクセス許可はセキュリティリスクをもたらす可能性があります。
RoleManagement.ReadWrite.Directory
: 攻撃者がグルーバル管理者ロールへと自ら昇格できるようにします。AppRoleAssignment.ReadWrite.All
: 攻撃者が自らに RoleManagement.ReadWrite.Directory
アクセス許可を付与できるようにします (上記参照)。これらの危険なアクセス許可を持つ正当なアプリケーションは、本来必要とされる範囲を超えたアクセス許可を求めます。これは、攻撃者が管理者の同意の取得に成功する「不正な同意の付与」と呼ばれるフィッシング攻撃を示唆する可能性もあります。
アクセス許可を持つ、報告されたサービスプリンシパルが正当であるかどうかを判断することから始めます。フィッシング攻撃では、表示名を偽装することが技術的に可能ですのでご注意ください。サービスプリンシパルが既知のソフトウェアベンダーに属しているように見える場合、報告されたアプリケーション ID がそのベンダーに属しているかどうかを確認するよう、ベンダーに依頼します。サービスプリンシパルが不正なもので、既知のアプリケーション名になりすましている場合、フォレンジック分析を実行する必要があります。
Microsoft は、アプリケーションの同意付与の調査の実行方法と不正な同意の付与を検出して修復する方法に関する 2 つのガイドも発行しています。