OSINT 2019 Guide

注意事項

概要

最近多数のOSINTプロジェクト(Open Source Intelligence)を実施しています。2019年新年のお祝いとして、私が学んだ多くのテクニックを紹介します。もちろん、これは完璧なガイドではありませんが(そして、どんなガイドも完璧にはなり得ないでしょう)、この資料が初心者にとってOSINTを学ぶ助けになり、経験豊富なOSINTハッカーが新しいテクニックを学ぶ助けになることを願っています。

方法論

伝統的なOSINT方法論を端的にいえば、以下のように言えるでしょう。

この方法論はすこし直観的であり、あまり助けにならないかもしれません。しかし、私はそれでも定期的にこのフレームワークに戻ることが重要だと考えています。そして、このプロセスを反復できるように時間を取ることをお勧めします。調査中、収集されたデータ量がわからなくなり、調査の方向性を把握することが難しくなります。この場合、少し休憩を取り、Step 3とStep 4に戻ることを推奨します。つまり、分析を行い、何を発見できたか整理し、ピボットしたり、答えを引き続き探すべき新しい質問(あるいはより具体的な質問)を定義する手助けをなることを列挙します。

image

他にできるアドバイス:

そして、私が有益だと思う二つのメソッドがあります。最初の方法はフローチャートです。これは、データの種類(例えば、e-mail)に基づきより多くの情報を探し出すためのワークフローを表現した図です。私が見た中で最も良い図は、IntelTechniques.comを運営しているMichael Bazzell氏が提唱している図です。例えば、E-mailアドレス情報を調査する場合、Michael Bazzell氏のワークフローを以下に示します。

image Michael Bazzell氏によるメールアドレスに対するOSINTワークフロー

これ以降、私は自分独自の調査ワークフローを構築し、時間をかけて少しづつ自分が見つけたテクニックを付け加えて改善していくのがよい考えだと思うようになりました。

私が推奨するもう一つの方法は、特に長期間の調査に有効で、ACH(Analysis of Competing Hypotheses)という方法です。この方法論は、CIAにより1970年代に開発された方法で、アナリストが分析時にバイアスに影響されないようにし、異なる仮説を注意深く評価することを助けてくれます。これは非常に時間を必要するツールであるため粘り強く使う必要があります。しかしもし1年間の長い調査中に調査指針を失った場合は、注意深く仮説を評価することを支援する上でよいプロセスになるのでしょう。

自分のシステムを準備する

調査に入る前に、調査対象の人たちに警戒されないようにOpSecの観点から考えるべきことがあります。目立たない個人のWebサイトへアクセスすればIPアドレスを露呈することになり、自身の場所や所属をさらすことになります。ほかにも、個人のソーシャルメディアアカウントを利用し、間違って「Like」ボタンを押してしまう可能性も考えられるでしょう。

そのため、自分が調査する時は以下のルールに従うようにしています。

こうした試みをすることで、臨んだ通り自分の姿を隠しながら調査をすることができ、調査対処から特定される可能性もほとんどありません。

ツール

情報セキュリティの世界において、ツールは常にみんなの興味を引く話題でしょう。但し、持っているスキルではなく、数えきれないほどのツールのリストをレジュメ(CV)に列挙している人々を除いてですが。では、はっきり言ってしまいましょう。 ツールは基本的に問題ではありません。ツールを使って何をするかが問題となります。 もし、何をしているか理解できていなければ、ツールは訳に立たないでしょう。理解できない、あるいは評価できないデータの長いリストが並ぶだけです。ツールをテストして、コードを読み、自分自身のツールを作る必要がありますが、自分のやろうとしていることを確実に理解する必要があります。

完璧なツールキットが存在しないのは当然です。最も良いツールキットは、自分が知っており、利用しやすく完璧に使いこなすことができるツールです。しかし、私が使っているツール、あるいは読者が興味をもつであろう他のツールを紹介したいと思います。

Chromeとプラグイン

私は調査用ブラウザとして、Chromeを使います。なぜなら、HunchlyというツールがChromeでしか使えないためです。ここでは、さらに有益なプラグインを紹介しておきましょう。

Hunchly

私は最近、Hunchlyを使い始めましたが、非常に良いツールです。HunchlyはChromeのエクステンションであり、調査中に見つけた全てのWebデータをセーブ、タグづけ、検索することができます。基本的には、調査を開始するときにエクステンションにある「キャプチャ」のボタンをクリックするだけです。Hunchlyは、アクセスしたページ全てをデータベースに保存し、後でタグやノートを追加できるようにしてくれます。

これは、年間130USDかかりますが、このツールがもたらす利便性に比べればそこまで高いとは言えないでしょう。

image Hunchlyダッシュボードのスクリーンショット

Maltego

Maltegoは、OSINTツールというより脅威インテリジェンスツールと呼ぶべきでしょう。しかしグラフは、調査データを分析し、表現するうえで最も良い方法になります。基本的に、Maltegoはグラフを表現し、グラフ内に新しいデータを見つけるために変換するためのGUIを提供してくれます(例えば、Passive DNSデータベースからドメインに紐づくIPアドレスなどを表示してくれます)。少し高額ですが、脅威インテリジェンスや攻撃基盤分析などをやっていればその価値はあるでしょう。(初年度999ドル。そして、ライセンス更新ごとに年499ドルです)。ほかにも、Maltego Community Editionを使うこともできます。これは、データの変換やグラフのサイズなどに制約がありますが、小さい調査であれば十分すぎるほどの機能を提供してくれます。

image Maltegoのスクリーンショット(情報源: Paterva)

Harpoon

私は、Harpoonというコマンドラインツールを作成しました(このツールの詳細は、このブログ記事を参照してください)。これは脅威インテリジェンスツールとして作成しましたが、OSINT用コマンドを多数追加しました。これは、Linux環境にあるPython3で動き、オープンソースです(多分、MacOSとWindowsOSでも動くと思います)。

例えば、キーサーバーにあるPGPキーを探す際には、Harpoonを以下のように使います。

$ harpoon pgp search tek@randhome.io
[+] 0xDCB55433A1EA7CAB  2016-05-30      Tek__ tek@randhome.io

さらに、プラグインに関する長いリストがあります。ぜひ追加すべき新しい機能を思いついたら、提案あるいは開発、あるいはリクエストを挙げてください。

Python

しばしば、ツールを使っても簡単には終わらない特定のデータ収集と可視化タスクを早く切り上げたいと思うでしょう。その場合、自分でコードを書く必要があります。私の場合、Pythonを使うことが多いです。最近のプログラミング言語であれば同様に目的を達成できますが、私はPythonが持つフレキシビリティと利用可能な多数のライブラリを活用するため、Pythonを選んでいます。

Justin Seitz (Hunchlyの作者)は、PythonとOSINTについて言及していますので、彼のブログAutomating OSINTと彼の著書Black Hat Pythonはぜひ読んでみてください。

他のツール

OSINTツールはほかにも多数ありますが、全ての調査で有益とは言えないツールもありました。以下に、読者が知っておくべき他のツールを紹介します。個人的には必須ツールにはなりませんでしたが、こうしたツールは非常に興味深く、完成度の高いツールです。

image SpiderFootのスクリーンショット(情報源:spiderfoot.net)

さあ始めよう!!

さて、それでは具体的な内容に入っていきましょう。OSINT調査において何が助けになるでしょか?

技術的なインフラストラクチャ

技術的インフラストラクチャの分析は、脅威インテリジェンスとオープンソースインテリジェンスが交差する点です。しかし、いくつかの点で調査の重要なパートになり得ます。

さて、読者が探すべきは以下の通りです。

検索エンジン

コンテキストに依存して、調査中は異なる検索エンジンを使い分けてるかもしれません。私は、そのほとんどをGoogle、Bing(欧州・北米用)、Baidu(アジア用)、Yandex(ロシア・東ヨーロッパ)に依存しています。

もちろん、最も基礎的な調査ツールは、検索演算子です。Googleの検索演算子のリストはココにあります。以下に最も興味深いものを抜粋しました。

以下に例文を示します。

よく詳しくなるためには、以下を参照してください。

画像

画像の観点では、二つのことを知っておくべきでしょう。どのように画像に関する追加情報を探し出すか、そしてどのように類似した画像を探し出すかです。

追加情報を探し出すためには、最初のステップとして、EXIF情報に注目しましょう。EXIF情報は、イメージが作成されたときに付与されるメタデータであり、作成時刻、使われたカメラの情報、さらにはGPS情報が付与されていることもある非常に面白い情報を含んでいます。これらを確認するため、私はコマンドラインツールであるExifToolを使うことが多いですが、ChromeFirefox向けに提供されているExif Viewerアドオンも非常に使いやすいと思います。さらに、面白い機能を備えているPhoto Forensic website使うのも一つの手でしょう。(他の代替手段として、exif.regex.infoFoto Forensicsも挙げられます)。

似たようなイメージを探すためには、Google ImagesBing ImagesYandex ImagesTinyEyeを使えばよいでしょう。TinyEyeは使いやすいAPIを提供しており(使い方はココを参照のこと)、Bingは画像の特定の部分を使って検索することができる有益な機能を持っています。remove.bgなどのツールを使って、イメージのバックグラウンドを取り除くことで、より良い結果を得ることができます。

例えば、場所を見つけ出すなど、画像の内容を分析する楽な方法はありません。どの国が候補に挙がるか推測するためには、画像の中に移りこんでいる特定の目印を探し出す必要があります。そして、ネット上で検索を行い、衛星画像と比較していく必要があります。このテクニックについて学ぶためには、Bellingcatが実施した興味深い調査結果が、ココココにありますので参照してください。

さらに学ぶためには、以下のリソースを参照してください。

ソーシャルネットワーク

ソーシャルネットワークの分野では、多くのツールが存在します。しかし、プラットフォームに多く依存します。以下に有益なツールとテクニックを抜粋します。

キャッシュプラットフォーム

調査時において、素晴らしい情報源になるものの一つに、Webサイトのキャッシュを作成するプラットフォーム群が挙げられます。なぜなら、Webサイトは押したり、Webサイトの時系列的な変遷を分析できるためです。こうしたプラットフォームは、自動的にWebサイトをキャッシュするものもあれば、リクエストに応じてキャッシュするものもあります。

検索エンジン:多くの検索エンジンは、クローリングしたときのWebサイトのコンテンツをキャッシュとして保存します。これは非常に有益であり、多くのサイトのキャッシュを見ることができます。但し、最後にキャッシュされるタイミング(多くの場合1週間以内だと思います)を管理できないこと、すぐに削除されてしまう事実も抑えておく必要があります。そのため、もし面白い情報をキャッシュ上で見つけたら、すぐに保存することをお勧めします。私はGoogleYandex、Bingなどの検索エンジンのキャッシュを使っています。

インターネットアーカイブInternet Archiveは、インターネットに公開された全てを保存するという目的で動いているプロジェクトです。この中には、自動的にクローリング対象のWebページを保存するだけでなく、そのサイトの変遷も巨大なデータベースとして保存しています。彼らは、Internet Archive Wayback Machineと呼ばれるWebポータルを提供しており、Webサイトの変遷を分析する上で非常に優れた情報源です。一つ知っておくべき重要なことは、Internet Archiveは要請があればコンテンツを削除するということです。(実際、Stalkerware company Flexispyの件で、削除したことがあります)。そのため、保存しておく必要があるコンテンツは、別の場所に保存しておく必要があります。

他の手動キャッシュプラットフォーム:私は、Webページのスナップショットを保存でき手、他の人が取得したスナップショットを閲覧できるarchive.todayを好んで使っています。多くの調査でこのサイトへ依存しています。perma.ccも良いですが、無料アカウントでは1か月10リンクまでしか使えないという制限があり、プラットフォームは、図書館や大学に焦点を当てています。このソースコードはオープンソースで提供されており、キャッシュプラットフォームを独自で構築したいと考えた場合、間違えなくこのソフトを使うでしょう。

Webキャッシュが存在するか一つづつ手作業で確認していくことはめんどくさいと考える人も多いでしょう。そのため、私は、Harpoonに簡単なコマンドを実装しました。

image

さらに、以前言及したHunchlyは、「レコーディング」機能を有効にした場合、アクセスしたあらゆるページをローカルアーカイブに自動的に保存してくれることも覚えておく必要があります。

証拠の取得

次のポイントに移りましょう。それは、証拠の取得です。証拠の取得は、調査における重要なフェーズの一つです。特に、調査が長引く場合には非常に重要です。間違えなく、Webサイトが変更された、Twitterアカウントが削除されたなど、何度か自分が見つけた証拠をなくす経験をするでしょう。

image

覚えておくべきことは、以下の通りです。

さらに勉強するためには、以下のリソースをご覧ください。

短縮URL

短縮URLは、利用する際に非常に興味深い情報をもたらします。異なるサービスにおいて、統計情報を取得する方法をまとめました。

いくつかの短縮URLは連番のIDが使われている可能性があります。その場合、同時刻に作成された似たようなURLを推測できる可能性があります。このアイディアの事例はこのレポートを参照してください。

企業情報

いくつかのデータベースでは、企業情報を検索することが可能です。メインで利用されるものは、Open CorporatesOCCRP database of leaks and public recordsが挙げられます。その後、各国に応じたデータベースに依存していきます。例えば、フランスではsociete.comが有名ですし、米国であればEDGARへ、イギリスであればCompany Houseへアクセスすべきでしょう(より詳細な情報は ココから参照してください)。

参考文献

OSINTを学ぶ上で更なるリソースとしていかが挙げられます。

これですべてです。時間をかけてこのブログを読んでくれてありがとうございます。もし追加すべきリソースがあればTwitterなどから気軽にコンタクトしてください。

このブログ投稿は、Nils Frahmを聞きながら書きました。

更新1:Yandex Imagesremove Background Forensicを追加しました。このテクニックを教えてくれたJean-Marc Manachfo0に感謝します。