Skip to main content

Webhooks

Defused webhooks allow you to forward alert and intel events to any HTTP endpoint for automation, enrichment, or downstream processing (SIEM, SOAR, custom workflows).

Webhooks are evaluated in real time during alert processing and are designed to be simple, explicit, and predictable.


What Webhooks Can Trigger On​

Defused supports two types of webhook-triggering events:

Alert Events (Alert)​

These are alerts generated by your own deployed decoys and sensors (Defused EX).

  • Webhooks configured for alerts are tenant-scoped
  • Only alerts belonging to the same customer will ever trigger them
  • Typical use cases:
    • Ticket creation
    • Blocking automation
    • SOC notifications

Intel Events (Intel Feed)​

These are events sourced from the honeypot intelligence feed (Defused TF).

  • Intel webhooks are global subscriptions
  • Any intel event that matches your criteria will trigger
  • Intel events do not have a customer attached
  • Typical use cases:
    • Threat intelligence ingestion
    • External correlation
    • Research and enrichment pipelines

Webhook Configuration Fields​

This section explains the core webhook configuration options shown in the Webhook setup view.

These fields define where the webhook is sent, how it is sent, and how Defused authenticates to the receiving endpoint.


Webhook Name​

Required. A human-readable name for the webhook.

Used for:

  • Identifying the webhook in the UI
  • Execution logs and audit events
  • Dependency chains (when webhooks are run sequentially)

Example:

Blocklist workflow

Webhook URL​

Required. The full HTTP or HTTPS endpoint that Defused will send requests to when the webhook triggers.

Example:

https://example.com/webhooks/defused

HTTP Auth​

Optional. When enabled, Defused will include authentication credentials in the outgoing request.

Supported authentication methods:

  • Basic Auth (username and password)
  • Bearer Token
  • API Key

Authentication is applied using standard HTTP Authorization headers.


Headers​

Optional custom HTTP headers to include with the request.

Headers are sent in addition to authentication headers (if enabled).

Common use cases include:

  • API keys
  • Custom routing headers
  • Workflow identifiers

Example headers:

X-API-Key: 123456
X-Source: defused

HTTP Method​

Defines which HTTP method is used when sending the webhook.

Supported methods:

  • POST (recommended, default)
  • GET
  • PUT
  • PATCH
  • DELETE

For non-GET requests, the webhook payload is sent as JSON in the request body. For GET requests, payload fields are sent as query parameters.


Disable SSL Verification​

Optional. When enabled, Defused will not validate the TLS certificate of the destination endpoint.

This is useful for:

  • Internal testing
  • Self-signed certificates
  • Development environments

Warning: Disabling SSL verification is not recommended for production endpoints unless you fully trust the destination.


How Matching Works​

Webhooks are triggered only if their match rules are satisfied.

Matching is evaluated before any HTTP request is sent.

Match Structure​

Matches are defined as:

  • OR groups (any)
  • containing AND rules (all)

Example:

{
"any": [
{
"all": [
{ "field": "alert_severity", "op": "eq", "value": "major" },
{ "field": "alert_sensor_type", "op": "eq", "value": "Ivanti Connect Secure" }
]
}
]
}


Payload Fields and Testing​

The Payload fields section allows you to control what data is sent to the destination endpoint and how it is structured.

You can either:

  • Select individual fields to auto-generate a JSON template, or
  • Start from a minimal or verbose template and customize it manually

Selected fields are converted into a JSON payload using Defused placeholders.


Payload Field Selection​

Each checkbox represents a field that can be included in the webhook payload.

When selected, Defused automatically inserts the corresponding placeholder into the JSON template.

Common fields include:

  • Alert Type
  • Attacker IP
  • Decoy IP
  • Decoy Name
  • Datetime
  • Location
  • Raw Data

You can freely modify the JSON structure, rename keys, or nest fields, as long as Defused placeholders remain unchanged.


JSON Payload Editor​

The JSON editor shows the payload that will be sent when the webhook fires.

Placeholders use the format:

<<field>>

These placeholders are replaced at runtime with event data.

Important rules:

  • Placeholders must remain unchanged (including brackets)
  • The payload must be valid JSON after substitution
  • Raw Data is automatically escaped to remain JSON-safe

HTTP Representation​

The HTTP representation preview shows the exact HTTP request Defused will send when the webhook triggers.

This includes:

  • HTTP method
  • Headers
  • Request body
  • Authentication headers (if configured)

You can copy this request as a cURL command and replay it manually.


Testing Your Webhook​

Before relying on a webhook in production, you should verify that your endpoint receives and parses the payload correctly.

A simple and recommended way to test is to use a temporary webhook inspection service such as:

https://webhook.site

Steps:

  1. Create a temporary URL on webhook.site
  2. Paste the URL into the Webhook URL field
  3. Trigger a matching alert or intel event
  4. Inspect the received request and payload

This allows you to confirm:

  • The webhook fires as expected
  • Headers are set correctly
  • Authentication is applied
  • Payload fields arrive in the correct format

Testing with a webhook inspection service helps avoid integration issues when connecting Defused to production systems.

After Saving​

Once saved:

  • The webhook becomes active immediately
  • It is evaluated against incoming events in real time
  • Execution happens asynchronously and does not block alert processing

If a webhook does not meet its match conditions, it is silently skipped.