ASL AWS Credential Access RDS Password reset

Original Source: [splunk source]
Name:ASL AWS Credential Access RDS Password reset
id:d15e9bd9-ef64-4d84-bc04-f62955a9fee8
version:1
date:2024-12-12
author:Patrick Bareiss, Splunk
status:production
type:TTP
Description:The following analytic detects the resetting of the master user password for an Amazon RDS DB instance. It leverages AWS CloudTrail logs from Amazon Security Lake to identify events where the `ModifyDBInstance` API call includes a new `masterUserPassword` parameter. This activity is significant because unauthorized password resets can grant attackers access to sensitive data stored in production databases, such as credit card information, PII, and healthcare data. If confirmed malicious, this could lead to data breaches, regulatory non-compliance, and significant reputational damage. Immediate investigation is required to determine the legitimacy of the password reset.
Data_source:
  • -ASL AWS CloudTrail
search:`amazon_security_lake` api.operation=ModifyDBInstance OR api.operation=ModifyDBCluster
| spath input=api.request.data
| search masterUserPassword=*
| fillnull
| stats count min(_time) as firstTime max(_time) as lastTime by api.operation actor.user.uid actor.user.account.uid http_request.user_agent src_endpoint.ip cloud.region api.request.data
| rename actor.user.uid as user, src_endpoint.ip as src_ip, cloud.region as region, http_request.user_agent as user_agent
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)` |`asl_aws_credential_access_rds_password_reset_filter`


how_to_implement:The detection is based on Amazon Security Lake events from Amazon Web Services (AWS), which is a centralized data lake that provides security-related data from AWS services. To use this detection, you must ingest CloudTrail logs from Amazon Security Lake into Splunk. To run this search, ensure that you ingest events using the latest version of Splunk Add-on for Amazon Web Services (https://splunkbase.splunk.com/app/1876) or the Federated Analytics App.
known_false_positives:Users may genuinely reset the RDS password.
References:
  -https://aws.amazon.com/premiumsupport/knowledge-center/reset-master-user-password-rds
drilldown_searches:
name:'View the detection results for - "$user$"'
search:'%original_detection_search% | search database_id = "$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:
    - 'AWS Identity and Access Management Account Takeover'
  asset_type:AWS Account
  confidence:70
  impact:70
  message:User $user$ is seen to reset the password for database
  mitre_attack_id:
    - 'T1586'
    - 'T1586.003'
    - 'T1110'
  observable:
    name:'user'
    type:'User'
    - role:
      - 'Victim'
    name:'src_ip'
    type:'IP Address'
    - role:
      - 'Attacker'
  product:
    - 'Splunk Enterprise'
    - 'Splunk Enterprise Security'
    - 'Splunk Cloud'
  required_fields:
    - 'api.operation'
    - 'api.request.data'
    - 'actor.user.uid'
    - 'actor.user.account.uid'
    - 'http_request.user_agent'
    - 'src_endpoint.ip'
    - 'src_endpoint.domain'
    - 'cloud.region'
  risk_score:49
  security_domain:threat

tests:
name:'True Positive Test'
 attack_data:
  data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1110.002/aws_rds_password_reset/asl_ocsf_cloudtrail.json
  sourcetype: aws:asl
  source: aws_asl
manual_test:None