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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
seclab-taskflows-fuzzing — GitHub Security Lab Taskflow Agent を活用した LLM 駆動のファジングパイプライン | Kitploit
ツール/GitHubGitHub/githubsecuritylab/seclab-taskflows-fuzzing
静的分析脆弱性スキャナー動的分析 (サンドボックス)脆弱性分析コード分析スクリプトと自動化ファジングマルウェア分析ユーティリティとフレームワーク
AIセキュリティ
GitHubgithubsecuritylab/seclab-taskflows-fuzzing

seclab-taskflows-fuzzing

GitHub Security Lab Taskflow Agent を活用した LLM 駆動のファジングパイプライン

リポジトリを見る
276731日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Seclab Taskflows Fuzzing

LLM駆動の、OSS-FuzzスタイルのネイティブC/C++プロジェクト向けファジングパイプライン。 実行にはAFL++、カバレッジにはclang+lcov、ハーネス作成、カバレッジフィードバックに基づく判断、トリアージ、レポート作成にはLLMエージェントを使用。

  • 完全自律型: GitHubリポジトリを渡すだけで、ターゲットの特定から脆弱性レポートまで全てを処理。
  • OSS-Fuzzスタイルの手法: フォーマットごとのミューテータ/辞書、構造を考慮したトークンスプライシング、カバレッジ駆動のハーネス改善。
  • 悪用可能性の判定と修正案を含む、機械可読なクラッシュレポートを生成。
  • リアルタイムのキャンペーン監視用ライブHTMLダッシュボード。
  • Python(taskflows/toolboxes/configs)で記述され、AFL++用のCハーネスを生成。
  • ステータス: 活発に開発中。

背景

このリポジトリには、 GitHub Security Lab Taskflow Agent用のファジングタスクフローが含まれています。 いくつかの共有ビルディングブロック (fetch_source_codeタスクフロー、local_file_viewer / gh_file_viewer ツールボックス、デフォルトのmodel_config)については seclab-taskflows コンパニオンリポジトリに依存しています — これらは Python依存関係として自動的にインストールされます。

コントリビューションを歓迎します!ガイドラインについてはCONTRIBUTING.mdをご覧ください。

要件

  • Python 3.11+
  • aptにアクセスできるLinux環境(またはCodespace)
  • AFL++、clang、lcov、ctags、cscope、graphviz(不足している場合、パイプラインによって自動インストールされます)
  • GitおよびGitHub CLI(gh)

インストール

pip install git+https://github.com/GitHubSecurityLab/seclab-taskflows-fuzzing

これにより、seclab-taskflow-agent と seclab-taskflows(親)が推移的に取り込まれるため、 seclab_taskflows.taskflows.audit.*、 seclab_taskflows.toolboxes.local_file_viewer、 seclab_taskflows.toolboxes.gh_file_viewer、および seclab_taskflows.configs.model_config という形式のすべてのドット参照が、 実行時に親ディストリビューションから解決されます。


目次

  1. これは何か
  2. クイックスタート
  3. アーキテクチャ
  4. パイプライン、段階ごとの説明
  5. カバレッジフィードバックループ
  6. 構造認識ファジング
  7. イテレーションとキャンペーンをまたぐ永続コーパス
  8. トリアージと脆弱性レポート
  9. ライブダッシュボード
  10. 出力ファイル
  11. データベーススキーマ
  12. MCPツール(エージェントの語彙)
  13. 調整可能なノブ(環境変数)
  14. パイプラインの拡張
  15. ベンチマークプロジェクトと結果
  16. 制限事項と注意点
  17. セキュリティ警告
  18. 開発:テスト、リンティング、コントリビューション
  19. 用語集

これは何か

このタスクフローは、完全に自律的なファジングパイプラインです。ネイティブC/C++プロジェクトのGitHubリポジトリを指定すると、次のことを行います:

  1. 不足していればAFL++ + clang/llvm/lcov + ctags/cscope/graphvizをインストールし、
  2. ソースを取得し、
  3. 候補となるファズターゲット(パーサー、デコーダー、バリデータなど)を特定し、
  4. ビルドシステムを分析し、ターゲットライブラリを3回ビルドします:AFL++エッジカバレッジ計装とサニタイザーを使用、AFL++ CMPLOG計装を使用、そしてclangソースベースカバレッジ計装を使用、
  5. ターゲットごとに1つ以上のハーネス候補を作成し、それぞれをAFL++計装された.aflバイナリ、AFL++ CMPLOG計装された.cmplogバイナリ、clangカバレッジ計装された.covバイナリとしてビルドし、
  6. (オプションで)60秒間のカバレッジで候補を評価し、最良のものを保持し、
  7. 時間予算を倍増させながらファズ/カバレッジ/改善ループを実行し、
  8. すべてのクラッシュをトリアージし、以前に既知のクラッシュが依然として再現することを確認し、判定、悪用可能性、提案パッチ、回帰テストのスケッチを含むクラッシュごとのMarkdown脆弱性レポートを作成し、
  9. 次のキャンペーン用にFuzz-Introspectorスタイルのコールグラフ + 未到達APIレポートを構築し、
  10. すべてをライブHTMLダッシュボードに公開します。

このパイプラインは精神においてOSS-Fuzzスタイルです:同じ技術の多く(フォーマット別ミューテーターと辞書、構造認識トークンスプライシング、カバレッジ駆動のハーネス改善、機械可読レポート、重複排除されたスタックハッシュクラッシュ)を使用していますが、はるかに小さく自己完結しています。


クイックスタート

# Inside the codespace (or a host with python + git available):
./scripts/fuzzing/run_fuzzing.sh tukaani-project/xz

これがインターフェース全体です。スクリプトは自律的に動作し、初回実行時に AFL++ をインストールし、その後タスクフローの残りを実行します。出力ファイルは ~/.local/share/seclab-taskflow-agent/seclab-taskflows/ に書き込まれます。

ダッシュボードはバックグラウンドで自動起動します。Codespace ではポート 8765 が自動転送されるため、任意のブラウザで開けば進行状況をリアルタイムで確認できます。

簡単なスモークテストには、小さなターゲットを使用してください:

./scripts/fuzzing/run_fuzzing.sh DaveGamble/cJSON

アーキテクチャ

上から下へ3つのレイヤー:

┌────────────────────────────────────────────────────────────────────┐
│  scripts/fuzzing/run_fuzzing.sh                                    │
│      shell driver; chains the taskflow stages with `set +e`        │
└────────────────────┬───────────────────────────────────────────────┘
                     │
                     ▼
┌────────────────────────────────────────────────────────────────────┐
│  src/seclab_taskflows/taskflows/fuzzing/*.yaml                     │
│      LLM agent prompts; one YAML per pipeline stage                │
└────────────────────┬───────────────────────────────────────────────┘
                     │  (calls MCP tools)
                     ▼
┌────────────────────────────────────────────────────────────────────┐
│  src/seclab_taskflows/mcp_servers/                                 │
│   ├ fuzz_context.py    persistence (SQLite via SQLAlchemy)         │
│   └ fuzz_runner.py     subprocess wrappers (AFL, clang, lcov, ...) │
│                                                                    │
│  scripts/fuzzing/dashboard.py                                      │
│   read-only HTML view of fuzz_context.db                           │
└────────────────────────────────────────────────────────────────────┘

主要な設計ルール:

  • MCPツールにグローバル状態を持たない。 すべてのツール関数は明示的な 引数を取り、永続的な状態は fuzz_context.db に存在する。
  • LLMエージェントが意思決定を担い、MCPツールが実行を担う。 エージェントは 何をファズするか、どのようなハーネスを書くか、どのギャップを次に追うかを 決定し、MCPツールは run_afl_for、compile_harness、store_crash などを 公開するだけである。
  • 可能な限り冪等性を確保する。 同じリポジトリに対してパイプラインを 再実行すると、ターゲット/ハーネス/実行を重複させるのではなくアップサートする。 これにより、永続的なコーパスとキャンペーン間の引き継ぎが機能する。
  • ハーネスごとに3つのバイナリ。 AFLのエッジ計装は人間が読めるカバレッジ レポートには適さないため、各ハーネスは afl-clang-lto++ -fsanitize=address,undefined(.afl バイナリ)と clang++ -fprofile-instr-generate -fcoverage-mapping(.cov バイナリ)でビルドされる。.afl バイナリがファズを行い、.cov バイナリがAFLキューを再生して実際のソース行/関数/ブランチカバレッジを 生成する。3つ目のサニタイザーなしの .cmplog バイナリ(afl-clang-lto++ に AFL_LLVM_CMPLOG=1 を付けたもの)は afl-fuzz -c に渡され、AFL++の CMPLOG/RedQueenステージがマジック値とチェックサムを解決できるようにする。 3つのビルドはすべて必須である。CMPLOGビルドが失敗するとハーネスビルドが 失敗し、run_afl_for は .cmplog バイナリなしでは実行を拒否する。 afl-clang-lto++ がインストールされていない場合、AFL++ビルドは代わりに afl-clang-fast++ を使用し、compile_harness は警告を返す。C++ ドライバーはC++標準ライブラリをリンクするため、CとC++の両方のハーネスと ライブラリが動作する。.c ファイルは依然としてCとしてコンパイルされる(-x c)。

パイプライン、ステージごとの解説

#ステージTaskflow YAML
1AFL++ + ツール群のインストールscripts/fuzzing/install_afl.sh
2ソースの取得seclab_taskflows.taskflows.audit.fetch_source_code
3ファズターゲットの特定seclab_taskflows_fuzzing.taskflows.fuzzing.identify_fuzz_targets
4ビルドシステムの分析seclab_taskflows_fuzzing.taskflows.fuzzing.analyze_build_system
5a初期ハーネスの作成(要求された場合は×N候補)seclab_taskflows_fuzzing.taskflows.fuzzing.write_initial_harnesses
5bハーネスのビルド(AFL++エッジ + AFL++ CMPLOG + clangカバレッジ)seclab_taskflows_fuzzing.taskflows.fuzzing.build_harnesses
5c候補の適格性評価(HARNESS_CANDIDATES > 1 の場合)seclab_taskflows_fuzzing.taskflows.fuzzing.qualify_harnesses
6ファズ/カバレッジ/改善ループ(×Nイテレーション)seclab_taskflows_fuzzing.taskflows.fuzzing.fuzz_iteration
7クラッシュのトリアージseclab_taskflows_fuzzing.taskflows.fuzzing.triage_crashes
8既知のクラッシュが依然として再現することを確認seclab_taskflows_fuzzing.taskflows.fuzzing.confirm_fixed_crashes
9コールグラフ + 未到達APIレポートの構築seclab_taskflows_fuzzing.taskflows.fuzzing.analyze_call_graph
10クラッシュごとの脆弱性レポートの作成seclab_taskflows_fuzzing.taskflows.fuzzing.write_vuln_reports
11キャンペーンレポートの作成seclab_taskflows_fuzzing.taskflows.fuzzing.write_report

各ステージはエージェントがエンドツーエンドで実行する自己完結型の taskflow YAMLである。ステージ間の通信は fuzz_context.db 内のSQLite データベースを介してのみ行われ、インメモリでの受け渡しは存在しない。


カバレッジフィードバックループ

これがパイプラインの核心である。時間予算はイテレーションごとに倍増する:

30s → 60s → 120s → 240s → 480s → 960s    (≈ 32 min/target)

イテレーションごと、ハーネスごとに、エージェントは以下を実行する:

ツールをダウンロード