Skip to content

Commit f3e0d87

Browse files
authored
Merge branch 'develop' into nterl0k-t1114.003-o365-transport-rule-change
2 parents 25af092 + 56c4d19 commit f3e0d87

23 files changed

+554
-45
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: O365 SharePoint Suspicious Search Behavior
2+
id: 6ca919db-52f3-4c95-a4e9-7b189e8a043d
3+
version: 1
4+
date: '2025-01-08'
5+
author: Steven Dick
6+
status: production
7+
type: Anomaly
8+
description: The following analytic identifies when the O365 SharePoint users search for suspicious keywords or have an excessive number of queries within a limited timeframe. This behavior may indicate malicious actor enumeration of SharePoint based data within O365.
9+
data_source:
10+
- Office 365 Universal Audit Log
11+
search: |-
12+
`o365_management_activity` Workload=SharePoint Operation="SearchQueryPerformed" SearchQueryText=* EventData=*search*
13+
| where NOT (match(SearchQueryText, "\*") OR match(SearchQueryText,"(\*)"))
14+
| eval signature_id = CorrelationId, signature=Operation, src = ClientIP, user = UserId, object_name=EventData, command = SearchQueryText, -time = _time
15+
| bin _time span=1hr
16+
| stats values(object_name) as object_name values(command) as command, values(src) as src, dc(command) as count, min(-time) as firstTime, max(-time) as lastTime by user,signature,_time
17+
| where count > 20 OR match(command, "(?i)password|credential|passwd|shadow|active directory|account|username|network|computer|access|MFA|bank|deposit|payroll|EFT|Electonic Funds|routing")
18+
| `security_content_ctime(firstTime)`
19+
| `security_content_ctime(lastTime)`
20+
| `o365_sharepoint_suspicious_search_behavior_filter`
21+
how_to_implement: You must install the Splunk Microsoft Office 365 Add-on and ingest Office 365 management activity events. The thresholds and match terms set within the analytic are initial guidelines and should be customized based on the organization's user behavior and risk profile. Security teams are encouraged to adjust these thresholds to optimize the balance between detecting genuine threats and minimizing false positives, ensuring the detection is tailored to their specific environment.
22+
known_false_positives: Users searching excessively or possible false positives related to matching conditions.
23+
references:
24+
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-320a
25+
- https://attack.mitre.org/techniques/T1213/002/
26+
drilldown_searches:
27+
- name: View the detection results for - "$user$"
28+
search: '%original_detection_search% | search user = "$user$"'
29+
earliest_offset: $info_min_time$
30+
latest_offset: $info_max_time$
31+
- name: View risk events for the last 7 days for - "$user$"
32+
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)`'
33+
earliest_offset: $info_min_time$
34+
latest_offset: $info_max_time$
35+
- name: Investigate search behavior by $user$
36+
search: '`o365_management_activity` Workload=SharePoint Operation="SearchQueryPerformed" SearchQueryText=* EventData=*search* AND UserId = "$user$"'
37+
earliest_offset: $info_min_time$
38+
latest_offset: $info_max_time$
39+
rba:
40+
message: The SharePoint Online was searched suspiciously by $user$
41+
risk_objects:
42+
- field: user
43+
type: user
44+
score: 25
45+
threat_objects:
46+
- field: src
47+
type: ip_address
48+
tags:
49+
analytic_story:
50+
- Azure Active Directory Persistence
51+
- Office 365 Account Takeover
52+
- CISA AA22-320A
53+
asset_type: O365 Tenant
54+
mitre_attack_id:
55+
- T1213.002
56+
- T1552
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/T1213.002/o365_sus_sharepoint_search/o365_sus_sharepoint_search.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

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
name: Suspicious Driver Loaded Path
22
id: f880acd4-a8f1-11eb-a53b-acde48001122
3-
version: 4
4-
date: '2024-11-13'
3+
version: 6
4+
date: '2025-02-06'
55
author: Teoderick Contreras, Splunk
6-
status: production
6+
status: deprecated
77
type: TTP
8-
description: The following analytic detects the loading of drivers from suspicious
8+
description: This search has been deprecated in favour of - Windows Suspicious Driver Loaded Path. The following analytic detects the loading of drivers from suspicious
99
paths, which is a technique often used by malicious software such as coin miners
1010
(e.g., xmrig). It leverages Sysmon EventCode 6 to identify drivers loaded from non-standard
1111
directories. This activity is significant because legitimate drivers typically reside

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
name: Suspicious Process File Path
22
id: 9be25988-ad82-11eb-a14f-acde48001122
3-
version: 6
4-
date: '2024-12-10'
3+
version: 7
4+
date: '2025-02-10'
55
author: Teoderick Contreras, Splunk
6-
status: production
6+
status: deprecated
77
type: TTP
8-
description: The following analytic identifies processes running from file paths not
8+
description: This search has been deprecated in favour of - Windows Suspicious Process File Path. The following analytic identifies processes running from file paths not
99
typically associated with legitimate software. It leverages data from Endpoint Detection
1010
and Response (EDR) agents, focusing on specific process paths within the Endpoint
1111
data model. This activity is significant because adversaries often use unconventional
@@ -117,4 +117,4 @@ tests:
117117
- data:
118118
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/xmrig_miner/windows-sysmon.log
119119
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
120-
sourcetype: XmlWinEventLog
120+
sourcetype: XmlWinEventLog

detections/endpoint/detect_remote_access_software_usage_file.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Detect Remote Access Software Usage File
22
id: 3bf5541a-6a45-4fdc-b01d-59b899fff961
3-
version: 5
3+
version: 6
44
date: '2024-11-13'
55
author: Steven Dick
66
status: production
@@ -54,6 +54,10 @@ drilldown_searches:
5454
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
5555
earliest_offset: $info_min_time$
5656
latest_offset: $info_max_time$
57+
- name: Investigate files on $dest$
58+
search: '| from datamodel:Endpoint.Filesystem | search dest=$dest$ file_name=$file_name$'
59+
earliest_offset: $info_min_time$
60+
latest_offset: $info_max_time$
5761
rba:
5862
message: A file for known a remote access software [$file_name$] was created on
5963
$dest$ by $user$.
@@ -67,13 +71,16 @@ rba:
6771
threat_objects:
6872
- field: file_name
6973
type: file_name
74+
- field: signature
75+
type: signature
7076
tags:
7177
analytic_story:
7278
- Insider Threat
7379
- Command And Control
7480
- Ransomware
7581
- Gozi Malware
7682
- CISA AA24-241A
83+
- Remote Monitoring and Management Software
7784
asset_type: Endpoint
7885
mitre_attack_id:
7986
- T1219

detections/endpoint/detect_remote_access_software_usage_fileinfo.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Detect Remote Access Software Usage FileInfo
22
id: ccad96d7-a48c-4f13-8b9c-9f6a31cba454
3-
version: 5
3+
version: 6
44
date: '2024-11-13'
55
author: Steven Dick
66
status: production
@@ -47,22 +47,32 @@ drilldown_searches:
4747
| `security_content_ctime(lastTime)`'
4848
earliest_offset: $info_min_time$
4949
latest_offset: $info_max_time$
50+
- name: Investigate processes on $dest$
51+
search: '| from datamodel:Endpoint.Processes| search dest=$dest$ process_name=$process_name$'
52+
earliest_offset: $info_min_time$
53+
latest_offset: $info_max_time$
5054
rba:
5155
message: A file attributes for known a remote access software [$process_name$] was
5256
detected on $dest$
5357
risk_objects:
5458
- field: dest
5559
type: system
5660
score: 25
61+
- field: user
62+
type: user
63+
score: 25
5764
threat_objects:
5865
- field: process_name
5966
type: process_name
67+
- field: signature
68+
type: signature
6069
tags:
6170
analytic_story:
6271
- Insider Threat
6372
- Command And Control
6473
- Ransomware
6574
- Gozi Malware
75+
- Remote Monitoring and Management Software
6676
asset_type: Endpoint
6777
mitre_attack_id:
6878
- T1219

detections/endpoint/detect_remote_access_software_usage_process.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Detect Remote Access Software Usage Process
22
id: ffd5e001-2e34-48f4-97a2-26dc4bb08178
3-
version: 5
3+
version: 6
44
date: '2024-11-13'
55
author: Steven Dick
66
status: production
@@ -59,6 +59,10 @@ drilldown_searches:
5959
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
6060
earliest_offset: $info_min_time$
6161
latest_offset: $info_max_time$
62+
- name: Investigate processes on $dest$
63+
search: '| from datamodel:Endpoint.Processes| search dest=$dest$ process_name=$process_name$'
64+
earliest_offset: $info_min_time$
65+
latest_offset: $info_max_time$
6266
rba:
6367
message: A process for a known remote access software $process_name$ was identified
6468
on $dest$.
@@ -72,13 +76,16 @@ rba:
7276
threat_objects:
7377
- field: process_name
7478
type: process_name
79+
- field: signature
80+
type: signature
7581
tags:
7682
analytic_story:
7783
- Insider Threat
7884
- Command And Control
7985
- Ransomware
8086
- Gozi Malware
8187
- CISA AA24-241A
88+
- Remote Monitoring and Management Software
8289
asset_type: Endpoint
8390
mitre_attack_id:
8491
- T1219

detections/endpoint/detect_remote_access_software_usage_registry.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Detect Remote Access Software Usage Registry
22
id: 33804986-25dd-43cf-bb6b-dc14956c7cbc
3-
version: 2
3+
version: 3
44
date: '2025-01-10'
55
author: Steven Dick
66
status: production
@@ -60,6 +60,7 @@ tags:
6060
- Ransomware
6161
- Gozi Malware
6262
- CISA AA24-241A
63+
- Remote Monitoring and Management Software
6364
asset_type: Endpoint
6465
mitre_attack_id:
6566
- T1219

detections/endpoint/linux_auditd_file_permissions_modification_via_chattr.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: Linux Auditd File Permissions Modification Via Chattr
22
id: f2d1110d-b01c-4a58-9975-90a9edeb083a
3-
version: 3
4-
date: '2025-01-16'
3+
version: 4
4+
date: '2025-02-03'
55
author: Teoderick Contreras, Splunk
66
status: production
7-
type: TTP
7+
type: Anomaly
88
description: The following analytic detects suspicious file permissions modifications using the chattr command, which may indicate an attacker attempting to manipulate file attributes to evade detection or prevent alteration. The chattr command can be used to make files immutable or restrict deletion, which can be leveraged to protect malicious files or disrupt system operations. By monitoring for unusual or unauthorized chattr usage, this analytic helps identify potential tampering with critical files, enabling security teams to quickly respond to and mitigate threats associated with unauthorized file attribute changes.
99
data_source:
1010
- Linux Auditd Execve
@@ -28,7 +28,7 @@ rba:
2828
risk_objects:
2929
- field: dest
3030
type: system
31-
score: 49
31+
score: 30
3232
threat_objects: []
3333
tags:
3434
analytic_story:

detections/endpoint/linux_auditd_find_credentials_from_password_managers.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
name: Linux Auditd Find Credentials From Password Managers
22
id: 784241aa-85a5-4782-a503-d071bd3446f9
3-
version: 3
4-
date: '2025-01-16'
3+
version: 4
4+
date: '2025-02-03'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: TTP
88
description: The following analytic detects suspicious attempts to find credentials stored in password managers, which may indicate an attacker's effort to retrieve sensitive login information. Password managers are often targeted by adversaries seeking to access stored passwords for further compromise or lateral movement within a network. By monitoring for unusual or unauthorized access to password manager files or processes, this analytic helps identify potential credential theft attempts, enabling security teams to respond quickly to protect critical accounts and prevent further unauthorized access.
99
data_source:
1010
- Linux Auditd Execve
11-
search: '`linux_auditd` `linux_auditd_normalized_execve_process` | rename host as dest | rename comm as process_name | rename exe as process | where (LIKE (process_exec, "%find%") OR LIKE (process_exec, "%grep%")) AND (LIKE (process_exec, "%.kdbx%") OR LIKE (process_exec, "%KeePass%") OR LIKE (process_exec, "%KeePass\.enforced%") OR LIKE (process_exec, "%.lpdb%")OR LIKE (process_exec, "%.opvault%")OR LIKE (process_exec, "%.agilekeychain%")OR LIKE (process_exec, "%.dashlane%")OR LIKE (process_exec, "%.rfx%")OR LIKE (process_exec, "%passbolt%")OR LIKE (process_exec, "%.spdb%")OR LIKE (process_exec, "%StickyPassword%")OR LIKE (process_exec, "%.walletx%")OR LIKE (process_exec, "%enpass%")OR LIKE (process_exec, "%vault%")OR LIKE (process_exec, "%.kdb%")) | stats count min(_time) as firstTime max(_time) as lastTime by argc process_exec dest | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`| `linux_auditd_find_credentials_from_password_managers_filter`'
11+
search: '`linux_auditd` `linux_auditd_normalized_execve_process` | rename host as dest | rename comm as process_name | rename exe as process | where (LIKE (process_exec, "%find%") OR LIKE (process_exec, "%grep%")) AND (LIKE (process_exec, "%.kdbx%") OR LIKE (process_exec, "%KeePass%") OR LIKE (process_exec, "%.enforced%") OR LIKE (process_exec, "%.lpdb%")OR LIKE (process_exec, "%.opvault%")OR LIKE (process_exec, "%.agilekeychain%")OR LIKE (process_exec, "%.dashlane%")OR LIKE (process_exec, "%.rfx%")OR LIKE (process_exec, "%passbolt%")OR LIKE (process_exec, "%.spdb%")OR LIKE (process_exec, "%StickyPassword%")OR LIKE (process_exec, "%.walletx%")OR LIKE (process_exec, "%enpass%")OR LIKE (process_exec, "%vault%")OR LIKE (process_exec, "%.kdb%")) | stats count min(_time) as firstTime max(_time) as lastTime by argc process_exec dest | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`| `linux_auditd_find_credentials_from_password_managers_filter`'
1212
how_to_implement: To implement this detection, the process begins by ingesting auditd data, that consists of SYSCALL, TYPE, EXECVE and PROCTITLE events, which captures command-line executions and process details on Unix/Linux systems. These logs should be ingested and processed using Splunk Add-on for Unix and Linux (https://splunkbase.splunk.com/app/833), which is essential for correctly parsing and categorizing the data. The next step involves normalizing the field names to match the field names set by the Splunk Common Information Model (CIM) to ensure consistency across different data sources and enhance the efficiency of data modeling. This approach enables effective monitoring and detection of linux endpoints where auditd is deployed
1313
known_false_positives: Administrator or network operator can use this application for automation purposes. Please update the filter macros to remove false positives.
1414
references:

0 commit comments

Comments
 (0)