# CrowdStrike Integration

### Overview

This document describes the integration between CrowdStrike Falcon and our alert management platform. CrowdStrike Falcon is an endpoint detection and response (EDR) platform that monitors devices for threats, malware, and suspicious behavior in real time. When a detection or incident is triggered, Falcon can deliver a structured webhook payload to external systems for centralized alerting and on-call management.

This integration uses CrowdStrike's **Falcon Fusion SOAR** workflow engine to send detection events via webhook to the platform endpoint.

### Integration Flow

1. CrowdStrike Falcon detects a threat or suspicious activity on a monitored endpoint.
2. A Falcon Fusion SOAR workflow is triggered, evaluating the detection against configured conditions.
3. The workflow executes a **Call Webhook** action using the configured webhook from the CrowdStrike Store, sending the detection payload to the platform.
4. When a detection is closed or resolved in CrowdStrike, the workflow sends an updated payload with `status: closed` to clear the alert on the platform.

### Webhook Payload Schema

The payload sent to the platform is constructed using CrowdStrike Fusion template variables. The following schema is the recommended structure for this integration.

| Field        | Type   | Required | Description                                                               |
| ------------ | ------ | -------- | ------------------------------------------------------------------------- |
| incident\_id | string | Yes      | Unique detection ID used to correlate trigger and resolution events       |
| title        | string | Yes      | Human-readable detection title, typically includes detection name         |
| status       | string | Yes      | Current detection status: `new`, `in_progress`, `true_positive`, `closed` |
| severity     | string | Yes      | Severity label: `Critical`, `High`, `Medium`, `Low`, `Informational`      |
| description  | string | No       | Detailed description of the detected behavior or threat                   |
| host         | string | No       | Hostname of the affected endpoint                                         |
| link         | string | No       | Direct URL to the detection in the Falcon console                         |
| timestamp    | string | No       | ISO 8601 timestamp of when the detection was created                      |

### Severity / Status Mapping

#### Status → Alert Type

| CrowdStrike Status | Platform Status | Description                               |
| ------------------ | --------------- | ----------------------------------------- |
| new                | ALERT           | Detection is newly created and unreviewed |
| in\_progress       | ALERT           | Detection is being actively investigated  |
| true\_positive     | ALERT           | Detection confirmed as a real threat      |
| closed             | RESOLVE         | Detection has been closed or resolved     |

#### Severity → Priority

| CrowdStrike Severity | Platform Priority |
| -------------------- | ----------------- |
| Critical             | CRITICAL          |
| High                 | HIGH              |
| Medium               | MEDIUM            |
| Low                  | LOW               |
| Informational        | LOW               |

### Alert Payload Examples

#### Raised (New Detection)

This payload is sent when CrowdStrike Falcon detects a new threat on an endpoint.

```json
{
  "description": "A suspicious PowerShell command was executed with encoded parameters, commonly used to evade detection.",
  "detection_id": "ldt:abc123def456:789012345",
  "event_id": "evt-abc123def456789012345",
  "link": "https://falcon.crowdstrike.com/activity/detections/detail/ldt:abc123def456:789012345",
  "severity": "High",
  "severity_score": "70",
  "source": "WORKSTATION-042",
  "status": "new",
  "summary": "Suspicious PowerShell Execution",
  "timestamp": "2026-02-26T10:15:30.000Z"
}
```

#### Cleared (Detection Closed)

This payload is sent when the detection is reviewed and closed in the Falcon console.

```json
{
  "description": "Detection reviewed and closed by analyst. Confirmed false positive.",
  "detection_id": "ldt:abc123def456:789012345",
  "event_id": "evt-abc123def456789012345",
  "link": "https://falcon.crowdstrike.com/activity/detections/detail/ldt:abc123def456:789012345",
  "severity": "High",
  "severity_score": "70",
  "source": "WORKSTATION-042",
  "status": "closed",
  "summary": "Suspicious PowerShell Execution",
  "timestamp": "2026-02-26T10:45:00.000Z"
}
```

### Installation & Configuration

#### Step 1: Create an Alert Source in the Platform

1. Log in to the alert management platform.
2. Navigate to **Integrations** → **Add Integration**.
3. Select **CrowdStrike Falcon** as the provider.
4. Name the integration (e.g., `CrowdStrike Production`).
5. Save and copy the generated **Webhook URL** and **Token**.

#### Step 2: Open Falcon Fusion SOAR

1. Log in to the **CrowdStrike Falcon Console**.<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FcL9UvCKNCqLXPtmdKlil%2FEkran%20Resmi%202026-02-27%2000.56.44.png?alt=media&#x26;token=1ed43e48-56e6-48c2-a16f-9a000cb34eef" alt=""><figcaption></figcaption></figure>
2. Click the **CrowdStrike** logo on the top left and choose **Workflows**.<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FfCfyw2WOtLhkVuT6Lerg%2Fimage.png?alt=media&#x26;token=96e368fa-4f8c-4417-bbfc-1f05e6b064f7" alt=""><figcaption></figcaption></figure>
3. Click **Create a Workflow** on the top right.<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2F7gEZWFdHM6zsnGmxqjGz%2Fimage.png?alt=media&#x26;token=bd1e7226-f9b5-4873-be08-65cfd25ec526" alt=""><figcaption></figcaption></figure>

#### Step 3: Configure the Trigger

1. On the workflow canvas, add a trigger and choose **New Detection**.<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FJ7mV8KMFTDLZ3qJl8coZ%2Fimage.png?alt=media&#x26;token=2fafc910-8422-43ef-afb7-4398bba3e8a7" alt=""><figcaption></figcaption></figure>
2. Optionally add a **Condition** to filter by severity (e.g., severity greater than Medium).<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FWQZ7gcLw3IZyzPr5UzbW%2Fimage.png?alt=media&#x26;token=d063ffc5-eea2-48ae-be0d-efe11afc84c3" alt=""><figcaption></figcaption></figure>

#### Step 4: Configure the Webhook from Store

1. Click **Add Action** → choose Action type **Notification** → select **Call Webhook**.<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FPnP1pP7l7P8HhlNcj5zX%2Fimage.png?alt=media&#x26;token=6ce9972c-c6e2-4568-87f7-103e17948b78" alt=""><figcaption></figcaption></figure>
2. If the webhook is not yet configured, click the **Store** link and click **Configure** on the Webhook item.<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FzMX6S4NMW1npzOUpo9q4%2Fimage.png?alt=media&#x26;token=a8f6368d-5fa9-4e35-a375-fa9886b9f8f6" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FiMZszgkFUQPaA29iFCS9%2Fimage.png?alt=media&#x26;token=7ceff276-d0f5-4449-82fa-67658c543706" alt=""><figcaption></figcaption></figure>
3. The **Configure CrowdStrike Webhook** modal will open.<br>

Fill in the fields as follows:

* **Name**: A descriptive name for this connection (e.g., `platform-oncall`)
* **Webhook URL**: Your platform webhook URL (e.g., `https://<your-platform>/`)
* **HMAC Secret Key**: Leave empty
* **Signature Header Name**: Leave as default (x-itoc-360)
* **Custom headers**: Add your platform token on line 1:<br>

  <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2F97eha2jvjujP4rSrwPl7%2Fimage.png?alt=media&#x26;token=60cfc359-82dd-44ef-b2cb-81e25530a53f" alt=""><figcaption></figcaption></figure>

4. Click **Save configuration**.

#### Step 5: Set the JSON Body

1. Back in the workflow canvas, select the webhook you just configured.
2. In the data field, paste the following JSON body:

```json
{
  "description": "{{Detection.Description}}",
  "detection_id": "{{Detection.ID}}",
  "event_id": "{{ID}}",
  "link": "{{SourceEventURL}}",
  "severity": "{{Detection.SeverityDisplayName}}",
  "severity_score": "{{Detection.Severity}}",
  "source": "{{Source}}",
  "status": "{{Detection.Status}}",
  "summary": "{{Detection.Name}}",
  "timestamp": "{{ObservedTime}}"
}
```

<figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FyzOOpheEEhfHHSWYTogW%2Fimage.png?alt=media&#x26;token=90a698b0-0483-462f-b17f-412196fbc1f2" alt=""><figcaption></figcaption></figure>

#### Step 6: Save and Activate the Workflow

1. Click **Save** to save the workflow.
2. Toggle the workflow to **Active**.
3. For recovery notifications, create a second workflow triggered on detection status change to `closed`, using the same webhook and JSON body.<br>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2FaB3HOws0Y3m1KsLi0Hyb%2FEkran%20Resmi%202026-02-27%2000.45.04.png?alt=media&#x26;token=3c42800c-50d5-4578-91b9-8102e2584250" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4108595529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FimJRSa33y5Ej6rwXrBeA%2Fuploads%2F9fl961swIWKNBlxQzJgl%2FEkran%20Resmi%202026-02-27%2001.24.44.png?alt=media&#x26;token=8d2063fe-cdef-4695-be9e-83ccc7a34f2c" alt=""><figcaption></figcaption></figure>

## Testing

#### Method 1: Trigger a Test Detection

1. In the Falcon console, navigate to **Activity** → **Detections**.
2. Use a test or simulated detection event if available in your environment.
3. Verify the payload is received in the platform's event log.

#### Method 2: Replay a Workflow

1. Navigate to **Fusion SOAR** → **Workflows**.
2. Open the configured workflow.
3. Click **Run** or **Test** to manually execute the workflow with a sample event.
4. Check the platform's `events` and `alerts` tables for the incoming record.

#### Method 3: Validate with Webhook.site

Before connecting to the platform, set the Webhook URL to `https://webhook.site` temporarily to inspect the raw payload and confirm all template variables are resolving correctly.

### Troubleshooting

| Issue                      | Possible Cause                                   | Resolution                                                                                         |
| -------------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| No alerts received         | Workflow not active                              | Ensure the workflow is toggled to Active in Falcon Fusion                                          |
| No alerts received         | Incorrect webhook URL or token                   | Verify the Webhook URL and `x-itoc360-token` in Custom headers of the webhook configuration        |
| Template variables empty   | Wrong variable path in JSON body                 | Test the workflow and inspect the raw payload in webhook.site to verify variable resolution        |
| Recovery alerts missing    | No separate workflow for closed detections       | Create a second workflow triggered on detection status change to `closed`                          |
| Invalid payload error      | Missing required fields in the JSON body         | Ensure `incident_id`, `title`, `status`, and `severity` are all present and non-empty              |
| Duplicate alerts           | Workflow triggering on every detection update    | Add a condition to trigger only on `status = new` for the alert workflow                           |
| Severity not mapping       | `severity_display_name` returns unexpected value | Check the Falcon console for the exact severity string and update the platform mapping accordingly |
| Webhook config not visible | Webhook not yet added from Store                 | Navigate to Store → Configure the Webhook item before selecting it in the workflow action          |
