アップデート一覧に戻る
New releaseAug 5, 2026

Zircolite v3.8.1

EVTX、Auditd、Sysmon for Linuxのログを対象としたスタンドアロンSIGMAベースの検出ツール

共有

Zircolite

EVTX、Auditd、Sysmon for Linux、XML、CSV、JSON ログ向けのスタンドアロン Sigma ベース検出

python version

Zircolite は、あなたのログに対して Sigma ルールを実行します。イベントを SQLite にフラット化し、各ルールを SQL クエリに変換して、一致したものをオフラインで、1 つのコマンドで報告します。

ターミナルで動作する Zircolite

  • 多数のログ形式を自動検出: Windows EVTX(バイナリ、XML、JSON)、Auditd、Sysmon for Linux、EVTXtract、CSV、XML、JSON、およびプレーンなものや gzip、bzip2、ZIP、7-Zip アーカイブ内のもの。
  • Sigma ルールをそのまま: pySigma で変換されたネイティブ YAML、または rules/ 内の既製のルールセット。相関ルールも含みます。
  • 高速: コンパイル済みのフラット化カーネル、並列ワーカー、ルールのプリフィルタリング。ベンチマークを参照してください。
  • フィールド処理: パックされたフィールドを分割し、サンドボックス化された Python 変換(Base64 デコード、IOC 抽出、LOLBin 検出など)を実行します。
  • エクスポート: JSON、CSV、および Splunk、Elastic、OpenSearch、Timesketch、SARIF、ATT&CK Navigator 用のテンプレート。
  • タイムライン: すべての検出を時系列順に 1 行ずつ、イベントの 1 行サマリー付きで、CSV または JSON lines として出力します(--timeline)。
  • Zircolite Viewer: すべてのイベントと検出を 1 つの zip にまとめ、ブラウザでオフラインで開けます。

📖 ドキュメント をお読みください。docs/ にもあります。

インストール

スタンドアロンバイナリ、インストール不要: リリースからお使いのプラットフォーム用の zip をダウンロードしてください(Linux x64 および ARM64、macOS Apple silicon、Windows x64 および ARM64)。

Docker:

docker pull wagga40/zircolite:latest

PDM を使い、Python 3.11 から 3.14 までをソースからインストール:

git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
pdm use -f 3.14
pdm install

pdm use は PDM を Python 3.15 およびフリースレッドビルドから遠ざけます。これらは まだサポートされていません。3.11 から 3.13 のいずれでも問題ありません。 uv を使用する場合:

git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
uv sync --python 3.14+gil

ソースからのインストールではネイティブのフラット化カーネルをコンパイルするため、Cコンパイラが必要です。Cコンパイラがない場合は、より低速なPythonカーネルにフォールバックします。コンパイラパッケージ、バイナリの詳細(macOSの隔離属性、チェックサム)、Dockerの権限については、インストールを参照してください。

クイックスタート

# Windows logs, with the default ruleset (rules/rules_windows_merged.json)
python3 zircolite.py --events sysmon.evtx

# Linux logs: the format is detected
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json

# Native Sigma rules, through pySigma pipelines
python3 zircolite.py --events logs/ --ruleset ./sigma/rules/windows/process_creation \
    --pipeline sysmon --pipeline windows-logsources

# Every event and detection, for the Zircolite Viewer
python3 zircolite.py --events logs/ --package

# The detections as a timeline, for Timeline Explorer or a spreadsheet
python3 zircolite.py --events logs/ --timeline

バイナリの場合は、python3 zircolite.py の代わりに ./Zircolite を実行します。ソースから実行する場合は、環境がアクティブでない限り、コマンドの前に pdm run(または uv run)を付けます。Docker の場合は、ログをマウントし、絶対パスを指定します:

docker run --rm --tty -v $PWD:/case/input:ro -v $PWD:/case/output \
    wagga40/zircolite:latest --events /case/input -o /case/output/detected_events.json

Linux ホストでは、--user "$(id -u):$(id -g)" と -l /case/output/zircolite.log を追加してください。イメージは非特権ユーザーとして実行されるため、あなたが所有するディレクトリには書き込めません。

検出結果は detected_events.json に出力されます。試すためのログについては、EVTX-ATTACK-SAMPLES を参照してください。

[!IMPORTANT] デフォルトのルールセットには、ノイズの多いルールや低速なルールが含まれている場合があります。 環境に合わせてルールを選択し、python3 zircolite.py -U で更新してください。

仕組み

Zircolite は各イベントを SQLite テーブルの 1 行に平坦化し、すべての Sigma ルールをそのテーブルに対する SQL クエリに変換して、一致する行を報告します。

Zircolite の仕組み: ログは SQLite テーブルの行に平坦化され、Sigma ルールは SQL クエリになり、一致した行が検出結果になります

Zircolite Viewer

--package は、その実行のすべてのイベントを、検出結果と相関アラートを関連付けた状態で 1 つの zip に書き出します。展開して index.html を開いてください。ビューアはオフラインで動作し、概要、検出結果、任意の列で検索・フィルタ・並べ替えができるイベントテーブル、タイムライン、ATT&CK マトリクス、エンティティ、最も稀な値のスタッキング、ログオンとラテラルムーブメント、プロセスツリー、SQL コンソールを提供します。パッケージは、その元となったログと同様に扱って共有してください。詳細は Zircolite Viewer を参照してください。

Zircolite Viewer のツアー: 概要、重大な検出とそのイベント、列フィルタとその列の最も稀な値、PowerShell コマンドがデコードされたイベントとそのプロセスアクティビティ、タイムライン、ATT&CK マトリクス、エンティティ、スタッキング、ラテラルムーブメントと特権セッション、プロセスツリー、SQL コンソール

ベンチマーク

10 コアの Apple M1 Max における中央値の実時間。各ツールはデフォルト設定で独自のルールを使用:

ツールSysmon EVTX 4 件、478 MB11 チャネルにわたる EVTX 8 件、13.3 GB
Zircolite7.7 秒30.2 秒
Hayabusa 4.2.023.3 秒500.3 秒
Chainsaw 2.17.148.3 秒183.0 秒

Zircolite は並列ワーカー(--no-parallel で無効化)により他のツールより多くのメモリを使用し、ルールセットも異なるため、検出件数は比較できません。メモリ、セットアップ、再現方法については Benchmark を参照してください。

チュートリアル、参考文献、関連プロジェクト

チュートリアル(以前のバージョン向けに執筆されたもの):

参考文献:

Zircolite は KAPE および Velociraptor の中でも実行できます。

ライセンス

カテゴリ