OSINTBuddyで調査する(使い方編)

このブログは、株式会社ArmorisアルバイトのShaderoが書いています。

あるもりすぶろぐの内容は個人の意見です。


はじめに

今回は、OSINTBuddyというオープンソースで開発されているOSINTツールを紹介します。 OSINTツールとして有名なMaltegoとの比較を行いながら、OSINTBuddyのインストール方法、使い方なども紹介します。

追記:実践編を公開しました。よろしければご覧ください。

OSINTBuddyの主要な機能

OSINTBuddyとは、2021年から開発が開始されたオープンソースのOSINTツールです。 2023年10月時点では主に以下の機能が実装されています。

Project graphs

OSINTの要である、情報収集を視覚的に行える機能です。 Project graphs内でEntityを配置したりTransformを実行することで情報収集を行います。この機能によって情報収集を楽に行うことができます。

Plugin

OSINTBuddyには、様々な機能をユーザが自由に追加できるPluginという仕組みが用意されています。 この仕組みによって、EntityやTransformを自由に追加することができます。

Maltegoとの比較

次に、OSINTツールとして有名なMaltego(COMMUNITY・PRO)とOSINTBuddyと比べてみます。 比較項目は主に、価格や商用利用の可否、機能面についてです。

項目 Maltego COMMUNITY Maltego PRO OSINTBuddy
価格 無料 999 EUR / 年 無料
商用利用 不可
1回のTransformで出力できる結果の数 12 64,000 無制限
グラフに表示できるEntityの数 10,000 1,000,000 無制限
標準で搭載されているTransformの数 150+ 150+ 10
EntityやTransformの自作 可(アルファ版)

両者を比較してみると、OSINTBuddyのメリットは、全ての機能を無料で自由に使える点にあることが分かります。Maltegoは、Transform1回あたりに出力できる結果の数や、グラフに表示できるEntityの数などに制限がありますが、OSINTBuddyでは無制限です。

また、OSINTBuddyは無料で商用利用ができる点も大きなメリットです。Maltegoの場合は、商用利用を行いたい場合は年999 EUR(約16万円)を支払いPROプランを契約する必要がありますが、OSINTBuddyは無料で商用利用ができます。

一方でOSINTBuddyのデメリットは、用意されているTransformの数が少ない点です。そのため実際にOSINTBuddyを使用する場合は、Transformの自作を求められる場面が多いと思われます。またPluginと呼ばれるEntityやTransformを自由に作成できる機能はありますが、この機能はアルファ版であり、APIに破壊的変更が発生する可能性がある旨がドキュメントに記載されています。

使ってみる

それでは、上記で紹介したOSINTBuddyのインストール方法や使い方を紹介します。 今回は、OSINTBuddyのインストールしたのちに、試しに弊社のホームページGoogleの検索結果を表示させてみます。

環境

今回の検証で用いる環境は以下の通りです。 基本的にOSINTBuddyはサーバ側で動作させ、クライアント側からアクセスする形で使います。

また、予め3000ポートと8000ポートをクライアント側にフォワーディングしています。

ssh username@serverIP -L 3000:localhost:3000 -L 8000:localhost:8000

サーバ

Name Value
OS Ubuntu 22.04
OSINTBuddy v0.0.4
Docker 20.10.21

クライアント

Name Value
OS Windows 11
Browser Firefox 118.0.2

1. インストール&起動

まず始めにOSINTBuddyをインストールします。これはサーバ側で行います。

OSINTBuddyのリポジトリをクローンします。

git clone --recurse-submodules https://github.com/jerlendds/osintbuddy.git

次に、Docker composeを用いてOSINTBuddyを起動します。

cd osintbuddy
cp ./.env.example ./.env
docker compose up -d

起動が完了したら、クライアント側でhttp://localhost:3000にアクセスします。 アクセスできたら、OSINTBuddyのインストールは完了です。

janusが落ちる場合

docker ps -aを実行してみると、janusが落ちている場合があります。これが落ちていると後述するEntityの配置に失敗します。

その場合は、しばらく待った後にjanusを再起動させると直ります。

docker compose restart janus

2. プロジェクト作成

OSINTBuddyが起動できたら、プロジェクトを作成します。

Loginボタンを押して、ダッシュボードのようなページに移動します。

次に、右上のCreate projectボタンを押し、必要な情報を入力してプロジェクトを作成します。

プロジェクトを作成できたら、Investigateボタンを押して、作成したプロジェクトのグラフを表示させます。

3. Entityの配置~Transformの実行

プロジェクトを作成できたら、次にEntityを配置します。 今回は試しに、弊社のホームページGoogleの検索結果を表示させてみます。

まず、画面左側にあるEntitiesから、Websiteをドラッグしてグラフに配置します。 そして、Website内のDomain欄にwww.armoris.jpを入力します。

入力ができたら、Websiteを右クリックしてTo Googleをクリックします。 Googleの検索結果を表示させることができたら成功です。

さいごに

今回は、OSINTBuddyというオープンソースで開発されているOSINTツールを紹介しました。 OSINTBuddyはまだ開発が始まったばかりで機能が少なく、実際のOSINT調査に使うのは少し難しいと思われますが、Maltegoと異なり全ての機能を無料で使うことができるため今後の開発に期待したいです。

追記:実践編を公開しました。よろしければご覧ください。