MITRE ATT&CKのT1114.002をAzureログで検知する方法を調べてみた

Pocket

1.Azure AD FullAccessAsApp Permission Assigned

出典:
https://research.splunk.com/cloud/ae286126-f2ad-421c-b240-4ea83bd1c43a/
https://github.com/splunk/security_content/blob/develop/detections/cloud/azure_ad_fullaccessasapp_permission_assigned.yml

<注意>
このSigmaルールは、T1114.002 Email Collection: Remote Email Collection を検出するためには適していませんが、攻撃者がその後にT1114.002に該当するような活動を行うための前段階として、このルールで検出される権限割り当てを利用する可能性があります。したがって、関連性はあるものの、直接的な検出には別のルールを設計する必要があります。

Sigmaルールの解説:

このSigmaルールは、Azure Active Directory (AAD) と Office 365 Exchange Online の環境で、アプリケーションに「full_access_as_app」権限が割り当てられたことを検知するためのものです。この権限は、Office 365 の操作に対する広範な制御を提供し、すべてのメールボックスへのフルアクセスや、任意のユーザーとしてのメール送信を可能にします。このルールは、そのような権限が悪意のある目的で使用されると、機密データへの不正アクセスやデータ流出につながる可能性があるため、特に重要です。
Description の詳細

概要: このルールは、Office 365 Exchange Online 内のアプリケーションに「full_access_as_app」権限が割り当てられたことを検知します。この権限の割り当ては、GUID dc890d15-9560-4a4c-9b7f-a736ec74ec40 と ResourceAppId 00000002-0000-0ff1-ce00-000000000000 によって識別されます。
検知の意義: この権限が割り当てられると、Office 365 の全メールボックスへのフルアクセスや任意のユーザーとしてのメール送信が可能になるため、攻撃者がこれを利用すると、機密データの不正アクセスやデータ流出のリスクが高まります。
利用されるデータソース: このルールは、azure_monitor_aad データソースを利用しており、特に「Update application」操作に関連する監査ログに焦点を当てています。

Search の詳細な説明

azure_monitor_aad category=AuditLogs operationName="Update application"`:
azure_monitor_aad という事前定義されたデータセットから、AuditLogs カテゴリに属するログのうち、operationName が「Update application」であるものをフィルタリングします。この操作はアプリケーションの更新を意味します。

| eval newvalue = mvindex('properties.targetResources{}.modifiedProperties{}.newValue',0):
properties.targetResources{}.modifiedProperties{}.newValue フィールドの最初の要素 (mvindex(..., 0)) を取り出し、その結果を newvalue として評価します。このステップでは、アプリケーション更新に伴う新しい値を抽出します。

| spath input=newvalue:
spath コマンドを使って、JSON 構造を解析し、newvalue 内のデータにアクセスできるようにします。これにより、後続の検索やフィルタリングが可能になります。

| search "{}.ResourceAppId"="00000002-0000-0ff1-ce00-000000000000" "{}.RequiredAppPermissions{}.EntitlementId"="dc890d15-9560-4a4c-9b7f-a736ec74ec40":
spath で解析した結果から、ResourceAppId が "00000002-0000-0ff1-ce00-000000000000" であり、RequiredAppPermissions.EntitlementId が "dc890d15-9560-4a4c-9b7f-a736ec74ec40" であるデータを検索します。これにより、特定の権限が割り当てられたことを確認します。

| eval Permissions = '{}.RequiredAppPermissions{}.EntitlementId':
検出された EntitlementId を Permissions という新しいフィールドに格納します。これにより、後続の集計ステップで使用できます。

| stats count earliest(_time) as firstTime latest(_time) as lastTime values(Permissions) by user, object, user_agent, operationName:
stats コマンドを使って、以下の情報を集計します:
count: 該当するイベントの回数をカウントします。
earliest(_time) as firstTime: 該当するイベントの最初の発生時間を記録します。
latest(_time) as lastTime: 該当するイベントの最後の発生時間を記録します。
values(Permissions): 割り当てられた権限 (Permissions) を収集します。
by user, object, user_agent, operationName: これらのフィールドごとに集計します。

| security_content_ctime(firstTime) :
カスタム関数 security_content_ctime を使って、firstTime フィールドを人間が読める日時形式に変換します。

| security_content_ctime(lastTime) :
同様に、lastTime フィールドも人間が読める形式に変換します。

| azure_ad_fullaccessasapp_permission_assigned_filter``:
これはカスタムフィルタリング関数で、さらに詳細なフィルタリングや条件設定を行うために使用されます。具体的には、正当な管理操作を誤検知として除外するために使用されることが多いです。

結論

このSigmaルールは、Office 365 Exchange Online 環境で特定の「full_access_as_app」権限がアプリケーションに割り当てられたことを検出する強力な手段です。これにより、組織が権限の不正な割り当てを早期に検出し、対応することができます。

<参考>関連する攻撃

How to protect yourself from the Microsoft OAuth Attack (Powershell scripts included!)
https://medium.com/@ronilichtman/how-to-protect-yourself-from-the-microsoft-oauth-attack-powershell-scripts-included-71b398034b8d

Comments

コメントを残す

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

CAPTCHA