-
Notifications
You must be signed in to change notification settings - Fork 71
Development Workflow
Osmany Montero edited this page Jan 20, 2026
·
4 revisions
This guide outlines the standard process for creating and deploying new detection logic and parsing filters.
- Identify the Threat: Research the specific attack pattern (e.g., MITRE ATT&CK technique).
- Analyze the Logs: View sample logs in the UTMStack Log Explorer to identify unique identifiers for the threat.
-
Draft the YAML: Create a new rule file. Define metadata (
id,name,impact). -
Implement Conditions: Write the
whereexpression and define any requiredcorrelationlogic. - Local Validation: Test the YAML syntax using a YAML linter.
- Deployment: Upload the rule to the rules directory of the EventProcessor.
- Simulation: Generate "attack" logs and verify that an alert is generated and properly deduplicated.
- Source Discovery: Identify a new log source (e.g., a new firewall brand).
- Schema Mapping: Map the raw log fields to the Standard Event Schema.
-
Pipeline Construction:
- Start with a
jsonorkvstep if the log is structured. - Use
grokfor unstructured strings. - Add
caststeps for types andrenamefor standardization.
- Start with a
-
Enrichment: Add
dynamicsteps for geolocation or TI lookups. -
Sanitization: Remove temporary or highly redundant fields in the
log.*namespace to optimize storage.Note: The
rawfield is protected for auditing purposes and cannot be removed. - Testing: Use the Playground or deploy to a dev environment and check the "Log Explorer" to ensure fields appear correctly.
- Check Logs: Monitor the EventProcessor logs for "parsing error" or "rule evaluation failed" messages.
- Isolate: If a filter is failing, comment out steps one by one to find the culprit.
-
Validate Schema: Ensure that the types you
castto match the expected types in the rules. -
Audit Trace: Remember that the
rawfield always preserves the original message, which is useful for verifying your parsing logic.