OSINTBuddyで調査する(実践編)

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

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


はじめに

今回は、OSINTBuddyというオープンソースで開発されているOSINTツールを使って実際のフィッシングサイトを調査します。この調査を通じて、OSINTBuddyの現時点での実用性を紹介します。

OSINTBuddyのバージョンが変わった影響で手順は若干変わっていますが、環境構築については前回の記事をご参照ください。

Entity一覧

OSINTBuddyでは、標準でいくつかのEntityが用意されています。用意されているEntityは以下の通りです。

名前 説明
CSE Result Google カスタム検索の検索結果を表すEntity。
CSE Search Google カスタム検索を用いて検索するためのEntity。
DNS ドメインDNSレコードが格納されたEntity。このEntityから、IP Entityに変換できます。
Google Result Google検索の検索結果を表すEntity。
Google Search Google検索を用いて検索するためのEntity。
IP IPアドレスを表すEntity。IP Geolocation等に変換できます。
IP Geolocation IPアドレスから取得した位置情報。
Subdomain サブドメイン名を表すEntity。
Telegram Websearch Telegram内で検索するためのEntity。内部実装では検索にCSEを使用しています。
URL URLを表すEntity。Website Entityに変換できます。
Username ユーザ名が格納されているEntity。
Username Profile ユーザ情報を表すEntity。カテゴリ名とサイト名、URL、ユーザ名を格納できます。
Website ドメイン情報を表すEntity。IPアドレスWhois情報等を取り出せます。
Whois 指定ドメインWhois情報を表示するEntity。

一部Entityでは、新しい情報を外部から収集することが出来ます。例えばDNS Entityでは、指定ドメインDNSレコードに紐付けられたIPアドレスを取得することが出来ます。

新しい情報を外部から収集することが出来るEntityは以下の通りです。また、現時点では収集機能が正常に動作しないEntityもあるため、その点についても記載します。

名前 情報収集機能の有無 動作の可否
CSE Result × --
CSE Search
DNS
Google Result × --
Google Search ×
IP
IP Geolocation × --
Subdomain × --
Telegram Websearch ×
URL × --
Username
Username Profile × --
Website × --
Whois × --

動作の可否を△としたIP Entityでは、IPアドレスから位置情報を取得する機能は正常に動作しましたが、IPアドレスからドメインや、サブドメインを逆引きする機能が正常に動作しませんでした。

なお、構築した検証環境での結果のため、他環境では結果が異なる場合があります。

OSINT調査

それでは実際にOSINTBuddyを用いて調査を行います。今回は、OSINTによって該当フィッシングサイトの情報を収集し、その情報を元に他フィッシングサイトを収集するという流れで調査を行います。

なお、調査に必要になるグラフは作成済みとします。グラフの作成方法等は前回の記事をご覧ください。

環境

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

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

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

サーバ

Name Value
OS Ubuntu 22.04
OSINTBuddy v0.1.0

クライアント

Name Value
OS Windows 11
Browser Microsoft Edge

フィッシングサイトの情報を収集する

OSINTBuddyのグラフを用いて、フィッシングサイトの情報を収集します。

Website Entityに、フィッシングサイトのFQDNを入れた後、Entityを右クリックして、情報を収集します。

本来は、IPアドレスGoogleの検索結果、Whois情報、DNS情報の4つがWebsite Entityから取得できるはずなのですが、不具合によりIPアドレスWhois情報しか取得できませんでした。

その後、取得できた情報から、さらに収集した結果が以下の画像になります。

他フィッシングサイトを見つける

先ほどの工程で、フィッシングサイトの情報を収集しました。ここでは、その情報を元に他フィッシングサイトを見つけます。

収集したIPアドレスを紐付けている別ドメインを収集することで、他フィッシングサイトを見つけたいのですが、OSINTBuddyにはその機能が用意されていませんでした。そのため今回は、VirusTotalを用います。

先ほど収集したIPアドレスVirusTotalに入力した結果、紐付けられているドメインを10件取得できました。

OSINTBuddyを使って、VirusTotalから取得したドメインから情報を収集します。

IPアドレスは取れたものの、ほとんどのドメインWhois情報を取得できませんでした。ログを見ると、Whois情報取得の過程でCAPTHA認証を求められた事がWhois情報取得失敗の原因でした。

またIPアドレスが同じでも、別Entityとして登録されており、これらを纏める事が出来ませんでした。OSINTにおいて、同一情報を纏める事は重要なので、現状の機能では実用性に欠けると感じました。

おわりに

今回は、OSINTBuddyを用いて実際のフィッシングサイトを調査しました。

調査の過程で、不具合が多い点が気になりました。具体的には、Website EntityからDNS情報、Google検索結果を取得できない点や、Whois情報の取得に失敗するケースがある点などです。また同一Entityを纏める機能や、VirusTotalと連携するPluginが無い点も気になりました。

現状では実用性に欠けると感じましたが、Web上でOSINTが行える点やOSSである点は大きなメリットです。今後のアップデートに期待したいです。