O365 File Permissioned Application Consent Granted by User

Original Source: [splunk source]
Name:O365 File Permissioned Application Consent Granted by User
id:6c382336-22b8-4023-9b80-1689e799f21f
version:3
date:2024-09-30
author:Mauricio Velazco, Splunk
status:production
type:TTP
Description:The following analytic identifies instances where a user in the Office 365 environment grants consent to an application requesting file permissions for OneDrive or SharePoint. It leverages O365 audit logs, focusing on OAuth application consent events. This activity is significant because granting such permissions can allow applications to access, modify, or delete files, posing a risk if the application is malicious or overly permissive. If confirmed malicious, this could lead to data breaches, data loss, or unauthorized data manipulation, necessitating immediate investigation to validate the application's legitimacy and assess potential risks.
Data_source:
  • -O365 Consent to application.
search:`o365_management_activity` Workload=AzureActiveDirectory Operation="Consent to application." ResultStatus=Success
| eval admin_consent =mvindex('ModifiedProperties{}.NewValue', 0)
| search admin_consent=False
| eval permissions =mvindex('ModifiedProperties{}.NewValue', 4)
| rex field=permissions "Scope: (?<Scope>[^,]+)"
| makemv delim=" " Scope
| search Scope IN ("Files.Read", "Files.Read.All", "Files.ReadWrite", "Files.ReadWrite.All", "Files.ReadWrite.AppFolder")
| stats max(_time) as lastTime values(Scope) by Operation, user, object, ObjectId
| `security_content_ctime(lastTime)`
| `o365_file_permissioned_application_consent_granted_by_user_filter`


how_to_implement:You must install the Splunk Microsoft Office 365 Add-on and ingest Office 365 management activity events.
known_false_positives:OAuth applications that require file permissions may be legitimate, investigate and filter as needed.
References:
  -https://attack.mitre.org/techniques/T1528/
  -https://www.microsoft.com/en-us/security/blog/2022/09/22/malicious-oauth-applications-used-to-compromise-email-servers-and-spread-spam/
  -https://learn.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth
  -https://www.alteredsecurity.com/post/introduction-to-365-stealer
  -https://github.com/AlteredSecurity/365-Stealer
drilldown_searches:
name:'View the detection results for - "$user$"'
search:'%original_detection_search% | search user = "$user$"'
earliest_offset:'$info_min_time$'
latest_offset:'$info_max_time$'
name:'View risk events for the last 7 days for - "$user$"'
search:'| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$") starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset:'$info_min_time$'
latest_offset:'$info_max_time$'
tags:
  analytic_story:
    - 'Office 365 Account Takeover'
  asset_type:O365 Tenant
  confidence:50
  impact:80
  message:User $user$ consented an OAuth application that requests file-related permissions.
  mitre_attack_id:
    - 'T1528'
  observable:
    name:'user'
    type:'User'
    - role:
      - 'Victim'
  product:
    - 'Splunk Enterprise'
    - 'Splunk Enterprise Security'
    - 'Splunk Cloud'
  risk_score:40
  required_fields:
    - '_time'
    - 'Workload'
    - 'Operation'
    - 'ResultStatus'
    - 'ModifiedProperties{}.NewValue'
    - 'object'
    - 'ObjectId'
  security_domain:identity

tests:
name:'True Positive Test'
 attack_data:
  data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1528/o365_user_consent_file_permissions/o365_user_consent_file_permissions.log
  source: o365
  sourcetype: o365:management:activity
manual_test:None

Related Analytic Stories


Office 365 Account Takeover