name: Suspicious Java Classes
id: if1fea6da-3c86-4c1d-b255-fc3b2781a491
version: 1
date: '2018-12-06'
author: Jose Hernandez, Splunk
type: batch
datamodel: []
description: This search looks for suspicious Java classes that are often used to
  exploit remote command execution in common Java frameworks, such as Apache Struts.
search: '`stream_http` http_method=POST http_content_length>1 | regex form_data="(?i)java\.lang\.(?:runtime|processbuilder)"
  | rename src_ip as src | stats count earliest(_time) as firstTime, latest(_time)
  as lastTime, values(url) as uri, values(status) as status, values(http_user_agent)
  as http_user_agent by src, dest | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
  | `suspicious_java_classes_filter`'
how_to_implement: In order to properly run this search, Splunk needs to ingest data
  from your web-traffic appliances that serve or sit in the path of your Struts application
  servers. This can be accomplished by indexing data from a web proxy, or by using
  network traffic-analysis tools, such as Splunk Stream or Bro.
known_false_positives: There are no known false positives.
references: []
tags:
  analytic_story:
  - Apache Struts Vulnerability
  asset_type: Endpoint
  cis20:
  - CIS 7
  - CIS 12
  kill_chain_phases:
  - Exploitation
  nist:
  - DE.AE
  product:
  - Splunk Enterprise
  - Splunk Enterprise Security
  - Splunk Cloud
  required_fields:
  - _time
  - http_method
  - http_content_length
  - src_ip
  - url
  - status
  - http_user_agent
  - src
  - dest
  security_domain: threat
