Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
autoharness — ライブラリに基づいてファジングハーネスを自動生成するツール | Kitploit
ツール/GitHubGitHub/parikhakshat/autoharness
脆弱性分析コード分析ファジングバイナリ解析
GitHubparikhakshat/autoharness

autoharness

ライブラリに基づいてファジングハーネスを自動生成するツール

リポジトリを見る
29325164年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

AutoHarness

作成者: Akshat Parikh

このツールは何ですか?

AutoHarnessは、ファジング用のハーネスを自動生成するツールです。このアイデアは、現在のファジングにおける同時発生の問題に由来します。大規模なコードベースには数千もの関数やコード片があり、それらはライブラリの深くに埋もれていることがよくあります。スマートファザーがそのコードパスに到達するのは非常に困難であり、時には不可能です。 oss-fuzzのような大規模なファジングプロジェクトでも、ファジングでカバーされていないコードベースの部分がまだあります。このプログラムは、その問題をある程度軽減するとともに、セキュリティ研究者がコードベースの初期テストに使用できるツールを提供することを目指しています。このプログラムは、CおよびC++で書かれたコードベースのみをサポートしています。

セットアップ/デモンストレーション

このプログラムは、libfuzzer用にllvmとclang、関数検索にCodeql、そして一般的なプログラムにPythonを使用しています。このプログラムは、Ubuntu 20.04でllvm 12とPython 3を使用してテストされました。以下が初期セットアップです。

root@kitploit:~
sudo apt-get update;
sudo apt-get install python3 python3-pip llvm-12* clang-12 git;
pip3 install pandas lief subprocess os argparse ast;

Codeqlのインストール手順は https://github.com/github/codeql に従ってください。 CLIツールとライブラリを必ずインストールしてください。私のテストでは、ツールとライブラリを1つのフォルダにまとめて保存しています。 最後に、このリポジトリをクローンするか、リリースをダウンロードしてください。 以下は、nginxで複数引数モードを設定して実行したプログラムの出力です。 使用したコマンドはこれです。

root@kitploit:~
python3 harness.py -L /home/akshat/nginx-1.21.0/objs/ -C /home/akshat/codeql-h/ -M 1 -O /home/akshat/autoharness/ -D nginx -G 1 -Y 1 -F "-I /home/akshat/nginx-1.21.0/objs -I /home/akshat/nginx-1.21.0/src/core -I /home/akshat/nginx-1.21.0/src/event -I /home/akshat/nginx-1.21.0/src/http -I /home/akshat/nginx-1.21.0/src/mail -I /home/akshat/nginx-1.21.0/src/misc -I /home/akshat/nginx-1.21.0/src/os -I /home/akshat/nginx-1.21.0/src/stream -I /home/akshat/nginx-1.21.0/src/os/unix" -X ngx_config.h,ngx_core.h

結果: image コンパイルのデバッグをさらに進め、ヘッダーファイルなどを追加することで成功率を上げることは確かに可能です。nginxプロジェクトはコンパイル後に共有オブジェクトを持たないことに注意してください。ただし、このプログラムにはPIE実行可能ファイルを共有ライブラリに変換する機能があります。

予定されている機能(進捗順)

  1. 構造体ファジング

現在プログラムで実装されている複数引数を持つ関数をファジングする方法は、ファジングデータプロバイダを使用するものです。この統合には改善すべき点がありますが、データ構造を用いてこの機能を組み込めると思います。これをコーディングする際に遭遇する問題は、codeqlとネストされた構造体に関するものです。関数ごとに異なる複数のクエリを書かずに行うのは特に困難です。要するに、この機能にはさらなる作業が必要です。また、protobufを使用した簡単な解決策も考えていました。

  1. 実装ベースのハーネス作成

codeqlを使用して、関数のパラメータがどのように初期化されるかをマッピングする制御フローグラフを生成することが可能です。その情報を使って、より良いハーネスを作成できます。別の方法として、ライブラリ内に存在する関数の実装を探し、その情報を利用して関数のハーネスとしての実装を推測することもできます。現在これに関して抱えている問題は、codeqlで制御フローグラフを生成することです。

  1. 並列ファジング/誤検出検出

ASANを使用して、すべてのハーネスを実行し、一般的な誤検出を拾い上げるシンプルなプログラムを作成できます。また、すべてのハーネスを一度に実行し、その統計情報を表示する新しいインターフェースを作成することもできます。

貢献/バグ

このプログラムにバグを見つけた場合は、issueを作成してください。修正を試みます。また、新機能やパフォーマンス向上の実装方法、または現在予定されている機能についてのアイデアがある場合は、プルリクエストを作成するか、タグ(contribution)を付けてissueを作成してください。

PSA

このツールはいくつかの誤検出を生成します。まずクラッシュを分析し、それが有効なバグなのか、単なる実装バグなのかを確認してください。また、一部の関数がコンパイルされない場合はデバッグモードを有効にできます。これにより、不足しているヘッダーファイルやリンケージの問題を理解するのに役立ちます。作業中のプロジェクトに共有ライブラリがなく実行可能ファイルのみの場合は、実行可能ファイルをPIE形式でコンパイルして、このプログラムが共有ライブラリに変換できるようにしてください。

参考文献

  1. https://lief.quarkslab.com/doc/latest/tutorials/08_elf_bin2lib.html
ツールをダウンロード