mirror of
https://github.com/splunk/security_content
synced 2026-06-08 17:32:49 +00:00
75 lines
3.3 KiB
YAML
75 lines
3.3 KiB
YAML
name: Web Spring4Shell HTTP Request Class Module
|
|
id: fcdfd69d-0ca3-4476-920e-9b633cb4593e
|
|
version: 5
|
|
date: '2025-05-02'
|
|
author: Michael Haag, Splunk
|
|
status: production
|
|
type: TTP
|
|
description: The following analytic detects HTTP requests containing payloads related
|
|
to the Spring4Shell vulnerability (CVE-2022-22965). It leverages Splunk Stream HTTP
|
|
data to inspect the HTTP request body and form data for specific fields such as
|
|
"class.module.classLoader.resources.context.parent.pipeline.first". This activity
|
|
is significant as it indicates an attempt to exploit a critical vulnerability in
|
|
Spring Framework, potentially leading to remote code execution. If confirmed malicious,
|
|
this could allow attackers to gain unauthorized access, execute arbitrary code,
|
|
and compromise the affected system.
|
|
data_source:
|
|
- Splunk Stream HTTP
|
|
search: '`stream_http` http_method IN ("POST") | stats values(form_data) as http_request_body
|
|
min(_time) as firstTime max(_time) as lastTime count by src dest http_method http_user_agent
|
|
uri_path url bytes_in bytes_out | search http_request_body IN ("*class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=_*",
|
|
"*class.module.classLoader.resources.context.parent.pipeline.first.pattern*","*suffix=.jsp*")
|
|
| `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `web_spring4shell_http_request_class_module_filter`'
|
|
how_to_implement: To successfully implement this search, you need to be ingesting
|
|
logs with the stream HTTP logs or network logs that catch network traffic. Make
|
|
sure that the http-request-body, payload, or request field is enabled.
|
|
known_false_positives: False positives may occur and filtering may be required. Restrict
|
|
analytic to asset type.
|
|
references:
|
|
- https://github.com/DDuarte/springshell-rce-poc/blob/master/poc.py
|
|
drilldown_searches:
|
|
- name: View the detection results for - "$dest$"
|
|
search: '%original_detection_search% | search dest = "$dest$"'
|
|
earliest_offset: $info_min_time$
|
|
latest_offset: $info_max_time$
|
|
- name: View risk events for the last 7 days for - "$dest$"
|
|
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)`'
|
|
earliest_offset: $info_min_time$
|
|
latest_offset: $info_max_time$
|
|
rba:
|
|
message: A http body request related to Spring4Shell has been sent to $dest$ by
|
|
$src$.
|
|
risk_objects:
|
|
- field: dest
|
|
type: system
|
|
score: 72
|
|
threat_objects:
|
|
- field: src
|
|
type: ip_address
|
|
tags:
|
|
analytic_story:
|
|
- Spring4Shell CVE-2022-22965
|
|
asset_type: Web Server
|
|
cve:
|
|
- CVE-2022-22965
|
|
mitre_attack_id:
|
|
- T1190
|
|
- T1133
|
|
product:
|
|
- Splunk Enterprise
|
|
- Splunk Enterprise Security
|
|
- Splunk Cloud
|
|
security_domain: network
|
|
tests:
|
|
- name: True Positive Test
|
|
attack_data:
|
|
- data:
|
|
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1190/spring4shell/http_request_body_streams.log
|
|
source: stream:http
|
|
sourcetype: stream:http
|