Author(s)
Nasreddine Bencherchali - @nasbench
SEP Type
New Rule Fields (metadata, configuration options)
Abstract
This SEP aims to introduce a new optional field called output_fields that describe which fields should be in the output of a converted detection
Problem Statement
Note: This is re-introduction of the fields field. With increased scope to be called output_fields.
While writing detections, the output fields that an alert produces has to be defined and consistent. The reason being while investigating threats you have to evaluate certain fields in order to gain more context.
For example if the logsource of the detection / alert is a process creation event. An analyst would investigate the Image / Parent / CommandLine at minimum for example.
Also when writing correlations where you use joins or similar operations where you'd have to correlate based on a common fields. That field has to be present in the output in order for this to work across different alerts.
Hence we need a consistent way to describe this.
The fields field answers this, but the name created confusion across users in the past where people used it as suggested investigation fields, others as fields to converted, etc.
This SEP aims to clear this confusion by clearly stating its purpose.
From an implementation point of view. If we take the Splunk backend as an example these will output as | table field1 field2 field3
Use Cases
- Consistent output between alerts
- Ease of correlation
Detailed Specification
Output Fields
Attribute: output_fields
Use: optional
Description:
Defines the fields that must be present in the alert/detection output. These fields are essential for:
- Investigation workflows and threat analysis
- Correlation operations that require common fields across different alerts
- Maintaining consistency in alert output across detection rules
- Ensuring analysts have the necessary context when evaluating alerts
The output_fields attribute explicitly declares which fields the detection rule expects to produce in its output. This is distinct from fields used in the detection logic itself. It specifically defines what information should be available when the rule generates an alert.
The attribute contains a list of field names that should appear in the alert output:
output_fields:
- FieldName1
- FieldName2
- FieldName3
These fields are usually the same across the same logsource and should be defined as part of the taxonomy.
Syntax Examples
title: Suspicious PowerShell Execution
id: 8e3e7bfa-4c4f-4e3f-9b3a-1c8f5d6e7f8a
status: stable
description: Detects suspicious PowerShell command execution patterns
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\powershell.exe'
CommandLine|contains:
- 'EncodedCommand'
- 'WebClient'
- 'DownloadString'
condition: selection
output_fields:
- Image
- CommandLine
- ParentImage
- ParentCommandLine
- User
- ComputerName
- ProcessId
- ParentProcessId
falsepositives:
- Administrative scripts
level: medium
Backward Compatibility Impact
Fully backward compatible
Implementation Areas
Submitter Checklist
Implementation Assistance
Yes, I can help with implementation
Additional Context
No response
Author(s)
Nasreddine Bencherchali - @nasbench
SEP Type
New Rule Fields (metadata, configuration options)
Abstract
This SEP aims to introduce a new optional field called
output_fieldsthat describe which fields should be in the output of a converted detectionProblem Statement
Note: This is re-introduction of the
fieldsfield. With increased scope to be calledoutput_fields.While writing detections, the output fields that an alert produces has to be defined and consistent. The reason being while investigating threats you have to evaluate certain fields in order to gain more context.
For example if the logsource of the detection / alert is a process creation event. An analyst would investigate the Image / Parent / CommandLine at minimum for example.
Also when writing correlations where you use joins or similar operations where you'd have to correlate based on a common fields. That field has to be present in the output in order for this to work across different alerts.
Hence we need a consistent way to describe this.
The
fieldsfield answers this, but the name created confusion across users in the past where people used it as suggested investigation fields, others as fields to converted, etc.This SEP aims to clear this confusion by clearly stating its purpose.
From an implementation point of view. If we take the Splunk backend as an example these will output as
| table field1 field2 field3Use Cases
Detailed Specification
Output Fields
Attribute: output_fields
Use: optional
Description:
Defines the fields that must be present in the alert/detection output. These fields are essential for:
The
output_fieldsattribute explicitly declares which fields the detection rule expects to produce in its output. This is distinct from fields used in the detection logic itself. It specifically defines what information should be available when the rule generates an alert.The attribute contains a list of field names that should appear in the alert output:
These fields are usually the same across the same logsource and should be defined as part of the taxonomy.
Syntax Examples
Backward Compatibility Impact
Fully backward compatible
Implementation Areas
Submitter Checklist
Implementation Assistance
Yes, I can help with implementation
Additional Context
No response