Splunk DOS via printf search function
Description
The following analytic identifies the use of the printf
SPL function in Splunk searches, which can be exploited for a denial of service (DoS) attack. It detects this activity by querying the audit_searches
data source for specific patterns involving makeresults
, eval
, fieldformat
, and printf
functions, excluding searches by the splunk_system_user
. This activity is significant because it targets a known vulnerability in Splunk Enterprise versions lower than 8.1.14, 8.2.12, 9.0.6, and 9.1.1, potentially disrupting the availability of the Splunk instance. If confirmed malicious, this could lead to service outages and impact the monitoring and logging capabilities of the organization.
- Type: Hunting
-
Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud
- Last Updated: 2024-05-25
- Author: Rod Soto, Eric McGinnis, Splunk
- ID: 78b48d08-075c-4eac-bd07-e364c3780867
Annotations
Kill Chain Phase
- Actions On Objectives
NIST
- DE.AE
CIS20
- CIS 10
CVE
Search
1
2
3
4
`audit_searches` "*makeresults * eval * fieldformat *printf*" user!="splunk_system_user" search!="*audit_searches*"
| stats count by user splunk_server host search
| convert ctime(*time)
|`splunk_dos_via_printf_search_function_filter`
Macros
The SPL above uses the following Macros:
splunk_dos_via_printf_search_function_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Required fields
List of fields required to use this analytic.
- user
- splunk_server
- host
- search
How To Implement
This search requires the ability to search internal indexes.
Known False Positives
This search may produces false positives, analyst most focuse in the use of printf conversion function of eval to craft an expression that splunkd cannot interpret correctly causing it to crash.
Associated Analytic Story
RBA
Risk Score | Impact | Confidence | Message |
---|---|---|---|
100.0 | 100 | 100 | Possible denial of service attack against $host$ |
The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.
Reference
Test Dataset
Replay any dataset to Splunk Enterprise by using our replay.py
tool or the UI.
Alternatively you can replay a dataset into a Splunk Attack Range
source | version: 2