Aller au contenu

Configuration

sigmacatch lit sa configuration dans un fichier unique config.yaml du dossier de travail (CWD). Au premier lancement, un fichier est créé avec des valeurs par défaut provisoires et le run s'arrête (exit 1) jusqu'à ce que vous le modifiiez. Chaque section et chaque champ sont optionnels dans le fichier — une section ou un champ manquant retombe sur sa valeur par défaut. Les champs inconnus sont rejetés.

Référence complète

git:
  author: "sigmacatch"          # PLACEHOLDER — remplacez par votre nom d'utilisateur GitHub avant le run suivant
  email: ""                     # requis (toute valeur non vide contenant @)
  github_token: ""              # token GitHub (ou variable d'environnement GITHUB_TOKEN) — voir validation
  transport: http               # http ou ssh
  ssh_key_path: ""              # chemin absolu vers une clé privée SSH (uniquement avec transport: ssh)
  sigma_repo_url: "https://github.com/SigmaHQ/sigma.git"
  sigma_repo_path: "sigma"      # chemin du clone local ; les chemins relatifs se résolvent depuis le dossier du config
  offline: false                # true = zéro opération git (pas de pull/clone/commit/push)
  contrib: false                # true = pousser les commits vers votre fork distant
  working_branch: ""            # branche de travail optionnelle ; défaut sigmacatch/<AAAAJJMM>
  shallow_clone: true           # clone initial depth=1 (rapide), unshallow avant push (défaut true)
  sparse_checkout: true         # sparse checkout mode cône : rules/, rules-emerging-threats/, regression_data/ (défaut true)
  partial_clone: false          # filtre blobless (--filter=blob:none) pour le clone initial (défaut false)
  clone_timeout_secs: 600       # timeout global du clone (secondes)
  fetch_timeout_secs: 300       # timeout fetch/pull (secondes)
  http_timeout_secs: 120        # timeout HTTP par requête (secondes)
  max_retries: 3                # max tentatives de retry pour échecs transitoires
log:
  level_file: debug             # debug | info | warn | error
filter:
  product: windows              # windows | linux | macos (vide = pas de filtre)
  # min_status: stable          # ne garder que les règles avec un status >= cette valeur (valeurs ci-dessous)
  # min_level: critical         # ne garder que les règles avec un level >= cette valeur (valeurs ci-dessous)
  author: ""                    # ne garder que les règles de cet author (vide = pas de filtre)
  max_rule_size: 1048576        # octets ; plage 1024..10MB
regression:
  max_failed_cycles: 3          # bloquer une règle après N cycles d'échec consécutifs
  add_json_output: false        # écrire aussi le <rule_id>.json auxiliaire à côté du fichier de données
hir_cache: ""                   # chemin vers le fichier de cache HIR persistant (warm-start moteur ; vide = recompilation à chaque run)
stop_file: ".sigmacatch.stop"   # créez ce fichier pour arrêter proprement un run continu (-r 0)

git

Clé Défaut Description
author sigmacatch Nom d'utilisateur GitHub. Le placeholder sigmacatch est rejeté ; alphanumérique + tirets uniquement. Requis sauf offline: true.
email "" Email de commit. Doit contenir @. Requis sauf offline: true.
github_token "" Token GitHub, ou variable d'environnement GITHUB_TOKEN. Requis pour transport: http quand une opération réseau est active (offline: false ou contrib: true). Pas d'espaces.
transport http Transport git : http ou ssh.
ssh_key_path (défaut) Chemin absolu vers une clé privée SSH (ed25519). Uniquement avec transport: ssh ; doit exister et être un fichier quand une opération réseau est active. chmod 600 recommandé.
sigma_repo_url https://github.com/SigmaHQ/sigma.git Dépôt SigmaHQ à cloner/récupérer.
sigma_repo_path sigma Chemin du clone local. Les chemins relatifs se résolvent depuis le dossier du fichier de configuration ; ne doit pas être vide ni contenir ...
offline false Ignore toutes les opérations git (pas de pull/clone/commit/push). Les fichiers sur disque sont utilisés tels quels (.git optionnel). Neutralise contrib (forcé à false).
contrib false Pousse les commits vers votre fork distant. Neutralisé par offline: true.
working_branch (défaut) Nom de la branche de travail. Quand vide, la branche par défaut sigmacatch/<AAAAJJMM> est utilisée.
shallow_clone true Clone initial depth=1 (rapide), unshallow avant push. Mettre false pour historique complet.
sparse_checkout true Sparse checkout mode cône : rules/, rules-emerging-threats/, regression_data/. false = worktree complet.
partial_clone false Filtre blobless (--filter=blob:none --depth=1) pour le clone initial. Nécessite le CLI git. Repli sur shallow clone avec avertissement.
clone_timeout_secs 600 Timeout global du clone en secondes. Doit être >0 et ≤3600.
fetch_timeout_secs 300 Timeout fetch/pull en secondes. Doit être >0 et ≤1800.
http_timeout_secs 120 Timeout HTTP par requête en secondes. Doit être >0 et ≤600.
max_retries 3 Max tentatives de retry pour échecs transitoires. Doit être ≤10.

log

Clé Défaut Description
level_file debug Niveau de log fichier : debug, info, warn, error.

filter

Tous les filtres sont optionnels ; non défini = pas de filtrage.

Clé Défaut Description
product windows Produit SigmaHQ à garder : windows, linux ou macos (réservé, aucun collecteur pour l'instant). Vide = pas de filtre produit.
min_status (défaut) Ne garder que les règles dont le status est à ce niveau ou au-dessus : unsupported < deprecated < experimental < test < stable.
min_level (défaut) Ne garder que les règles dont le level est à ce niveau ou au-dessus : informational < low < medium < high < critical.
author (défaut) Ne garder que les règles de cet author (normalisé).
max_rule_size 1048576 Rejette les règles dont le YAML dépasse ce nombre d'octets. Plage 1024..10485760 (10MB).

Définir min_status à stable ou min_level à high/critical est très restrictif et déclenche un avertissement au démarrage.

regression

Clé Défaut Description
max_failed_cycles 3 Après N cycles de capture d'échec consécutifs, une règle est bloquée (loggée, retirée du skip set, plus de re-capture). Min 1.
add_json_output false Écrit aussi le <rule_id>.json auxiliaire (événement brut) à côté du fichier de données. Voir Format de Sortie.

hir_cache

Clé Défaut Description
hir_cache "" Chemin vers un fichier de cache HIR persistant. Quand défini, le moteur de détection compilé est persisté après chaque changement de règle et warm-starté au run suivant, sautant la recompilation des règles. Vide = recompilation à chaque run. Peut aussi être défini via le flag CLI --hir-cache <CHEMIN>.

stop_file

stop_file nomme un fichier de contrôle (défaut .sigmacatch.stop, relatif au dossier de travail). Tant que le fichier existe, un run continu (-r 0) effectue une arrêt propre — drain, flush, commit — au prochain poll, pour arrêter un run en direct sans kill brutal. Supprimez le fichier pour continuer.