Notifications
View and set up security notifications.
The Notifications tab allows you to configure HTTP-based alerts for when Secure Application detects new vulnerabilities or attacks.
Set up notifications
Set up notifications first so that Secure Application can notify your team as soon as instrumented applications start reporting vulnerabilities or attacks.
Notifications allow third-party platforms to ingest information through webhooks. Currently, Secure Application only supports HTTP-based notifications.
Create a rule to send a notification:
-
Select .
-
Specify settings for the new rule:
-
Rule type: Select Vulnerability or Attack.
-
Rule name: Name of the rule.
-
URL: Endpoint to deliver the notification to.
-
Bearer token:
- To send notifications to Splunk Cloud or Splunk Platform
-
-
Generate an HTTP Event Collector (HEC) token that allows access to your account. To learn more, see Set up and use HTTP Event Collector in Splunk Web.
-
Paste the HEC token you generated into the Bearer token field. Example:
Splunk hec-token.
-
- To send notifications to other platforms
-
Enter the
Authorization: Bearerheader value (token) for your webhook URL auth.
- Environment: List of allowed environments as a filter. Optional.
- Service: List of allowed services as a filter. Optional.
-
- Select Activate.
For details on the JSON payload of a notification see How notifications work.
How notifications work
The Secure Application agent sends library dependency information to Secure Application. Certain conditions related to this information trigger a notification, such as:
- Secure Application identifies a new vulnerability match.
- A matched library disappears (due to an upgrade).
- Secure Application finds a new vulnerability on an existing library.
-
Secure Application identifies an attack with an outcome of Exploited.
When a notification is triggered, Secure Application delivers that notification directly to the endpoint you specified when you set up the notification rule. Your specified endpoint receives a predefined JSON payload containing information about the security event. For attacks, this notification includes the associated business transaction, if available.
- Sample JSON payload
-
JSON
{ "attackName": "00002347", "attackStatus": "OPEN", "attackSource": "UNKNOWN", "attackOutcome": "EXPLOITED", "attackTypes": "{SQL}", "eventTrigger": "SELECT * FROM users WHERE name = '' OR *=* --'", "environment": "lab0", "service": "payment-service", "businessTransactionName": "payment-service:GET /api/v1", "lastDetected": "2026-08-06 17:14:05.00023 +0000 UTC", "attackEvents": [ { "attackOutcome": "EXPLOITED", "attackTypes": "SQL", "blocked": false, "blockedReason": "", "clientAddress": "", "clientAddressType": 0, "clientPort": "39541", "cveId": "00000000-0000-0000-0000-000000000000", "detailJson": { "name": "Non Parameterized SQL Query detected", "sql": "SELECT * FROM users WHERE name = '' OR *=* --'", "sqlSignals": { "containsComment": true, "containsOrTrue": true } }, "environment": "lab0", "eventType": "SQL_NONPARAM", "jvmId": "<string>", "keyInfo": "SELECT * FROM users WHERE name = '' OR *=* --'", "maliciousIpOut": "", "maliciousIpSource": "", "maliciousIpSourceOut": "", "matchedCveName": "", "serverAddress": "<host-ip>", "serverName": "Unknown", "serverPort": "<host-port>", "service": "payment-service", "serviceId": "<string>", "stackTrace": "<long-string>", "timestamp": "2026-08-06T17:14:05.00023Z", "vulnerabilityInfo": null, "vulnerableMethod": "", "webTransactionUrl": "http://localhost:8080/api/v1/users/search" } ] } - Notification payload fields
-
The following table describes the fields in the notification payload.
Important: Payload fields (includingbusinessTransactionName) might contain arbitrary text sourced from your own environment or instrumentation and should be treated as untrusted by whatever consumes the webhook.Field Type Description attackNamestringAttack identifier or name. attackStatusstringCurrent status of the attack. attackSourcestringIndicates whether the attacker is inside or outside your network. attackOutcomestringResult of the attack, in order of increasing severity. attackTypesstringAttack category. See attack type values. eventTriggerstringSpecific payload or input that triggered detection, such as a raw SQL query, command, or file path. The value varies by attack type. Internally, this field is called KeyInfo.environmentstringPresent only in Splunk Observability Cloud mode. This field is renamed from applicationName.servicestringPresent only in Splunk Observability Cloud mode. This field is renamed from tierName.businessTransactionNamestringBusiness transaction associated with the attack. lastDetectedtimestampLast time the attack was observed. attackEventsarrayIndividual raw security events that make up the attack. See fields in the attackEvents array. - attackTypes
-
The following table lists valid values for the
attackTypesfield.Value Meaning RCERemote code execution. LFILocal file inclusion (file read from outside the application path). PATHPath traversal. SSRFServer-side request forgery. DESEREALUntrusted deserialization. EXPRExpression language injection. MALIPMalicious IP address (inbound request from a known-bad IP). EXCUncaught exception. SQLNon-parameterized SQL query. SEN_LOGSensitive information logged. VULNNot an attack; indicates that a vulnerability was detected in the application. APITypically not an attack; indicates an API call observation. LOG4JLog4j-related attack caused by a socket connection triggered by Log4j. COMMANDLocal code execution detected through the JVM security manager. - attackEvents
-
Each object in the
attackEventsarray contains the following fields.Field Type Description Possible values attackOutcomestringOutcome of this specific event. Same values as top-level attackOutcome.eventTypestringFine-grained event classification. Event-type-specific string, such as SQL_NONPARAM.attackTypesstringAttack type for this event. Same as the top-level attackTypeslist. See attack type values.blockedboolIndicates whether this event was blocked. trueorfalse.blockedReasonstringReason the event was blocked, if applicable. Free-form string, often empty. clientAddressstringClient IP address. IP address or an empty string. clientAddressTypeint32Classification of the client IP address. 0: UNKNOWN; 1: LOOPBACK (127.0.0.0/8); 2: LINKLOCAL (169.254.0.0/16); 3: PRIVATE (RFC 1918); 4: PUBLIC. clientPortstringClient port. Numeric string. cveIdUUIDInternal CVE reference ID. Set only for vulnerability-related events. UUID or all-zero UUID. detailJsonobjectAttack-type-specific structured detail. For example, SQL details can include name,sql, andsqlSignalsfields withcontainsCommentandcontainsOrTruevalues.Arbitrary JSON object; shape varies by eventType.jvmIdstringJVM instance ID of the affected application node. UUID-like string. keyInfostringSame content as top-level eventTrigger.Free-form string. maliciousIpOutstringOutbound IP address flagged as malicious. IP address or an empty string. maliciousIpSourcestringThreat-list name that matches the inbound malicious IP address. String or an empty string. maliciousIpSourceOutstringThreat-list name that matches the outbound malicious IP address. String or an empty string. matchedCveNamestringCVE matched against the stack trace. String or an empty string. serverAddressstringServer IP address that handled the request. IP address. serverNamestringServer hostname. String, often Unknown.serverPortstringServer port. Numeric string. servicestringSplunk Observability Cloud mode service name, renamed from tierName.String. serviceIdUUIDSplunk Observability Cloud mode service or tier ID, renamed from tierId.UUID. stackTracestringJava stack trace at the detection point, truncated to 256 lines. Multiline string. timestamptimestampTime when this specific event occurred. RFC 3339 timestamp. vulnerabilityInfoobject or nullPopulated only when vulnerableMethodmatches a known CVE.nullfor pure attack events.vulnerableMethodstringMethod signature identified as vulnerable. String or an empty string. webTransactionUrlstringURL of the HTTP request tied to the event. URL string.