MEDIUM CEF (Common Event Format) Firewall-Confirmed Threat (Blocked Exploit or Spyware) LTR-0024 ✓ validated

Detect Blocked Exploits, Spyware and Malware in Palo Alto PAN-OS CEF Logs

Published · Updated

MITRE ATT&CK: T1190T1071

Sigma Rule

title: Palo Alto PAN-OS Threat Blocked (Exploit, Spyware or Malware)
id: 3a7c9e02-5d14-4f6b-8e2a-0b9f4d1c6a73
status: experimental
description: >
  Detects a Palo Alto PAN-OS threat log in CEF where the firewall matched a
  vulnerability exploit, spyware (command-and-control) or malware signature and
  stopped the traffic. In PAN-OS CEF the header's Device Event Class ID carries
  the threat subtype and its Name is THREAT; the act key carries the action.
  Field names below follow Microsoft Sentinel's CommonSecurityLog table.
references:
  - https://docs.paloaltonetworks.com/resources/cef
  - https://attack.mitre.org/techniques/T1190/
  - https://attack.mitre.org/techniques/T1071/
author: LogTriage
date: 2026/10/19
modified: 2026/10/20
logsource:
  product: paloalto
  service: threat
detection:
  threat_match:
    DeviceVendor: 'Palo Alto Networks'
    Activity: 'THREAT'
    DeviceEventClassID:
      - 'vulnerability'
      - 'spyware'
      - 'virus'
      - 'wildfire-virus'
  blocked:
    DeviceAction:
      - 'drop'
      - 'drop-all-packets'
      - 'reset-both'
      - 'reset-client'
      - 'reset-server'
      - 'block-ip'
  condition: threat_match and blocked
falsepositives:
  - Sanctioned scanner or penetration test from a known source address
  - A signature misfiring on legitimate traffic that resembles attack syntax
level: medium
tags:
  - attack.initial_access
  - attack.t1190
  - attack.command_and_control
  - attack.t1071

What this rule detects

Palo Alto firewalls write a threat log whenever a security profile matches traffic against a signature. In CEF, the header says what kind of threat it was: the Device Event Class ID holds the subtype (vulnerability, spyware, virus, wildfire-virus, …) and the Name is THREAT. The act key says what the firewall did with the traffic.

This rule fires when the firewall matched an exploit, spyware or malware signature and stopped the traffic: drop, drop-all-packets, one of the reset actions, or block-ip.

Detection logic

Two selections, both required:

  1. threat_match: a Palo Alto Networks event named THREAT whose subtype is vulnerability, spyware, virus or wildfire-virus. This captures every exploit, C2 and malware signature without listing signature names, so the rule keeps working when Palo Alto ships new signatures.
  2. blocked: the action stopped the traffic. An alert action only logged it, and is deliberately not included.

The condition is threat_match and blocked. Traffic logs (Name TRAFFIC) never match.

Validated against a real sample

Validated against cef_firewall_attack.log (shipped with LogTriage), ten PAN-OS threat events in Palo Alto’s CEF layout. The rule fires on eight of them:

  • Three SQL injection attempts (subtype vulnerability, action reset-both) from 185.220.101.45, including a UNION SELECT and a time-based SLEEP payload
  • Four brute-force login attempts (subtype vulnerability, action block-ip) from 103.21.244.0 against /api/v1/auth/login
  • One command-and-control match (subtype spyware, action reset-both) between 185.220.101.45 and the internal host 10.0.1.22 on port 4444

It does not fire on the zone-protection port scan (subtype scan) or the data-filtering event (subtype data); the FAQ explains why. It stays silent on cef_firewall_normal.log, which holds only TRAFFIC logs with the action allow: web, mail, DNS, internal API and monitoring traffic.

False positives

Genuine false positives are uncommon, because a match requires the firewall’s own signature engine to recognize attack traffic. The recurring case is sanctioned security testing: a vulnerability scanner or penetration test from a known source. Correlate matches with documented testing windows. Otherwise, treat a spyware match from an internal host as a real infection until proven otherwise.

Frequently Asked Questions

Where do these fields come from in raw CEF?
Palo Alto's CEF configuration guide defines the threat log header as `CEF:0|Palo Alto Networks|PAN-OS|<version>|<subtype>|<type>|<severity>|`. So the Device Event Class ID is the threat subtype (vulnerability, spyware, virus, wildfire-virus, scan, data and others) and the Name is `THREAT`. In the extension, `act` is the action the firewall took and `cat` is the threat name. The rule uses Microsoft Sentinel's CommonSecurityLog column names for these (DeviceEventClassID, Activity, DeviceAction); map them to your SIEM's names.
Why not filter on the CEF severity number?
Because it is vendor-defined, and Palo Alto's guide only fixes it for some log types (always 1 for traffic, config, user-ID, authentication and HIP logs). Keying on what kind of threat the firewall matched and what it did keeps the rule portable across PAN-OS versions and SIEMs. If you need fewer alerts, narrow by the threat severity field your SIEM extracts, not by the raw header number.
If the firewall already blocked it, why alert at all, and why only medium?
Most hits are exploit attempts sprayed at a public service and stopped, which is why the rule is medium rather than high. Two cases deserve escalation. Spyware hits from an internal source mean an internal host is already talking to command-and-control infrastructure, so treat the host as infected. And a source that keeps trying after being blocked, or trips several different signatures, is a determined attacker rather than a passing scanner.
Why are port scans and data-filtering events left out?
Both are PAN-OS threat subtypes, but they need different handling. Zone-protection scan events (subtype `scan`) arrive in large volumes from the whole internet and are better counted than alerted on. Data-filtering events (subtype `data`) are data-loss prevention hits with their own response process. Each deserves its own rule.

Related Resources

See this detection run on a real report

Try the live demo with a pre-loaded malicious log set — no signup required — or upload your own log file and get a full AI-reviewed threat report in minutes.