不法な同意の付与を検出して修復するDetect and Remediate Illicit Consent Grants

概要 Office 365 で不法な同意を付与する攻撃を認識し、修復する方法について説明します。Summary Learn how to recognize and remediate the illicit consent grants attack in Office 365.

違法同意付与攻撃では、攻撃者は、連絡先情報、電子メール、ドキュメントなどのデータへのアクセスを要求する Azure 登録済みアプリケーションを作成します。In an illicit consent grant attack, the attacker creates an Azure-registered application that requests access to data such as contact information, email, or documents. その後、攻撃者はエンドユーザーに対して、フィッシング攻撃によるデータへのアクセスを許可するように指示するか、または信頼された web サイトに不法なコードを挿入します。The attacker then tricks an end user into granting that application consent to access their data either through a phishing attack, or by injecting illicit code into a trusted website. 不正なアプリケーションに同意した後は、組織のアカウントを使用しなくても、データへのアカウントレベルのアクセス権が付与されます。After the illicit application has been granted consent, it has account-level access to data without the need for an organizational account. 違反アカウントのパスワードをリセットしたり、アカウントに多要素認証 (MFA) を必要としたりするなど、通常の修復手順は、この種の攻撃に対しては有効ではありません。これらはサードパーティのアプリケーションであり、組織の外部にあるためです。Normal remediation steps, like resetting passwords for breached accounts or requiring Multi-Factor Authentication (MFA) on accounts, are not effective against this type of attack, since these are third-party applications and are external to the organization.

これらの攻撃は、情報を呼び出しているエンティティが人間ではなく、オートメーションであることを前提とする相互作用モデルを利用します。These attacks leverage an interaction model which presumes the entity that is calling the information is automation and not a human.

重要

現時点では、アプリからの不法な同意を得られる問題が発生していると思われますか。Do you suspect you're experiencing problems with illicit consent-grants from an app, right now? Microsoft Cloud App Security (MCAS) には、OAuth アプリを検出、調査、修復するためのツールがあります。Microsoft Cloud App Security (MCAS) has tools to detect, investigate, and remediate your OAuth apps. この MCAS の記事には、危険な OAuth アプリを調査する方法の概要を示すチュートリアルがあります。This MCAS article has a tutorial that outlines how to go about investigating risky OAuth apps. また、 OAuth アプリポリシーを設定して、アプリが要求するアクセス許可を調査し、ユーザーがこれらのアプリを承認して、これらのアクセス許可要求を幅広く承認または禁止することもできます。You can also set OAuth app policies to investigate app-requested permissions, which users are authorizing these apps, and widely approve or ban these permissions requests.

監査ログを検索して、この攻撃の兆候の兆候 (IOC) と呼ばれることもあります。You need to search the audit log to find signs, also called Indicators of Compromise (IOC) of this attack. Azure に登録されているアプリケーションの数が多く、ユーザーが大規模な組織では、組織の同意の付与を週単位で確認することをお勧めします。For organizations with many Azure-registered applications and a large user base, the best practice is to review your organizations consent grants on a weekly basis.

この攻撃の兆候を見つけるための手順Steps for finding signs of this attack

  1. テナント内の [セキュリティ & コンプライアンスセンター ] を開きます。Open the Security & Compliance Center in your tenant.

  2. [検索] に移動して、[監査ログの検索] を選択します。Navigate to Search and select Audit log search.

  3. 検索 (すべてのアクティビティとすべてのユーザー)、必要に応じて開始日と終了日を入力し、[検索] をクリックします。Search (all activities and all users) and enter the start date and end date if required and then click Search.

  4. [結果のフィルター ] をクリックし、[アクティビティ] フィールドに「アプリケーションへの同意」と入力します。Click Filter results and enter Consent to application in the Activity field.

  5. 結果をクリックして、アクティビティの詳細を表示します。Click on the result to see the details of the activity. [詳細情報] をクリックして、アクティビティの詳細を取得します。Click More Information to get details of the activity. IsAdminContent が True に設定されているかどうかを確認します。Check to see if IsAdminContent is set to True.

注意

イベントが発生した後に、対応する監査ログエントリが検索結果に表示されるようにするには、30分から最大24時間かかることがあります。It can take from 30 minutes up to 24 hours for the corresponding audit log entry to be displayed in the search results after an event occurs.

監査レコードが保持され、監査ログで検索可能な期間は、Microsoft 365 サブスクリプションによって異なり、具体的には特定のユーザーに割り当てられているライセンスの種類によって異なります。The length of time that an audit record is retained and searchable in the audit log depends on your Microsoft 365 subscription, and specifically the type of the license that is assigned to a specific user. 詳細については、「監査ログ」を参照してください。For more information, see Audit log.

この値が true の場合は、グローバル管理者のアクセス権を持つユーザーがデータへの広範なアクセス権を持っている可能性があることを示します。If this value is true, it indicates that someone with Global Administrator access may have granted broad access to data. これが予期しない場合は、攻撃を確認するための手順を実行します。If this is unexpected, take steps to confirm an attack.

攻撃を確認する方法How to confirm an attack

上記の IOCs のインスタンスが1つ以上ある場合は、攻撃が発生したことを確認するためにさらに調査する必要があります。If you have one or more instances of the IOCs listed above, you need to do further investigation to positively confirm that the attack occurred. 次の3つの方法のいずれかを使用して、攻撃を確認できます。You can use any of these three methods to confirm the attack:

  • Azure Active Directory ポータルを使用した、アプリケーションとそのアクセス許可の一覧を示します。Inventory applications and their permissions using the Azure Active Directory portal. この方法は徹底していますが、チェックするユーザーが多い場合は、一度に1人のユーザーをチェックするだけで十分な時間がかかる場合があります。This method is thorough, but you can only check one user at a time which can be very time consuming if you have many users to check.

  • PowerShell を使用した、アプリケーションとそのアクセス許可の一覧を示します。Inventory applications and their permissions using PowerShell. これは、最も少ないオーバーヘッドを最小限にした最も高速かつ最も綿密な方法です。This is the fastest and most thorough method, with the least amount of overhead.

  • ユーザーが自分のアプリとアクセス許可を個別に確認して、修復のために管理者に結果を報告するようにします。Have your users individually check their apps and permissions and report the results back to the administrators for remediation.

組織内でアクセスできるインベントリアプリInventory apps with access in your organization

これは、Azure Active Directory ポータルまたは PowerShell を使用しているユーザーに対して行うことができます。または、ユーザーがアプリケーションアクセスを個別に列挙する必要があります。You can do this for your users with either the Azure Active Directory Portal, or PowerShell or have your users individually enumerate their application access.

Azure Active Directory ポータルを使用するための手順Steps for using the Azure Active Directory Portal

Azure Active Directory ポータルを使用して、個々のユーザーがアクセス許可を付与したアプリケーションを検索できます。You can look up the applications to which any individual user has granted permissions by using the Azure Active Directory Portal.

  1. 管理者権限を使用して Azure Portal にサインインします。Sign in to the Azure Portal with administrative rights.

  2. Azure Active Directory ブレードを選択します。Select the Azure Active Directory blade.

  3. [ユーザー] を選択します。Select Users.

  4. 確認するユーザーを選択します。Select the user that you want to review.

  5. [アプリケーション] を選択します。Select Applications.

これにより、ユーザーに割り当てられているアプリと、アプリケーションのアクセス許可が表示されます。This will show you the apps that are assigned to the user and what permissions the applications have.

ユーザーがアプリケーションアクセスを列挙する手順Steps for having your users enumerate their application access

ユーザーが自分のアプリケーションhttps://myapps.microsoft.comへのアクセスを確認してもらいます。Have your users go to https://myapps.microsoft.com and review their own application access there. これらのユーザーは、アクセス可能なすべてのアプリを表示したり、それらに関する詳細を表示したり (アクセスの範囲を含む)、疑わしいまたは不法なアプリに対して権限を取り消すことができます。They should be able to see all the apps with access, view details about them (including the scope of access), and be able to revoke privileges to suspicious or illicit apps.

PowerShell を使用してこれを行うための手順Steps for doing this with PowerShell

不法同意付与攻撃を確認する最も簡単な方法は、 Get-AzureADPSPermissionsを実行することです。これにより、テナント内のすべてのユーザーの oauth 承諾許可と oauth アプリがすべて、1つの .csv ファイルにダンプされます。The simplest way to verify the Illicit Consent Grant attack is to run Get-AzureADPSPermissions.ps1, which will dump all the OAuth consent grants and OAuth apps for all users in your tenancy into one .csv file.

前提条件Pre-requisites

  • Azure AD PowerShell ライブラリがインストールされていること。The Azure AD PowerShell library installed.

  • スクリプトが実行されるテナントのグローバル管理者権限。Global administrator rights on the tenant that the script will be run against.

  • スクリプトを実行するコンピューターのローカル管理者。Local Administrator on the computer from which will run the scripts.

重要

管理アカウントでは、多要素認証を必要とすることを強くお勧めします。We highly recommend that you require multi-factor authentication on your administrative account. このスクリプトは、MFA 認証をサポートします。This script supports MFA authentication.

  1. スクリプトを実行するコンピューターに、ローカル管理者権限を使用してサインインします。Sign in to the computer that you will run the script from with local administrator rights.

  2. Get-AzureADPSPermissionsスクリプトを GitHub から、スクリプトを実行するフォルダーにダウンロードまたはコピーします。Download or copy the Get-AzureADPSPermissions.ps1 script from GitHub to a folder from which you will run the script. これは、出力 "permissions" ファイルが書き込まれるフォルダーと同じです。This will be the same folder to which the output "permissions.csv" file will be written.

  3. 管理者として PowerShell インスタンスを開き、スクリプトを保存したフォルダーを開きます。Open a PowerShell instance as an administrator and open to the folder you saved the script to.

  4. AzureADコマンドレットを使用して、ディレクトリに接続します。Connect to your directory using the Connect-AzureAD cmdlet.

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

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

スクリプトによって、Permissions という名前のファイルが1つ作成されます。The script produces one file named Permissions.csv. 次の手順に従って、不法なアプリケーションアクセス許可の付与を検索します。Follow these steps to look for illicit application permission grants:

  1. [Conな種類] 列 (列 G) で、値 "AllPrinciples" を検索します。In the ConsentType column (column G) search for the value "AllPrinciples". AllPrincipals アクセス許可によって、クライアントアプリケーションは、テナント内のすべてのユーザーのコンテンツにアクセスできます。The AllPrincipals permission allows the client application to access everyone's content in the tenancy. ネイティブの Microsoft 365 アプリケーションは、このアクセス許可を正しく動作させるために必要です。Native Microsoft 365 applications need this permission to work correctly. このアクセス許可を持つ Microsoft 以外のすべてのアプリケーションは、慎重にレビューする必要があります。Every non-Microsoft application with this permission should be reviewed carefully.

  2. [アクセス許可] 列 (列 F) に、各委任されたアプリケーションがコンテンツに対して持っているアクセス許可を確認します。In the Permission column (column F) review the permissions that each delegated application has to content. "読み取り" と "書き込み" アクセス許可または "* を探します。All "アクセス許可を使用して、適切ではない可能性があるため慎重に確認してください。Look for "Read" and "Write" permission or "*.All" permission, and review these carefully because they may not be appropriate.

  3. 同意が付与されている特定のユーザーを確認します。Review the specific users that have consents granted. プロファイルが大きい場合や、影響度の高いユーザーに不適切な同意が付与されている場合は、さらに詳しく調査する必要があります。If high profile or high impact users have inappropriate consents granted, you should investigate further.

  4. [ClientDisplayName] 列 (列 C) で、疑わしいと思われるアプリを探します。In the ClientDisplayName column (column C) look for apps that seem suspicious. 名前のスペルが間違っているアプリ、super bland names、またはハッカーが発音した名前は、慎重に検討する必要があります。Apps with misspelled names, super bland names, or hacker-sounding names should be reviewed carefully.

攻撃の範囲を決定するDetermine the scope of the attack

アプリケーションアクセスのインベントリ処理が終了したら、監査ログを確認して、違反の完全な範囲を特定します。After you have finished inventorying application access, review the audit log to determine the full scope of the breach. 影響を受けるユーザー、不法アプリケーションが組織にアクセスした時間枠、およびアプリのアクセス許可を検索します。Search on the affected users, the time frames that the illicit application had access to your organization, and the permissions the app had. 監査ログは、 Microsoft 365 セキュリティ/コンプライアンスセンターで検索できます。You can search the audit log in the Microsoft 365 Security and Compliance Center.

重要

この情報を取得するには、攻撃の前に、管理者とユーザーのメールボックスの監査とアクティビティの監査を有効にする必要があります。Mailbox auditing and Activity auditing for admins and users must have been enabled prior to the attack for you to get this information.

不法なアクセス許可を使用してアプリケーションを識別した後、そのアクセスを削除する方法がいくつかあります。After you have identified an application with illicit permissions, you have several ways to remove that access.

  • Azure Active Directory ポータルのアプリケーションのアクセス許可は、次の方法で取り消すことができます。You can revoke the application's permission in the Azure Active Directory Portal by:

    • Azure Active Directory ユーザーブレードの影響を受けるユーザーに移動します。Navigate to the affected user in the Azure Active Directory User blade.

    • [アプリケーション] を選択します。Select Applications.

    • 違法アプリケーションを選択します。Select the illicit application.

    • ドリルダウンで [削除] をクリックします。Click Remove in the drill down.

  • PowerShell で OAuth 同意の付与を取り消すには、 AzureADOAuth2PermissionGrantの手順に従ってください。You can revoke the OAuth consent grant with PowerShell by following the steps in Remove-AzureADOAuth2PermissionGrant.

  • PowerShell を使用してサービスアプリの役割の割り当てを無効にするには、 AzureADServiceAppRoleAssignmentの手順に従ってください。You can revoke the Service App Role Assignment with PowerShell by following the steps in Remove-AzureADServiceAppRoleAssignment.

  • 影響を受けるアカウントのサインインを完全に無効にすることもできます。これにより、そのアカウントのデータに対するアプリのアクセスが無効になります。You can also disable sign-in for the affected account altogether, which will in turn disable app access to data in that account. これは、エンドユーザーの生産性を向上させるのには理想的ではありませんが、影響をすばやく抑えるために作業する場合は、実用的な短期的な修復になります。This isn't ideal for the end user's productivity, of course, but if you are working to limit impact quickly, it can be a viable short-term remediation.

  • テナントのために統合アプリケーションをオフにすることができます。You can turn integrated applications off for your tenancy. これは、エンドユーザーがテナント全体に同意を付与する機能を無効にする重大な手順です。This is a drastic step that disables the ability for end users to grant consent on a tenant-wide basis. これにより、ユーザーが悪意のあるアプリケーションへのアクセスを誤って許可するのを防ぐことができます。This prevents your users from inadvertently granting access to a malicious application. これは、ユーザーがサードパーティ製のアプリケーションを使用して生産性を向上させることがひどくないため、強くお勧めしません。This isn't strongly recommended as it severely impairs your users' ability to be productive with third party applications. これを行うには、統合アプリをオンまたはオフにする手順に従ってください。You can do this by following the steps in Turning Integrated Apps on or off.

サイバー セキュリティの専門家のように、Microsoft 365 のセキュリティを強化するSecure Microsoft 365 like a cybersecurity pro

Microsoft 365 サブスクリプションには、データとユーザーを保護するために使用できる強力なセキュリティ機能のセットが用意されています。Your Microsoft 365 subscription comes with a powerful set of security capabilities that you can use to protect your data and your users. Microsoft 365 セキュリティ ロードマップ - 最初の 30 日間、90 日間、およびそれ以降の最優先事項を使用して、Microsoft 365 テナントをセキュリティで保護するために Microsoft が推奨するベスト プラクティスを実装します。Use the Microsoft 365 security roadmap - Top priorities for the first 30 days, 90 days, and beyond to implement Microsoft recommended best practices for securing your Microsoft 365 tenant.

  • 最初の30日間に実行するタスク。Tasks to accomplish in the first 30 days. これらはすぐに影響を受け、ユーザーにとって影響が小さくなります。These have immediate affect and are low-impact to your users.

  • 最初の 90 日間で完了すべき作業。作業の計画と実装に少し時間がかかりますが、セキュリティ体制は大幅に向上します。Tasks to accomplish in 90 days. These take a bit more time to plan and implement but greatly improve your security posture.

  • 90 日以降。最初の 90 日間の作業で保護が強化されます。Beyond 90 days. These enhancements build in your first 90 days work.

関連項目:See also: