Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
detecttrace — セキュリティ検知をエンドツーエンドで追跡し、最初に失敗した段階を特定するオープンソースの検知エンジニアリングツール。 | Kitploit
ツール/GitHubGitHub/g0dse11/detecttrace
防御ツール脆弱性分析スクリプトと自動化DevSecOpsユーティリティとフレームワーク侵入検知インシデントレスポンスログ分析
GitHubg0dse11/detecttrace

detecttrace

セキュリティ検知をエンドツーエンドで追跡し、最初に失敗した段階を特定するオープンソースの検知エンジニアリングツール。

リポジトリを見る
1131日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

DetectTrace

検知は発火するはずだった。しかし、しなかった。DetectTrace はその理由を正確に教えてくれます。

DetectTrace は、セキュリティ検知をエンドツーエンドでテストし、最初に失敗したステージを特定するためのオープンソースの検知エンジニアリングツールです。

SIEM クエリだけをテストするのではなく、DetectTrace は検知をパイプラインとして扱います:

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

DetectSpec は何が起こるべきかを宣言します。DetectTrace は実際に何が起こったかの証拠を収集し、契約を評価し、最初に証明された失敗で因果推論を停止し、依存する下流ステージを BLOCKED としてマークします。

現在のライブバックエンドは Elastic Security です。DetectTrace には、ローカル開発とリグレッションテスト用の決定論的なファイルベースモードも含まれています。

DetectTrace が存在する理由

検知の失敗は、しばしば手動で診断されます:

  • テストは実際に実行されたのか?
  • テレメトリは生成されたのか?
  • バックエンドに到達したのか?
  • フィールドがリネームまたは削除されたのか?
  • ルールはまだマッチするのか?
  • ルールは無効化されているか、異常な状態か?
  • アラートは出現したのか、そしてそれはこの正確なテスト実行に属するものか?

DetectTrace はこれらの問いを実行可能なチェックと証拠に変えます。

失敗例:

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

重要なのは、検知が失敗したということだけではありません。DetectTrace は検知パスが最初にどこで無効になったのか、そしてその理由を説明します。

DetectTrace が現在サポートしているもの

  • DetectSpec v1 のバリデーション
  • JSON/JSONL 証拠からの決定論的なオフライントレース
  • 安全な宣言的述語 DSL。任意の Python やシェルの実行はなし
  • ネストされたフィールドチェック
  • スキーマ/マッピングドリフトの可能性に関するフィールドリネージのヒント
  • PASS / FAIL / BLOCKED / UNKNOWN / SKIPPED のステージセマンティクス
  • 最初に失敗したステージの診断
  • 安定した失敗コードと修復テキスト
  • 一意の detecttrace.run_id を使用した相関された Elastic Security テスト
  • 実際の Elastic ルールの存在/有効化/実行チェック
  • 相関された Elastic アラートの検証
  • アラートレイテンシの測定
  • 設定された CA による安全な Elasticsearch TLS
  • detecttrace doctor 環境チェック
  • text、JSON、JUnit 互換の出力
  • リグレッションテストと GitHub Actions CI
  • 再現可能なローカル Elasticsearch + Kibana ラボ

DetectTrace ではないもの

DetectTrace は以下ではありません:

  • 攻撃シミュレーションプラットフォーム
  • BAS の代替
  • SIEM ルールエディタ
  • 汎用脆弱性スキャナ
  • 検知が機能したかどうかを推測する AI システム

攻撃/テストの実行は後で統合できます。DetectTrace の仕事は、検知パスを検証し、観測された証拠から失敗を診断することです。

要件

  • Python 3.10+
  • 付属の Elastic ラボを実行したい場合のみ、Compose v2 付きの Docker

CI スイートは現在、Python 3.10、3.11、3.12、3.13 をテストしています。

5 分でできるオフラインクイックスタート

リポジトリをクローンし、仮想環境を作成し、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 .

インストールを確認します:

detecttrace --version

実行可能なスタータープロジェクトを作成します:

detecttrace init demo

次に:

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

生成されたプロジェクトは自己完結型です。Elasticsearch、Kibana、Docker、ネットワークアクセスは必要ありません。

正常な実行は次のように終わります:

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

オフラインの正常例と破損例

リポジトリには、既知の正常な証拠と意図的に破損させた証拠の両方を含む PowerShell フィクスチャが含まれています。

正常:

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

破損:

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

破損プロファイルは、必要な process.command_line の代わりに、元のコマンドラインを意図的に process.args の下に保持します。DetectTrace はその失敗を正規化に特定し、ルール/アラートの評価をブロックします。

DetectSpec

DetectSpec は宣言的な契約です。DetectTrace はその契約を証拠に対して評価するエンジンです。

DetectSpec は以下を記述できます:

  1. 実行証拠
  2. ソーステレメトリ
  3. 収集証拠
  4. 正規化要件
  5. ルールセマンティクス
  6. アラートの期待とタイミング
  7. 相関されたライブテストケース

例:

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"

JSON Schema はこちらにあります:

schemas/detectspec-v1.schema.json

ランタイムバリデータと JSON Schema は、スペルミスが早期に失敗するように、未知の DetectSpec 構造に対して意図的に厳格です。

述語 DSL

リーフ述語は次を使用します:

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

サポートされている演算子には以下が含まれます:

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

述語は all、any、not で組み合わせることができます。

例:

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"

最初に失敗したステージのセマンティクス

DetectTrace は単純なルールに従います:

推論より証拠を優先。最初に失敗したステージが勝つ。

正規化が失敗した場合、DetectTrace は下流のルールやアラートが成功したかどうかを知っているふりをしません。それらのステージは BLOCKED として報告されます。

証拠が反証されたのではなく利用できない場合、DetectTrace は推測せずに UNKNOWN を報告します。

安定した機械可読な結果スキーマは次のとおりです:

detecttrace.result/v1

重要なフィールドには以下が含まれます:

healthy
first_failed_stage
failure_code
confidence
root_cause
remediation
run_id
stages

現在の失敗コードには、次のようなカテゴリが含まれます:

INGESTION_FAILURE
TELEMETRY_MISSING
SCHEMA_DRIFT
REQUIRED_FIELD_MISSING
RULE_NOT_FOUND
RULE_DISABLED
RULE_LOGIC_MISMATCH
RULE_EXECUTION_ERROR
ALERT_TIMEOUT
UNKNOWN

ローカル Elastic Security ラボ

再現可能なセキュアラボがこちらに含まれています:

lab/elastic

これが提供するもの:

Elasticsearch 8.15.3   https://localhost:9201
Kibana 8.15.3          http://localhost:5602
Elasticsearch security enabled
Elasticsearch HTTP TLS enabled
Persistent Elasticsearch data
Persistent certificates
Kibana encryption keys
detecttrace-events index

完全なセットアップについては lab/elastic/README.md を参照してください。

短縮版は次のとおりです:

cd lab\elastic
Copy-Item .env.example .env
docker compose up -d

サービスが正常になったら、リポジトリルートに戻り、公開 CA をエクスポートします:

New-Item -ItemType Directory -Force .\certs | Out-Null
docker cp detecttrace-es:/usr/share/elasticsearch/config/certs/http_ca.crt .\certs\http_ca.crt
Copy-Item .detecttrace.example.yaml .detecttrace.yaml

次に環境を検証します:

detecttrace doctor

準備が整った環境では、以下に対して PASS が報告されます:

DetectTrace config
Elasticsearch CA
Elasticsearch
Telemetry index
Kibana

ローカルの .env、.detecttrace.yaml、エクスポートされた certs/ マテリアルは環境固有であり、コミットされません。

Elastic エンドツーエンドテスト

付属のライブ例は次のとおりです:

examples/elastic_live_detectspec.yaml

ラボで使用される Elastic Security ルールの例は次のとおりです:

Name:
DetectTrace - Encoded PowerShell

Index:
detecttrace-events

Query:
process.name : "powershell.exe" and process.command_line : "powershell.exe -enc AAA"

正常な相関テストを実行します:

detecttrace elastic test examples\elastic_live_detectspec.yaml `
  --rule-name "DetectTrace - Encoded PowerShell" `
  --case healthy

DetectTrace は:

  1. 一意の run ID を生成します
  2. 正確なテストイベントを注入します
  3. その run ID のテレメトリを取得します
  4. 正規化を評価します
  5. DetectSpec ルール述語を評価します
  6. Elastic ルールが存在することを検証します
  7. Elastic ルールが有効であることを検証します
  8. ルール実行証拠をチェックします
  9. 同じ run ID を持つ Elastic Security アラートをポーリングします
  10. おおよそのアラートレイテンシを報告します

アラートは現在の run ID に相関している必要があるため、古いアラートが新しいテストを合格させることはできません。

意図的に破損させたケースは次のとおりです:

ツールをダウンロード