Threat logs let you audit, verify, and analyze the threats detected in your network.
When Cloud Next Generation Firewall detects a threat on the traffic being
monitored for Layer 7 inspection, it generates a log entry
in the originating project with the details of the threat. To view and examine
the threat logs, in the Logs Explorer,
search for the log networksecurity.googleapis.com/firewall_threat
.
You can also view these threat logs on the Threats page.
This page explains the format and structure of the threat logs that are generated when a threat is detected.
Threat log format
Cloud NGFW creates a log record entry in Cloud Logging for each threat detected on the monitored traffic to or from a virtual machine (VM) instance in a specific zone. Log records are included in the JSON payload field of a LogEntry.
Some log fields are in a multiple-field format, with more than one piece of data
in a given field. For example, the connection
field is of the Connection
format, which contains the server IP address and port, the client IP address
and port, and the protocol number in a single field.
The following table describes the format of the threat log fields.
Field | Type | Description |
---|---|---|
connection
|
Connection
|
A 5-tuple that describes the connection parameters associated with the traffic where the threat is detected. |
action
|
string
|
The action performed on the packet where the threat is detected. This action can either be the default action or the override action specified in the security profile. |
threatDetails
|
ThreatDetails
|
The details of the threat detected. |
securityProfileGroupDetails
|
SecurityProfileGroupDetails
|
The details of the security profile group applied to the intercepted traffic. |
interceptVpc
|
VpcDetails
|
The details of the Virtual Private Cloud (VPC) network associated with the VM instance where the threat is detected. |
interceptInstance
|
InterceptInstance
|
The details of the VM instance where the threat is detected. |
Connection
field format
The following table describes the format of the Connection
field.
Field | Type | Description |
---|---|---|
clientIp
|
string
|
The client IP address. If the client is a Compute Engine VM, clientIp is either the primary internal IP address or an address in an alias IP range of the VM's network interface. The external IP address is not shown. The logs show the IP address of the VM instance as observed on the packet header, similar to the TCP dump on the VM instance.
|
clientPort
|
integer
|
The client port number. |
serverIp
|
string
|
The server IP address. If the server is a Compute Engine VM, serverIp is either the primary internal IP address or an address in an alias IP range of the VM's network interface. The external IP address is not shown even if it is used in making the connection.
|
serverPort
|
integer
|
The server port number. |
protocol
|
string
|
The IP protocol of the connection. |
ThreatDetails
field format
The following table describes the format of the ThreatDetails
field.
Field | Type | Description |
---|---|---|
id
|
string
|
The unique Palo Alto Networks threat identifier. |
threat
|
string
|
The name of the threat detected. |
description
|
string
|
A detailed description of the threat detected. |
direction
|
string
|
The direction of the traffic. For example, client_to_server or server_to_client .
|
severity
|
string
|
The severity associated with the threat detected. For more information, see Threat severity levels. |
detectionTime
|
string
|
The time when the threat is detected. |
category
|
string
|
The subtype of the threat detected. For example, CODE_EXECUTION .
|
uriOrFilename
|
string
|
The URI or filename of the relevant threat (if applicable). |
type
|
string
|
The type of the threat detected. For example, SPYWARE .
|
repeatCount
|
integer
|
The number of sessions with the same client IP address, server IP address, and threat type seen within five seconds. |
cves
|
string
|
A list of Common Vulnerabilities and Exposure (CVEs) associated with the threat. For example, CVE-2021-44228-Apache Log4j remote code execution vulnerability .
|
SecurityProfileGroupDetails
field format
The following table describes the format of the SecurityProfileGroupDetails
field.
Field | Type | Description |
---|---|---|
securityProfileGroupId
|
string
|
The security profile group name that is applied to the traffic. |
organizationId
|
integer
|
The organization ID that the VM instance belongs to. |
VpcDetails
field format
The following table describes the format of the VpcDetails
field.
Field | Type | Description |
---|---|---|
vpc
|
string
|
The name of the VPC network associated with the intercepted traffic. |
projectId
|
string
|
The name of the Google Cloud project associated with the VPC network. |
InterceptInstance
field format
The following table describes the format of the InterceptInstance
field.
Field | Type | Description |
---|---|---|
projectId
|
string
|
The name of the Google Cloud project associated with the intercepted traffic. |
vm
|
string
|
The name of the VM instance associated with the intercepted traffic. |
Threat log correlation with a firewall log
When a packet matches a firewall rule with logging enabled, Cloud NGFW logs a Firewall Rules Logging entry. This entry includes fields such as the source IP address, the destination IP address, and the time of packet inspection. To view these firewall rule logs, see View logs.
If you have a firewall policy rule for Layer 7 inspection with logging enabled, Cloud NGFW first logs the Firewall Rules Logging entry for the matched packet. Then, it sends the packet to the firewall endpoint for Layer 7 inspection. The firewall endpoint analyzes the packet for threats. If a threat is detected, a separate threat log is created. This threat log include fields such as the type of threat, the source of the threat, and the destination of the threat. To view threat logs, see View threats.
You can compare the fields in the firewall rule log and threat log to identify the packet that triggered the threat and take appropriate action to resolve it.
For example, you have a firewall policy rule configured with the following settings:
- Source IP address:
192.0.2.0
- Source port:
47644
- Destination IP address:
192.0.2.1
- Destination port:
80
- Logging:
Enabled
To view the threat logs associated with this rule, navigate to the Logs Explorer page. In the Query pane, paste the following query into the query editor field.
resource.type="networksecurity.googleapis.com/FirewallEndpoint" jsonPayload.source_ip_address="192.0.2.0" jsonPayload.source_port="47644" jsonPayload.destination_ip_address="192.0.2.1" jsonPayload.destination_port="80"
The Query results section displays the following threat log:
{ insertId: "0ac7f359-263f-4428-8ded-ac655d8a09db" jsonPayload: { action: "reset-server" alert_severity: "HIGH" alert_time: "2023-11-28T19:07:15Z" category: "info-leak" ▸ cves: [6] } destination_ip_address: "192.0.2.1" destination_port: "80" details: "This signature detects Microsoft Windows win.ini access attempts. A successful attack could allow an attacker to access sensitive information and conduct further attacks." direction: "CLIENT_TO_SERVER" ip_protocol: "tcp" name: "Microsoft Windows win.ini Access Attempt Detected" network: "projects/XXXX/global/networks/fwplus-vpc. repeat_count: "1" security_profile_group: "organizations/XXXX/locations/global/securityprofileGroups/XXXX-fwplus-spg" source_ip_address: "192.0.2.0" source_port: "47644" threat_id: "30851" type: "vulnerability" uri_or_filename: logName: "projects/XXXX/logs/networksecurity.googleapis.com%2Ffirewall_threat" receiveTimestamp: "2023-11-28T19:08:49.841883684Z" ▸ resource: {2} } timestamp: "2023-11-28T19:08:47.560012184Z"
Similarly, to view the firewall logs associated with this rule, navigate to the Logs Explorer page. In the Query pane, paste the following query into the query editor field.
jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP" jsonPayload.connection.src_ip="192.0.2.0" jsonPayload.connection.src_port="47644" jsonPayload.connection.dest_ip="192.0.2.1" jsonPayload.connection.dest_port="80"
The Query results section displays the following firewall log:
{ insertId: "qn82vdg109q3r9" jsonPayload: { connection: { } dest_ip: "192.0.2.1" dest_port: 80 protocol: 6 src_ip: "192.0.2.0" src_port: 47644 disposition: "INTERCEPTED" ►instance: {4} ▸ remote_instance: {4} ▸ remote_vpc: {3} rule_details: { action: "APPLY_SECURITY_PROFILE_GROUP" apply_security_profile_fallback_action: "UNSPECIFIED" direction: "INGRESS" ▸ ip_port_info: [1] ▼ priority: 6000 reference: "network: fwplus-vpc/firewallPolicy: fwplus-fwpolicy" source_range: [ 1 0: "192.0.2.0/24" target_secure_tag: [ 0: "tagValues/281479199099651" ] } vpc: { project_id:XXXX subnetwork_name: "fwplus-us-central1-subnet" vpc_name: "fwplus-vpc" } } logName: "projects/XXXX/logs/compute.googleapis.com%2Ffirewall", receiveTimestamp: "2023-11-28T19:08:46.749244092Z" resource: {2} timestamp: "2023-11-28T19:08:40.207465099Z" }
With both the threat log and firewall log queries you can view the correlation between them. The following table maps the firewall log fields to the corresponding threat log fields.
Firewall log field | Threat log field | Description |
---|---|---|
src_ip
|
source_ip_address
|
The source IP address in the firewall log is correlated with the source IP address in the threat log to identify the origin of the potential threat |
src_port
|
source_port
|
The source port in the firewall log is correlated with the source port in the threat log to identify the source port used in the potential threat |
dest_ip
|
destination_ip_address
|
The destination IP address in the firewall log is correlated with the destination IP address in the threat log to pinpoint the target of the potential threat |
dest_port
|
destination_port
|
The destination port in the firewall log is correlated with the destination port in the threat log to identify the destination port used in the potential threat |