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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/yampelo/beagle
フォレンジックデジタルフォレンジック脅威インテリジェンスインシデントレスポンスログ分析
GitHubyampelo/beagle

beagle

Beagleは、セキュリティログやデータをグラフに変換するインシデント対応およびデジタルフォレンジックツールです。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Beagle

Build Status codecov Read The Docs Docker PyPI Slack

  1. Beagleについて
  2. インストール
    1. Docker
    2. Pythonパッケージ
    3. 設定
  3. Webインターフェース
    1. データのアップロード
    2. 既存のグラフの参照
    3. グラフインターフェース
      1. ノードとエッジの検査
      2. 近隣ノードの展開
      3. ノードの非表示
      4. ミューテーターの実行
      5. ノードとエッジの種類の切り替え
      6. 元に戻す/やり直しとリセット
      7. グラフの視点
  4. Pythonライブラリ
    1. エッジ生成の制御
    2. 保存されたJSONの読み込み
  5. ドキュメント

Beagleについて

Beagleは、データソースとログをグラフに変換するインシデント対応およびデジタルフォレンジックツールです。対応データソースには、FireEye HX Triage、Windows EVTXファイル、SysMonログ、WindowsメモリのRawイメージが含まれます。生成されたグラフは、Neo4JやDGraphなどのグラフデータベースに送信するか、PythonのNetworkXオブジェクトとしてローカルに保持できます。

Beagleは、Pythonライブラリとして直接使用することも、提供されるWebインターフェースを介して使用することもできます。

ライブラリは、単一のデータソースからの一連の関数呼び出しとして使用できます。

>>> from beagle.datasources import SysmonEVTX

>>> graph = SysmonEVTX("malicious.evtx").to_graph()
>>> graph
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

複数のアーティファクトから生成されたグラフとしても使用できます。

>>> from beagle.datasources import SysmonEVTX, HXTriage, PCAP
>>> from beagle.backends import NetworkX

>>> nx = NetworkX.from_datasources(
    datasources=[
        SysmonEVTX("malicious.evtx"),
        HXTriage("alert.mans"),
        PCAP("traffic.pcap"),
    ]
)
>>> G = nx.graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

または、データソースからグラフへの各中間ステップを明示的に呼び出すこともできます。

>>> from beagle.backends import NetworkX
>>> from beagle.datasources import SysmonEVTX
>>> from beagle.transformers import SysmonTransformer

>>> datasource = SysmonEVTX("malicious.evtx")

# Transformerはデータソースを受け取り、各イベントを
# 1つ以上のノードのタプルに変換します。
>>> transformer = SysmonTransformer(datasource=datasource)
>>> nodes = transformer.run()

# Transformerはノードの配列を出力します。
[
    (<SysMonProc> process_guid="{0ad3e319-0c16-59c8-0000-0010d47d0000}"),
    (<File> host="DESKTOP-2C3IQHO" full_path="C:\Windows\System32\services.exe"),
    ...
]

# Backendはノードを受け取り、グラフに変換します。
>>> backend = NetworkX(nodes=nodes)
>>> G = backend.graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x126b887f0>

グラフは個々のプロセスのアクティビティを中心に構成されており、主にアナリストがホスト上のアクティビティを調査するためのものであり、ホスト間のアクティビティを対象としたものではありません。

インストール

Docker

BeagleはDockerファイルとして利用可能です。

docker pull yampelo/beagle
mkdir -p data/beagle
docker run -v "$PWD/data/beagle":"/data/beagle" -p 8000:8000 yampelo/beagle

Pythonパッケージ

ライブラリとしても利用可能です。完全なAPIドキュメントはhttps://beagle-graphs.readthedocs.ioで入手できます。

pip install pybeagle

注:現在サポートされているのはPython 3.6以上のみです。

Rekallは自動的にはインストールされません。Rekallをインストールするには、代わりに以下のコマンドを実行してください。

pip install pybeagle[rekall]

設定

  • 各設定エントリの完全な概要

設定ファイル内の任意のエントリは、BEAGLE__{SECTION}__{KEY}の形式に従った環境変数を使用して変更できます。例えば、Dockerイメージ使用時のVirusTotal APIキーを変更するには、-eパラメータを使用してBEAGLE__VIRUSTOTAL__API_KEY変数を設定します。

docker run -v "data/beagle":"/data/beagle" -p 8000:8000 -e "BEAGLE__VIRUSTOTAL__API_KEY=$API_KEY" beagle

環境変数とディレクトリは、docker composeを使用して簡単に定義できます。

version: "3"

services:
    beagle:
        image: yampelo/beagle
        volumes:
            - /data/beagle:/data/beagle
        ports:
            - "8000:8000"
        environment:
            - BEAGLE__VIRUSTOTAL__API_KEY=$key$

Webインターフェース

BeagleのDockerイメージには、データをグラフに変換するプロセスと、それらを使用してデータを調査するプロセスをラップしたWebインターフェースが付属しています。

データのアップロード

アップロードフォームはグラフ作成プロセスをラップし、自動的にNetworkXをバックエンドとして使用します。データソースが必要とするパラメータに応じて、フォームはファイルのアップロードまたはテキスト入力を促します。例えば:

  • VT APIサンドボックスレポートは、グラフ化するハッシュを要求します。
  • FireEye HXはHXトリアージを要求します。

作成されたグラフは、設定のstorageセクションのdirキーで定義されたフォルダ内にローカルに保存されます。これはBEAGLE__STORAGE__DIR環境変数を設定することで変更できます。

必要に応じて、任意のグラフにコメントを追加して、より適切に説明することができます。

各データソースは、提供されたパラメータから自動的にメタデータを抽出します。メタデータとコメントは、後でそのデータソースの既存のグラフを表示する際に表示されます。

既存のグラフの参照

サイドバーのデータソースをクリックすると、そのデータソースで解析されたすべてのグラフのテーブルが表示されます。

グラフインターフェース

Beagleでグラフを表示すると、アナリストがインシデントを迅速に分析できるWebインターフェースが提供されます。

インターフェースは主に2つの部分に分かれています。左側の部分はグラフのさまざまな視点(グラフ、ツリー、テーブルなど)を含み、右側の部分はノードとエッジをタイプでフィルタリング、ノードの検索、ノードのプロパティの展開を可能にします。また、グラフに対して実行した操作を元に戻したりやり直したりすることもできます。

グラフ内で上に仕切りがある要素はすべて折りたたみ可能です。

ノードとエッジの検査

グラフ内のノードは、特定のフィールドの最初の15文字を表示します。たとえば、プロセスノードの場合はプロセス名が表示されます。

エッジはエッジタイプを単に表示します。

ノードまたはエッジを1回クリックすると、そのノードにフォーカスし、右側のサイドバーの「ノード情報」パネルにその情報が表示されます。

ノードにフォーカスする
エッジにフォーカスする

近隣ノードの展開

ノードをダブルクリックすると、近隣のノードが取り込まれます。近隣ノードとは、クリックされたノードにエッジで接続されている任意のノードです。取り込む近隣ノードがない場合、グラフに変化は見られません。

  • 方向は関係ありません。つまり、ノードをダブルクリックしたときに、親プロセスまたは子プロセスが取り込まれる可能性があります。
  • Beagleは一度に25個のノードのみを取り込みます。

ノードの非表示

ノードを長押しクリックすると、そのノードとそれに依存するすべてのエッジがグラフから非表示になります。

ミューテーターの実行

ノードを右クリックすると、グラフミューテーターを実行できるコンテキストメニューが表示されます。ミューテーターは、グラフの状態を受け取り、新しい状態を返す関数です。

非常に便利なミューテーターを2つ紹介します。

  1. ノードのバックトラック:このノードの作成に至ったノードとエッジのシーケンスを見つけます。
    • プロセスノードをバックトラックすると、そのプロセスツリーが表示されます。
  2. すべての子孫を展開:現在のノードから、このノードを祖先として持つすべてのノードを表示します。
    • プロセスノードを展開すると、それが生成したすべての子プロセスノード、触れた可能性のあるファイル、およびこのノードの結果として発生したほぼすべてのアクティビティが表示されます。
ノードのバックトラック

ノードのバックトラックは非常に便利で、ログファイルで感染の根本原因を特定するのと似ています。

ツールをダウンロード