不正な同意許可を検出して修復する

ヒント

Office 365 プラン 2 のMicrosoft 365 Defenderの機能を無料で試すことができることをご存じですか? Microsoft 365 Defender ポータル試用版ハブで 90 日間のDefender for Office 365試用版を使用します。 サインアップできるユーザーと試用版の使用条件については、 こちらをご覧ください

適用対象

概要 Microsoft 365 での不正な同意許可攻撃を認識し、修復する方法について説明します。

不正な同意許可攻撃では、攻撃者は、連絡先情報、電子メール、ドキュメントなどのデータへのアクセスを要求する Azure 登録アプリケーションを作成します。 その後、攻撃者は、フィッシング攻撃を通じて、または信頼できる Web サイトに不正なコードを挿入することによって、そのアプリケーションにデータへのアクセスに同意することをエンド ユーザーに許可させます。 不正なアプリケーションに同意が与えられた後、組織のアカウントを必要とせずに、データに対するアカウント レベルのアクセス権を持ちます。 侵害されたアカウントのパスワードのリセットやアカウントでの多要素認証 (MFA) の要求など、通常の修復手順は、サード パーティ製のアプリケーションであり、組織の外部にあるため、この種の攻撃には対して有効ではありません。

これらの攻撃は、情報を呼び出しているエンティティが自動化であり、人間であると推測する相互作用モデルを利用します。

重要

現在、アプリからの不正な同意許可に関する問題が発生していると思われますか? Microsoft Defender for Cloud Appsには、OAuth アプリを検出、調査、修復するためのツールがあります。 この Defender for Cloud Apps の記事には、 危険な OAuth アプリの調査に関する手順を説明するチュートリアルがあります。 OAuth アプリ ポリシーを設定して、アプリが要求したアクセス許可 (ユーザーがこれらのアプリを承認している) を調査し、これらのアクセス許可要求を広く承認または禁止することもできます。

この攻撃の侵害のインジケーター (IOC) とも呼ばれる兆候を見つけるには、 監査ログ を検索する必要があります。 多くの Azure 登録済みアプリケーションと大規模なユーザー ベースを持つ組織の場合、ベスト プラクティスは、組織の同意付与を毎週確認することです。

この攻撃の兆候を見つけるための手順

  1. Microsoft 365 Defender ポータルを開きhttps://security.microsoft.com、[監査] を選択します。 または、[監査] ページに直接移動するには、https://security.microsoft.com/auditlogsearch を使用します。

  2. [ 監査 ] ページで、[ 検索 ] タブが選択されていることを確認し、次の設定を構成します。

    • 日付と時刻の範囲
    • アクティビティ: [すべてのアクティビティの結果を表示する ] が選択されていることを確認します。

    完了したら、[検索] をクリックします。

  3. [ アクティビティ ] 列をクリックして結果を並べ替え、[ アプリケーションへの同意] を探します。

  4. 一覧からエントリを選択すると、アクティビティの詳細が表示されます。 IsAdminConsent が True に設定されているかどうかを確認します。

注:

イベントが発生した後に、対応する監査ログ エントリが検索結果に表示されるまでには、30 分から 24 時間かかる場合があります。

監査レコードが保持され、監査ログで検索できる時間の長さは、Microsoft 365 サブスクリプション、特に特定のユーザーに割り当てられているライセンスの種類によって異なります。 詳細については、「 監査ログ」を参照してください。

この値が true の場合は、グローバル管理者アクセス権を持つユーザーがデータへの広範なアクセスを許可している可能性があることを示します。 これが予期しない場合は、攻撃を 確認する手順を実行します。

攻撃を確認する方法

上記の IOC のインスタンスが 1 つ以上ある場合は、攻撃が発生したことを肯定的に確認するために、さらに調査を行う必要があります。 次の 3 つの方法のいずれかを使用して、攻撃を確認できます。

  • Azure Active Directory ポータルを使用して、アプリケーションとそのアクセス許可をインベントリします。 この方法は徹底的ですが、確認するユーザーが多い場合は、一度に 1 人のユーザーしか確認できません。これは非常に時間がかかる場合があります。
  • PowerShell を使用してアプリケーションとそのアクセス許可をインベントリします。 これは最も高速で最も徹底的な方法であり、オーバーヘッドの量が最も少ない方法です。
  • ユーザーにアプリとアクセス許可を個別に確認し、結果を管理者に報告して修復を行います。

組織内のアクセス権を持つアプリをインベントリする

これを行うには、Azure Active Directory Portal または PowerShell を使用するか、ユーザーにアプリケーション アクセスを個別に列挙させます。

Azure Active Directory ポータルを使用するための手順

Azure Active Directory Portal https://portal.azure.comを使用して、個々のユーザーがアクセス許可を付与したアプリケーションを検索できます。

  1. 管理者権限でAzure portalにサインインします。
  2. Azure Active Directory ブレードを選択します。
  3. [ユーザー] を選択します。
  4. 確認するユーザーを選択します。
  5. [アプリケーション] を選択します。

これにより、ユーザーに割り当てられているアプリと、アプリケーションが持つアクセス許可が表示されます。

ユーザーにアプリケーション アクセスを列挙させる手順

ユーザーに自分のアプリケーション へのアクセスを https://myapps.microsoft.com 確認してもらいます。 アクセス権を持つすべてのアプリを表示し、それらに関する詳細 (アクセスの範囲を含む) を表示し、疑わしいアプリや不正なアプリに対する特権を取り消すことができる必要があります。

PowerShell でこれを行うための手順

不正アクセス許可の攻撃を確認する最も簡単な方法は 、Get-AzureADPSPermissions.ps1を実行することです。これにより、テナント内のすべてのユーザーのすべての OAuth 同意許可と OAuth アプリが 1 つの.csv ファイルにダンプされます。

前提条件

  • Azure AD PowerShell ライブラリがインストールされています。
  • スクリプトを実行するテナントに対する権限をグローバル管理者します。
  • スクリプトを実行するコンピューター上のローカル管理者。

重要

管理アカウントで多要素認証を必要とすることを 非常に推奨 します。 このスクリプトでは、MFA 認証がサポートされています。

  1. ローカル管理者権限でスクリプトを実行するコンピューターにサインインします。

  2. Get-AzureADPSPermissions.ps1 スクリプトを GitHub からスクリプトを実行するフォルダーにダウンロードまたはコピーします。 これは、出力 "permissions.csv" ファイルが書き込まれるのと同じフォルダーになります。

  3. 管理者として PowerShell セッションを開き、スクリプトの保存先フォルダーを開きます。

  4. Connect-AzureAD コマンドレットを使用してディレクトリに接続します。

  5. 次の PowerShell コマンドを実行します。

    .\Get-AzureADPSPermissions.ps1 | Export-csv -Path "Permissions.csv" -NoTypeInformation
    

このスクリプトは、Permissions.csv という名前の 1 つのファイルを生成します。 不正なアプリケーションアクセス許可付与を探すには、次の手順に従います。

  1. ConsentType 列 (列 G) で、値 "AllPrinciples" を検索します。 AllPrincipals アクセス許可を使用すると、クライアント アプリケーションはテナント内のすべてのユーザーのコンテンツにアクセスできます。 ネイティブ Microsoft 365 アプリケーションでは、正しく動作するには、このアクセス許可が必要です。 このアクセス許可を持つ Microsoft 以外のすべてのアプリケーションは、慎重に確認する必要があります。

  2. [アクセス許可] 列 (列 F) で、委任された各アプリケーションがコンテンツに対して持つアクセス許可を確認します。 "読み取り" アクセス許可と "書き込み" アクセス許可または "すべて" アクセス許可を探し、適切でない可能性があるため、これらを慎重に確認します。

  3. 同意が付与されている特定のユーザーを確認します。 高プロファイルまたは影響の大きいユーザーに不適切な同意が付与されている場合は、さらに調査する必要があります。

  4. ClientDisplayName 列 (列 C) で、疑わしいと思われるアプリを探します。 名前のスペルミス、スーパー ブランド名、ハッカーの名前を含むアプリは、慎重に確認する必要があります。

攻撃の範囲を決定する

アプリケーション アクセスのインベントリが完了したら、 監査ログ を確認して、侵害の完全な範囲を決定します。 影響を受けるユーザー、不正なアプリケーションが組織にアクセスできる期間、アプリが持っていたアクセス許可を検索します。 監査ログ、Microsoft 365 Defender ポータルで検索できます。

重要

この情報を取得するには、攻撃前に管理者とユーザーのメールボックス監査とアクティビティ監査が有効になっている必要があります。

不正アクセス許可を持つアプリケーションを特定したら、そのアクセスを削除する方法はいくつかあります。

  • 次の方法で、Azure Active Directory Portal でアプリケーションのアクセス許可を取り消すことができます。

    1. [Azure Active Directory ユーザー] ブレードで、影響を受けるユーザーに移動します。
    2. [アプリケーション] を選択します。
    3. 不正なアプリケーションを選択します。
    4. ドリルダウンで [削除] をクリックします。
  • Remove-AzureADOAuth2PermissionGrant の手順に従って、PowerShell で OAuth 同意付与を取り消すことができます。

  • Remove-AzureADServiceAppRoleAssignment の手順に従って、PowerShell でサービス アプリ ロールの割り当てを取り消すことができます。

  • 影響を受けるアカウントのサインインを完全に無効にすることもできます。これにより、そのアカウント内のデータへのアプリ アクセスが無効になります。 これはエンド ユーザーの生産性には適していませんが、影響を迅速に制限する作業を行っている場合は、実行可能な短期的な修復になる可能性があります。

  • テナントの統合アプリケーションをオフにすることができます。 これは、エンド ユーザーがテナント全体で同意を付与する機能を無効にする抜本的な手順です。 これにより、ユーザーが悪意のあるアプリケーションへのアクセスを誤って許可するのを防ぎます。 これは、ユーザーがサード パーティのアプリケーションで生産性を高める能力を大幅に損なうので、強くお勧めしません。 これを行うには、「 統合アプリを有効または無効にする」の手順に従います。

関連項目