Skip to content

Commit 74cc88f

Browse files
authored
Merge branch 'develop' into nterl0k-rmm-lookup-update-20250210
2 parents 76ed6ac + 3aef81e commit 74cc88f

29 files changed

+680
-189
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ Please use the [GitHub Issue Tracker](https://github.com/splunk/security_content
138138
If you have questions or need support, you can:
139139

140140
* Post a question to [Splunk Answers](http://answers.splunk.com)
141-
* Join the [#security-research](https://splunk-usergroups.slack.com/archives/C1S5BEF38) room in the [Splunk Slack channel](http://splunk-usergroups.slack.com)
141+
* Join the [#security-research](https://splunkcommunity.slack.com/archives/CDNHXVBGS) channel in the [Splunk Community Slack.](https://splk.it/slack)
142142

143143
## License
144144
Copyright 2022 Splunk Inc.

app_template/default/data/ui/views/feedback.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<html>
77
<p5>You can contact the Splunk Threat Research team at<a href = "mailto:[email protected]">[email protected]</a> to send us support requests, bug reports, and questions.
88
<br>Specify the request type and the title of any related analytic stories, detections analytics where applicable.</br>
9-
You can also find us on the <b>#es-content-updates</b><a href = "http://splunk-usergroups.slack.com/"> Splunk Usergroups Slack channel.</a></p5>
9+
You can also find us on the <b>#es-content-updates</b><a href = "https://splk.it/slack/"> Splunk Community Slack channel.</a></p5>
1010
</html>
1111
</panel>
1212
</row>
13-
</form>
13+
</form>

data_sources/aws_cloudtrail_consolelogin.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ fields:
9090
- vendor_product
9191
- vendor_region
9292
example_log: '{"eventVersion": "1.08", "userIdentity": {"type": "IAMUser", "accountId":
93-
"140429656527", "accessKeyId": "", "userName": "HIDDEN_DUE_TO_SECURITY_REASONS"},
93+
"111111111111", "accessKeyId": "", "userName": "HIDDEN_DUE_TO_SECURITY_REASONS"},
9494
"eventTime": "2022-10-19T20:33:38Z", "eventSource": "signin.amazonaws.com", "eventName":
9595
"ConsoleLogin", "awsRegion": "us-east-1", "sourceIPAddress": "142.254.89.27", "userAgent":
9696
"Go-http-client/1.1", "errorMessage": "No username found in supplied account", "requestParameters":
9797
null, "responseElements": {"ConsoleLogin": "Failure"}, "additionalEventData": {"LoginTo":
9898
"https://console.aws.amazon.com", "MobileVersion": "No", "MFAUsed": "No"}, "eventID":
9999
"9fcfb8c3-3fca-48db-85d2-7b107f9d95d0", "readOnly": false, "eventType": "AwsConsoleSignIn",
100-
"managementEvent": true, "recipientAccountId": "140429656527", "eventCategory":
100+
"managementEvent": true, "recipientAccountId": "111111111111", "eventCategory":
101101
"Management", "tlsDetails": {"tlsVersion": "TLSv1.2", "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
102102
"clientProvidedHostHeader": "signin.aws.amazon.com"}}'

data_sources/aws_cloudtrail_createvirtualmfadevice.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@ fields:
8888
- vendor_product
8989
- vendor_region
9090
example_log: '{"eventVersion": "1.08", "userIdentity": {"type": "Root", "principalId":
91-
"140429656527", "arn": "arn:aws:iam::140429656527:root", "accountId": "140429656527",
91+
"1111111111111111", "arn": "arn:aws:iam::1111111111111111:root", "accountId": "1111111111111111",
9292
"accessKeyId": "ASIASBMSCQHH2YXNXJBU", "sessionContext": {"sessionIssuer": {}, "webIdFederationData":
9393
{}, "attributes": {"creationDate": "2023-01-30T22:59:36Z", "mfaAuthenticated": "false"}}},
9494
"eventTime": "2023-01-30T23:02:23Z", "eventSource": "iam.amazonaws.com", "eventName":
9595
"CreateVirtualMFADevice", "awsRegion": "us-east-1", "sourceIPAddress": "23.93.193.6",
9696
"userAgent": "AWS Internal", "requestParameters": {"path": "/", "virtualMFADeviceName":
97-
"strt_mfa_2"}, "responseElements": {"virtualMFADevice": {"serialNumber": "arn:aws:iam::140429656527:mfa/strt_mfa_2"}},
97+
"strt_mfa_2"}, "responseElements": {"virtualMFADevice": {"serialNumber": "arn:aws:iam::1111111111111111:mfa/strt_mfa_2"}},
9898
"requestID": "2fbe2074-55f8-4ec6-ad32-0b250803cf46", "eventID": "7e1c493d-c3c3-4f4a-ae4f-8cdd38970027",
9999
"readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId":
100-
"140429656527", "eventCategory": "Management", "sessionCredentialFromConsole": "true"}'
100+
"1111111111111111", "eventCategory": "Management", "sessionCredentialFromConsole": "true"}'

data_sources/aws_cloudtrail_describeeventaggregates.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ fields:
8484
- vendor_product
8585
- vendor_region
8686
example_log: '{"eventVersion": "1.08", "userIdentity": {"type": "Root", "principalId":
87-
"140429656527", "arn": "arn:aws:iam::140429656527:root", "accountId": "140429656527",
87+
"1111111111111111", "arn": "arn:aws:iam::1111111111111111:root", "accountId": "1111111111111111",
8888
"accessKeyId": "ASIASBMSCQHHQQ6LB24V", "sessionContext": {"sessionIssuer": {}, "webIdFederationData":
8989
{}, "attributes": {"creationDate": "2023-01-31T21:58:17Z", "mfaAuthenticated": "true"}}},
9090
"eventTime": "2023-02-01T02:52:34Z", "eventSource": "health.amazonaws.com", "eventName":
@@ -93,5 +93,5 @@ example_log: '{"eventVersion": "1.08", "userIdentity": {"type": "Root", "princip
9393
"filter": {"eventStatusCodes": ["open", "upcoming"], "startTimes": [{"from": "Jan
9494
25, 2023 2:54:32 AM"}]}}, "responseElements": null, "requestID": "d6adf050-1d7a-4c25-9d48-0319e33f6f9a",
9595
"eventID": "201cee69-61ab-4ffb-80b7-bd31e81e0d82", "readOnly": true, "eventType":
96-
"AwsApiCall", "managementEvent": true, "recipientAccountId": "140429656527", "eventCategory":
96+
"AwsApiCall", "managementEvent": true, "recipientAccountId": "1111111111111111", "eventCategory":
9797
"Management", "sessionCredentialFromConsole": "true"}'

data_sources/aws_cloudtrail_modifyimageattribute.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ example_log: '{"eventVersion": "1.08", "userIdentity": {"type": "AssumedRole", "
101101
"ec2.amazonaws.com", "eventName": "ModifyImageAttribute", "awsRegion": "us-west-2",
102102
"sourceIPAddress": "72.135.245.10", "userAgent": "AWS Internal", "requestParameters":
103103
{"imageId": "ami-06dac31db29508566", "launchPermission": {"add": {"items": [{"userId":
104-
"140429656527"}]}}, "attributeType": "launchPermission"}, "responseElements": {"requestId":
104+
"1111111111111111"}]}}, "attributeType": "launchPermission"}, "responseElements": {"requestId":
105105
"84c431ce-6268-4218-aaf8-b4cdc1cd4055", "_return": true}, "requestID": "84c431ce-6268-4218-aaf8-b4cdc1cd4055",
106106
"eventID": "957e1b12-ea17-4006-aefd-20677ace72b8", "readOnly": false, "eventType":
107107
"AwsApiCall", "managementEvent": true, "recipientAccountId": "111111111111", "eventCategory":

data_sources/kubernetes_audit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ fields:
5454
- user.username
5555
- userAgent
5656
- verb
57-
example_log: '{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"RequestResponse","auditID":"582c31ab-4906-49bb-9ff9-872f980ccb84","stage":"ResponseComplete","requestURI":"/apis/batch/v1/namespaces/test2/jobs?fieldManager=kubectl-create\u0026fieldValidation=Strict","verb":"create","user":{"username":"k8s-test-user","uid":"aws-iam-authenticator:591511147606:AROAYTOGP2RLFHNBOTP5J","groups":["system:authenticated"]},"sourceIPs":["176.95.188.101"],"userAgent":"kubectl/v1.27.2
57+
example_log: '{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"RequestResponse","auditID":"582c31ab-4906-49bb-9ff9-872f980ccb84","stage":"ResponseComplete","requestURI":"/apis/batch/v1/namespaces/test2/jobs?fieldManager=kubectl-create\u0026fieldValidation=Strict","verb":"create","user":{"username":"k8s-test-user","uid":"aws-iam-authenticator:111111111111:AROAYTXXXXXXHNXXXXX","groups":["system:authenticated"]},"sourceIPs":["176.95.188.101"],"userAgent":"kubectl/v1.27.2
5858
(darwin/arm64) kubernetes/7f6f68f","objectRef":{"resource":"jobs","namespace":"test2","apiGroup":"batch","apiVersion":"v1"},"responseStatus":{"metadata":{},"status":"Failure","message":"jobs.batch
5959
is forbidden: User \"k8s-test-user\" cannot create resource \"jobs\" in API group
6060
\"batch\" in the namespace \"test2\"","reason":"Forbidden","details":{"group":"batch","kind":"jobs"},"code":403},"responseObject":{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"jobs.batch
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: O365 Email Transport Rule Changed
2+
id: 11ebb7c2-46bd-41c9-81e1-d0b4b34583a2
3+
version: 1
4+
date: '2025-01-15'
5+
author: Steven Dick
6+
status: production
7+
type: Anomaly
8+
description: The following analytic identifies when a user with sufficient access to Exchange Online alters the mail flow/transport rule configuration of the organization. Transport rules are a set of rules that can be used by attackers to modify or delete emails based on specific conditions, this activity could indicate an attacker hiding or exfiltrated data.
9+
data_source:
10+
- Office 365 Universal Audit Log
11+
search: |-
12+
`o365_management_activity` Workload=Exchange AND Operation IN ("Set-*","Disable-*","New-*","Remove-*") AND Operation="*TransportRule"
13+
| eval object_name = case('Parameters{}.Name'=="Name",mvindex('Parameters{}.Value',mvfind('Parameters{}.Name',"^Name$")),true(),ObjectId), object_id = case('Parameters{}.Name'=="Identity",mvindex('Parameters{}.Value',mvfind('Parameters{}.Name',"^Identity$")),true(),Id)
14+
| stats values(object_name) as object_name, min(_time) as firstTime, max(_time) as lastTime, count by object_id, UserId, Operation
15+
| rename UserId as user, Operation as signature
16+
| `security_content_ctime(firstTime)`
17+
| `security_content_ctime(lastTime)`
18+
| `o365_email_transport_rule_changed_filter`
19+
how_to_implement: You must install the Splunk Microsoft Office 365 Add-on and ingest Office 365 management activity events.
20+
known_false_positives: Legitimate administrative changes for business needs.
21+
references:
22+
- https://attack.mitre.org/techniques/T1114/003/
23+
- https://cardinalops.com/blog/cardinalops-contributes-new-mitre-attck-techniques-related-to-abuse-of-mail-transport-rules/
24+
- https://www.microsoft.com/en-us/security/blog/2022/09/22/malicious-OAuth-applications-used-to-compromise-email-servers-and-spread-spam/
25+
drilldown_searches:
26+
- name: View the detection results for - "$user$"
27+
search: '%original_detection_search% | search user = "$user$"'
28+
earliest_offset: $info_min_time$
29+
latest_offset: $info_max_time$
30+
- name: View risk events for the last 7 days for - "$user$"
31+
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)`'
32+
earliest_offset: $info_min_time$
33+
latest_offset: $info_max_time$
34+
- name: Investigate changes by $user$
35+
search: '`o365_management_activity` Workload=Exchange AND Operation IN ("Set-*","Disable-*","New-*","Remove-*") AND Operation="*Transport*" UserId=$user$'
36+
earliest_offset: $info_min_time$
37+
latest_offset: $info_max_time$
38+
rba:
39+
message: The user [$user$] altered the exchange transport rule id [$object_name$]
40+
risk_objects:
41+
- field: user
42+
type: user
43+
score: 25
44+
threat_objects:
45+
- field: object_id
46+
type: signature
47+
- field: object_name
48+
type: signature
49+
tags:
50+
analytic_story:
51+
- Data Exfiltration
52+
- Office 365 Account Takeover
53+
asset_type: O365 Tenant
54+
mitre_attack_id:
55+
- T1114.003
56+
- T1564.008
57+
product:
58+
- Splunk Enterprise
59+
- Splunk Enterprise Security
60+
- Splunk Cloud
61+
security_domain: threat
62+
tests:
63+
- name: True Positive Test
64+
attack_data:
65+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1114.003/transport_rule_change/transport_rule_change.log
66+
source: o365
67+
sourcetype: o365:management:activity

detections/endpoint/known_services_killed_by_ransomware.yml renamed to detections/deprecated/known_services_killed_by_ransomware.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
name: Known Services Killed by Ransomware
22
id: 3070f8e0-c528-11eb-b2a0-acde48001122
3-
version: 7
4-
date: '2024-12-10'
3+
version: 8
4+
date: '2025-02-07'
55
author: Teoderick Contreras, Splunk
6-
status: production
6+
status: deprecated
77
type: TTP
8-
description: The following analytic detects the suspicious termination of known services
8+
description: This analytic has been deprecated in favor of a new analytic - Windows Security And Backup Services Stop. The following analytic detects the suspicious termination of known services
99
commonly targeted by ransomware before file encryption. It leverages Windows System
1010
Event Logs (EventCode 7036) to identify when critical services such as Volume Shadow
1111
Copy, backup, and antivirus services are stopped. This activity is significant because
@@ -75,4 +75,4 @@ tests:
7575
- data:
7676
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1490/known_services_killed_by_ransomware/windows-xml.log
7777
source: XmlWinEventLog:System
78-
sourcetype: XmlWinEventLog
78+
sourcetype: XmlWinEventLog
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Remote Desktop Network Bruteforce
2+
id: a98727cc-286b-4ff2-b898-41df64695923
3+
version: 7
4+
date: '2025-01-10'
5+
author: Jose Hernandez, Bhavin Patel, Splunk
6+
status: deprecated
7+
type: TTP
8+
description: The following analytic has been deprecated in favor of "Windows Remote Desktop Network Bruteforce Attempt". The following analytic identifies potential Remote Desktop Protocol (RDP) brute force attacks by monitoring network traffic for RDP application activity. This query detects potential RDP brute force attacks by identifying source IPs that have made more than 10 successful connection attempts to the same RDP port on a host within a one-hour window. The results are presented in a table that includes the source and destination IPs, destination port, number of attempts, and the times of the first and last connection attempts, helping to prioritize IPs based on the intensity of activity.
9+
data_source:
10+
- Sysmon EventID 3
11+
search: >-
12+
| tstats `security_content_summariesonly` count, min(_time) as firstTime, max(_time) as lastTime from datamodel=Network_Traffic where (All_Traffic.app=rdp OR All_Traffic.dest_port=3389) AND All_Traffic.action=allowed by All_Traffic.src, All_Traffic.dest, All_Traffic.dest_port All_Traffic.user All_Traffic.vendor_product
13+
| `drop_dm_object_name("All_Traffic")`
14+
| eval duration=lastTime-firstTime
15+
| where count > 10 AND duration < 3600
16+
| `security_content_ctime(firstTime)`
17+
| `security_content_ctime(lastTime)`
18+
| `remote_desktop_network_bruteforce_filter`
19+
how_to_implement: You must ensure that your network traffic data is populating the Network_Traffic data model. Adjust the count and duration thresholds as necessary to tune the sensitivity of your detection.
20+
known_false_positives: RDP gateways may have unusually high amounts of traffic from all other hosts' RDP applications in the network.Any legitimate RDP traffic using wrong/expired credentials will be also detected as a false positive.
21+
references:
22+
- https://www.zscaler.com/blogs/security-research/ransomware-delivered-using-rdp-brute-force-attack
23+
- https://www.reliaquest.com/blog/rdp-brute-force-attacks/
24+
drilldown_searches:
25+
- name: View the detection results for - "$dest$"
26+
search: '%original_detection_search% | search dest = "$dest$"'
27+
earliest_offset: $info_min_time$
28+
latest_offset: $info_max_time$
29+
- name: View risk events for the last 7 days for - "$dest$"
30+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$") 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)`'
31+
earliest_offset: $info_min_time$
32+
latest_offset: $info_max_time$
33+
rba:
34+
message: RDP brute force attack on $dest$
35+
risk_objects:
36+
- field: dest
37+
type: system
38+
score: 25
39+
threat_objects: []
40+
tags:
41+
analytic_story:
42+
- SamSam Ransomware
43+
- Ryuk Ransomware
44+
- Compromised User Account
45+
asset_type: Endpoint
46+
mitre_attack_id:
47+
- T1110.001
48+
- T1110
49+
product:
50+
- Splunk Enterprise
51+
- Splunk Enterprise Security
52+
- Splunk Cloud
53+
security_domain: network
54+
tests:
55+
- name: True Positive Test
56+
attack_data:
57+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1110.001/rdp_brute_sysmon/sysmon.log
58+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
59+
sourcetype: XmlWinEventLog

0 commit comments

Comments
 (0)