RSigma è un toolkit Rust completo e ad alte prestazioni per lo standard di rilevamento Sigma. Analizza le regole Sigma YAML in un AST fortemente tipizzato, le compila in matcher ottimizzati e le valuta rispetto agli eventi di log in tempo reale. Oltre alla conversione (il compito classico di Sigma), RSigma include un parser, linter, motore di valutazione e correlazione, un daemon runtime di streaming e server MCP e LSP — rendendolo una base completa per pipeline detection-as-code.
Installazione
| Metodo | Comando |
|---|
| Cargo | cargo install rsigma |
| Da sorgenti | git clone https://github.com/timescale/rsigma && cd rsigma && cargo build --release |
| Binario | scarica dalla pagina GitHub Releases |
| Verifica | rsigma --version |
Subcomandi Principali
| Comando | Descrizione |
|---|
rsigma lint rules/ | Valida e assegna un quality score alle regole Sigma |
rsigma convert -t splunk rule.yml | Converte una regola in un linguaggio di query di destinazione |
rsigma eval -r rule.yml events.jsonl | Valuta le regole rispetto agli eventi di log |
rsigma correlate rules/ events.jsonl | Esegue regole di correlazione su più eventi |
rsigma serve | Avvia il daemon di valutazione di streaming |
rsigma lsp | Esegui il Language Server per l’integrazione con l’editor |
rsigma mcp | Esegui il server MCP per l’accesso degli agenti IA |
rsigma --help | Riferimento completo dei comandi |
Linting
# Lint una directory di regole, fallisce su errori (amico del CI)
rsigma lint rules/ --fail-on error
# Mostra quality score su tutte le dimensioni
rsigma lint rules/windows/ --format json
| Dimensione | Controlli |
|---|
| Sintassi | Schema Sigma valido / AST |
| Metadati | title, id, status, level presenti |
| Logica | Coerenza tra Detection e condition |
| Utilizzo dei campi | Campi noti, conformità alla tassonomia |
| Best practice | Naming, note su false positive |
| Portabilità | Costrutti compatibili con il backend |
Conversione (Detection-as-Code)
RSigma compila una regola Sigma in molti linguaggi di query SIEM.
rsigma convert -t splunk rule.yml # Splunk SPL
rsigma convert -t elasticsearch rule.yml # Elastic DSL / EQL
rsigma convert -t sentinel rule.yml # Microsoft Sentinel KQL
rsigma convert -t qradar rule.yml # QRadar AQL
| Flag | Scopo |
|---|
-t, --target | Backend / linguaggio di query |
-p, --pipeline | Applica una pipeline di elaborazione (field mappings) |
-o, --output | Scrivi su un file |
--format | Formato di output per conversioni batch |
Valutazione e Correlazione
# Abbina le regole direttamente su un flusso di eventi JSONL
rsigma eval -r rules/ events.jsonl --format json
# Correlazione multi-evento (es. N fallimenti quindi successo)
rsigma correlate -r correlation_rules/ events.jsonl
| Capacità | Uso |
|---|
| Valutazione diretta | Testa le regole su telemetria reale senza un SIEM |
| Correlazione | Regole temporali/aggregazione su più eventi |
| Daemon di streaming | rsigma serve valuta flussi di eventi live |
| Caching AST | I matcher compilati sono riutilizzati per la velocità |
Integrazione con Editor e Agenti
| Server | Scopo |
|---|
rsigma lsp | Autocomplete, diagnostica, hover negli editor |
rsigma mcp | Esponi gli strumenti Sigma agli agenti IA tramite MCP |
Pattern CI/CD
# In una pipeline detection-as-code:
rsigma lint rules/ --fail-on error # gate sulla quality
rsigma eval -r rules/ test-telemetry.jsonl # verifica che le regole scattino
rsigma convert -t sentinel -o out/ rules/ # compila per il deployment
RSigma vs Strumenti Sigma Classici
| Aspetto | RSigma | sigma-cli (pySigma) |
|---|
| Linguaggio | Rust | Python |
| Portata | Convert + lint + eval + correlate + serve | Convert (+ plugin) |
| Valutazione live | Daemon di streaming integrato | Esterno |
| Editor/agente | Server LSP + MCP | Nessuno |
| Migliore per | Pipeline detection-as-code end-to-end | Flussi di lavoro incentrati sulla conversione |
Risorse