RSigma - Boîte à outils de détection Rust Sigma
RSigma est une boîte à outils Rust complète et haute performance pour la norme de détection Sigma. Il analyse les règles Sigma YAML en un AST fortement typé, les compile en correspondances optimisées, et les évalue par rapport aux événements de journal en temps réel. Au-delà de la conversion (le travail classique de Sigma), RSigma regroupe un analyseur, un linter, un moteur d’évaluation et de corrélation, un démon d’exécution de streaming, et des serveurs MCP et LSP — ce qui en fait une base fondamentale pour les pipelines de détection en tant que code.
Installation
| Méthode | Commande |
|---|
| Cargo | cargo install rsigma |
| À partir des sources | git clone https://github.com/timescale/rsigma && cd rsigma && cargo build --release |
| Binaire | télécharger depuis la page GitHub Releases |
| Vérifier | rsigma --version |
Sous-commandes principales
| Commande | Description |
|---|
rsigma lint rules/ | Valider et évaluer les règles Sigma |
rsigma convert -t splunk rule.yml | Convertir une règle vers un langage de requête cible |
rsigma eval -r rule.yml events.jsonl | Évaluer les règles par rapport aux événements de journal |
rsigma correlate rules/ events.jsonl | Exécuter les règles de corrélation sur les événements |
rsigma serve | Démarrer le démon d’évaluation de streaming |
rsigma lsp | Exécuter le serveur de langage pour l’intégration d’éditeur |
rsigma mcp | Exécuter le serveur MCP pour l’accès aux agents IA |
rsigma --help | Référence de commande complète |
Lint
# Lint un répertoire de règles, échouer sur les erreurs (compatible CI)
rsigma lint rules/ --fail-on error
# Afficher les scores de qualité entre les dimensions
rsigma lint rules/windows/ --format json
| Dimension | Vérifications |
|---|
| Syntax | Schéma Sigma valide / AST |
| Metadata | title, id, status, level présents |
| Logic | Cohérence détection/condition |
| Field usage | Champs connus, conformité taxonomie |
| Best practices | Nommage, notes sur les faux positifs |
| Portability | Construits compatibles avec le backend |
Conversion (Détection en tant que code)
RSigma compile une règle Sigma vers plusieurs langages de requête 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 | Objectif |
|---|
-t, --target | Backend / langage de requête |
-p, --pipeline | Appliquer un pipeline de traitement (mappages de champs) |
-o, --output | Écrire vers un fichier |
--format | Format de sortie pour conversions en lot |
Évaluation et corrélation
# Correspondre directement les règles par rapport à un flux d'événements JSONL
rsigma eval -r rules/ events.jsonl --format json
# Corrélation multi-événement (ex. N échecs puis succès)
rsigma correlate -r correlation_rules/ events.jsonl
| Capacité | Utilisation |
|---|
| Direct eval | Tester les règles sur la télémétrie réelle sans SIEM |
| Correlation | Règles temporelles/agrégation sur les événements |
| Streaming daemon | rsigma serve évalue les flux d’événements en direct |
| AST caching | Correspondances compilées réutilisées pour la vitesse |
Intégration d’éditeur et d’agent
| Serveur | Objectif |
|---|
rsigma lsp | Autocomplétion, diagnostiques, survol dans les éditeurs |
rsigma mcp | Exposer les outils Sigma aux agents IA via MCP |
Pattern CI/CD
# Dans un pipeline de détection en tant que code :
rsigma lint rules/ --fail-on error # gate sur la qualité
rsigma eval -r rules/ test-telemetry.jsonl # vérifier que les règles s'activent
rsigma convert -t sentinel -o out/ rules/ # compiler pour le déploiement
RSigma vs outils Sigma classiques
| Aspect | RSigma | sigma-cli (pySigma) |
|---|
| Langage | Rust | Python |
| Portée | Convert + lint + eval + correlate + serve | Convert (+ plugins) |
| Évaluation en direct | Démon de streaming intégré | Externe |
| Éditeur/agent | Serveurs LSP + MCP | Aucun |
| Meilleur pour | Détection en tant que code de bout en bout | Workflows centrés sur la conversion |
Ressources