内容については、最大限の努力を持って正確に期していますが、本書の内容に基づく運用結果については責任を負いかねますので、ご了承ください。GitHub』を参照してください。ブログは『セキュリティコンサルタントの日誌から』を参照してください。Intelligence)を実施しています。2019年新年のお祝いとして、私が学んだ多くのテクニックを紹介します。これは完璧なガイドではありませんが(そして、どんなガイドも完璧にはなり得ないでしょう)、この資料が初心者にとってOSINTを学ぶ助けになり、経験豊富なOSINTハッカーが新しいテクニックを学ぶ助けになることを願っています。伝統的なOSINT方法論を端的にいえば、以下のように言えるでしょう。収集した情報の分析ピボットと報告(収集した情報をもとにピボットを行い、更なる要求定義を行うか、調査を終了し報告書を書くか、決定します。)この方法論はすこし直観的であり、あまり助けにならないかもしれません。私はそれでも定期的にこのフレームワークに戻ることが重要だと考えています。このプロセスを反復できるように時間を取ることをお勧めします。調査中、収集されたデータ量がわからなくなり、調査の方向性を把握することが難しくなります。4に戻ることを推奨します。分析を行い、何を発見できたか整理し、ピボットしたり、答えを引き続き探すべき新しい質問(あるいはより具体的な質問)を定義する手助けをなることを列挙します。他にできるアドバイス:決してあきらめないこと。情報を得るためにあらゆる可能性を試し、やりつくしたと感じる瞬間が来るでしょう。あきらめないでください。休憩を取りましょう(1時間、あるいは1日別のことをしても良いかもしれません)。持っているデータを改めて分析をやり直し、別の視点から再度捉えなおしてみまてください。Seitz氏が最近粘り強さに関するブログ記事を投稿し、様々な事例を紹介しています。オンラインにある情報はすぐに消失します。一回のOpSecのミス、例えばTweetに「Like」ボタンを押してしまったとしましょう。調査対象者が疑い始めたら、突然全てのソーシャルメディアアカウントとWebサイトが削除されてしまう可能性があります。そのため、証拠は保存しておく必要があります。スクリーンショット、アーカイブ、Webアーカイブ(より詳細には後で議論します)、あるいは自分にあった方法でも構いません。タイムラインは役に立つ。フォレンジック調査では、タイムラインとイベント発生時のピボットが同じタイミングであることが重要です。OSINTにおいて、タイムラインはそこまで重要ではありません。データを体系化する上でタイムラインは重要なツールとなります。いつWebサイトが作成されたのでしょうか?いつFBアカウントが作成されたのでしょうか?最後にブログが投稿されたのはいつでしょうか?こうした情報を一度テーブルに並べることで、自分が探していることについて良い視点が得られるでしょう。私が有益だと思う二つのメソッドがあります。最初の方法はフローチャートです。これは、データの種類(例えば、e-mail)に基づきより多くの情報を探し出すためのワークフローを表現した図です。Bazzell氏が提唱している図です。Bazzell氏のワークフローを以下に示します。Bazzell氏によるメールアドレスに対するOSINTワークフローこれ以降、私は自分独自の調査ワークフローを構築し、時間をかけて少しづつ自分が見つけたテクニックを付け加えて改善していくのがよい考えだと思うようになりました。Hypotheses)という方法です。この方法論は、CIAにより1970年代に開発された方法で、アナリストが分析時にバイアスに影響されないようにし、異なる仮説を注意深く評価することを助けてくれます。これは非常に時間を必要するツールであるため粘り強く使う必要があります。1年間の長い調査中に調査指針を失った場合は、注意深く仮説を評価することを支援する上でよいプロセスになるのでしょう。自分のシステムを準備する調査に入る前に、調査対象の人たちに警戒されないようにOpSecの観点から考えるべきことがあります。目立たない個人のWebサイトへアクセスすればIPアドレスを露呈することになり、自身の場所や所属をさらすことになります。ほかにも、個人のソーシャルメディアアカウントを利用し、間違って「Like」ボタンを押してしまう可能性も考えられるでしょう。そのため、自分が調査する時は以下のルールに従うようにしています。調査用ブラウザからの全てのアクセスは、商用のVPNやTORを利用することです。多くの商用VPNは、異なる国でサーバを提供しており、Torは出口ノードとして特定の国を選択することができます。そのため、国を選択することで、不用意なコンテキストとその痕跡を残さずに済みます(USの組織から、USのために調査を実施しているなど)スキャンやクローリングのタスクは、自分との関係性がない安いVPSから行う必要があります。調査専用のソーシャルメディアアカウントを利用し、偽名で作成します。した試みをすることで、臨んだ通り自分の姿を隠しながら調査をすることができ、調査対処から特定される可能性もほとんどありません。ツール情報セキュリティの世界において、ツールは常にみんなの興味を引く話題でしょう。持っているスキルではなく、数えきれないほどのツールのリストをレジュメ(CV)に列挙している人々を除いてですが。言ってしまいましょう。ツールは基本的に問題ではありません。ツールを使って何をするかが問題となります。何をしているか理解できていなければ、ツールは訳に立たないでしょう。理解できない、あるいは評価できないデータの長いリストが並ぶだけです。ツールをテストして、コードを読み、自分自身のツールを作る必要がありますが、自分のやろうとしていることを確実に理解する必要があります。完璧なツールキットが存在しないのは当然です。良いツールキットは、自分が知っており、利用しやすく完璧に使いこなすことができるツールです。私が使っているツール、あるいは読者が興味をもつであろう他のツールを紹介したいと思います。Chromeとプラグイン私は調査用ブラウザとして、Chromeを使います。HunchlyというツールがChromeでしか使えないためです。ここでは、さらに有益なプラグインを紹介しておきましょう。Machineは、archive.orgの中にあるアーカイブされたページを検索します。Intelligenceは、多くのOSINTツールへの素早くアクセスできます。Viewerは、イメージ内のEXIFデータを素早くみることができます。FireShotは、スクリーンショットを素早くとることができます。Hunchly私は最近、Hunchlyを使い始めましたが、非常に良いツールです。HunchlyはChromeのエクステンションであり、調査中に見つけた全てのWebデータをセーブ、タグづけ、検索することができます。基本的には、調査を開始するときにエクステンションにある「キャプチャ」のボタンをクリックするだけです。Hunchlyは、アクセスしたページ全てをデータベースに保存し、後でタグやノートを追加できるようにしてくれます。これは、年間130USDかかりますが、このツールがもたらす利便性に比べればそこまで高いとは言えないでしょう。HunchlyダッシュボードのスクリーンショットMaltegoMaltegoは、OSINTツールというより脅威インテリジェンスツールと呼ぶべきでしょう。グラフは、調査データを分析し、表現するうえで最も良い方法になります。DNSデータベースからドメインに紐づくIPアドレスなどを表示してくれます)。高額ですが、脅威インテリジェンスや攻撃基盤分析などをやっていればその価値はあるでしょう。ライセンス更新ごとに年499ドルです)。Editionを使うこともできます。これは、データの変換やグラフのサイズなどに制約がありますが、小さい調査であれば十分すぎるほどの機能を提供してくれます。Paterva)Harpoon私は、Harpoonというコマンドラインツールを作成しました(このツールの詳細は、このブログ記事を参照してください)。これは脅威インテリジェンスツールとして作成しましたが、OSINT用コマンドを多数追加しました。これは、Linux環境にあるPython3で動き、オープンソースです(多分、MacOSとWindowsOSでも動くと思います)。キーサーバーにあるPGPキーを探す際には、Harpoonを以下のように使います。tek@randhome.ioさらに、プラグインに関する長いリストがあります。追加すべき新しい機能を思いついたら、提案あるいは開発、あるいはリクエストを挙げてください。Pythonしばしば、ツールを使っても簡単には終わらない特定のデータ収集と可視化タスクを早く切り上げたいと思うでしょう。その場合、自分でコードを書く必要があります。私の場合、Pythonを使うことが多いです。最近のプログラミング言語であれば同様に目的を達成できますが、私はPythonが持つフレキシビリティと利用可能な多数のライブラリを活用するため、Pythonを選んでいます。Pythonはぜひ読んでみてください。他のツールOSINTツールはほかにも多数ありますが、全ての調査で有益とは言えないツールもありました。以下に、読者が知っておくべき他のツールを紹介します。個人的には必須ツールにはなりませんでしたが、こうしたツールは非常に興味深く、完成度の高いツールです。SpiderFootは多数の異なるモジュールを持つ、偵察用ツールです。非常に良いウェブインターフェースを持っており、異なるタイプのデータ間の関係性を示すグラフを生成してくれます。私がこのツールを好きでない点は、利用者のために全てを見つけてきてくれる魔法のツールと考えられてしまう点です。何を探しているか利用者の考えをくみ取り、結果を分析してくれるツールはありません。要するに、自分自身で研究し全ての結果を一つづつ読まなくてはいけません。良いツールでよいインターフェイスを持っていますが、SpiderFootはその点についてはあまり役に立ちません。SpiderFootのスクリーンショット(情報源:spiderfoot.net)recon-ngは、素晴らしいCLIツールで、異なるプラットフォーム、ソーシャルメディア、脅威インテリジェンスプラットフォームから情報を取得することができます。Harpoonに正直よく似ています。使わないかというと、Harpoonが自分ニーズに必要な機能を提供してくれており、提供されるシェルインターフェイスが苦手であるためです。Buscadorは、Linuxの仮想マシンで、異なるOSINTツールが含まれています。私は、いつも自分用にカスタマイズされたシステムを好みますが、ツールを一つづつインストールする手間なく新しいツールを試すことができる良い方法です。さあ始めよう!!さて、それでは具体的な内容に入っていきましょう。OSINT調査において何が助けになるでしょか?技術的なインフラストラクチャ技術的インフラストラクチャの分析は、脅威インテリジェンスとオープンソースインテリジェンスが交差する点です。いくつかの点で調査の重要なパートになり得ます。読者が探すべきは以下の通りです。Total(現在は、RiskIQ)が最も良い情報源になると思います。Webインターフェイスから1日15クエリまで、API経由でも15クエリまで無料で使えます。Trailsも他の良い代替ツールになります。Censysは素晴らしいツールです。知られておらず少し劣りますがcrt.shも非常によい証明書の透明性データベースです。スキャン:IPアドレス上でどのようなサービスが動いているか確認することは有益です。Nmapを使って自分でスキャンすることもできますが、全てのIPv4アドレスに定期的にスキャンしてくれるプラットフォームを活用することもできます。その二つのプラットフォームこそ、CensysとShodanです。この二つは異なる側面に焦点を当てており、それぞれの特徴を知り、両方を使いこなす必要があります(ShodanはIoTに焦点を置いており、CensysはTLSに焦点を置いています)。BinaryEdgeは最近登場し急速に発展している代替となるプラットフォームです。最近では、Fofaと呼ばれる中国プラットフォームが登場しました。Dataが挙げられますが、スキャンファイルをダウンロードする必要があり、自分で分析を行う必要があります。最後にIPアドレスに関する時系列データはプラットフォームの変遷を理解する上で金脈となることを指摘したいと思います。Censysはこうしたデータを有償プランでしか提供してくれません(アカデミックの研究者は無料で利用することができます)が、ShodanはIPごとにこうしたデータを提供してくれ、非常に素晴らしいです。IPがコマンドがもたらす内容はぜひ確認してください(Shodanのライフアカウントを支払う必要があります)脅威情報:OSINTではあまり重要ではありませんが、ドメイン、IP、URLに対する悪性のアクティビティを確認することは常に興味深いことを教えてくれます。OTXに依存しています。サブドメイン:あるドメインに対するサブドメインのリストを取得する方法は様々あります。Google検索(Site:ドメイン)を使う方法から、証明書に記載されている代替ドメインを探す方法などが挙げられます。Total、BinaryEdgeは、この機能を実装しています。そのため、初期リストを得るためであれば、こうしたサービスに直接クエリを投げることが手っ取り早いでしょう。Googleアナリティックスとソーシャルメディア:最後の情報は、とても興味深いもので、複数のwebサイトで、同じGoogleアナリティックス・アドセンスIDを使っているか確認することです。このテクニックは2015年発表され、ココに詳しく書かれています。Total、SpyOnWeb、NerdyDataを使っています。(publicwwwは、別の有償サービスとして知られています)。検索エンジンコンテキストに依存して、調査中は異なる検索エンジンを使い分けてるかもしれません。私は、そのほとんどをGoogle、Bing(欧州・北米用)、Baidu(アジア用)、Yandex(ロシア・東ヨーロッパ)に依存しています。基礎的な調査ツールは、検索演算子です。Googleの検索演算子のリストはココにあります。以下に最も興味深いものを抜粋しました。以下のブーリアン型の論理演算子を使いクエリを結合することができます。AND、OR、+、-filetype:特定のファイル拡張子を検索を行います。site:特定のWebサイトへフィルタを書けます。intitleとinurl:タイトルやURLにフィルタを行います。link:特定のURLへのリンクを持つWebサイトを探すことに特化します。(2017年に非推奨になりましたが、現在でも一部機能します)以下に例文を示します。filetype:pdf:この組み合わせは特定のCVを探し出すのに役立ちます。site:DOMAIN:Webサイトのサブドメインを探すのに役立ちます。site:ORIGINDOMAIN:特定の文章をコピーしたり剽窃したサイトを探し出します。詳しくなるためには、以下を参照してください。画像の観点では、二つのことを知っておくべきでしょう。どのように画像に関する追加情報を探し出すか、そしてどのように類似した画像を探し出すかです。追加情報を探し出すためには、最初のステップとして、EXIF情報に注目しましょう。EXIF情報は、イメージが作成されたときに付与されるメタデータであり、作成時刻、使われたカメラの情報、さらにはGPS情報が付与されていることもある非常に面白い情報を含んでいます。Viewerアドオンも非常に使いやすいと思います。website使うのも一つの手でしょう。Forensicsも挙げられます)。Images、TinyEyeを使えばよいでしょう。TinyEyeは使いやすいAPIを提供しており(使い方はココを参照のこと)、Bingは画像の特定の部分を使って検索することができる有益な機能を持っています。remove.bgなどのツールを使って、イメージのバックグラウンドを取り除くことで、より良い結果を得ることができます。場所を見つけ出すなど、画像の内容を分析する楽な方法はありません。どの国が候補に挙がるか推測するためには、画像の中に移りこんでいる特定の目印を探し出す必要があります。ネット上で検索を行い、衛星画像と比較していく必要があります。このテクニックについて学ぶためには、Bellingcatが実施した興味深い調査結果が、ココやココにありますので参照してください。学ぶためには、以下のリソースを参照してください。Guideソーシャルネットワークソーシャルネットワークの分野では、多くのツールが存在します。プラットフォームに多く依存します。以下に有益なツールとテクニックを抜粋します。Twitter:APIは、ツイートが公開された時間とツールを教えてくれます。x0rzが開発したtweets_analyzerは、アカウントのアクティビティの概要をまとめてくれるツールです。IDを探してくる方法も複数存在しますが、少し特殊な方法を使います。BazzellのWebサイトでしょう。彼の独自ツールのページは秀逸です。LinkedIn:LinkedIn上で私が見つけた最も有益なテクニックの一つは、メールアドレスからLinkedInプロファイルを見つける方法です。キャッシュプラットフォーム調査時において、素晴らしい情報源になるものの一つに、Webサイトのキャッシュを作成するプラットフォーム群が挙げられます。Webサイトは押したり、Webサイトの時系列的な変遷を分析できるためです。したプラットフォームは、自動的にWebサイトをキャッシュするものもあれば、リクエストに応じてキャッシュするものもあります。検索エンジン:多くの検索エンジンは、クローリングしたときのWebサイトのコンテンツをキャッシュとして保存します。これは非常に有益であり、多くのサイトのキャッシュを見ることができます。最後にキャッシュされるタイミング(多くの場合1週間以内だと思います)を管理できないこと、すぐに削除されてしまう事実も抑えておく必要があります。そのため、もし面白い情報をキャッシュ上で見つけたら、すぐに保存することをお勧めします。私はGoogle、Yandex、Bingなどの検索エンジンのキャッシュを使っています。Archiveは、インターネットに公開された全てを保存するという目的で動いているプロジェクトです。この中には、自動的にクローリング対象のWebページを保存するだけでなく、そのサイトの変遷も巨大なデータベースとして保存しています。Machineと呼ばれるWebポータルを提供しており、Webサイトの変遷を分析する上で非常に優れた情報源です。Archiveは要請があればコンテンツを削除するということです。Flexispyの件で、削除したことがあります)。そのため、保存しておく必要があるコンテンツは、別の場所に保存しておく必要があります。他の手動キャッシュプラットフォーム:私は、Webページのスナップショットを保存でき手、他の人が取得したスナップショットを閲覧できるarchive.todayを好んで使っています。多くの調査でこのサイトへ依存しています。perma.ccも良いですが、無料アカウントでは1か月10リンクまでしか使えないという制限があり、プラットフォームは、図書館や大学に焦点を当てています。このソースコードはオープンソースで提供されており、キャッシュプラットフォームを独自で構築したいと考えた場合、間違えなくこのソフトを使うでしょう。Webキャッシュが存在するか一つづつ手作業で確認していくことはめんどくさいと考える人も多いでしょう。そのため、私は、Harpoonに簡単なコマンドを実装しました。以前言及したHunchlyは、「レコーディング」機能を有効にした場合、アクセスしたあらゆるページをローカルアーカイブに自動的に保存してくれることも覚えておく必要があります。次のポイントに移りましょう。それは、証拠の取得です。証拠の取得は、調査における重要なフェーズの一つです。調査が長引く場合には非常に重要です。間違えなく、Webサイトが変更された、Twitterアカウントが削除されたなど、何度か自分が見つけた証拠をなくす経験をするでしょう。覚えておくべきことは、以下の通りです。Archiveに完全に依存することは難しいですので、他のキャッシュプラットフォームや可能であればローカルに保存することをお勧めします。画像、文書を保存しましょう。スクリーンショットを取得しましょう。ソーシャルメディアに関する情報を保存しましょう。攻撃者はいつでもこうした情報を削除することができます。(Twitterアカウントにおいては、Harpoonは、ツイートとユーザ情報をJSON形式のファイルで保存するコマンドを用意しています。)さらに勉強するためには、以下のリソースをご覧ください。Bellingcat)短縮URL短縮URLは、利用する際に非常に興味深い情報をもたらします。異なるサービスにおいて、統計情報を取得する方法をまとめました。ようになURLへリダイレクトします。ow.ly:hootsuite社が提供する短縮URLサービスですが、統計情報を見ることはできません。することでURL自体をみることができます。つければ、統計情報を見ることができます。ハイフン(-)をつければ、情報を取得することができます。(統計情報は非公開の場合があります)adf.ly:この短縮URLは、リンクへのリダイレクト時に広告を表示することで収益を上げることを提案しているサービスです。彼らは、j.gsやq.gsなどその他のサブドメインを多数利用し、公開の統計情報を閲覧することができません。つければ統計情報へアクセスできます。いくつかの短縮URLは連番のIDが使われている可能性があります。その場合、同時刻に作成された似たようなURLを推測できる可能性があります。このアイディアの事例はこのレポートを参照してください。企業情報いくつかのデータベースでは、企業情報を検索することが可能です。recordsが挙げられます。その後、各国に応じたデータベースに依存していきます。ココから参照してください)。参考文献OSINTを学ぶ上で更なるリソースとしていかが挙げられます。frameworkosint.linkこれですべてです。時間をかけてこのブログを読んでくれてありがとうございます。追加すべきリソースがあればTwitterなどから気軽にコンタクトしてください。Frahmを聞きながら書きました。Forensicを追加しました。Manachとfo0に感謝します。