Skip to content

Commit 97950fe

Browse files
authored
Merge pull request #3630 from splunk/app_dynamics_udpate
Update detection name - Splunk AppDynamics Secure Application Alerts
2 parents 4e1eb82 + ef128df commit 97950fe

File tree

5 files changed

+124
-28
lines changed

5 files changed

+124
-28
lines changed

data_sources/cisco_secure_application_appdynamics_alerts.yml renamed to data_sources/splunk_appdynamics_secure_application_alert.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Cisco Secure Application AppDynamics Alerts
1+
name: Splunk AppDynamics Secure Application Alert
22
id: 5c963eb0-010e-4386-875f-5134879f14a7
33
version: 1
44
date: '2025-02-04'
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Splunk AppDynamics Secure Application Alerts
2+
id: d1a45d84-8dd1-4b31-8854-62b0b1d5da0b
3+
version: 1
4+
date: '2025-05-02'
5+
author: Ryan Long, Bhavin Patel, Splunk
6+
status: production
7+
type: Anomaly
8+
description: |
9+
The following analytic is to leverage alerts from Splunk AppDynamics SecureApp, which identifies and monitors exploit attempts targeting business applications. The primary attack observed involves exploiting vulnerabilities in web applications, including injection attacks (SQL, API abuse), deserialization vulnerabilities, remote code execution attempts, LOG4J and zero day attacks. These attacks are typically aimed at gaining unauthorized access, exfiltrating sensitive data, or disrupting application functionality.
10+
11+
Splunk AppDynamics SecureApp provides real-time detection of these threats by analyzing application-layer events and correlating attack behavior with known vulnerability signatures. This detection methodology helps the Security Operations Center (SOC) by:
12+
13+
* Identifying active exploitation attempts in real-time, allowing for quicker incident response.
14+
* Categorizing attack severity to prioritize remediation efforts based on risk level.
15+
* Providing visibility into attacker tactics, including source IP, attack techniques, and affected applications.
16+
* Generating risk-based scoring and contextual alerts to enhance decision-making within SOC workflows.
17+
* Helping analysts determine whether an attack was merely an attempt or if it successfully exploited a vulnerability.
18+
19+
By leveraging this information, SOC teams can proactively mitigate security threats, patch vulnerable applications, and enforce security controls to prevent further exploitation.
20+
data_source:
21+
- Splunk AppDynamics Secure Application Alert
22+
search: |-
23+
`appdynamics_security` blocked=false
24+
| rename attackEvents{}.* AS *, detailJson.* AS *, vulnerabilityInfo.* AS *
25+
| fields - tag::eventtype, eventtype, host, id, index, linecount, punct, source, sourcetype, splunk_server, tag, SourceType, app clientAddressType, application, tier, "attackEvents{}.* status"
26+
| eval socketOut=mvjoin(socketOut," AND ")
27+
| eval risk_score=kennaScore
28+
| fillnull risk_score value="0"
29+
`secureapp_es_field_mappings`
30+
| stats values(*) as * by attackId
31+
| eval severity=case(
32+
risk_score>=100 OR signature="LOG4J", "critical",
33+
risk_score>50 AND risk_score<75, "high",
34+
risk_score=0 AND attackOutcome="EXPLOITED", "high",
35+
risk_score<=50 AND attackOutcome!="OBSERVED", "medium",
36+
risk_score=0 AND attackOutcome="ATTEMPTED", "medium",
37+
risk_score=0, "low",
38+
risk_score=0 AND attackOutcome="OBSERVED", "low"
39+
)
40+
| eval risk_message=case(
41+
(signature="API" OR signature="LOG4J" OR signature="SSRF"), "An attempt to exploit a ".signature." vulnerability was made from a ".src_category." IP address ".src_ip.". The server ".dest_nt_host." hosting application ".app_name." was accessed, and data may have been exfiltrated to ".socketOut.".",
42+
(signature="MALIP" OR signature="SQL"), "A vulnerability is being ".attackOutcome." from a ".src_category." IP address ".src_ip.". The server ".dest_nt_host." hosting application ".app_name." was accessed.",
43+
(signature="DESEREAL"), "The application ".app_name." deserializes untrusted data without sufficiently verifying that the resulting data will be valid. Data which is untrusted cannot be trusted to be well-formed. Malformed data or unexpected data could be used to abuse application logic, deny service, or execute arbitrary code, when deserialized."
44+
)
45+
| `splunk_appdynamics_secure_application_alerts_filter`
46+
how_to_implement: In order to properly run this search, you need to ingest alerts data from AppD SecureApp, specifically ingesting data via HEC. You will also need to ensure that the data is going to sourcetype - `appdynamics_security`. You will need to install the Splunk Add-on for AppDynamics.
47+
known_false_positives: No known false positives for this detection. If the alerts are noisy, consider tuning this detection by using the _filter macro in this search, and/or updating the tool this alert originates from.
48+
references:
49+
- https://docs.appdynamics.com/appd/24.x/latest/en/application-security-monitoring/integrate-cisco-secure-application-with-splunk
50+
drilldown_searches:
51+
- name: View the detection results for - "$app_name$"
52+
search: '%original_detection_search% | search app_name = "$app_name$"'
53+
earliest_offset: $info_min_time$
54+
latest_offset: $info_max_time$
55+
- name: View risk events for the last 7 days for - "$app_name$"
56+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$app_name$") starthoursago=168 | stats count min(_time)
57+
as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message)
58+
as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
59+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
60+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
61+
earliest_offset: $info_min_time$
62+
latest_offset: $info_max_time$
63+
rba:
64+
message: $risk_message$
65+
risk_objects:
66+
- field: app_name
67+
type: other
68+
score: 10
69+
threat_objects:
70+
- field: src_ip
71+
type: ip_address
72+
tags:
73+
analytic_story:
74+
- Critical Alerts
75+
asset_type: Web Application
76+
mitre_attack_id: []
77+
product:
78+
- Splunk Enterprise
79+
- Splunk Enterprise Security
80+
- Splunk Cloud
81+
security_domain: threat
82+
manual_test: We are dynamically creating the risk_score field based on the severity of the alert in the SPL and that supersedes the risk score set in the detection. Setting these to manual test since otherwise we fail integration testing. The detection is also failing on unit-testing as some of the fields set in the observables are empty.
83+
tests:
84+
- name: True Positive Test
85+
attack_data:
86+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/suspicious_behaviour/alerts/cisco_secure_app_alerts.log
87+
sourcetype: appdynamics_security
88+
source: AppDynamics Security

detections/application/cisco_secure_application_alerts.yml renamed to detections/deprecated/cisco_secure_application_alerts.yml

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Cisco Secure Application Alerts
22
id: 9982bff4-fc5d-49a3-ab9e-2dbbab2a711b
3-
version: 2
4-
date: '2025-05-02'
3+
version: 3
4+
date: '2025-08-04'
55
author: Ryan Long, Bhavin Patel, Splunk
6-
status: production
6+
status: deprecated
77
type: Anomaly
88
description: |
99
The following analytic is to leverage alerts from Cisco SecureApp, which identifies and monitors exploit attempts targeting business applications. The primary attack observed involves exploiting vulnerabilities in web applications, including injection attacks (SQL, API abuse), deserialization vulnerabilities, remote code execution attempts, LOG4J and zero day attacks. These attacks are typically aimed at gaining unauthorized access, exfiltrating sensitive data, or disrupting application functionality.
@@ -17,31 +17,30 @@ description: |
1717
* Helping analysts determine whether an attack was merely an attempt or if it successfully exploited a vulnerability.
1818
1919
By leveraging this information, SOC teams can proactively mitigate security threats, patch vulnerable applications, and enforce security controls to prevent further exploitation.
20-
data_source:
21-
- Cisco Secure Application AppDynamics Alerts
20+
data_source: []
2221
search: |-
23-
`appdynamics_security` blocked=false
24-
| rename attackEvents{}.attackOutcome AS attackOutcome, "attackEvents{}.vulnerabilityInfo.*" AS *
25-
| fields - tag::eventtype, eventtype, host, id, index, linecount, punct, source, sourcetype, splunk_server, tag, SourceType, app clientAddressType, application, tier, "attackEvents{}.*"
26-
| eval socketOut=mvjoin(socketOut," AND ")
27-
| eval risk_score=kennaScore
28-
| fillnull risk_score value="0"
29-
| eval risk_object=app_name
30-
| stats values(*) as * by attackId
31-
| eval severity=case(
32-
risk_score>=100 OR signature="LOG4J", "critical",
33-
risk_score>50 AND risk_score<75, "high",
34-
risk_score=0 AND attackOutcome="EXPLOITED", "high",
35-
risk_score<=50 AND attackOutcome!="OBSERVED", "medium",
36-
risk_score=0 AND attackOutcome="ATTEMPTED", "medium",
37-
risk_score=0, "low",
38-
risk_score=0 AND attackOutcome="OBSERVED", "low"
39-
)
40-
| eval risk_message=case(
41-
(signature="API" OR signature="LOG4J" OR signature="SSRF"), "An attempt to exploit a ".signature." vulnerability was made from a ".src_category." IP address ".src_ip.". The server ".dest_nt_host." hosting application ".app_name." was accessed, and data may have been exfiltrated to ".socketOut.".",
42-
(signature="MALIP" OR signature="SQL"), "A vulnerability is being ".attackOutcome." from a ".src_category." IP address ".src_ip.". The server ".dest_nt_host." hosting application ".app_name." was accessed.",
43-
(signature="DESEREAL"), "The application ".app_name." deserializes untrusted data without sufficiently verifying that the resulting data will be valid. Data which is untrusted cannot be trusted to be well-formed. Malformed data or unexpected data could be used to abuse application logic, deny service, or execute arbitrary code, when deserialized."
44-
)
22+
`appdynamics_security`
23+
| rename attackEvents{}.* AS *, detailJson.* AS *, vulnerabilityInfo.* AS *
24+
| fields - tag::eventtype, eventtype, host, id, index, linecount, punct, source, sourcetype, splunk_server, tag, SourceType, app clientAddressType, application, tier, "attackEvents{}.* status"
25+
| eval socketOut=mvjoin(socketOut," AND ")
26+
| eval risk_score=kennaScore
27+
| fillnull risk_score value="0"
28+
`secureapp_es_field_mappings`
29+
| stats values(*) as * by attackId
30+
| eval severity=case(
31+
risk_score>=100 OR signature="LOG4J", "critical",
32+
risk_score>50 AND risk_score<75, "high",
33+
risk_score=0 AND attackOutcome="EXPLOITED", "high",
34+
risk_score<=50 AND attackOutcome!="OBSERVED", "medium",
35+
risk_score=0 AND attackOutcome="ATTEMPTED", "medium",
36+
risk_score=0, "low",
37+
risk_score=0 AND attackOutcome="OBSERVED", "low"
38+
)
39+
| eval risk_messege=case(
40+
(signature="API" OR signature="LOG4J" OR signature="SSRF"), "An attempt to exploit a ".signature." vulnerability was made from a ".src_category." IP address ".src_ip.". The server ".dest_nt_host." hosting application ".app_name." was accessed, and data may have been exfiltrated to ".socketOut.".",
41+
(signature="MALIP" OR signature="SQL"), "A vulnerability is being ".attackOutcome." from a ".src_category." IP address ".src_ip.". The server ".dest_nt_host." hosting application ".app_name." was accessed.",
42+
(signature="DESEREAL"), "The application ".app_name." deserializes untrusted data without sufficiently verifying that the resulting data will be valid. Data which is untrusted cannot be trusted to be well-formed. Malformed data or unexpected data could be used to abuse application logic, deny service, or execute arbitrary code, when deserialized."
43+
)
4544
| `cisco_secure_application_alerts_filter`
4645
how_to_implement: In order to properly run this search, you need to ingest alerts data from AppD SecureApp, specifically ingesting data via HEC. You will also need to ensure that the data is going to sourcetype - `appdynamics_security`. You will need to install the Splunk Add-on for AppDynamics.
4746
known_false_positives: No known false positives for this detection. If the alerts are noisy, consider tuning this detection by using the _filter macro in this search, and/or updating the tool this alert originates from.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
definition: '| eval rule_number=attackName | eval app=app_name | eval action=attackOutcome | eval view=blockedReason | eval product=btName | eval ids_type=eventType | eval process=jvmId | eval cve=matchedCveName | eval record_type=ptype | eval ip=socketAddr | eval package_title=tierName | eval signature_id=vulnerableMethod | eval url=webTransactionUrl | eval location=applicationId | eval package=tierId | eval rule_number=attackId | eval mode=attackStatus'
2+
description: customer specific splunk configurations(eg- index, source, sourcetype).
3+
Replace the macro definition with configurations for your Splunk Environment.
4+
name: secureapp_es_field_mappings

removed/deprecation_mapping.YML

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
detections:
2+
- content: Cisco Secure Application Alerts
3+
removed_in_version: 5.14.0
4+
reason: Detection has been deprecated since it has been replaced with a better named detection to reflect the correct product
5+
replacement_content:
6+
- Splunk AppDynamics Secure Application Alerts
27
- content: Windows InstallUtil Uninstall Option with Network
38
removed_in_version: 5.12.0
49
reason: Detection has been deprecated as its scope is already covered by "Windows InstallUtil Remote Network Connection".

0 commit comments

Comments
 (0)