Écrire des règles Sigma
Syntaxe portable pour les règles de détection.
Écrire des règles Sigma est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.
Ce qu’est Sigma
Sigma est un format de signatures générique et indépendant des fournisseurs pour les détections fondées sur les journaux. Vous écrivez une seule fois la logique de détection en YAML, puis vous la convertissez en SPL pour Splunk, en requêtes Elastic, en KQL pour Sentinel et pour de nombreux autres systèmes cibles.
Sigma joue pour la détection dans les journaux le même rôle que YARA pour la détection dans les fichiers : c’est une langue commune portable. Il permet aux équipes de partager publiquement des règles et d’éviter de réécrire la même idée pour chaque SIEM.
Anatomie d’une règle
Une règle Sigma est un document YAML composé de sections obligatoires et facultatives. Les éléments essentiels sont title, logsource et detection.
title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\\powershell.exe'
CommandLine|contains: '-enc'
condition: selection
level: highLe bloc de source des journaux
Le bloc logsource indique au convertisseur quels journaux la règle concerne. Il n’interroge pas directement les données ; il sélectionne la correspondance de champs et l’index appropriés lors de la conversion.
Clés courantes :
product— par exemple windows, linux, awscategory— par exemple process_creation, network_connection, file_eventservice— par exemple sysmon, security, sshd
Choisissez la combinaison la plus précise prise en charge par vos données afin que la chaîne de traitement associe correctement les champs.
Sélections et identifiants de recherche
Dans detection, vous définissez un ou plusieurs identifiants de recherche nommés (sélections). Chacun est un mappage de critères associant champs et valeurs. Plusieurs champs au sein d’une même sélection sont combinés avec un AND logique.
Ici, les deux conditions doivent être vraies pour que selection corresponde.
detection:
selection:
EventID: 4688
NewProcessName|endswith: '\\whoami.exe'
condition: selectionModificateurs de champ
Les modificateurs précisent la manière dont une valeur est comparée. Ils sont ajoutés au nom du champ après une barre verticale.
contains— recherche d’une sous-chaînestartswith/endswith— recherche avec ancrageall— toutes les valeurs d’une liste doivent être présentesre— expression régulièrebase64offset|contains— recherche de sous-chaînes encodées en base64
Les modificateurs s’enchaînent de gauche à droite et sont appliqués dans cet ordre.
detection:
selection:
CommandLine|contains|all:
- 'Invoke-WebRequest'
- 'DownloadString'
condition: selectionListes et mappages avec OR / AND
Deux règles régissent la logique au sein d’une sélection :
- Une liste de valeurs sous un même champ utilise OR : n’importe quelle valeur correspond.
- Un mappage de plusieurs champs utilise AND : tous les champs doivent correspondre.
Ci-dessous, Image correspond à l’un ou l’autre des fichiers binaires, et User doit également être égal à SYSTEM.
detection:
selection:
Image|endswith:
- '\\net.exe'
- '\\net1.exe'
User: 'SYSTEM'
condition: selectionExpression de condition
condition combine vos sélections nommées avec une logique booléenne. C’est ici que vous exprimez les filtres et les exclusions.
Les opérateurs comprennent and, or, not, les parenthèses et des agrégations comme count(). Vous pouvez également utiliser 1 of selection* / all of selection* pour faire référence à des groupes d’identifiants partageant un même préfixe.
detection:
selection:
EventID: 4625
timeframe: 5m
condition: selection | count() by SourceIp > 10Filtrer le bruit
Pour supprimer les activités connues comme légitimes, définissez un identifiant distinct et soustrayez-le dans la condition avec not. La logique malveillante reste ainsi lisible et les exclusions sont explicites.
Ici, la règle se déclenche lorsque rundll32 crée une connexion réseau, sauf s’il s’agit d’un processus de mise à jour légitime connu.
detection:
selection:
Image|endswith: '\\rundll32.exe'
filter_legit:
ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
condition: selection and not filter_legitMétadonnées pour le triage
Au-delà de la logique, les bonnes règles comportent des métadonnées qui aident les intervenants à agir rapidement et les ingénieurs à maintenir la couverture.
level— informatif, faible, moyen, élevé, critiquetags— techniques ATT&CK, par exemple attack.t1059.001falsepositives— déclencheurs bénins connusreferences— rapports ou documents sur les menacesauthoretdate
Ces champs prennent quelques minutes à renseigner et font gagner des heures pendant un incident.
Règles de corrélation
Les règles portant sur un seul événement ne peuvent pas exprimer les attaques en plusieurs étapes. Les règles de corrélation Sigma combinent plusieurs règles de base au fil du temps pour détecter des séquences et des schémas.
Les types pris en charge comprennent event_count (N correspondances dans une fenêtre), value_count (valeurs distinctes, par exemple de nombreux utilisateurs ayant échoué à se connecter) et temporal (règle A puis règle B). Vous pouvez ainsi détecter, par exemple, une connexion réussie juste après une série d’échecs.
name: bruteforce_then_success
correlation:
type: temporal
rules: [failed_logins, successful_login]
group-by: [SourceIp, TargetUser]
timespan: 10mConvertir vers un système cible
Avec sigma-cli, vous convertissez une règle dans le langage de requête de votre cible. Une chaîne de traitement associe les noms de champs Sigma à votre schéma réel.
La sortie est une requête prête à déployer, que vous pouvez coller ou envoyer via une API.
sigma convert -t splunk -p sysmon \
-f default rule.yml
# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"Vérification rapide
Vérifiez votre compréhension de la logique de détection Sigma.
Récapitulatif
Vous pouvez maintenant rédiger des règles Sigma portables :
logsourcesélectionne les journaux et les correspondances de champs applicables- Les sélections sont des critères nommés associant champs et valeurs (champs = AND, listes de valeurs = OR)
- Les modificateurs comme contains, endswith, all et re précisent la comparaison
conditioncombine les sélections avec and/or/not, des filtres et des agrégations- Des identifiants filter distincts soustraient le bruit connu comme légitime
- Les métadonnées (level, tags, falsepositives) accélèrent le triage
sigma convertcompile la règle pour votre système cible SIEM
Ensuite, vous associerez ces règles aux techniques de l’adversaire avec MITRE ATT&CK.
Questions Fréquemment Posées
La leçon « Écrire des règles Sigma » est-elle gratuite ?
Oui — le texte complet de « Écrire des règles Sigma » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Écrire des règles Sigma » ?
Syntaxe portable pour les règles de détection. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?
Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Écrire des règles Sigma » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?
Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Principes de la détection comme code
- Écrire des règles Sigma
- Cartographier avec MITRE ATT&CK
- Tester et régler les détections