Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
detecttrace — Herramienta de ingeniería de detección de código abierto que rastrea las detecciones de seguridad de principio a fin e identifica la primera etapa que falla. | Kitploit
Herramientas/GitHubGitHub/g0dse11/detecttrace
Herramientas DefensivasAnálisis de VulnerabilidadesScripting y AutomatizaciónDevSecOpsUtilidades y FrameworksDetección de IntrusionesRespuesta a IncidentesAnálisis de Registros
GitHubg0dse11/detecttrace

detecttrace

Herramienta de ingeniería de detección de código abierto que rastrea las detecciones de seguridad de principio a fin e identifica la primera etapa que falla.

113hace 1 díaAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver Repositorio
Compartir

DetectTrace

Una detección debería haberse activado. No lo hizo. DetectTrace te dice exactamente por qué.

DetectTrace es una herramienta de código abierto de ingeniería de detecciones para probar detecciones de seguridad de extremo a extremo y localizar la primera etapa que falla.

En lugar de probar solo una consulta de SIEM, DetectTrace trata una detección como un pipeline:

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

Un DetectSpec declara lo que debería ocurrir. DetectTrace recopila evidencia de lo que realmente ocurrió, evalúa el contrato, detiene el razonamiento causal en la primera falla comprobada y marca las etapas posteriores dependientes como BLOCKED.

El backend activo actual es Elastic Security. DetectTrace también incluye un modo determinista respaldado por archivos para desarrollo local y pruebas de regresión.

Por qué existe DetectTrace

Las fallas de detección a menudo se diagnostican manualmente:

  • ¿Se ejecutó realmente la prueba?
  • ¿Se generó telemetría?
  • ¿Llegó al backend?
  • ¿Se renombró o se eliminó algún campo?
  • ¿La regla sigue coincidiendo?
  • ¿Está la regla deshabilitada o en mal estado?
  • ¿Apareció la alerta y pertenecía a esta ejecución de prueba exacta?

DetectTrace convierte esas preguntas en comprobaciones ejecutables y evidencia.

Ejemplo de falla:

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

Lo importante no es solo que la detección falló. DetectTrace explica dónde la ruta de detección se volvió inválida por primera vez y por qué.

Qué admite DetectTrace actualmente

  • Validación de DetectSpec v1
  • trazas offline deterministas a partir de evidencia JSON/JSONL
  • DSL de predicados declarativo y seguro; sin ejecución arbitraria de Python o shell
  • comprobaciones de campos anidados
  • indicios de linaje de campos para probable deriva de esquema/mapeo
  • semántica de etapas PASS / FAIL / BLOCKED / UNKNOWN / SKIPPED
  • diagnósticos de la primera etapa que falla
  • códigos de falla estables y texto de remediación
  • pruebas correlacionadas de Elastic Security usando un detecttrace.run_id único
  • comprobaciones reales de existencia/habilitación/ejecución de reglas de Elastic
  • verificación correlacionada de alertas de Elastic
  • medición de latencia de alertas
  • TLS seguro de Elasticsearch con una CA configurada
  • comprobaciones de entorno con detecttrace doctor
  • salida en texto, JSON y compatible con JUnit
  • pruebas de regresión y CI con GitHub Actions
  • laboratorio local reproducible de Elasticsearch + Kibana

Qué no es DetectTrace

DetectTrace no es:

  • una plataforma de simulación de ataques
  • un reemplazo de BAS
  • un editor de reglas de SIEM
  • un escáner de vulnerabilidades genérico
  • un sistema de IA que adivina si una detección funcionó

La ejecución de ataques/pruebas puede integrarse más adelante. La función de DetectTrace es verificar la ruta de detección y diagnosticar fallas a partir de la evidencia observada.

Requisitos

  • Python 3.10+
  • Docker con Compose v2 solo si deseas ejecutar el laboratorio de Elastic proporcionado

La suite de CI actualmente prueba Python 3.10, 3.11, 3.12 y 3.13.

Inicio rápido offline en cinco minutos

Clona el repositorio, crea un entorno virtual e instala 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 .

Comprueba la instalación:

detecttrace --version

Crea un proyecto inicial ejecutable:

detecttrace init demo

Luego:

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

El proyecto generado es autocontenido. No requiere Elasticsearch, Kibana, Docker ni acceso a la red.

Una ejecución saludable termina con:

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

Ejemplos offline saludables y rotos

El repositorio incluye un fixture de PowerShell con evidencia tanto correcta conocida como deliberadamente rota.

Saludable:

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

Roto:

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

El perfil roto conserva deliberadamente la línea de comandos original bajo process.args en lugar del process.command_line requerido. DetectTrace localiza esa falla en la normalización y bloquea la evaluación de reglas/alertas.

DetectSpec

DetectSpec es el contrato declarativo. DetectTrace es el motor que evalúa ese contrato contra la evidencia.

Un DetectSpec puede describir:

  1. evidencia de ejecución
  2. telemetría de origen
  3. evidencia de recolección
  4. requisitos de normalización
  5. semántica de reglas
  6. expectativas de alertas y tiempos
  7. casos de prueba en vivo correlacionados

Ejemplo:

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"

El JSON Schema está en:

schemas/detectspec-v1.schema.json

El validador en tiempo de ejecución y el JSON Schema son intencionalmente estrictos con la estructura desconocida de DetectSpec para que los errores de escritura fallen temprano.

DSL de predicados

Los predicados hoja usan:

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

Los operadores admitidos incluyen:

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

Los predicados pueden componerse con all, any y not.

Ejemplo:

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"

Semántica de la primera etapa que falla

DetectTrace sigue una regla simple:

Evidencia antes que inferencia. Gana la primera etapa que falla.

Si la normalización falla, DetectTrace no pretende saber si una regla o alerta posterior habría tenido éxito. Esas etapas se reportan como BLOCKED.

Si la evidencia no está disponible en lugar de estar refutada, DetectTrace reporta UNKNOWN en lugar de adivinar.

El esquema de resultado estable y legible por máquina es:

detecttrace.result/v1

Los campos importantes incluyen:

Descargar herramienta