Skip to content

Netflow schema

Use this reference to identify the fields available in the netflow schema and the parser fields used to populate them.

For a field to be populated in Sophos XDR, the corresponding parser field must be present in the source data.

Schema summary

Property Value
Schema name Netflow
Parser field prefix Netflow
Supports custom parsers Yes
Schema components Direction, fw_action

Schema components

Netflow.Direction

Name Number Description
UNKNOWN 0 Unused but required for Proto3.
INBOUND 1 The flow is inbound to the source.
OUTBOUND 2 The flow is outbound to the source.
CLIENT_TO_SERVER 3 When reported by a firewall, the control will only know who is the initiator (client) of the connection and who is the receiver (server).
SERVER_TO_CLIENT 4 When reported by a firewall, the control will only know who is the initiator (client) of the connection and who is the receiver (server).

Netflow.fw_action

Did the firewall appliance allow or deny the traffic, and if deny, then how?

Name Number Description
FW_UNKNOWN 0 Unused but required for Proto3.
FW_BLOCKED 1 Flow dropped: firewall blocked the TCP handshake or the UDP packet.
FW_ALLOWED 2 Flow was not denied by the firewall.
FW_RESET_CLIENT_TO_SERVER 3 Firewall sent a RST packet to the server (TCP probe).
FW_RESET_SERVER_TO_CLIENT 4 Firewall sent a RST packet to the client (TCP probe).
FW_RESET_BOTH 5 Firewall sent a RST packet to both client and server (TCP probe).
FW_ICMP_CLIENT 6 ICMP destination host unreachable sent to client (UDP probe).

Schema fields

Normalized Field Type Parser Field Description
resource_id string resourceId$ Full resource string identifying the record.
tenant_id string tenantId$ ID of the tenant.
sensor_type string sensorType$ Type of device that generated this event.
sensor_event_id string sensorEventId$ Event ID of original_data assigned by the sensor.
sensor_tenant string sensorTenant$ A customer ID supplied by the application that originated the data.
sensor_id string sensorId$ An ID for the data supplied by the application that originated it.
sensor_cpe string sensorCpe$ CPE of the platform producing the alert.
original_data string originalData$ Original, unadulterated data prior to any transformation.
event_time_usec uint64 eventTimeUsec$ Event time in microseconds (µs).
ingest_time_usec uint64 ingestTimeUsec$ Ingest time in microseconds (µs).
event_time_fidelity TimeFidelity eventTimeFidelity$ Specifies the original precision of the time used to populate event_time_usec.
host_id string hostId$ The host ID that uniquely identifies the host where the event originated, such as IPv(4/6) address or device MAC address.
sensor_version string sensorVersion$ The agent version as string.
source_mac string sourceMac$ Source MAC address in text canonical format.
destination_mac string destinationMac$ Destination MAC address in text canonical format.
source_address string sourceAddress$ IP address of the source.
destination_address string destinationAddress$ IP address of the destination.
source_port uint32 sourcePort$ Port of the source.
destination_port uint32 destinationPort$ Port of the destination.
protocol uint32 protocol$ Transfer protocol.
tx_packet_count uint64 txPacketCount$ Number of packets transferred.
tx_byte_count uint64 txByteCount$ Number of bytes transferred.
rx_packet_count uint64 rxPacketCount$ Number of packets received.
rx_byte_count uint64 rxByteCount$ Number of bytes received.
direction Netflow.Direction direction$ Direction of the network traffic between the source and destination from the perspective of the sensor, such as INBOUND or OUTBOUND.
start_timestamp_usec uint64 startTimestampUsec$ Microseconds of the flow start.
end_timestamp_usec uint64 endTimestampUsec$ Microseconds of the flow end.
src_ipblacklists repeated string srcIpblacklists$ Provides the names of blacklists matched by the source.
dest_ipblacklists repeated string destIpblacklists$ Provides the names of blacklists matched by the destination.
src_ipgeo_summary GeoSummary The geographic location of the source IP. Not writable from a custom parser. Populated automatically by Sophos enrichment from source_address. See note at the end of this page.
dest_ipgeo_summary GeoSummary The geographic location of the destination IP. Not writable from a custom parser. Populated automatically by Sophos enrichment from target_address. See note at the end of this page.
source_nat_address string sourceNatAddress$ If Network Address Translation is done, the source IP used.
destination_nat_address string destinationNatAddress$ If Network Address Translation is done, the destination IP used.
source_nat_port uint32 sourceNatPort$ If Network Address Translation is done, the source port used.
destination_nat_port uint32 destinationNatPort$ If Network Address Translation is done, the destination port used.
application_name string applicationName$ Application detected by Deep Packet Inspection engine, such as PaloAlto's APP-ID.
flow_action Netflow.fw_action flowAction$ Provides an enum to define what the firewall might have done to the flow. If free form text is needed, see connection_end_reason. 0: FW_UNKNOWN. Not used. 1: FW_BLOCKED. Flow dropped. Firewall blocked the TCP handshake or the UDP packet. 2: FW_ALLOWED. Flow was not denied by the firewall. 3: FW_RESET_CLIENT_TO_SERVER. Firewall sent a RST packet to the server (TCP probe). 4: FW_RESET_SERVER_TO_CLIENT. Firewall sent a RST packet to the client (TCP probe). 5: FW_RESET_BOTH. Firewall sent a RST packet to both client and server (TCP probe). 6: FW_ICMP_CLIENT. ICMP destination host unreachable sent to client (UDP probe).
connection_end_reason string connectionEndReason$ Provides details on why the session ended if flow_action was not enough. Examples: tcp-rst-from-client (Paloalto), TCP Reset - I (ASA).
community_id_hash string communityIdHash$ Allows us to relate netflow record to other records like IDS alerts. See Community ID Flow Hashing.
event_metadata KeyValuePairsIndexed eventMetadata$ Event metadata can be provided by the data source to add context, such firewall rule name or source interface.
processCorrelationID ProcessCorrelationID processCorrelationId$ Process correlation ID of the process creating this netflow session.
process_image_path string processImagePath$ Image path of the process initiating this netflow.

Geographic IP fields are not writable from custom parsers.

The src_ipgeo_summary and dest_ipgeo_summary fields are populated by an automatic Sophos enrichment step that runs after custom parser normalization. Any value a custom parser writes to these fields will be replaced before the event reaches queryable storage.

To get geographic data populated, ensure your parser writes the relevant IP addresses to source_address$ and target_address$. Enrichment uses those fields to look up the geographic data and fill in src_ipgeo_summary (from source_address) and dest_ipgeo_summary (from target_address) automatically.

Enrichment only applies to publicly routable IP addresses; private and loopback addresses are skipped.