0Pricing
Cyber Security Academy · Leçon

É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: high

Le 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, aws
  • category — par exemple process_creation, network_connection, file_event
  • service — 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: selection

Modificateurs 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îne
  • startswith / endswith — recherche avec ancrage
  • all — toutes les valeurs d’une liste doivent être présentes
  • re — expression régulière
  • base64offset|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: selection

Listes 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: selection

Expression 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 > 10

Filtrer 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_legit

Mé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é, critique
  • tags — techniques ATT&CK, par exemple attack.t1059.001
  • falsepositives — déclencheurs bénins connus
  • references — rapports ou documents sur les menaces
  • author et date

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: 10m

Convertir 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 :

  • logsource sé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
  • condition combine 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 convert compile 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

  1. Principes de la détection comme code
  2. Écrire des règles Sigma
  3. Cartographier avec MITRE ATT&CK
  4. Tester et régler les détections
← Retour à Cyber Security Academy