| name | sigma-backends |
| description | Convert, evaluate, and deploy Sigma detection rules across SIEM backends. Covers sigma-cli (pySigma) for converting rules to Splunk SPL, Elasticsearch Lucene/ES|QL, Microsoft Sentinel KQL, QRadar AQL, CrowdStrike, and 20+ other backends. Covers rsigma for direct real-time evaluation against JSON events, linting (65 rules with --fix), validation, and running a detection daemon with correlation, hot-reload, and Prometheus metrics. Includes pipeline-to-backend mapping for ECS, Splunk CIM, Sysmon, and other field schemas. Use this skill whenever the user mentions converting Sigma rules, Sigma backends, sigma-cli, rsigma, SIEM queries, SPL, KQL, Lucene, AQL, LEQL, field mapping, ECS mapping, CIM mapping, detection engineering tooling, or asks how to run, test, validate, lint, or deploy Sigma rules -- even if they don't explicitly name a tool. |
Sigma Backends
Two tools for working with Sigma rules after authoring:
- sigma-cli (Python/pySigma): converts rules into backend-specific queries (SPL, Lucene, KQL, etc.) for import into a SIEM
- rsigma (Rust): evaluates rules directly against JSON log events in real time -- no SIEM required
Both support processing pipelines for field name mapping between generic Sigma fields and backend-specific schemas.
sigma-cli Quick Start
Install
pip install sigma-cli
Install a Backend Plugin
sigma plugin install splunk
Convert Rules
sigma convert -t splunk -p sysmon rules/windows/process_creation/
sigma convert -t elasticsearch -p ecs_windows -f kibana_ndjson rules/
sigma convert -t kusto -p sentinel_asim rules/
List Available Backends, Formats, and Pipelines
sigma plugin list -t backend
sigma list targets
sigma list formats splunk
sigma list pipelines
Check Rules
sigma check rules/
For the full sigma-cli command reference, see references/sigma-cli.md.
rsigma Quick Start
Install
cargo install rsigma
Evaluate Events
rsigma eval -r rules/ -e '{"CommandLine": "cmd /c whoami"}'
cat events.ndjson | rsigma eval -r rules/
rsigma eval -r rules/ -p ecs.yml -e '{"process.command_line": "whoami"}'
rsigma eval -r rules/ -e @events.ndjson
Lint Rules
rsigma lint rules/
rsigma lint rules/ --fix
rsigma lint rules/ --schema default
rsigma lint rules/ --disable missing_description,missing_author
Validate Rules
rsigma validate rules/ -v
rsigma validate rules/ -p ecs.yml
Run Detection Daemon
hel run | rsigma daemon -r rules/ -p ecs.yml --api-addr 0.0.0.0:9090
hel run | rsigma daemon -r rules/ -p ecs.yml --state-db ./state.db
rsigma daemon -r rules/ --suppress 5m --correlation-event-mode full
For the full rsigma CLI reference, see references/rsigma.md.
Backend Selection Guide
| SIEM / Tool | Backend ID | Pipeline | Query Language | State |
|---|
| Splunk | splunk | splunk_cim_dm / splunk_windows | SPL | Stable |
| Elasticsearch | elasticsearch | ecs_windows | Lucene / ES|QL / EQL | Stable |
| OpenSearch | opensearch | ecs_windows | Lucene | Stable |
| Microsoft Sentinel | kusto | sentinel_asim | KQL | Stable |
| CrowdStrike Falcon | crowdstrike | (built-in) | CrowdStrike query | Stable |
| IBM QRadar | qradar / ibm-qradar-aql | (built-in) | AQL | Stable |
| Rapid7 InsightIDR | insightidr | (built-in) | LEQL | Stable |
| Grafana Loki | loki | (built-in) | LogQL | Stable |
| Carbon Black | carbonblack | (built-in) | CB query | Stable |
| Cortex XDR | cortexxdr | (built-in) | XQL | Stable |
| SentinelOne | sentinelone | (built-in) | Deep Visibility | Stable |
| Logpoint | logpoint | (built-in) | Logpoint query | Stable |
| Google SecOps | secops | (built-in) | UDM / YARA-L 2.0 | Development |
| rsigma (direct eval) | N/A | any pipeline YAML | JSON match output | Stable |
For the full list of 25+ backends with install commands, see references/backends.md.
Choosing Between sigma-cli and rsigma
| Use Case | Tool |
|---|
| Import rules into an existing SIEM | sigma-cli (converts to native query language) |
| Evaluate rules against JSON events in real time | rsigma eval |
| Run a detection daemon alongside a log collector | rsigma daemon |
| Lint and validate rule syntax | rsigma lint (65 rules, auto-fix) |
| CI/CD rule validation | rsigma lint + rsigma validate |
| Batch convert rules for multiple SIEMs | sigma-cli with different -t targets |
End-to-End Workflows
Convert a Rule to Splunk SPL
sigma plugin install splunk
sigma convert -t splunk -p sysmon rules/windows/process_creation/shadow_copy_deletion.yml
sigma convert -t splunk -p sysmon -f savedsearches -o saved.conf rules/
sigma convert -t splunk -p sysmon -O index=main rules/
Convert a Rule to Elasticsearch
sigma plugin install elasticsearch
sigma convert -t elasticsearch -p ecs_windows rules/
sigma convert -t elasticsearch -p ecs_windows -f esql rules/
sigma convert -t elasticsearch -p ecs_windows -f kibana_ndjson -o export.ndjson rules/
Convert a Rule to Microsoft Sentinel KQL
sigma plugin install kusto
sigma convert -t kusto -p sentinel_asim rules/
Evaluate a Rule Against Live Events (rsigma)
rsigma eval -r rules/ -p ecs.yml -e '{"process.command_line": "vssadmin delete shadows /all"}'
rsigma eval -r rules/ -p ecs.yml --include-event -e @events.ndjson
rsigma eval -r rules/ --jq '.event' -e '{"ts":"...","event":{"CommandLine":"whoami"}}'
Lint and Fix a Rule Directory (rsigma)
rsigma lint rules/
rsigma lint rules/ --fix
rsigma lint rules/ --schema default
rsigma lint rules/ --config .rsigma-lint.yml
Run a Detection Daemon with Correlation (rsigma)
hel run | rsigma daemon -r rules/ -p ecs.yml
hel run | rsigma daemon \
-r rules/ \
-p ecs.yml \
--state-db /var/lib/rsigma/state.db \
--suppress 5m \
--action reset \
--api-addr 0.0.0.0:9090
curl http://localhost:9090/healthz
curl http://localhost:9090/metrics
curl http://localhost:9090/api/v1/status
curl -X POST http://localhost:9090/api/v1/reload
Pipeline Selection
Pipelines transform Sigma rule fields to match your backend's data model. Stack multiple pipelines with repeated -p flags.
Common Patterns
| Data Model | Pipeline | Use With |
|---|
| Elastic Common Schema (ECS) | ecs_windows | elasticsearch, opensearch, rsigma |
| Splunk Common Information Model | splunk_cim_dm | splunk |
| Splunk Windows TA | splunk_windows | splunk |
| Sysmon field names | sysmon | any backend |
| Microsoft Sentinel ASIM | sentinel_asim | kusto |
Stacking Pipelines
Pipelines run in priority order (lower priority number = runs first):
sigma convert -t splunk -p sysmon -p splunk_cim_dm rules/
rsigma eval -r rules/ -p sysmon.yml -p ecs.yml -e '...'
Custom Pipelines
Write your own pipeline YAML for organization-specific field mappings:
name: My Organization ECS
priority: 20
transformations:
- type: field_name_mapping
mapping:
CommandLine: process.command_line
Image: process.executable
User: user.name
rule_conditions:
- type: logsource
product: windows
For detailed pipeline-to-SIEM mapping and field mapping tables, see references/pipeline-mapping.md.
Additional References