Development Workflow
This guide describes the standard workflow for building and deploying new detection logic and parsing filters.
Rule Development Lifecycle
Identify the Threat: Investigate the particular attack pattern, for example a MITRE ATT&CK technique.
Analyze the Logs: Examine sample logs in the Unified Security Stack Log Explorer to pinpoint unique identifiers for the threat.
Draft the YAMLGenerate a new rule file. Specify metadata (
id,name,impact).Implement Conditions: Write the
whereexpression and define any requiredcorrelationlogic.Local ValidationValidate the YAML syntax with a YAML linter.
Deployment: Add the rule to the rules directory of the EventProcessor.
Simulation: Create attack logs and confirm that an alert is triggered and correctly deduplicated.
Filter Development Lifecycle
Source DiscoveryLocate a new log source (for example, a new firewall brand).
Schema Mapping: Map the raw log fields to the Standard Event Schema.
Pipeline Construction:
Start with a
jsonorkvtake a step if the log is structured.
Use
grokto handle unstructured data strings.Add
caststeps for types andrenamefor standardization.
Enrichment: Add
dynamicprocedures for geolocation or TI lookups.Sanitization: Remove temporary or highly redundant fields in the
log.*namespace for storage optimization.Note: The
rawThis field is safeguarded for audit purposes and cannot be removed.Testing: Use the Playground or deploy to a development environment and check Log Explorer to confirm fields display correctly.
Debugging Tips
Check Logs: Watch the EventProcessor logs for parsing error or rule evaluation failed messages.
Isolate: If a filter fails, comment out steps one at a time to locate the cause.
Validate Schema: Ensure that the types you
castto align with the expected types in the rules.Audit Trace: Remember that the
rawThe field always retains the original message, which helps verify your parsing logic.