← Back to Explore
splunk_escuAnomaly
ASL AWS ECR Container Upload Unknown User
The following analytic detects unauthorized container uploads to AWS Elastic Container Service (ECR) by monitoring AWS CloudTrail events. It identifies instances where a new container is uploaded by a user not previously recognized as authorized.
Detection Query
`amazon_security_lake`
api.operation=PutImage
NOT `aws_ecr_users_asl`
| fillnull
| stats count min(_time) as firstTime
max(_time) as lastTime
by actor.user.uid api.operation api.service.name
http_request.user_agent
src_endpoint.ip actor.user.account.uid
cloud.provider cloud.region
| rename actor.user.account.uid as vendor_account
actor.user.uid as user
api.operation as action
api.service.name as dest
cloud.provider as vendor_product
cloud.region as vendor_region
http_request.user_agent as user_agent
src_endpoint.ip as src
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `asl_aws_ecr_container_upload_unknown_user_filter`Author
Patrick Bareiss, Splunk
Data Sources
ASL AWS CloudTrail
Raw Content
name: ASL AWS ECR Container Upload Unknown User
id: 886a8f46-d7e2-4439-b9ba-aec238e31732
version: 13
creation_date: '2024-05-22'
modification_date: '2026-05-13'
author: Patrick Bareiss, Splunk
status: production
type: Anomaly
description: |-
The following analytic detects unauthorized container uploads to AWS Elastic Container Service (ECR) by monitoring AWS CloudTrail events.
It identifies instances where a new container is uploaded by a user not previously recognized as authorized.
data_source:
- ASL AWS CloudTrail
search: |-
`amazon_security_lake`
api.operation=PutImage
NOT `aws_ecr_users_asl`
| fillnull
| stats count min(_time) as firstTime
max(_time) as lastTime
by actor.user.uid api.operation api.service.name
http_request.user_agent
src_endpoint.ip actor.user.account.uid
cloud.provider cloud.region
| rename actor.user.account.uid as vendor_account
actor.user.uid as user
api.operation as action
api.service.name as dest
cloud.provider as vendor_product
cloud.region as vendor_region
http_request.user_agent as user_agent
src_endpoint.ip as src
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `asl_aws_ecr_container_upload_unknown_user_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: |-
No false positives have been identified at this time.
references:
- https://attack.mitre.org/techniques/T1204/003/
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$") | 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: 7d
latest_offset: "0"
intermediate_findings:
entities:
- field: user
type: user
score: 20
message: Container uploaded from unknown user [$user$].
threat_objects:
- field: src
type: ip_address
analytic_story:
- Dev Sec Ops
asset_type: AWS Account
mitre_attack_id:
- T1204.003
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
category: cloud
security_domain: network
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1204.003/aws_ecr_container_upload/asl_ocsf_cloudtrail.json
sourcetype: aws:asl
source: aws_asl
test_type: unit