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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Bughound — Elasticsearch ベースの静的コード解析ツール | Kitploit
ツール/GitHubGitHub/mhaskar/bughound
脆弱性スキャナー静的コード分析 (SAST)脆弱性分析コード分析DevSecOps
GitHubmhaskar/bughound

Bughound

Elasticsearch ベースの静的コード解析ツール

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Stability Version Python Docker Pulls

Bughoundとは?

Bughound Logo

Bughoundは、オープンソースの静的コード解析ツールです。コードを解析し、その結果をElasticsearchとKibanaに送信することで、コード内の潜在的な脆弱性に関する有用な洞察を得ることができます。

Bughoundには、事前設定済みのダッシュボードを備えた独自のElasticsearchおよびKibana Dockerイメージが用意されており、検出結果を強力に可視化できます。

以下のようなさまざまな種類の脆弱性を検出できます。

  • コマンドインジェクション
  • XXE
  • 安全でないデシリアライゼーション
  • その他多数!

現在、BughoundはPHPおよびJAVAコードを解析でき、これらの言語向けの安全でない関数群が含まれています。

今後、さらに多くの関数や言語を追加していく予定ですが、現時点ではプロジェクトの安定性自体に主眼を置いています。

Bughoundの結果は100%正確ではないことに注意してください。これは、分析中に潜在的な弱点を特定するための支援ツールとして構築されています。

動作の仕組み

まず、Bughoundは監査したいファイルの拡張子に基づいてプロジェクト内の全ファイルのリストを作成し、各ファイルを読み込んでプロジェクトの言語向けに事前定義された安全でない関数を探します。

解析フェーズでは、事前設定された正規表現とカスタムテキストマッチングを使用して潜在的な脆弱性を検出します。そのため、これらの検出結果が悪用可能かどうかを確認するには、手動による解析が必要です。

最後に、結果をBughoundのDockerイメージ(事前設定済みのElasticsearchとKibana、および検出結果用のカスタマイズされたダッシュボードを含む)に送信します。

ダッシュボードでは、検出結果に関する以下のような詳細情報が提供されます。

  • 関数名
  • 脆弱性のカテゴリ
  • 行番号
  • その他多数!

また、Kibanaを使用して、潜在的に脆弱なコードスニペットを表示し、解析とトレースを開始して悪用可能かどうかを確認できます。

もちろん、独自のELKスタックを使用することも可能で、その場合Bughoundが初期設定を行いますが、事前設定されたダッシュボードは利用できなくなります。

要件

以下のコマンドを使用して、Bughoundコードの実行に必要な要件をすべてインストールできます。

pip3 install -r requirements.txt

これにより、コードに必要なすべての要件がインストールされます。

また、Bughoundイメージを実行するにはDockerのインストールが必要です。詳細は次のセクションで説明します。

独自のElasticsearchおよびKibanaインスタンスを使用する場合は、Dockerのインストール手順をスキップしてください

インストール

以下のコマンドを使用して、Bughoundの最新バージョンを入手してください。

git clone https://github.com/mhaskar/Bughound

前の手順で要件をインストールした後、以下のコマンドでBughoundを実行できます。

./bughound.py

Bughoundのメイン画面が表示されます。

root@kitploit:~
┌─[askar@hackbook]─[/opt/bughound]
└──╼ $./bughound.py

.______    __    __    _______  __    __    ______    __    __  .__   __.  _______
|   _  \  |  |  |  |  /  _____||  |  |  |  /  __  \  |  |  |  | |  \ |  | |       \
|  |_)  | |  |  |  | |  |  __  |  |__|  | |  |  |  | |  |  |  | |   \|  | |  .--.  |
|   _  <  |  |  |  | |  | |_ | |   __   | |  |  |  | |  |  |  | |  . `  | |  |  |  |
|  |_)  | |  `--'  | |  |__| | |  |  |  | |  `--'  | |  `--'  | |  |\   | |  '--'  |
|______/   \______/   \______| |__|  |__|  \______/   \______/  |__| \__| |_______/



          \ /
          oVo
      \___XXX___/
       __XXXXX__
      /__XXXXX__\
      /   XXX   \
           V                  V1.0 Beta

[+] Example: ./bughound3.py --path vulnerable_code/ --language php --extension .php --name testproject

usage: bughound.py [-h] [--path PATH] [--git GIT] --language LANGUAGE
                   --extension EXTENSION --name NAME [--verbose [VERBOSE]]
bughound.py: error: argument --language is required
┌─[✗]─[askar@hackbook]─[/opt/bughound]
└──╼ $

Dockerイメージのインストール

BughoundのDockerイメージをインストールするには、以下のように実行します。

docker pull bughound/bughound

これにより、イメージの最新バージョンがプルされ、マシンに保存されます。

イメージをプルしたら、以下のコマンドで実行できます。

docker run --name bughound -p5601:5601 -p 9200:9200 bughound/bughound

これにより、bughoundという新しいコンテナでイメージが実行され、BughoundがElasticsearchおよびKibanaとホスト間で通信するために必要なポートが公開されます。

イメージを使用するには、最大仮想メモリを増やす必要がある場合があります。そのため、以下のコマンドを実行してください。

sysctl -w vm.max_map_count=262144

この2つを完了すれば、Bughoundを使用する準備は完了です。

使用方法

コードの解析プロセスを開始するには、いくつかのオプションを持つBughound.pyファイルを使用します。これらのオプションをヘルプバナーで表示するには、以下のコマンドを使用します。

root@kitploit:~
┌─[✗]─[askar@hackbook]─[/opt/bughound]
└──╼ $./bughound.py -h

.______    __    __    _______  __    __    ______    __    __  .__   __.  _______
|   _  \  |  |  |  |  /  _____||  |  |  |  /  __  \  |  |  |  | |  \ |  | |       \
|  |_)  | |  |  |  | |  |  __  |  |__|  | |  |  |  | |  |  |  | |   \|  | |  .--.  |
|   _  <  |  |  |  | |  | |_ | |   __   | |  |  |  | |  |  |  | |  . `  | |  |  |  |
|  |_)  | |  `--'  | |  |__| | |  |  |  | |  `--'  | |  `--'  | |  |\   | |  '--'  |
|______/   \______/   \______| |__|  |__|  \______/   \______/  |__| \__| |_______/



          \ /
          oVo
      \___XXX___/
       __XXXXX__
      /__XXXXX__\
      /   XXX   \
           V                  V1.0 Beta

[+] Example: ./bughound3.py --path vulnerable_code/ --language php --extension .php --name testproject

usage: bughound.py [-h] [--path PATH] [--git GIT] --language LANGUAGE
                   --extension EXTENSION --name NAME [--verbose [VERBOSE]]

optional arguments:
  -h, --help            show this help message and exit
  --path PATH           local path of the source code
  --git GIT             git repository URL
  --language LANGUAGE   the used programming language
  --extension EXTENSION
                        extension to search for
  --name NAME           project name to use
  --verbose [VERBOSE]   show debugging messages
┌─[askar@hackbook]─[/opt/bughound]
└──╼ $

ローカルプロジェクトのスキャン

例えば、ローカルのPHPプロジェクトをスキャンするには、以下のコマンドを使用します。

./bughound.py --path /opt/dummyproject --language php --extension .php --name dummyproject

このコマンドは、Elasticsearchインデックスに「dummyproject」という新しいプロジェクトを作成し、ローカルパス「/opt/dummyproject」内の拡張子「.php」の全ファイルをクロールし、結果をElasticsearchに送信します。

リモートGitリポジトリのスキャン

また、--gitスイッチを使用して、リモートプロジェクトをGitリポジトリからプルすることもできます。例:

./bughound.py --git https://github.com/DummyCode/DummyProject --language php --extension .php --name dummyproject

Bughoundはコードをクローンしてprojectsディレクトリに保存し、その後スキャンを実行します。

事前設定済みダッシュボード

公式のBughound Dockerイメージを使用する場合、解析に役立ついくつかのすぐに使えるダッシュボードが提供されます。

現在利用可能なダッシュボードは以下の通りです。

  • Bughoundメインダッシュボード
  • コマンドインジェクションダッシュボード
  • デシリアライゼーションダッシュボード
  • XXEダッシュボード

これらのダッシュボードは、コード内で見つかった関数やコードスニペットに関する統計情報を提供し、解析プロセスを開始するのに役立ちます。

その他のリソース

Bughoundの詳細については、以下の記事を参照してください。

  • Unveiling BugHound: a static code analysis tool based on ElasticSearch

ライセンス

このプロジェクトはGPL-3.0ライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。

ツールをダウンロード