Wiz Defend Alert Passthrough Rule


Description

This rule enriches and contextualizes security alerts generated by Wiz.

Query · python

def rule(event):
    return event.get("severity") != "INFORMATIONAL"


def title(event):
    return f"[Wiz Alert]: " f"{event.get('tdrId')}"


def severity(event):
    sev = (event.get("severity", "") or "").upper()
    if sev == "INFORMATIONAL":
        return "INFO"
    if sev in ("INFO", "LOW", "MEDIUM", "HIGH", "CRITICAL"):
        return sev
    return "DEFAULT"


def dedup(event):
    # For lower-severity events, dedup based on specific source rule to reduce overall alert volume
    if event.get("severity") in ("INFO", "INFORMATIONAL", "LOW"):
        dedup_str = str(event.get("tdrId"))
        if dedup_str:
            return dedup_str
    # If the severity is higher, or for some reason we couldn't generate a dedup string based on
    #   the source rule, then use the alert severity + the resource ID itself.
    return event.get("threatId") + "_" + event.get("severity", "<SEVERITY_NOT_FOUND>")


def description(event):
    return event.get("description")


def alert_context(event):
    return {
        "machine_id": event.deep_get("primaryResource", "externalId", default="<ID_NOT_FOUND>"),
        "machine_type": event.deep_get("primaryResource", "type", default="<TYPE_NOT_FOUND>"),
        "native_type": event.deep_get("primaryResource", "nativeType", default="<TYPE_NOT_FOUND>"),
        "machine_name": event.deep_get("primaryResource", "name", default="<NAME_NOT_FOUND>"),
        "mitre_attack_techniques": event.get("mitreTechniques"),
    }


def get_issue_url(event):
    if issue_id := event.get("id"):
        return f"https://app.wiz.io/issues#~(issue~'{issue_id})"
    return None  # Return None if there's no issue ID


def reference(event):
    return get_issue_url(event) or "DEFAULT"

Analyst notes

Review the Wiz alert details to determine what malicious behavior was detected, and whether or not it was blocked.

Raw source Wiz Defend Alert Passthrough Rule · Panther Python
Esc
Published by panther-labs/panther-analysis ↗, licensed under Apache 2.0 ↗. Reproduced here unmodified.
AnalysisType: rule
RuleID: Wiz.Defend.Alert.Passthrough
Description: This rule enriches and contextualizes security alerts generated by Wiz.
DisplayName: Wiz Defend Alert Passthrough Rule
Runbook: Review the Wiz alert details to determine what malicious behavior was detected, and whether or not it was blocked.
Reference: https://www.wiz.io/product
Enabled: true
Filename: wiz_defend_passthrough.py
Severity: Medium
LogTypes:
  - Wiz.Detections
DedupPeriodMinutes: 720
Threshold: 1
Tests:
  - Name: High-Severity Alert
    ExpectedResult: true
    Log:
      {
        "p_any_ip_addresses": [
          "1.1.1.1"
        ],
        "p_any_actor_ids": [
          "d16d839c-e1ea-5a8f-ac34-01750288bb6f"
        ],
        "p_any_domain_names": [
          "app.wiz.io",
          "console.aws.amazon.com"
        ],
        "p_event_time": "2025-10-23 23:15:59.818948801",
        "p_log_type": "Wiz.Detections",
        "p_parse_time": "2025-10-23 23:24:46.965519396",
        "p_row_id": "0000000000fa6bce74e7bf1b819f4e4c",
        "p_schema_version": 0,
        "p_source_id": "26c0c4b6-781c-40fa-9bc4-5bd16f8e5dda",
        "p_source_label": "your-wiz-webhook",
        "p_udm": {},
        "actors": [
          {
            "externalId": "1.1.1.1",
            "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
            "name": "1.1.1.1",
            "type": "NETWORK_ADDRESS"
          }
        ],
        "cloudAccounts": [
          {
            "cloudPlatform": "AWS",
            "externalId": 123456789,
            "id": "12345-6de7-581a-9263-24f9d2172a05",
            "name": "Your-Account"
          }
        ],
        "createdAt": "2025-10-23 23:15:59.818948801",
        "description": "An EC2 instance has an unprotected port 1433 that is being probed by a known malicious host. This rule's final severity is assigned dynamically according to the severity assigned by GuardDuty.",
        "id": "3a65eac1-b8ff-5eb8-8727-5e6cde9c39f3",
        "mitreTactics": [
          "TA0043",
          "TA0007",
          "TA0007"
        ],
        "mitreTechniques": [
          "TA0043-T1595",
          "TA0007-T1046",
          "TA0007-T1046"
        ],
        "primaryActor": {
          "externalId": "1.1.1.1",
          "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
          "name": "1.1.1.1",
          "type": "NETWORK_ADDRESS"
        },
        "primaryResource": {
          "cloudAccount": {
            "cloudPlatform": "AWS",
            "externalId": 123456789,
            "id": "12345678-1ab2-111a-1234-1234f9d123a01"
          },
          "externalId": "i-ABCDEF1234567890A",
          "id": "12ab345c-678d-9efg-123h-45678a1a1111",
          "name": "Your-EC2-Instance",
          "nativeType": "EC2 Instance",
          "region": "eu-central-1",
          "type": "VIRTUAL_MACHINE"
        },
        "resources": [
          {
            "cloudAccount": {
              "cloudPlatform": "AWS",
              "externalId": 123456789,
              "id": "12345678-1ab2-111a-1234-1234f9d123a01",
              "name": "Your-Account"
            },
            "externalId": "i-ABCDEF1234567890A",
            "id": "12ab345c-678d-9efg-123h-45678a1a1111",
            "name": "Your-EC2-Instance",
            "nativeType": "EC2 Instance",
            "region": "eu-central-1",
            "status": "Active",
            "type": "VIRTUAL_MACHINE"
          }
        ],
        "severity": "HIGH",
        "tdrId": "cer-awsguardduty-recon-ec2-portprobeunprotectedport",
        "tdrSource": "GUARD_DUTY",
        "threatId": "9a3032dc-4697-5d6d-b0f0-905668f63781",
        "threatURL": "https://app.wiz.io/issues#~(issue~'9a3032dc-4697-5d6d-b0f0-905668f63781)",
        "timeframe": {
          "end": "2025-10-23 22:53:23.795000000",
          "start": "2025-10-23 22:53:23.795000000"
        },
        "title": "Recon:EC2/PortProbeUnprotectedPort",
        "trigger": {
          "ruleId": "73ef6bc5-556b-4317-b0bf-6f5f0aa9605b",
          "ruleName": "wiz-defend-detections",
          "source": "DETECTIONS",
          "type": "Created"
        },
        "triggeringEvents": [
          {
            "actor": {
              "externalId": "1.1.1.1",
              "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
              "name": "1.1.1.1",
              "type": "NETWORK_ADDRESS"
            },
            "actorIP": "1.1.1.1",
            "actorIPMeta": {
              "autonomousSystemNumber": 12555,
              "autonomousSystemOrganization": "Data-center IMAQLIQ Ltd.",
              "country": "Russia",
              "customIPRanges": [],
              "isForeign": true,
              "relatedAttackGroupNames": [],
              "reputation": "Suspicious",
              "reputationSource": "Recorded Future"
            },
            "category": "Detection",
            "cloudPlatform": "AWS",
            "cloudProviderUrl": "https://console.aws.amazon.com/cloudtrail/home?region=eu-central-1#/events/arn:aws:guardduty:eu-central-1:111111111111:detector/12345678910/finding/12345678910",
            "description": "An EC2 instance has an unprotected port which is being probed by a known malicious host.",
            "eventTime": "2025-10-23 22:53:23.795000000",
            "externalId": "arn:aws:guardduty:eu-central-1:111111111111:detector/12345678910/finding/12345678910",
            "id": "0068fab1-e301-8ec1-a4e2-9e708323f373",
            "name": "GuardDuty: Recon:EC2/PortProbeUnprotectedPort",
            "origin": "AWS_GUARD_DUTY",
            "resources": [
              {
                "externalId": "i-ABCDEF1234567890A",
                "id": "12ab345c-678d-9efg-123h-45678a1a1111",
                "name": "Your-Machine",
                "nativeType": "virtualMachine",
                "region": "eu-central-1",
                "type": "VIRTUAL_MACHINE"
              }
            ],
            "source": "guardduty",
            "status": "Success"
          }
        ],
        "triggeringEventsCount": 1
      }
  - Name: Low-Severity Alert
    ExpectedResult: true
    Log:
      {
        "p_any_ip_addresses": [
          "1.1.1.1"
        ],
        "p_any_actor_ids": [
          "d16d839c-e1ea-5a8f-ac34-01750288bb6f"
        ],
        "p_any_domain_names": [
          "app.wiz.io",
          "console.aws.amazon.com"
        ],
        "p_event_time": "2025-10-23 23:15:59.818948801",
        "p_log_type": "Wiz.Detections",
        "p_parse_time": "2025-10-23 23:24:46.965519396",
        "p_row_id": "0000000000fa6bce74e7bf1b819f4e4c",
        "p_schema_version": 0,
        "p_source_id": "26c0c4b6-781c-40fa-9bc4-5bd16f8e5dda",
        "p_source_label": "your-wiz-webhook",
        "p_udm": {},
        "actors": [
          {
            "externalId": "1.1.1.1",
            "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
            "name": "1.1.1.1",
            "type": "NETWORK_ADDRESS"
          }
        ],
        "cloudAccounts": [
          {
            "cloudPlatform": "AWS",
            "externalId": 123456789,
            "id": "12345-6de7-581a-9263-24f9d2172a05",
            "name": "Your-Account"
          }
        ],
        "createdAt": "2025-10-23 23:15:59.818948801",
        "description": "An EC2 instance has an unprotected port 1433 that is being probed by a known malicious host. This rule's final severity is assigned dynamically according to the severity assigned by GuardDuty.",
        "id": "3a65eac1-b8ff-5eb8-8727-5e6cde9c39f3",
        "mitreTactics": [
          "TA0043",
          "TA0007",
          "TA0007"
        ],
        "mitreTechniques": [
          "TA0043-T1595",
          "TA0007-T1046",
          "TA0007-T1046"
        ],
        "primaryActor": {
          "externalId": "1.1.1.1",
          "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
          "name": "1.1.1.1",
          "type": "NETWORK_ADDRESS"
        },
        "primaryResource": {
          "cloudAccount": {
            "cloudPlatform": "AWS",
            "externalId": 123456789,
            "id": "12345678-1ab2-111a-1234-1234f9d123a01"
          },
          "externalId": "i-ABCDEF1234567890A",
          "id": "12ab345c-678d-9efg-123h-45678a1a1111",
          "name": "Your-EC2-Instance",
          "nativeType": "EC2 Instance",
          "region": "eu-central-1",
          "type": "VIRTUAL_MACHINE"
        },
        "resources": [
          {
            "cloudAccount": {
              "cloudPlatform": "AWS",
              "externalId": 123456789,
              "id": "12345678-1ab2-111a-1234-1234f9d123a01",
              "name": "Your-Account"
            },
            "externalId": "i-ABCDEF1234567890A",
            "id": "12ab345c-678d-9efg-123h-45678a1a1111",
            "name": "Your-EC2-Instance",
            "nativeType": "EC2 Instance",
            "region": "eu-central-1",
            "status": "Active",
            "type": "VIRTUAL_MACHINE"
          }
        ],
        "severity": "LOW",
        "tdrId": "cer-awsguardduty-recon-ec2-portprobeunprotectedport",
        "tdrSource": "GUARD_DUTY",
        "threatId": "9a3032dc-4697-5d6d-b0f0-905668f63781",
        "threatURL": "https://app.wiz.io/issues#~(issue~'9a3032dc-4697-5d6d-b0f0-905668f63781)",
        "timeframe": {
          "end": "2025-10-23 22:53:23.795000000",
          "start": "2025-10-23 22:53:23.795000000"
        },
        "title": "Recon:EC2/PortProbeUnprotectedPort",
        "trigger": {
          "ruleId": "73ef6bc5-556b-4317-b0bf-6f5f0aa9605b",
          "ruleName": "wiz-defend-detections",
          "source": "DETECTIONS",
          "type": "Created"
        },
        "triggeringEvents": [
          {
            "actor": {
              "externalId": "1.1.1.1",
              "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
              "name": "1.1.1.1",
              "type": "NETWORK_ADDRESS"
            },
            "actorIP": "1.1.1.1",
            "actorIPMeta": {
              "autonomousSystemNumber": 12555,
              "autonomousSystemOrganization": "Data-center IMAQLIQ Ltd.",
              "country": "Russia",
              "customIPRanges": [],
              "isForeign": true,
              "relatedAttackGroupNames": [],
              "reputation": "Suspicious",
              "reputationSource": "Recorded Future"
            },
            "category": "Detection",
            "cloudPlatform": "AWS",
            "cloudProviderUrl": "https://console.aws.amazon.com/cloudtrail/home?region=eu-central-1#/events/arn:aws:guardduty:eu-central-1:111111111111:detector/12345678910/finding/12345678910",
            "description": "An EC2 instance has an unprotected port which is being probed by a known malicious host.",
            "eventTime": "2025-10-23 22:53:23.795000000",
            "externalId": "arn:aws:guardduty:eu-central-1:111111111111:detector/12345678910/finding/12345678910",
            "id": "0068fab1-e301-8ec1-a4e2-9e708323f373",
            "name": "GuardDuty: Recon:EC2/PortProbeUnprotectedPort",
            "origin": "AWS_GUARD_DUTY",
            "resources": [
              {
                "externalId": "i-ABCDEF1234567890A",
                "id": "12ab345c-678d-9efg-123h-45678a1a1111",
                "name": "Your-Machine",
                "nativeType": "virtualMachine",
                "region": "eu-central-1",
                "type": "VIRTUAL_MACHINE"
              }
            ],
            "source": "guardduty",
            "status": "Success"
          }
        ],
        "triggeringEventsCount": 1
      }
  - Name: Informational Alert
    ExpectedResult: false
    Log:
      {
        "p_any_ip_addresses": [
          "1.1.1.1"
        ],
        "p_any_actor_ids": [
          "d16d839c-e1ea-5a8f-ac34-01750288bb6f"
        ],
        "p_any_domain_names": [
          "app.wiz.io",
          "console.aws.amazon.com"
        ],
        "p_event_time": "2025-10-23 23:15:59.818948801",
        "p_log_type": "Wiz.Detections",
        "p_parse_time": "2025-10-23 23:24:46.965519396",
        "p_row_id": "1a6881323bddafbad7bda7da299bd206",
        "p_schema_version": 0,
        "p_source_id": "26c0c4b6-781c-40fa-9bc4-5bd16f8e5dda",
        "p_source_label": "your-wiz-webhook",
        "p_udm": {},
        "actors": [
          {
            "externalId": "1.1.1.1",
            "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
            "name": "1.1.1.1",
            "type": "NETWORK_ADDRESS"
          }
        ],
        "cloudAccounts": [
          {
            "cloudPlatform": "AWS",
            "externalId": 123456789,
            "id": "12345-6de7-581a-9263-24f9d2172a05",
            "name": "Your-Account"
          }
        ],
        "createdAt": "2025-10-23 23:15:59.818948801",
        "description": "An EC2 instance has an unprotected port 1433 that is being probed by a known malicious host. This rule's final severity is assigned dynamically according to the severity assigned by GuardDuty.",
        "id": "3a65eac1-b8ff-5eb8-8727-5e6cde9c39f3",
        "mitreTactics": [
          "TA0043",
          "TA0007",
          "TA0007"
        ],
        "mitreTechniques": [
          "TA0043-T1595",
          "TA0007-T1046",
          "TA0007-T1046"
        ],
        "primaryActor": {
          "externalId": "1.1.1.1",
          "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
          "name": "1.1.1.1",
          "type": "NETWORK_ADDRESS"
        },
        "primaryResource": {
          "cloudAccount": {
            "cloudPlatform": "AWS",
            "externalId": 123456789,
            "id": "12345678-1ab2-111a-1234-1234f9d123a01"
          },
          "externalId": "i-0cfdf6629c26e24da",
          "id": "12ab345c-678d-9efg-123h-45678a1a1111",
          "name": "Your-EC2-Instance",
          "nativeType": "EC2 Instance",
          "region": "eu-central-1",
          "type": "VIRTUAL_MACHINE"
        },
        "resources": [
          {
            "cloudAccount": {
              "cloudPlatform": "AWS",
              "externalId": 123456789,
              "id": "12345678-1ab2-111a-1234-1234f9d123a01",
              "name": "Your-Account"
            },
            "externalId": "i-0cfdf6629c26e24da",
            "id": "12ab345c-678d-9efg-123h-45678a1a1111",
            "name": "Your-EC2-Instance",
            "nativeType": "EC2 Instance",
            "region": "eu-central-1",
            "status": "Active",
            "type": "VIRTUAL_MACHINE"
          }
        ],
        "severity": "INFORMATIONAL",
        "tdrId": "cer-awsguardduty-recon-ec2-portprobeunprotectedport",
        "tdrSource": "GUARD_DUTY",
        "threatId": "9a3032dc-4697-5d6d-b0f0-905668f63781",
        "threatURL": "https://app.wiz.io/issues#~(issue~'9a3032dc-4697-5d6d-b0f0-905668f63781)",
        "timeframe": {
          "end": "2025-10-23 22:53:23.795000000",
          "start": "2025-10-23 22:53:23.795000000"
        },
        "title": "Recon:EC2/PortProbeUnprotectedPort",
        "trigger": {
          "ruleId": "73ef6bc5-556b-4317-b0bf-6f5f0aa9605b",
          "ruleName": "wiz-defend-detections",
          "source": "DETECTIONS",
          "type": "Created"
        },
        "triggeringEvents": [
          {
            "actor": {
              "externalId": "1.1.1.1",
              "id": "d16d839c-e1ea-5a8f-ac34-01750288bb6f",
              "name": "1.1.1.1",
              "type": "NETWORK_ADDRESS"
            },
            "actorIP": "1.1.1.1",
            "actorIPMeta": {
              "autonomousSystemNumber": 12555,
              "autonomousSystemOrganization": "Data-center IMAQLIQ Ltd.",
              "country": "Russia",
              "customIPRanges": [],
              "isForeign": true,
              "relatedAttackGroupNames": [],
              "reputation": "Suspicious",
              "reputationSource": "Recorded Future"
            },
            "category": "Detection",
            "cloudPlatform": "AWS",
            "cloudProviderUrl": "https://console.aws.amazon.com/cloudtrail/home?region=eu-central-1#/events/arn:aws:guardduty:eu-central-1:984186218765:detector/12345678910/finding/12345678910",
            "description": "An EC2 instance has an unprotected port which is being probed by a known malicious host.",
            "eventTime": "2025-10-23 22:53:23.795000000",
            "externalId": "arn:aws:guardduty:eu-central-1:984186218765:detector/12345678910/finding/12345678910",
            "id": "0068fab1-e301-8ec1-a4e2-9e708323f373",
            "name": "GuardDuty: Recon:EC2/PortProbeUnprotectedPort",
            "origin": "AWS_GUARD_DUTY",
            "resources": [
              {
                "externalId": "i-0cfdf6629c26e24da",
                "id": "12ab345c-678d-9efg-123h-45678a1a1111",
                "name": "Your-Machine",
                "nativeType": "virtualMachine",
                "region": "eu-central-1",
                "type": "VIRTUAL_MACHINE"
              }
            ],
            "source": "guardduty",
            "status": "Success"
          }
        ],
        "triggeringEventsCount": 1
      }

# ------ paired body: wiz_defend_passthrough.py ------

def rule(event):
    return event.get("severity") != "INFORMATIONAL"


def title(event):
    return f"[Wiz Alert]: " f"{event.get('tdrId')}"


def severity(event):
    sev = (event.get("severity", "") or "").upper()
    if sev == "INFORMATIONAL":
        return "INFO"
    if sev in ("INFO", "LOW", "MEDIUM", "HIGH", "CRITICAL"):
        return sev
    return "DEFAULT"


def dedup(event):
    # For lower-severity events, dedup based on specific source rule to reduce overall alert volume
    if event.get("severity") in ("INFO", "INFORMATIONAL", "LOW"):
        dedup_str = str(event.get("tdrId"))
        if dedup_str:
            return dedup_str
    # If the severity is higher, or for some reason we couldn't generate a dedup string based on
    #   the source rule, then use the alert severity + the resource ID itself.
    return event.get("threatId") + "_" + event.get("severity", "<SEVERITY_NOT_FOUND>")


def description(event):
    return event.get("description")


def alert_context(event):
    return {
        "machine_id": event.deep_get("primaryResource", "externalId", default="<ID_NOT_FOUND>"),
        "machine_type": event.deep_get("primaryResource", "type", default="<TYPE_NOT_FOUND>"),
        "native_type": event.deep_get("primaryResource", "nativeType", default="<TYPE_NOT_FOUND>"),
        "machine_name": event.deep_get("primaryResource", "name", default="<NAME_NOT_FOUND>"),
        "mitre_attack_techniques": event.get("mitreTechniques"),
    }


def get_issue_url(event):
    if issue_id := event.get("id"):
        return f"https://app.wiz.io/issues#~(issue~'{issue_id})"
    return None  # Return None if there's no issue ID


def reference(event):
    return get_issue_url(event) or "DEFAULT"

Detection rules belong to the projects that publish them and remain under their own licenses. This site indexes and links to them; it claims no rights in them.