
APT-Hunterは、パープルチームの考え方に基づいて作成されたWindowsイベントログ用の脅威ハンティングツールであり、Windowsイベントログの海に隠されたAPTの動きを検出し、不審なアクティビティを発見するまでの時間を短縮します。
Windowsイベントログのための脅威ハンティング、パープルチームの視点で構築。
APT-HunterはWindowsイベントログのための脅威ハンティングツールです。事前定義された検出ルールとログ統計を使用して、大量のイベントの中に隠れたAPT活動を浮かび上がらせ、不審な挙動を発見するために必要な時間を短縮します。侵害評価において特に効果を発揮します。
結果はタイムラインとして出力され、Excel、Timeline Explorer、Timesketchなどのツールで直接分析したり、オプションのローカルLLMトリアージを備えた組み込みのWebダッシュボードで探索したりできます。
コンパイル済みバイナリはReleasesページからダウンロードするか、ソースから実行してください(Python 3.8+):
git clone https://github.com/ahmedkhlief/APT-Hunter.git
cd APT-Hunter
python3 -m pip install -r requirements.txt
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
-pはディレクトリまたは単一ファイルを受け付けます。分析終了時にダッシュボードを開くには-webを追加してください。





完全なリストはpython3 APT-Hunter.py -hを実行してください。主なオプション:
EVTXファイルのフォルダを分析(ログタイプは自動検出):
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
時間枠に絞る:
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport -start 2022-04-03 -end 2022-04-05T20:56
文字列、正規表現、または正規表現ファイルでハンティング:
python3 APT-Hunter.py -hunt "psexec" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile "(psexec|psexesvc)" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile huntfile.txt -p /opt/wineventlogs/ -o Project2
Sigmaルールでハンティング:
python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2
APT-Hunter用に変換された最新のSigmaルールを取得(rules.jsonを書き出します):
./Get_Latest_Sigma_Rules.sh
生成されたレポートをブラウザで閲覧:フィルタリング、チャート、インシデントタイムライン、IRレポートのエクスポート。
python3 run_webapp.py <Output>/<Output>_Report.xlsx # or pass the output directory
python3 APT-Hunter.py -p <logs> -o <Output> -web # analyse, then open the dashboard
python3 APT-Hunter.py -webview <Output> # open an existing report
トリアージ所見を承認すると、その所見は証拠とともにインシデントタイムラインに固定され、折りたたみ可能なサブイベントとして添付されます。サブイベントは他のすべてと混在するのではなく、テーブル内で所見の下に配置され、タイムラインチャートからは除外されるため、チャートは読みやすい状態に保たれます。所見を削除すると、そのサブイベントも一緒に削除されます。
サーバーはデフォルトで0.0.0.0:5000にバインドされます。変更するには--host / --port(または-webhost / -webport)を使用してください。例えばローカルに保つには--host 127.0.0.1とします。レビュー済みの所見とタイムラインは、レポートキャッシュが再構築されても保持されます。

メインダッシュボード:総イベント数と重大度カウント、重大度の内訳、最も多く発火した検出ルール、日別のイベント量。サイドバーにはレポート内のすべてのイベントログとサマリーテーブルが一覧表示されます。

インシデントタイムライン:固定された所見を時間順にプロットし、重大度で色分け。混雑した区間へズームやパンができ、AIエグゼクティブサマリーを生成し、IRレポートやCSVをエクスポートできます。

時系列タイムライン:攻撃チェーンがサブイベントに展開され、詳細パネルにナラティブ、MITREテクニック、スコアが表示されます。
インシデントタイムラインチャートはズーム可能なので、数分または数秒間隔で発生するイベントの集中も読みやすいままです。チャート上をドラッグして区間へズーム、Shift+ドラッグでパン、Ctrl/Cmd+ホイールでカーソル位置を中心にズーム、または下のオーバービューストリップを使用します。ラベルは決して重ならず、収まらないものは非表示になり、ドットにホバーするとそこに重なっているすべてのイベントが一覧表示されます。
ローカルモデルを使用して、検出されたイベントの悪性度をコマンドラインからスコアリング:
python3 APT-Hunter.py -p <logs> -o <Output> -llm -llm-provider ollama -llm-model llama3 -llm-severity High
またはダッシュボードからイベントごとに(チェック、説明、相関)。プロバイダー(Ollama / LM Studio / llama.cpp)、モデル、URL、タイムアウトはダッシュボードのSettingsページで設定します。OpenAI互換のローカルサーバーであればどれでも動作し、クラウドサービスにデータは送信されません。
ダッシュボードのサイドバーにあるAgentic Triageは、数千件のアラートを短い所見リストに変換します:
調査フェーズにはツール呼び出しをサポートするLLMが必要です。お使いのLLMが対応していない場合、APT-Hunterは固定のピボット/相関パイプラインにフォールバックします。カバレッジはどちらでも同一です。エージェントは一次パスの上に深みを加えるだけだからです。ツールのラウンド数と実時間制限はSettingsで上限を設定できます。

エージェント型トリアージ:実行履歴にスコープ、アラート数とクラスタ数、所見、実行ごとのLLM呼び出し回数が表示されます。ここでは1台のホスト上の91件のクリティカルアラートが32クラスタと単一の高スコア攻撃チェーンに集約されました。

所見の詳細:ナラティブ、MITREテクニック、証拠、および完全な調査トレース(エージェントが行ったすべてのイベント読み取り、タイムラインウィンドウ、アラート検索)により、各結論を監査できます。
注記: LLMの出力はトリアージの補助であり、判定ではありません。所見に依拠する前にレビューしてください。推論モデルでは、リクエストタイムアウトをデフォルトの200秒より大幅に引き上げる必要がある場合があります。
Twitter: @ahmed_khlief · LinkedIn: Ahmed Khlief
GNU GPL v3の下で配布されています。LICENSEを参照してください。
Sysmonのユースケース(Joeによって100以上のユースケースが追加されました)への素晴らしい貢献に対してJoe Maccryに感謝します。
| オプション | 説明 |
|---|
-p, --path | 分析するログファイルまたはフォルダ |
-o, --out | 出力名 / ディレクトリ |
-start, -end | タイムラインを制限(ISO形式) |
-tz | タイムゾーン(localまたは例:Asia/Dubai) |
-cores | 使用するCPUコア数(デフォルト:利用可能なコアの半分) |
-hunt, -huntfile, -eid | 文字列/正規表現、正規表現ファイル、またはイベントIDによるハンティング |
-sigma, -rules | JSONに変換されたSigmaルールでハンティング |
-o365hunt, -o365rules, -o365raw | Office 365監査ログのハンティング |
-procexec, -logon, -objaccess, -allreport | 追加レポート |
-web, -webview, -webhost, -webport | Webダッシュボードの起動 |
-llm, -llm-provider, -llm-url, -llm-model, -llm-key, -llm-severity, -llm-batch, -llm-context | ローカルLLM分析 |
| サンプル | 説明 |
|---|
| Sample_TimeSketch.csv | Timesketchにアップロードして攻撃の全体像を確認できるタイムライン |
| Sample_Report.xlsx | 提供されたすべてのWindowsログから検出されたすべてのイベント |
| Sample_Logon_Events.csv | 解析済みフィールド付きのすべてのログオンイベント(日時、ユーザー、送信元IP、ログオンプロセス、ワークステーション、ログオンタイプ、デバイス、元のログ) |
| Sample_Process_Execution_Events.csv | イベントログから取得されたすべてのプロセス実行 |
| Sample_Object_Access_Events.csv | イベント4663から取得されたオブジェクトアクセス |
| Sample_Collected-SIDS.csv | 調査を支援するためのユーザーとそのSID |
| EventID_Frequency_Analysis.xls | イベントIDの頻度分析 |