Try in Splunk Security Cloud

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

ATT&CK

ATT&CK

ID Technique Tactic
T1499.004 Application or System Exploitation Impact
Kill Chain Phase
  • Actions On Objectives
NIST
  • DE.AE
CIS20
  • CIS 10
CVE
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:

:information_source: 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$

:information_source: 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