NIDS schema
Use this reference to identify the fields available in the nids 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 | NIDS |
| Parser field prefix | NIDS |
| Supports custom parsers | Yes |
| Schema components | ThreatIntelligenceIndicators, VendorExtraContextEntry, Direction, Author |
Schema components
Nids.ThreatIntelligenceIndicators
| Normalized Field | Type | Parser Field | Description |
|---|---|---|---|
| type | string | type$ | Type of TI, such as IP address, email address, URL, hash, malware, etc. |
| value | string | value$ | Raw value of the TI indicator, such as 1.1.1.1, FAKEURL.COM, etc. |
| category | string | category$ | Category of the TI, such as Keylogger, backdoor, etc. |
| last_observation_time_usec | uint64 | lastObservationTimeUsec$ | Timestamp related to when TI was last curated. |
| source | string | source$ | Human-readable source of the TI data, such as Microsoft TIC. |
| source_url | string | sourceUrl$ | URL that provides information about the TI. |
| family | string | family$ | Provider-generated malware family, such as wannacry, notpetya, etc. |
Nids.VendorExtraContextEntry
| Normalized Field | Type | Parser Field | Description |
|---|---|---|---|
| key | string | key$ | |
| value | string | value$ |
Nids.Direction
| Name | Number | Description |
|---|---|---|
| UNKNOWN | 0 | Unused but required for Proto3. |
| INBOUND | 1 | When you have a flow to/from the security control itself. |
| OUTBOUND | 2 | Send. |
| CLIENT_TO_SERVER | 3 | When you get a flow from a security control inspecting a flow from point A to B. The security control is not a part of the conversation, just an observer. The security control only knows who is the initiator (client) of the connection and who is the receiver (server). |
| SERVER_TO_CLIENT | 4 |
Nids.author
| Name | Number | Description |
|---|---|---|
| DEFAULT_ORIGIN | 0 | Unused but required for Proto3. |
| VENDOR_OF_SENSOR | 1 | Whoever manufactured the sensorType is the author of this NIDS countermeasure. |
| SCWX_CTU | 2 | Denotes that the NIDS countermeasure is from the Counter Threat Unit. |
| EMERGING_THREATS | 3 | Denotes a countermeasure from Proofpoint Emerging Threats Rules. See their documentation. |
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. |
| enrichments | Enrichments | enrichments$ | Event enrichments. |
| generator_id | uint32 | generatorId$ | The generator ID that created the event (snort-based NIDS). |
| signature_id | uint32 | signatureId$ | The rule ID used to create the event. |
| signature_revision | uint32 | signatureRevision$ | The version of the rule. |
| policy_id | uint32 | policyId$ | The policy ID (snort-based NIDS). |
| message | string | message$ | Title of the event. |
| classification | string | classification$ | Event classification from classification.conf (snort-based NIDS). |
| priority | uint32 | priority$ | Priority placed on the event by the normalizer (based on vendor scale) where 1 is the highest priority and 5 is the lowest. |
| action | string | action$ | How the packet was handled, such as DROP, SDROP, REJECT, ALERT, FW_TRUSTED, etc. |
| impact_flag | uint32 | impactFlag$ | Supersedes action. |
| blocked | uint32 | blocked$ | 1 = NotBlocked, 2 = Blocked, 3 = WouldHaveBlocked. |
| vlan | uint32 | vlan$ | The extracted VLAN ID from the VLAN header in the alerting packet. |
| mpls_label | uint32 | mplsLabel$ | The extracted MPLS label from the MPLS header in the alerting packet. |
| snort_sensor_id | uint32 | snortSensorId$ | ID of the alerting device. |
| event_id | uint32 | eventId$ | ID of the event assigned by the sensor. |
| event_ref | uint32 | eventRef$ | Reference to another event_id being part of the conversation. |
| source_address | string | sourceAddress$ | IP source address. |
| destination_address | string | destinationAddress$ | IP destination address. |
| source_port | uint32 | sourcePort$ | TCP/UDP source port when protocol == 6 |
| icmp_type | uint32 | icmpType$ | Type of ICMP event when protocol == 1. |
| destination_port | uint32 | destinationPort$ | TCP/UDP source port when protocol == 6 |
| icmp_code | uint32 | icmpCode$ | ICMP code when protocol == 99. |
| protocol | uint32 | protocol$ | IP protocol number. |
| ttl | uint32 | ttl$ | IP packet time-to-live. |
| tos | string | tos$ | IP packet type-of-service flags. |
| packet_id | uint32 | packetId$ | IP packet identifier. |
| ip_len | uint32 | ipLen$ | Length of the alerting packet's IP header. |
| dgm_len | uint32 | dgmLen$ | Packet datagram length for UDP packets. |
| flags | string | flags$ | TCP flags ala tcpdump format string. |
| sequence | string | sequence$ | TCP sequence of alerting packet. |
| ack | string | ack$ | The TCP ACK. |
| window | string | window$ | The size of the receive window. |
| tcp_len | uint32 | tcpLen$ | Size of the TCP packet. |
| tcp_options | string | tcpOptions$ | String formatted TCP options. |
| pcap | bytes | bytes$ | All packets associated with the alert. Base64-encoded and suitable for use (after decoding) with tcpdump, wireshark, etc. |
| pcapref | string | pcapref$ | When PCAP field is not present, provides a text string explaining how to obtain the PCAP. |
| source_username | string | sourceUsername$ | The username associated with the source. |
| destination_username | string | destinationUsername$ | The username associated with the destination. |
| application_name | string | applicationName$ | Application detected by Deep Packet Inspection engine. |
| is_custom_alert | NullableBoolean | isCustomAlert$ | True when the detection reflects customer or tenant logic: wholly custom rules or indicators, or vendor-supplied templates, content packs, or building blocks that the tenant instantiated or materially configured (for example policies, named rule instances, thresholds, or scope). False when the alert is produced solely by vendor-default, uniformly deployed detection without meaningful per-tenant logic. Unknown when provenance cannot be determined from the source. |
| direction | Nids.Direction | direction$ | Direction of the network traffic between the source and destination from the perspective of the sensor. |
| event_metadata | KeyValuePairsIndexed | eventMetadata$ | Event metadata can be provided by the appliance to add context, such as URL/filename triggered on, BETTER schema information, etc. |
| countermeasure_author | Nids.author | countermeasureAuthor$ | Who might have authored the event captured in the NIDS alert. |
| log_type | string | logType$ | Vendor-provided definition of the log type. |
| 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 | srcIpgeoSummary$ | The geographic location of the source IP. |
| dest_ipgeo_summary | GeoSummary | destIpgeoSummary$ | The geographic location of the destination IP. |
| threat_intelligence_indicators | repeated Nids.ThreatIntelligenceIndicators | threatIntelligenceIndicators$ | Details related to threat intelligence indicators, such as category, last observed date, source, source URL, type, etc. |
Note
When is_custom_alert is true:
- Detection severity is not altered.
- These detections are sent directly to the tenant for self-service and don't enter the MDR service queue because they are outside the scope of the Sophos MDR service. For details on MDR, see MDR.