Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
detecttrace — Outil d'ingénierie de détection open source qui trace les détections de sécurité de bout en bout et identifie la première étape défaillante. | Kitploit
Outils/GitHubGitHub/g0dse11/detecttrace
Outils DéfensifsAnalyse des VulnérabilitésScripting et AutomatisationDevSecOpsUtilitaires et FrameworksDétection d'IntrusionRéponse aux IncidentsAnalyse de Journaux
GitHubg0dse11/detecttrace

detecttrace

Outil d'ingénierie de détection open source qui trace les détections de sécurité de bout en bout et identifie la première étape défaillante.

113il y a 1 jourPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DetectTrace

Une détection aurait dû se déclencher. Elle ne l'a pas fait. DetectTrace vous dit exactement pourquoi.

DetectTrace est un outil d'ingénierie de détection open source pour tester les détections de sécurité de bout en bout et localiser la première étape en échec.

Au lieu de tester uniquement une requête SIEM, DetectTrace traite une détection comme un pipeline :

test behaviour
    -> telemetry
    -> ingestion
    -> normalization/schema
    -> rule evaluation
    -> rule execution
    -> alert generation

Un DetectSpec déclare ce qui devrait se produire. DetectTrace rassemble les preuves de ce qui s'est réellement produit, évalue le contrat, arrête le raisonnement causal à la première défaillance prouvée, et marque les étapes dépendantes en aval comme BLOCKED.

Le backend actif actuel est Elastic Security. DetectTrace inclut également un mode déterministe basé sur des fichiers pour le développement local et les tests de régression.

Pourquoi DetectTrace existe

Les échecs de détection sont souvent diagnostiqués manuellement :

  • Le test s'est-il réellement exécuté ?
  • La télémétrie a-t-elle été générée ?
  • A-t-elle atteint le backend ?
  • Un champ a-t-il été renommé ou supprimé ?
  • La règle correspond-elle toujours ?
  • La règle est-elle désactivée ou en mauvaise santé ?
  • L'alerte est-elle apparue, et appartenait-elle à cette exécution de test exacte ?

DetectTrace transforme ces questions en vérifications exécutables et en preuves.

Exemple d'échec :

Test event                 PASS
Backend connection         PASS
Telemetry index            PASS
Telemetry located          PASS
Normalization              FAIL
Rule                       BLOCKED
Elastic rule exists        BLOCKED
Elastic rule enabled       BLOCKED
Rule execution             BLOCKED
Elastic alert              BLOCKED

RESULT
------------------------------------------------------------------------
Required field 'process.command_line' is absent, but the value from
'winlog.event_data.CommandLine' survived at 'process.args'.
Probable schema/mapping drift.

Confidence: HIGH
First failing stage: NORMALIZATION
Failure code: SCHEMA_DRIFT

L'important n'est pas seulement que la détection a échoué. DetectTrace explique où le chemin de détection est devenu invalide pour la première fois et pourquoi.

Ce que DetectTrace prend actuellement en charge

  • validation de DetectSpec v1
  • traces hors ligne déterministes à partir de preuves JSON/JSONL
  • DSL de prédicats déclaratif sûr ; aucune exécution arbitraire de Python ou de shell
  • vérifications de champs imbriqués
  • indices de lignage de champs pour une dérive probable de schéma/mapping
  • sémantique des étapes PASS / FAIL / BLOCKED / UNKNOWN / SKIPPED
  • diagnostics de la première étape en échec
  • codes d'échec stables et texte de remédiation
  • tests Elastic Security corrélés utilisant un detecttrace.run_id unique
  • vérifications réelles d'existence/activation/exécution des règles Elastic
  • vérification corrélée des alertes Elastic
  • mesure de la latence des alertes
  • TLS Elasticsearch sécurisé avec une CA configurée
  • vérifications d'environnement detecttrace doctor
  • sortie texte, JSON et compatible JUnit
  • tests de régression et CI GitHub Actions
  • laboratoire Elasticsearch + Kibana local reproductible

Ce que DetectTrace n'est pas

DetectTrace n'est pas :

  • une plateforme de simulation d'attaque
  • un remplacement de BAS
  • un éditeur de règles SIEM
  • un scanner de vulnérabilités générique
  • un système d'IA qui devine si une détection a fonctionné

L'exécution d'attaques/tests peut être intégrée ultérieurement. Le rôle de DetectTrace est de vérifier le chemin de détection et de diagnostiquer les échecs à partir des preuves observées.

Prérequis

  • Python 3.10+
  • Docker avec Compose v2 uniquement si vous souhaitez exécuter le laboratoire Elastic fourni

La suite CI teste actuellement Python 3.10, 3.11, 3.12 et 3.13.

Démarrage rapide hors ligne en cinq minutes

Clonez le dépôt, créez un environnement virtuel et installez DetectTrace.

Windows PowerShell

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .

Linux/macOS

python -m venv .venv
source .venv/bin/activate
python -m pip install -e .

Vérifiez l'installation :

detecttrace --version

Créez un projet de démarrage exécutable :

detecttrace init demo

Puis :

cd demo
detecttrace validate detectspec.yaml
detecttrace test detectspec.yaml

Le projet généré est autonome. Il ne nécessite ni Elasticsearch, ni Kibana, ni Docker, ni accès réseau.

Une exécution saine se termine par :

Detection contract passed end-to-end.
Confidence: HIGH

Exemples hors ligne sains et défaillants

Le dépôt inclut un fixture PowerShell avec à la fois des preuves valides connues et des preuves délibérément défaillantes.

Sain :

detecttrace test examples/powershell/detectspec.yaml --profile healthy

Défaillant :

detecttrace test examples/powershell/detectspec.yaml --profile broken

Le profil défaillant préserve délibérément la ligne de commande d'origine sous process.args au lieu du process.command_line requis. DetectTrace localise cet échec au niveau de la normalisation et bloque l'évaluation de la règle/de l'alerte.

DetectSpec

DetectSpec est le contrat déclaratif. DetectTrace est le moteur qui évalue ce contrat par rapport aux preuves.

Un DetectSpec peut décrire :

  1. les preuves d'exécution
  2. la télémétrie source
  3. les preuves de collecte
  4. les exigences de normalisation
  5. la sémantique des règles
  6. les attentes et le timing des alertes
  7. les cas de test live corrélés

Exemple :

spec_version: detectspec/v1
id: DET-PS-LIVE-001
title: Live Encoded PowerShell

inputs:
  profiles:
    live: {}

test:
  cases:
    healthy:
      event:
        event:
          code: 1
        process:
          name: powershell.exe
          command_line: powershell.exe -enc AAA

    broken:
      event:
        event:
          code: 1
        winlog:
          event_data:
            CommandLine: powershell.exe -enc AAA
        process:
          name: powershell.exe
          args: powershell.exe -enc AAA

checkpoints:
  normalization:
    require_event:
      all:
        - field: process.name
          op: endswith
          value: powershell.exe
    required_fields:
      - field: process.command_line
        from: winlog.event_data.CommandLine

  rule:
    match:
      all:
        - field: process.name
          op: endswith
          value: powershell.exe
        - field: process.command_line
          op: regex
          value: "(?i)(?:\\s|^)-(?:enc|encodedcommand)\\b"

Le JSON Schema se trouve dans :

schemas/detectspec-v1.schema.json

Le validateur d'exécution et le JSON Schema sont intentionnellement stricts concernant les structures DetectSpec inconnues afin que les fautes d'orthographe échouent tôt.

DSL de prédicats

Les prédicats feuilles utilisent :

field: process.name
op: equals
value: powershell.exe

Les opérateurs pris en charge incluent :

exists
equals
not_equals
contains
startswith
endswith
regex
in
gt
gte
lt
lte

Les prédicats peuvent être composés avec all, any et not.

Exemple :

all:
  - field: process.name
    op: endswith
    value: powershell.exe
  - any:
      - field: process.command_line
        op: contains
        value: "-enc"
      - field: process.command_line
        op: contains
        value: "-EncodedCommand"

Sémantique de la première étape en échec

DetectTrace suit une règle simple :

Preuves avant inférence. La première étape en échec l'emporte.

Si la normalisation échoue, DetectTrace ne prétend pas savoir si une règle ou une alerte en aval aurait réussi. Ces étapes sont signalées comme BLOCKED.

Télécharger l’outil