Unusual AWS S3 Object Encryption with SSE-C
editUnusual AWS S3 Object Encryption with SSE-C
editIdentifies when AWS S3 objects stored in a bucket are encrypted using Server-Side Encryption with Customer-Provided Keys (SSE-C). Adversaries with compromised AWS credentials can encrypt objects in an S3 bucket using their own encryption keys, rendering the objects unreadable or recoverable without the key. This can be used as a form of ransomware to extort the bucket owner for the decryption key. This is a [New Terms](https://www.elastic.co/guide/en/security/current/rules-ui-create.html#create-new-terms-rule) rule that flags when this behavior is observed for the first time in the last 14 days by the user ARN and target bucket name.
Rule type: new_terms
Rule indices:
- filebeat-*
- logs-aws.cloudtrail-*
Severity: high
Risk score: 73
Runs every: 5m
Searches indices from: now-9m (Date Math format, see also Additional look-back time
)
Maximum alerts per execution: 100
References:
Tags:
- Domain: Cloud
- Data Source: AWS
- Data Source: Amazon Web Services
- Data Source: AWS S3
- Resources: Investigation Guide
- Use Case: Threat Detection
- Tactic: Impact
Version: 1
Rule authors:
- Elastic
Rule license: Elastic License v2
Investigation guide
editTriage and Analysis
Investigating Unusual AWS S3 Object Encryption with SSE-C
This rule identifies the use of Server-Side Encryption with Customer-Provided Keys (SSE-C) in AWS S3. This could indicate malicious activity, such as ransomware encrypting objects, rendering them inaccessible without the corresponding encryption keys.
Possible Investigation Steps
-
Identify the User and Source:
-
Review the
aws.cloudtrail.user_identity.arn
to identify the IAM user or role performing the operation. -
Cross-check the
source.ip
anduser_agent.original
fields for unusual IPs or user agents that could indicate unauthorized access. -
Review the
aws.cloudtrail.user_identity.access_key_id
to identify the access key used. This could be a compromised key.
-
Review the
-
Examine the Targeted Resources:
-
Check
aws.cloudtrail.flattened.request_parameters.bucketName
to identify the bucket involved. -
Analyze the object key from
aws.cloudtrail.flattened.request_parameters.key
.
-
Check
-
Evaluate Encryption Behavior:
-
Confirm the encryption details in
aws.cloudtrail.flattened.request_parameters.x-amz-server-side-encryption-customer-algorithm
andaws.cloudtrail.flattened.additional_eventdata.SSEApplied
. -
Note if
SSEApplied
isSSE-C
, which confirms encryption using a customer-provided key.
-
Confirm the encryption details in
-
Correlate with Recent Events:
- Look for any suspicious activity in proximity to the encryption event, such as new access key creation, policy changes, or unusual access patterns from the same user or IP.
-
Identify
ListBucket
orGetObject
operations on the same bucket to determine all affected objects. -
For
PutObject
events, identify any other unusual objecs uploaded such as a ransom note.
-
Validate Access Permissions:
- Check the IAM policies and roles associated with the user to verify if they had legitimate access to encrypt objects.
-
Assess Impact:
- Identify the number of encrypted objects in the bucket by examining other similar events.
- Determine if this encryption aligns with standard business practices or constitutes a deviation.
False Positive Analysis
- Legitimate Use Cases:
- Confirm if SSE-C encryption is part of regular operations for compliance or data protection.
- Cross-reference known processes or users authorized for SSE-C encryption in the affected bucket.
Response and Remediation
-
Immediate Actions:
- Disable access keys or permissions for the user if unauthorized behavior is confirmed.
- Rotate the bucket’s encryption configuration to mitigate further misuse.
-
Data Recovery:
- Attempt to identify and contact the party holding the SSE-C encryption keys if recovery is necessary.
-
Enhance Monitoring:
- Enable alerts for future SSE-C encryption attempts in critical buckets.
- Review and tighten IAM policies for roles and users accessing S3.
-
Post-Incident Review:
- Audit logs for additional activities by the same user or IP.
- Document findings and apply lessons learned to improve preventive measures.
Setup
editAWS S3 data event types need to be enabled in the CloudTrail trail configuration.
Rule query
editevent.dataset: "aws.cloudtrail" and event.provider: "s3.amazonaws.com" and event.action: "PutObject" and event.outcome: "success" and aws.cloudtrail.flattened.request_parameters.x-amz-server-side-encryption-customer-algorithm: "AES256" and aws.cloudtrail.flattened.additional_eventdata.SSEApplied: "SSE_C"
Framework: MITRE ATT&CKTM
-
Tactic:
- Name: Impact
- ID: TA0040
- Reference URL: https://attack.mitre.org/tactics/TA0040/
-
Technique:
- Name: Data Encrypted for Impact
- ID: T1486
- Reference URL: https://attack.mitre.org/techniques/T1486/