Skip to content

Commit 9bf5388

Browse files
authored
Merge branch 'develop' into auto-ta-update-299
2 parents 584473c + 342ee7f commit 9bf5388

File tree

64 files changed

+1173
-502
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1173
-502
lines changed

detections/cloud/abnormally_high_number_of_cloud_infrastructure_api_calls.yml

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Abnormally High Number Of Cloud Infrastructure API Calls
22
id: 0840ddf1-8c89-46ff-b730-c8d6722478c0
3-
version: 7
4-
date: '2025-05-02'
3+
version: 8
4+
date: '2025-06-10'
55
author: David Dorsey, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic detects a spike in the number of API calls made
99
to your cloud infrastructure by a user. It leverages cloud infrastructure logs and
@@ -31,6 +31,20 @@ how_to_implement: You must be ingesting your cloud infrastructure logs. You also
3131
create the probability density function.
3232
known_false_positives: None.
3333
references: []
34+
drilldown_searches:
35+
- name: View the detection results for - "$dest$"
36+
search: '%original_detection_search% | search dest = "$dest$"'
37+
earliest_offset: $info_min_time$
38+
latest_offset: $info_max_time$
39+
- name: View risk events for the last 7 days for - "$dest$"
40+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
41+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
42+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
43+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
44+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
45+
| `security_content_ctime(lastTime)`'
46+
earliest_offset: $info_min_time$
47+
latest_offset: $info_max_time$
3448
rba:
3549
message: user $user$ has made $api_calls$ api calls, violating the dynamic threshold
3650
of $expected_upper_threshold$ with the following command $command$.
@@ -51,6 +65,8 @@ tags:
5165
- Splunk Enterprise Security
5266
- Splunk Cloud
5367
security_domain: network
68+
manual_test: This search needs the baseline `Baseline Of Cloud Infrastructure API Calls Per User` to be run first.
69+
tests:
5470
tests:
5571
- name: True Positive Test
5672
attack_data:

detections/cloud/abnormally_high_number_of_cloud_security_group_api_calls.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Abnormally High Number Of Cloud Security Group API Calls
22
id: d4dfb7f3-7a37-498a-b5df-f19334e871af
3-
version: 7
4-
date: '2025-05-02'
3+
version: 8
4+
date: '2025-06-10'
55
author: David Dorsey, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic detects a spike in the number of API calls made
99
to cloud security groups by a user. It leverages data from the Change data model,
@@ -31,6 +31,20 @@ how_to_implement: You must be ingesting your cloud infrastructure logs. You also
3131
create the probability density function model.
3232
known_false_positives: None.
3333
references: []
34+
drilldown_searches:
35+
- name: View the detection results for - "$dest$"
36+
search: '%original_detection_search% | search dest = "$dest$"'
37+
earliest_offset: $info_min_time$
38+
latest_offset: $info_max_time$
39+
- name: View risk events for the last 7 days for - "$dest$"
40+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
41+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
42+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
43+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
44+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
45+
| `security_content_ctime(lastTime)`'
46+
earliest_offset: $info_min_time$
47+
latest_offset: $info_max_time$
3448
rba:
3549
message: user $user$ has made $api_calls$ api calls related to security groups,
3650
violating the dynamic threshold of $expected_upper_threshold$ with the following
@@ -51,6 +65,7 @@ tags:
5165
- Splunk Enterprise Security
5266
- Splunk Cloud
5367
security_domain: network
68+
manual_test: This search needs the baseline `Baseline Of Cloud Security Group API Calls Per User` to be run first.
5469
tests:
5570
- name: True Positive Test
5671
attack_data:

detections/cloud/asl_aws_new_mfa_method_registered_for_user.yml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: ASL AWS New MFA Method Registered For User
22
id: 33ae0931-2a03-456b-b1d7-b016c5557fbd
3-
version: 9
4-
date: '2025-05-02'
3+
version: 10
4+
date: '2025-06-10'
55
author: Patrick Bareiss, Splunk
6-
status: experimental
6+
status: production
77
type: TTP
88
description: The following analytic identifies the registration of a new Multi-Factor
99
Authentication (MFA) method for an AWS account, as logged through Amazon Security
@@ -28,14 +28,28 @@ references:
2828
- https://attack.mitre.org/techniques/T1556/
2929
- https://attack.mitre.org/techniques/T1556/006/
3030
- https://twitter.com/jhencinski/status/1618660062352007174
31+
drilldown_searches:
32+
- name: View the detection results for - "$dest$"
33+
search: '%original_detection_search% | search dest = "$dest$"'
34+
earliest_offset: $info_min_time$
35+
latest_offset: $info_max_time$
36+
- name: View risk events for the last 7 days for - "$dest$"
37+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
38+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
39+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
40+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
41+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
42+
| `security_content_ctime(lastTime)`'
43+
earliest_offset: $info_min_time$
44+
latest_offset: $info_max_time$
3145
rba:
3246
message: A new virtual device is added to user $user$
3347
risk_objects:
3448
- field: user
3549
type: user
3650
score: 64
3751
threat_objects:
38-
- field: src_ip
52+
- field: src
3953
type: ip_address
4054
tags:
4155
analytic_story:

detections/cloud/cloud_api_calls_from_previously_unseen_user_roles.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Cloud API Calls From Previously Unseen User Roles
22
id: 2181ad1f-1e73-4d0c-9780-e8880482a08f
3-
version: 5
4-
date: '2025-05-02'
3+
version: 6
4+
date: '2025-06-10'
55
author: David Dorsey, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic detects cloud API calls executed by user roles
99
that have not previously run these commands. It leverages the Change data model
@@ -34,6 +34,20 @@ how_to_implement: You must be ingesting your cloud infrastructure logs from your
3434
the `cloud_api_calls_from_previously_unseen_user_roles_filter`
3535
known_false_positives: None.
3636
references: []
37+
drilldown_searches:
38+
- name: View the detection results for - "$dest$"
39+
search: '%original_detection_search% | search dest = "$dest$"'
40+
earliest_offset: $info_min_time$
41+
latest_offset: $info_max_time$
42+
- name: View risk events for the last 7 days for - "$dest$"
43+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
44+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
45+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
46+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
47+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
48+
| `security_content_ctime(lastTime)`'
49+
earliest_offset: $info_min_time$
50+
latest_offset: $info_max_time$
3751
rba:
3852
message: User $user$ of type AssumedRole attempting to execute new API calls $command$
3953
that have not been seen before
@@ -53,6 +67,7 @@ tags:
5367
- Splunk Enterprise Security
5468
- Splunk Cloud
5569
security_domain: threat
70+
manual_test: This search needs the baseline `Previously Seen Cloud API Calls Per User Role - Initial` to be run first.
5671
tests:
5772
- name: True Positive Test
5873
attack_data:

detections/cloud/cloud_compute_instance_created_by_previously_unseen_user.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Cloud Compute Instance Created By Previously Unseen User
22
id: 37a0ec8d-827e-4d6d-8025-cedf31f3a149
3-
version: 7
4-
date: '2025-05-02'
3+
version: 8
4+
date: '2025-06-10'
55
author: Rico Valdez, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic identifies the creation of cloud compute instances
99
by users who have not previously created them. It leverages data from the Change
@@ -30,6 +30,20 @@ known_false_positives: It's possible that a user will start to create compute in
3030
for the first time, for any number of reasons. Verify with the user launching instances
3131
that this is the intended behavior.
3232
references: []
33+
drilldown_searches:
34+
- name: View the detection results for - "$dest$"
35+
search: '%original_detection_search% | search dest = "$dest$"'
36+
earliest_offset: $info_min_time$
37+
latest_offset: $info_max_time$
38+
- name: View risk events for the last 7 days for - "$dest$"
39+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
40+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
41+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
42+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
43+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
44+
| `security_content_ctime(lastTime)`'
45+
earliest_offset: $info_min_time$
46+
latest_offset: $info_max_time$
3347
rba:
3448
message: User $user$ is creating a new instance $dest$ for the first time
3549
risk_objects:
@@ -51,6 +65,7 @@ tags:
5165
- Splunk Enterprise Security
5266
- Splunk Cloud
5367
security_domain: threat
68+
manual_test: This search needs the baseline `Previously Seen Cloud Compute Creations By User` to be run first.
5469
tests:
5570
- name: True Positive Test
5671
attack_data:

detections/cloud/cloud_compute_instance_created_in_previously_unused_region.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Cloud Compute Instance Created In Previously Unused Region
22
id: fa4089e2-50e3-40f7-8469-d2cc1564ca59
3-
version: 5
4-
date: '2025-05-02'
3+
version: 6
4+
date: '2025-06-10'
55
author: David Dorsey, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic detects the creation of a cloud compute instance
99
in a region that has not been previously used within the last hour. It leverages
@@ -33,6 +33,20 @@ how_to_implement: You must be ingesting your cloud infrastructure logs from your
3333
known_false_positives: It's possible that a user has unknowingly started an instance
3434
in a new region. Please verify that this activity is legitimate.
3535
references: []
36+
drilldown_searches:
37+
- name: View the detection results for - "$dest$"
38+
search: '%original_detection_search% | search dest = "$dest$"'
39+
earliest_offset: $info_min_time$
40+
latest_offset: $info_max_time$
41+
- name: View risk events for the last 7 days for - "$dest$"
42+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
43+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
44+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
45+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
46+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
47+
| `security_content_ctime(lastTime)`'
48+
earliest_offset: $info_min_time$
49+
latest_offset: $info_max_time$
3650
rba:
3751
message: User $user$ is creating an instance $dest$ in a new region for the first
3852
time
@@ -55,6 +69,7 @@ tags:
5569
- Splunk Enterprise Security
5670
- Splunk Cloud
5771
security_domain: threat
72+
manual_test: This search needs the baseline `Previously Seen Cloud Regions - Update` to be run first.
5873
tests:
5974
- name: True Positive Test
6075
attack_data:

detections/cloud/cloud_compute_instance_created_with_previously_unseen_image.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Cloud Compute Instance Created With Previously Unseen Image
22
id: bc24922d-987c-4645-b288-f8c73ec194c4
3-
version: 5
4-
date: '2025-05-02'
3+
version: 6
4+
date: '2025-06-10'
55
author: David Dorsey, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic detects the creation of cloud compute instances
99
using previously unseen image IDs. It leverages cloud infrastructure logs to identify
@@ -34,6 +34,20 @@ known_false_positives: After a new image is created, the first systems created w
3434
that image will cause this alert to fire. Verify that the image being used was
3535
created by a legitimate user.
3636
references: []
37+
drilldown_searches:
38+
- name: View the detection results for - "$dest$"
39+
search: '%original_detection_search% | search dest = "$dest$"'
40+
earliest_offset: $info_min_time$
41+
latest_offset: $info_max_time$
42+
- name: View risk events for the last 7 days for - "$dest$"
43+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
44+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
45+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
46+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
47+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
48+
| `security_content_ctime(lastTime)`'
49+
earliest_offset: $info_min_time$
50+
latest_offset: $info_max_time$
3751
rba:
3852
message: User $user$ is creating an instance $dest$ with an image that has not been
3953
previously seen.
@@ -54,6 +68,7 @@ tags:
5468
- Splunk Enterprise Security
5569
- Splunk Cloud
5670
security_domain: threat
71+
manual_test: This search needs the baseline `Previously Seen Cloud Compute Images - Initial` to be run first.
5772
tests:
5873
- name: True Positive Test
5974
attack_data:

detections/cloud/cloud_compute_instance_created_with_previously_unseen_instance_type.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Cloud Compute Instance Created With Previously Unseen Instance Type
22
id: c6ddbf53-9715-49f3-bb4c-fb2e8a309cda
3-
version: 5
4-
date: '2025-05-02'
3+
version: 6
4+
date: '2025-06-10'
55
author: David Dorsey, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic detects the creation of EC2 instances with previously
99
unseen instance types. It leverages Splunk's tstats command to analyze data from
@@ -35,6 +35,20 @@ known_false_positives: It is possible that an admin will create a new system usi
3535
a new instance type that has never been used before. Verify with the creator that
3636
they intended to create the system with the new instance type.
3737
references: []
38+
drilldown_searches:
39+
- name: View the detection results for - "$dest$"
40+
search: '%original_detection_search% | search dest = "$dest$"'
41+
earliest_offset: $info_min_time$
42+
latest_offset: $info_max_time$
43+
- name: View risk events for the last 7 days for - "$dest$"
44+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
45+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
46+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
47+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
48+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
49+
| `security_content_ctime(lastTime)`'
50+
earliest_offset: $info_min_time$
51+
latest_offset: $info_max_time$
3852
rba:
3953
message: User $user$ is creating an instance $dest$ with an instance type $instance_type$
4054
that has not been previously seen.
@@ -55,6 +69,7 @@ tags:
5569
- Splunk Enterprise Security
5670
- Splunk Cloud
5771
security_domain: threat
72+
manual_test: This search needs the baseline `Previously Seen Cloud Compute Instance Types - Initial` to be run first.
5873
tests:
5974
- name: True Positive Test
6075
attack_data:

detections/cloud/cloud_instance_modified_by_previously_unseen_user.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Cloud Instance Modified By Previously Unseen User
22
id: 7fb15084-b14e-405a-bd61-a6de15a40722
3-
version: 7
4-
date: '2025-05-02'
3+
version: 8
4+
date: '2025-06-10'
55
author: Rico Valdez, Splunk
6-
status: experimental
6+
status: production
77
type: Anomaly
88
description: The following analytic identifies cloud instances being modified by users
99
who have not previously modified them. It leverages data from the Change data model,
@@ -31,6 +31,20 @@ known_false_positives: It's possible that a new user will start to modify EC2 in
3131
when they haven't before for any number of reasons. Verify with the user that is
3232
modifying instances that this is the intended behavior.
3333
references: []
34+
drilldown_searches:
35+
- name: View the detection results for - "$dest$"
36+
search: '%original_detection_search% | search dest = "$dest$"'
37+
earliest_offset: $info_min_time$
38+
latest_offset: $info_max_time$
39+
- name: View risk events for the last 7 days for - "$dest$"
40+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
41+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
42+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
43+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
44+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
45+
| `security_content_ctime(lastTime)`'
46+
earliest_offset: $info_min_time$
47+
latest_offset: $info_max_time$
3448
rba:
3549
message: User $user$ is modifying an instance $object_id$ for the first time.
3650
risk_objects:
@@ -49,6 +63,7 @@ tags:
4963
- Splunk Enterprise Security
5064
- Splunk Cloud
5165
security_domain: threat
66+
manual_test: This search needs the baseline `Previously Seen Cloud Instance Modifications By User - Update` to be run first.
5267
tests:
5368
- name: True Positive Test
5469
attack_data:

0 commit comments

Comments
 (0)