Azureに不審なアプリケーションが登録されていないか確認する方法をChatGPTに聞いてみた

Pocket

以下、ChatGPTに質問してみた結果です。

<質問1>
不審なアプリケーションが登録されていないかAzureのログから調べる方法を教えてください。

ChatGPT

Azure環境で不審なアプリケーションが登録されていないかを調査するためには、Azure Active Directory (AAD) のログやアクティビティ情報を確認するのが有効です。特にアプリケーション登録や許可の操作はセキュリティリスクに繋がる可能性があるため、これらを確認するための手順を紹介します。

1. Azure Active Directory サインインログの確認

サインインログには、アプリケーションがどのように使用されているかの情報が含まれます。怪しいアプリケーションがサインインしている場合、その痕跡が見つかることがあります。
手順:

Azureポータルにサインインします。
左側のメニューから 「Azure Active Directory」 を選択します。
「監査ログ」または「サインインログ」を選択します。
ログイン活動において、アプリケーションフィルターを使用して特定のアプリケーションに対するサインインやアクセス試行を確認します。

チェックポイント:

不審なアプリケーションID(通常の業務に関係しないアプリケーションがないか確認)
異常なサインインパターン(たとえば通常のビジネス時間外のサインイン、知らないデバイスからのアクセスなど)

2. Azure AD監査ログでのアプリケーション登録と変更の確認

Azure AD監査ログには、アプリケーションの登録、変更、削除に関するアクティビティが記録されます。これを使用して、不審なアプリケーションが登録されていないかを確認します。
手順:

Azureポータルにサインインします。
「Azure Active Directory」 > 「監査ログ」 を選択します。
フィルターオプションで、「アプリケーションの登録」「アプリケーションの削除」「アプリケーションの許可設定変更」などの操作を選択し、特定の期間に実行されたアクションを確認します。
監査ログ内で 「アクティビティの種類」 フィルターを使用し、アプリケーション登録や権限の変更に関連するアクションに絞り込んで調査します。

チェックポイント:

不正なアプリケーション登録: 未承認のユーザーが新しいアプリケーションを登録した痕跡。
権限の変更: 既存のアプリケーションに対して権限の昇格が行われていないか。

3. Microsoft Graph API を使用してアプリケーション情報を取得

AzureポータルのUI以外にも、Microsoft Graph APIを使用して、登録されているアプリケーションのリストやそれに関連する情報を取得することができます。これにより、より詳細な調査が可能になります。
手順:

Microsoft Graph APIを呼び出して、Azure ADに登録されているアプリケーションの一覧を取得します。
Graph APIエンドポイント:
https://graph.microsoft.com/v1.0/applications

以下のコマンドでAzure ADに登録された全アプリケーションを確認します。

bash

GET https://graph.microsoft.com/v1.0/applications

このリクエストにより、Azure ADに登録されたすべてのアプリケーションのID、名前、作成日時、所有者情報などが取得できます。

チェックポイント:

登録者の確認: アプリケーションを登録したユーザーやサービスプリンシパルが正当なものかを確認。
作成日時の確認: アプリケーションの作成日が最近の場合、急に登録された不審なアプリケーションである可能性があるため、さらに調査を進めます。

4. Azure Resource Graph Explorerでのクエリ

Azure Resource Graph Explorerを使用して、Azureリソース全体にわたるアプリケーション関連のクエリを実行できます。Azure ADに関連するリソースのステータスや登録アクションをリストアップすることができます。
手順:

Azureポータルにサインインし、Azure Resource Graph Explorer にアクセスします。

クエリを実行して、Azure ADに登録されたアプリケーションリソースを表示します。次のようなクエリを実行します。

kusto

Resources
| where type == "microsoft.aad/applications"

クエリ結果でアプリケーションの作成時期、登録者などの属性を確認します。

チェックポイント:

不審なリソース作成: 意図しないアプリケーションが作成されていないかを確認。

5. アプリケーションのAPI権限の確認

アプリケーションに付与されているAPI権限が不正にエスカレーションされていないかを調査します。特に、Directory.Read.All や User.Read.All などの高権限が付与されていないかを確認します。
手順:

Azureポータルで 「Azure Active Directory」 > 「アプリの登録」 を選択。
登録されているアプリケーションのリストから、それぞれのアプリケーションを選択し、「APIのアクセス許可」 を確認します。
アプリケーションが持つAPIの権限リストを確認し、特権的な権限が不必要に付与されていないかを確認します。

チェックポイント:

不要な特権権限の確認: アプリケーションに高い権限が付与されている場合、その理由や必要性を確認し、不必要な権限であれば削除します。

結論:

Azure環境で不審なアプリケーションの登録を調査するには、Azure ADの監査ログやサインインログを確認し、Microsoft Graph APIやAzure Resource Graph Explorerでさらに詳細なデータを収集することが重要です。また、アプリケーションのAPI権限や登録者の情報を綿密に確認し、特権権限が付与されているか、必要以上のアクセスが許可されていないかを調べることで、不正なアクティビティの検出と防止が可能です。

<質問2>
特に注意が必要なAPI権限をリストアップしてもらえますか?

ChatGPT

Azure Active Directory (Azure AD) に登録されているアプリケーションに付与されるAPI権限は、システムやデータに対する影響力が大きいものがあります。特に、特権的な権限や広範囲なアクセスを可能にする権限は、誤用や悪用されると重大なリスクを伴います。以下に、特に注意が必要なAPI権限をリストアップします。

1. Directory系の権限

Azure ADディレクトリ全体への読み取り・書き込みアクセスを許可する権限です。これらは非常に強力で、攻撃者にディレクトリ全体のユーザー、グループ、アプリケーションにアクセスする手段を与えます。

Directory.Read.All
内容: Azure ADディレクトリ全体の読み取りを許可する。
リスク: 攻撃者が全ユーザーの詳細情報、グループ構成、役割などを取得し、フィッシングや権限昇格のために利用される可能性があります。

Directory.ReadWrite.All
内容: Azure ADディレクトリ全体の読み取りおよび書き込みを許可する。
リスク: ディレクトリ内のデータの編集や新しいユーザーやグループの作成、削除などを行うことができ、組織全体に大きな影響を与える。

Directory.AccessAsUser.All
内容: ユーザーとしてディレクトリ内のすべてのリソースにアクセスできる。
リスク: これは特に強力で、攻撃者がユーザーの代理としてディレクトリ全体にアクセスし、機密情報を窃取するリスクがあります。

2. User系の権限

ユーザーに関する情報へのアクセスや、ユーザーの管理に関する権限です。これらの権限を持つと、攻撃者はユーザーアカウントを改ざんし、認証情報を盗んだり、新しいユーザーを作成したりすることができます。

User.Read.All
内容: すべてのユーザーのプロファイル情報の読み取りを許可する。
リスク: 攻撃者は全てのユーザー情報にアクセスでき、特定のターゲットを識別したり、フィッシング攻撃の材料にすることが可能です。

User.ReadWrite.All
内容: すべてのユーザーに対する読み取りおよび書き込みを許可する。
リスク: 攻撃者がユーザーの情報を改ざんしたり、悪意のあるユーザーアカウントを作成することができる。

User.Invite.All
内容: 外部ユーザーを組織に招待できる権限。
リスク: 攻撃者がこの権限を使用して、外部の悪意のあるユーザーを組織に追加する可能性がある。

3. Application系の権限

アプリケーションの管理や権限付与に関わるAPI権限で、アプリケーションを通じて攻撃者がシステムを掌握するリスクがあります。

Application.ReadWrite.All
内容: すべてのアプリケーションの読み取りおよび書き込みを許可する。
リスク: 攻撃者がアプリケーションを作成、変更、削除でき、認証フローに介入して特権的なアクセスを取得することが可能。

AppRoleAssignment.ReadWrite.All
内容: すべてのアプリケーションに対する役割割り当てを管理できる。
リスク: アプリケーションに対して任意の権限を割り当てられるため、不正にアプリケーションの役割を変更することができる。

4. Group系の権限

Azure AD内のグループに対する権限は、アクセス制御に直接影響します。特に、特権グループへのアクセス権限を持つと、攻撃者は重大なシステムやデータにアクセスできます。

Group.Read.All
内容: すべてのグループの読み取りを許可する。
リスク: 攻撃者がどのユーザーがどのグループに属しているかを把握し、特定のユーザーやグループを狙った攻撃を計画することが可能。

Group.ReadWrite.All
内容: すべてのグループの読み取りおよび書き込みを許可する。
リスク: グループのメンバーシップやグループ構造を改変し、攻撃者が意図的にアクセスを得るために操作を行う可能性がある。

5. Mail系の権限

メールの読み取りや操作に関する権限は、組織の情報漏洩に直結する可能性があります。

Mail.Read
内容: ユーザーのメールの読み取りを許可する。
リスク: 攻撃者が機密性の高いメールを読み取って、組織の情報を不正に取得する可能性があります。

Mail.Send
内容: ユーザーの代理でメールを送信することを許可する。
リスク: フィッシングやなりすましメールを送信するために利用される可能性があり、内部攻撃の拡大や外部への攻撃に悪用されます。

6. Files系の権限

ファイルに関する権限も、重要なデータの漏洩や改ざんにつながるリスクが大きいです。

Files.Read.All
内容: すべてのユーザーのファイルの読み取りを許可する。
リスク: 攻撃者がすべてのファイルにアクセスでき、機密情報を盗むことが可能です。

Files.ReadWrite.All
内容: すべてのユーザーのファイルの読み取りおよび書き込みを許可する。
リスク: 攻撃者がファイルを改ざんしたり削除することで、データの破壊や不正な変更を行うことができる。

7. PrivilegedAccess系の権限

特権アクセスに関連する権限は、Azure環境全体の管理やアクセス制御に大きな影響を与えます。

PrivilegedAccess.ReadWrite.AzureADGroup
内容: 特権グループの読み取りおよび書き込みを許可する。
リスク: 攻撃者が特権グループに対するアクセス権限を変更し、自分自身に高い権限を割り当てることができる。

8. RoleManagement系の権限

Azure ADの役割管理に関連する権限は、全体の権限管理システムを操作できるため、最もリスクが高いものの一つです。

RoleManagement.ReadWrite.Directory
内容: ディレクトリ全体の役割管理を許可する。
リスク: 攻撃者が特権的な役割を自分に割り当てたり、既存の役割を変更することができるため、全システムの制御を奪われる可能性がある。

結論:

上記の権限は、特権的なアクセスを可能にする非常に重要な権限です。不審なアプリケーションやユーザーにこれらの権限が付与されていないか定期的に監視し、必要に応じて権限を削除または最小化することが重要です。また、適切なロールベースのアクセス制御(RBAC)の実施と、多要素認証(MFA)の導入を併用することで、これらの権限の悪用リスクを軽減できます。

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA