Skip to content

Commit 9ee2e1d

Browse files
authored
Branch was auto-updated.
2 parents 1d086b4 + 70861d2 commit 9ee2e1d

22 files changed

+152
-224
lines changed

detections/cloud/asl_aws_create_access_key.yml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,9 @@ tags:
2020
asset_type: AWS Account
2121
confidence: 90
2222
impact: 70
23-
message: User $user$ is attempting to create access keys
2423
mitre_attack_id:
2524
- T1136.003
2625
- T1136
27-
observable:
28-
- name: src_ip
29-
type: IP Address
30-
role:
31-
- Attacker
32-
- name: user
33-
type: User
34-
role:
35-
- Victim
3626
product:
3727
- Splunk Enterprise
3828
- Splunk Enterprise Security
@@ -45,7 +35,6 @@ tags:
4535
- src_endpoint.ip
4636
- src_endpoint.domain
4737
- cloud.region
48-
risk_score: 63
4938
security_domain: network
5039
tests:
5140
- name: True Positive Test

detections/cloud/asl_aws_create_policy_version_to_allow_all_resources.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,19 @@ drilldown_searches:
2323
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)`'
2424
earliest_offset: $info_min_time$
2525
latest_offset: $info_max_time$
26+
rba:
27+
message: User $user$ created a policy version that allows them to access any resource in their account
28+
risk_objects:
29+
- field: user
30+
type: user
31+
score: 49
32+
threat_objects: []
2633
tags:
2734
analytic_story:
2835
- AWS IAM Privilege Escalation
2936
asset_type: AWS Account
3037
confidence: 70
3138
impact: 70
32-
message: User $user$ created a policy version that allows them to access any resource in their account.
3339
mitre_attack_id:
3440
- T1078.004
3541
- T1078
@@ -51,7 +57,6 @@ tags:
5157
- src_endpoint.ip
5258
- src_endpoint.domain
5359
- cloud.region
54-
risk_score: 49
5560
security_domain: network
5661
tests:
5762
- name: True Positive Test

detections/cloud/asl_aws_credential_access_getpassworddata.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,20 @@ drilldown_searches:
2323
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)`'
2424
earliest_offset: $info_min_time$
2525
latest_offset: $info_max_time$
26+
rba:
27+
message: User $user$ is seen to make `GetPasswordData` API calls
28+
risk_objects:
29+
- field: user
30+
type: user
31+
threat_objects:
32+
- field: src_ip
33+
type: ip_address
2634
tags:
2735
analytic_story:
2836
- AWS Identity and Access Management Account Takeover
2937
asset_type: AWS Account
3038
confidence: 70
3139
impact: 70
32-
message: User $user$ is seen to make `GetPasswordData` API calls
3340
mitre_attack_id:
3441
- T1586
3542
- T1586.003

detections/cloud/asl_aws_credential_access_rds_password_reset.yml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,25 @@ drilldown_searches:
2222
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)`'
2323
earliest_offset: $info_min_time$
2424
latest_offset: $info_max_time$
25+
rba:
26+
message: User $user$ is seen to reset the password for database
27+
risk_objects:
28+
- field: user
29+
type: user
30+
score: 49
31+
threat_objects:
32+
- field: src_ip
33+
type: ip_address
2534
tags:
2635
analytic_story:
2736
- AWS Identity and Access Management Account Takeover
2837
asset_type: AWS Account
2938
confidence: 70
3039
impact: 70
31-
message: User $user$ is seen to reset the password for database
3240
mitre_attack_id:
3341
- T1586
3442
- T1586.003
3543
- T1110
36-
observable:
37-
- name: user
38-
type: User
39-
role:
40-
- Victim
41-
- name: src_ip
42-
type: IP Address
43-
role:
44-
- Attacker
4544
product:
4645
- Splunk Enterprise
4746
- Splunk Enterprise Security
@@ -55,7 +54,6 @@ tags:
5554
- src_endpoint.ip
5655
- src_endpoint.domain
5756
- cloud.region
58-
risk_score: 49
5957
security_domain: threat
6058
tests:
6159
- name: True Positive Test

detections/cloud/asl_aws_defense_evasion_putbucketlifecycle.yml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,26 @@ how_to_implement: The detection is based on Amazon Security Lake events from Ama
1313
known_false_positives: While this search has no known false positives, it is possible that it is a legitimate admin activity. Please consider filtering out these noisy events using userAgent, user_arn field names.
1414
references:
1515
- https://stratus-red-team.cloud/attack-techniques/AWS/aws.defense-evasion.cloudtrail-lifecycle-rule/
16+
rba:
17+
message: User $user$ has created a new rule to on an S3 bucket $bucketName$ with short expiration days
18+
risk_objects:
19+
- field: user
20+
type: user
21+
score: 20
22+
threat_objects:
23+
- field: src_ip
24+
type: ip_address
1625
tags:
1726
analytic_story:
1827
- AWS Defense Evasion
1928
asset_type: AWS Account
2029
confidence: 40
2130
impact: 50
22-
message: User $user$ has created a new rule to on an S3 bucket $bucketName$ with short expiration days
2331
mitre_attack_id:
2432
- T1562.008
2533
- T1562
2634
- T1485.001
2735
- T1485
28-
observable:
29-
- name: src_ip
30-
type: IP Address
31-
role:
32-
- Attacker
33-
- name: user
34-
type: User
35-
role:
36-
- Attacker
3736
product:
3837
- Splunk Enterprise
3938
- Splunk Enterprise Security
@@ -47,7 +46,6 @@ tags:
4746
- src_endpoint.ip
4847
- src_endpoint.domain
4948
- cloud.region
50-
risk_score: 20
5149
security_domain: threat
5250
tests:
5351
- name: True Positive Test

detections/cloud/asl_aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ drilldown_searches:
3737
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)`'
3838
earliest_offset: $info_min_time$
3939
latest_offset: $info_max_time$
40+
rba:
41+
message: AWS account is potentially compromised and user $user$ is trying to compromise other accounts
42+
risk_objects:
43+
- field: user
44+
type: user
45+
score: 25
46+
threat_objects: []
4047
tags:
4148
analytic_story:
4249
- Ransomware Cloud
@@ -46,11 +53,6 @@ tags:
4653
message: AWS account is potentially compromised and user $user$ is trying to compromise other accounts.
4754
mitre_attack_id:
4855
- T1486
49-
observable:
50-
- name: user
51-
type: User
52-
role:
53-
- Victim
5456
product:
5557
- Splunk Enterprise
5658
- Splunk Enterprise Security
@@ -64,7 +66,6 @@ tags:
6466
- src_endpoint.ip
6567
- src_endpoint.domain
6668
- cloud.region
67-
risk_score: 25
6869
security_domain: threat
6970
tests:
7071
- name: True Positive Test

detections/cloud/asl_aws_disable_bucket_versioning.yml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,24 @@ drilldown_searches:
3030
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)`'
3131
earliest_offset: $info_min_time$
3232
latest_offset: $info_max_time$
33+
rba:
34+
message: Bucket Versioning is suspended for S3 buckets- $bucketName$ by user $user$ from IP address $src_ip$
35+
risk_objects:
36+
- field: user
37+
type: user
38+
score: 64
39+
threat_objects:
40+
- field: src_ip
41+
type: ip_address
3342
tags:
3443
analytic_story:
3544
- Suspicious AWS S3 Activities
3645
- Data Exfiltration
3746
asset_type: AWS Account
3847
confidence: 80
3948
impact: 80
40-
message: Bucket Versioning is suspended for S3 buckets- $bucketName$ by user $user$ from IP address $src_ip$
4149
mitre_attack_id:
4250
- T1490
43-
observable:
44-
- name: user
45-
type: User
46-
role:
47-
- Victim
48-
- name: src_ip
49-
type: IP Address
50-
role:
51-
- Attacker
5251
product:
5352
- Splunk Enterprise
5453
- Splunk Enterprise Security
@@ -62,7 +61,6 @@ tags:
6261
- src_endpoint.ip
6362
- src_endpoint.domain
6463
- cloud.region
65-
risk_score: 64
6664
security_domain: threat
6765
tests:
6866
- name: True Positive Test

detections/cloud/asl_aws_ec2_snapshot_shared_externally.yml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,24 @@ drilldown_searches:
3030
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)`'
3131
earliest_offset: $info_min_time$
3232
latest_offset: $info_max_time$
33+
rba:
34+
message: AWS EC2 snapshot from user $user$ is shared publicly by user $user$
35+
risk_objects:
36+
- field: user
37+
type: user
38+
score: 48
39+
threat_objects:
40+
- field: src_ip
41+
type: ip_address
3342
tags:
3443
analytic_story:
3544
- Suspicious Cloud Instance Activities
3645
- Data Exfiltration
3746
asset_type: EC2 Snapshot
3847
confidence: 80
3948
impact: 60
40-
message: AWS EC2 snapshot from user $user$ is shared publicly by user $user$
4149
mitre_attack_id:
4250
- T1537
43-
observable:
44-
- name: user
45-
type: User
46-
role:
47-
- Victim
48-
- name: src_ip
49-
type: IP Address
50-
role:
51-
- Attacker
5251
product:
5352
- Splunk Enterprise
5453
- Splunk Enterprise Security
@@ -62,7 +61,6 @@ tags:
6261
- src_endpoint.ip
6362
- src_endpoint.domain
6463
- cloud.region
65-
risk_score: 48
6664
security_domain: threat
6765
tests:
6866
- name: True Positive Test

detections/cloud/asl_aws_iam_accessdenied_discovery_events.yml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,23 @@ drilldown_searches:
2828
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)`'
2929
earliest_offset: $info_min_time$
3030
latest_offset: $info_max_time$
31+
rba:
32+
message: User $user$ is seen to perform excessive number of discovery related api calls- $failures$, within an hour where the access was denied.
33+
risk_objects:
34+
- field: user
35+
type: user
36+
score: 10
37+
threat_objects:
38+
- field: src_ip
39+
type: ip_address
3140
tags:
3241
analytic_story:
3342
- Suspicious Cloud User Activities
3443
asset_type: AWS Account
3544
confidence: 50
3645
impact: 20
37-
message: User $user$ is seen to perform excessive number of discovery related api calls- $failures$, within an hour where the access was denied.
3846
mitre_attack_id:
3947
- T1580
40-
observable:
41-
- name: src_ip
42-
type: IP Address
43-
role:
44-
- Attacker
45-
- name: user
46-
type: User
47-
role:
48-
- Victim
4948
product:
5049
- Splunk Enterprise
5150
- Splunk Enterprise Security
@@ -55,7 +54,6 @@ tags:
5554
- actor.user.uid
5655
- src_endpoint.ip
5756
- cloud.region
58-
risk_score: 10
5957
security_domain: access
6058
tests:
6159
- name: True Positive Test

detections/cloud/asl_aws_iam_assume_role_policy_brute_force.yml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,24 @@ drilldown_searches:
2929
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)`'
3030
earliest_offset: $info_min_time$
3131
latest_offset: $info_max_time$
32+
rba:
33+
message: User $user$ has caused multiple failures with errorCode AccessDenied, which potentially means adversary is attempting to identify a role name.
34+
risk_objects:
35+
- field: user
36+
type: user
37+
score: 28
38+
threat_objects:
39+
- field: src_ip
40+
type: ip_address
3241
tags:
3342
analytic_story:
3443
- AWS IAM Privilege Escalation
3544
asset_type: AWS Account
3645
confidence: 70
3746
impact: 40
38-
message: User $user$ has caused multiple failures with errorCode AccessDenied, which potentially means adversary is attempting to identify a role name.
3947
mitre_attack_id:
4048
- T1580
4149
- T1110
42-
observable:
43-
- name: src_ip
44-
type: IP Address
45-
role:
46-
- Attacker
47-
- name: user
48-
type: User
49-
role:
50-
- Victim
5150
product:
5251
- Splunk Enterprise
5352
- Splunk Enterprise Security
@@ -58,7 +57,6 @@ tags:
5857
- actor.user.uid
5958
- src_endpoint.ip
6059
- cloud.region
61-
risk_score: 28
6260
security_domain: access
6361
tests:
6462
- name: True Positive Test

0 commit comments

Comments
 (0)