(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-30
(54)【発明の名称】マルチドメインからデータを収集する方法、装置及びコンピュータプログラム
(51)【国際特許分類】
G06F 16/951 20190101AFI20220323BHJP
H04L 67/02 20220101ALI20220323BHJP
【FI】
G06F16/951
H04L67/02
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021546246
(86)(22)【出願日】2020-01-30
(85)【翻訳文提出日】2021-08-31
(86)【国際出願番号】 KR2020001382
(87)【国際公開番号】W WO2020171410
(87)【国際公開日】2020-08-27
(31)【優先権主張番号】10-2019-0019087
(32)【優先日】2019-02-19
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】521293202
【氏名又は名称】エスツーダブリュー インコーポレイテッド
(74)【代理人】
【識別番号】100149870
【氏名又は名称】芦北 智晴
(72)【発明者】
【氏名】ソ サンドク
(72)【発明者】
【氏名】ユン チャンフン
(72)【発明者】
【氏名】リ スンヒョン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA05
(57)【要約】
本発明は、データ収集装置がマルチドメインからデータを収集する方法に関し、検索エンジンからアクセス可能な一般のウェブからデータを収集するステップAと、一般のウェブブラウザではアクセスすることができず、予め設定された特定のソフトウェアを用いてアクセス可能なダークウェブサイトからデータを収集するステップBと、収集されたデータを予め設定されたフォーマットに定型化し、収集されたデータに対するメタデータを生成するステップCと、を含むことを特徴とする。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データ収集装置がデータを収集する方法であって、
一般のウェブブラウザではアクセスすることができず、予め設定された特定のソフトウェアを用いてアクセスすることができ、ネットワークのルーティング機能を果たすネットワークノードを少なくとも1つランダムに接続することでチャンネルが形成されるネットワークに属するダークウェブサイトから分散クローラを用いてデータを収集するステップAと、
収集されたデータを予め設定されたフォーマットに定型化し、収集されたデータに対するメタデータを生成するステップBと、を含み、
前記ステップAが、
前記ネットワークのドメイン情報を収集するステップと、
収集されたドメインの変更有無を確認し、一番最近の登録が確認されたドメインから優先して前記分散クローラに割り当てるステップと、
前記ルーティング機能を果たすネットワークノードを複数運用し、前記分散クローラの要求を前記ネットワークノードで処理し、任意のドメインに該当するダークウェブからデータを収集するステップと、を含むことを特徴とする、データ収集方法。
【請求項2】
知識ベースのグラフを作成し、定型化されたデータ及び前記メタデータに基づいて、前記知識ベースのグラフを更新し、知識ベースのグラフに基づいて犯罪を追跡するステップCを含むことを特徴とする、請求項1に記載のデータ収集方法。
【請求項3】
前記ステップAの前に、
悪意のあるコードに対する信頼性の高い情報が記録された、一般のウェブ環境下でアクセス可能なデータソースのリストを作成するステップと、
前記データソースのリストに該当するウェブページに存在するURLリンクをクロールし、ネットワークまたはデバイスのオペレーティングシステムにおいて悪意のあるコード攻撃の指標として活用される第1のシードデータを収集するステップと、
前記データソースから収集したドメインにマッピングされるIPアドレスをモニターするか、あるいは前記第1のシードデータに含まれているドメイン情報またはIPアドレス情報をモニターし、Command&Control(C&C)インフラストラクチャを有する悪意のあるコードを制御するサーバのDNS情報に対する第2のシードデータを収集するステップと、
前記第1のシードデータ及び前記第2のシードデータから取得したドメイン情報または新しいIPアドレス情報を結合して特定の悪意のあるコードにアクセスするためのURLパスを少なくとも1つ作成し、悪意のあるコードのバイナリデータを収集するステップと、を含むことを特徴とする、請求項1に記載のデータ収集方法。
【請求項4】
前記分散クローラに割り当てるステップが、
予め設定された周期で収集されたドメインアドレスの閉鎖、運営、及び/または変更有無に対する状態情報を収集し、前記状態情報を、前記収集されたドメインアドレスに対するメタデータとして生成するステップと、
前記状態情報から一番最近の登録が確認されたドメインから優先して前記分散クローラに割り当てるステップと、を含むことを特徴とする、請求項3に記載のデータ収集方法。
【請求項5】
前記分散クローラに割り当てるステップが、
前記分散クローラを構成するクローラインスタンスのうち、クロールを完了したクローラインスタンスに、次にクロールするドメインを割り当てるステップを含むことを特徴とする、請求項4に記載のデータ収集方法。
【請求項6】
前記分散クローラに割り当てるステップが、
少なくとも1つのトーアノードコンテナを構成し、前記コンテナに複数のネットワークカードを設定するステップと、
前記コンテナのそれぞれに複数のトーアノードクライアントを実行し、前記トーアノードクライアントにウェブプロキシ機能及びロードバランシング機能を提供するステップと、
前記ロードバランシング機能及びウェブプロキシ機能を介して、前記分散クローラの動作に応じて発生する大量のダークウェブトラフィックを前記トーアノードクライアントに割り当てるステップと、を含むことを特徴とする、請求項5に記載のデータ収集方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの収集及び処理方法に関する。さらに詳しくは、本発明は、一般のサーフェスウェブ(surface web)はもちろん、アクセス権が必要なインビジブルウェブ(invisible web)を含むマルチドメインにおいて、任意のオブジェクトに対する膨大なデータを収集して処理するシステムに関する。
【背景技術】
【0002】
近年では、インターネット技術の発達により、仮想世界に基づく情報が溢れている。しかしながら、通常のブラウザで、検索エンジンからアクセス可能なウェブサイトは、全体ウェブ環境の中では氷山の一角に過ぎない。インターネットに接続されてはいるものの、アクセス権が必要なディープウェブ(Deep web)はもちろん、通常のブラウザではアクセスすることができず、特定のソフトウェアを利用しないとアクセスすることができない、匿名化されたダークウェブ(Dark web)がまさにそれである。
【0003】
ダークウェブは、暗号化されたネットワークに存在し、通常のブラウザを用いてはアクセスすることができない特定の部類のウェブサイトを意味する。ダークウェブに存在する多くのサイトは、トーア(TOR;The Onion Network)ネットワークをベースにする。2010年以降から急激に成長したトーアネットワークは、ユーザの匿名性のための技術が適用されたネットワークであり、暗号通貨と結合して武器の取引、麻薬の取引、臓器の取引、ハッキングツールの販売、ハッキング技術の共有、個人情報の取引、ポルノ販売など、様々な違法取引の温床になっている。
【0004】
トーアネットワークは、ネットワークのノードがネットワークルータとして動作し、特定のノードのアドレス情報は分散され、ネットワークの他のノードに保存される。トーアブラウザでは、複数のノードをランダムに経由して目的地に接続させるため、トーアネットワークは、サービスプロバイダとユーザの接続経路の追跡が不可能であるといった特徴がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、一般のサーフェスウェブ(surface web)はもちろん、アクセス権が必要なインビジブルウェブ(invisible web)において、任意のオブジェクトに対する膨大なデータを収集して処理する方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の実施形態に係るデータ収集装置がマルチドメインからデータを収集する方法は、検索エンジンからアクセス可能な一般のウェブからデータを収集するステップAと、一般のウェブブラウザではアクセスすることができず、予め設定された特定のソフトウェアを用いてアクセス可能なダークウェブサイトからデータを収集するステップBと、収集されたデータを予め設定されたフォーマットに定型化し、収集されたデータに対するメタデータを生成するステップCと、を含むことを特徴とする。
【発明の効果】
【0007】
本発明によると、インターネット環境下で一般のウェブブラウザを介してアクセス可能である一般的データはもちろん、特殊なブラウザを介してアクセス可能である特殊データを収集することができる。さらに、本発明によると、マルチドメインに基づいて収集された大量のデータを処理して情報関連性を分析することができるといった効果がある。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施形態に従い、マルチドメインから大量のデータを収集し、収集されたデータの関連性を分析するシステムの動作に関する説明図である。
【
図2A】本発明の実施形態に従い、トーアネットワークからデータを収集するためのシステムの構成に関する説明図である。
【
図2B】本発明の他の実施形態に従い、トーアネットワークからデータを収集するためのシステムの構成に関する説明図である。
【
図3】本発明の実施形態に従い、トーアネットワークのデータを収集するための過程に関する説明図である。
【発明を実施するための形態】
【0009】
本発明は、以下の実施形態の内容に限定されるものではなく、本発明の技術的要旨を逸脱しない範囲で様々な変形が加えられることは言うまでもない。また、実施形態について説明するにあたり、本発明の属する技術分野で広く知られており、本発明の技術的要旨と直接関連がない技術内容については説明を省略する。
【0010】
一方、添付図面において、同一構成要素には同一符号が付与される。また、添付図面において、一部の構成要素を誇張したり、省略したり、概略的に示すこともある。これは、本発明の要旨に関連のない不要な説明を省略することにより、本発明の要旨を明確に説明するためである。
【0011】
図1は、本発明の実施形態に従い、マルチドメインから大量のデータを収集し、収集されたデータの関連性を分析するシステムの動作に関する説明図である。
【0012】
本発明の実施形態に係るシステムは、
図1に示すように、一般的データ収集モジュール110、特殊データ収集モジュール120、データベース125、データ処理モジュール130、及び知識グラフ作成モジュール140を含んでいてもよい。
【0013】
一般的データ収集モジュール110は、一般のウェブ環境に公開されたデータを収集する機能を果たす。本発明の好ましい実施形態によると、一般的データ収集モジュールは、犯罪または脅威に関する情報のソースに加重値をかけてデータを収集する。
【0014】
例えば、悪意のあるコード、ポルノ、個人情報の取引などの違法な取引に関するデータを収集する場合には、一般的データ収集モジュール110は、違法な取引に関する一般のウェブサイトに記録された電子メールアカウント、当該電子メールアカウントに関連付けられたSNSアカウント、当該SNSアカウントの投稿文に記録された他の電子メールアカウントまたは前記ウェブページ、前記投稿文に記録されたビットコイン取引アドレスなどを収集する方法で、違法な取引に関する情報119を収集する。収集された情報は、後述のデータ処理モジュール130及び知識グラフ作成モジュール140で精製され、意味または関係が推論される。
【0015】
一方、悪意のあるコードのバイナリデータを収集する場合も考慮することができる。従来のセキュリティソリューションによると、クライアントデバイスにセキュリティプログラムがエージェントとしてインストールされ、デバイスに悪意のあるコードが流入されると、セキュリティプログラムが悪意のあるコードを収集する方法を取っていた。
【0016】
ところが、近年の悪意のあるコードは、少数の特定のユーザを攻撃対象とする場合が多いので、従来のような方法では、セキュリティプログラムがすべての悪意のあるコードを収集することが困難であるといった問題がある。さらに、従来の方法によると、ユーザデバイスが感染してから、悪意のあるコードのバイナリデータが収集されるといった問題がある。
【0017】
従って、本発明は、前記課題を解決するために、クライアントが悪意のあるコードに感染する前に悪意のあるソフトウェアを検出及び収集する方法を提供することを目的とする。そのため、本発明の実施形態によると、一般的データ収集モジュール110及び/または特殊データ収集モジュール120からデータソース113及びシードデータ116を収集し、それを用いて、悪意のあるコードの配布及び/または制御サーバから直接悪意のあるコードのバイナリデータ119を収集してもよい。
【0018】
さらに詳しくは、一般的データ収集モジュールは、まず、一般のウェブ環境下でアクセス可能な信頼性の高いデータソースのリスト113を作成する。前記データソースの例としては、国内外のセキュリティ企業、セキュリティ団体が運用するウェブサイト、ブログ、レポート、及びSNSアカウントが挙げられる。
【0019】
それから、一般的データ収集モジュール110は、前記データソースのリストに該当するウェブページに存在するすべてのURLリンクをクロールし、悪意のあるコードに対するシードデータ116を収集する。
【0020】
悪意のあるコードに対するシードデータは、大きく二つに分類することができる。
【0021】
第1のシードデータは、侵害指標(Indicator Of Compromise)であり、ネットワークやデバイスのオペレーティングシステムで発見されたサイバー侵害事故における指標または証拠として活用されるデータを意味する。本発明の実施形態によると、前記第1のシードデータによって、任意のデバイスに対する悪意のあるコードの感染を確認することができる。
【0022】
第2のシードデータは、Command&Control(C&C)インフラストラクチャを有する悪意のあるコードを制御する制御サーバのDNSに関連するデータであってもよい。C&C構造の悪意のあるコードは、バイナリ内部に制御サーバのドメインアドレスを保存したり、ドメインアドレス生成ルーチンを含むことで、ドメインにマッピングされたIPアドレスを継続して変更する方法で動作する。このような方法で、悪意のあるコード制御サーバは、悪意のあるコードのバイナリファイルの再配布をすることなくC&Cを変更できるように動作する。
【0023】
本発明の実施形態に係る第1のシードデータは、悪意のあるソフトウェアの名前、悪意のあるソフトウェアのハッシュ値(md5、sha1、sha256など)、悪意のあるコードを制御するCommand&Control(C&C)のIPアドレス、ドメインアドレス及びドメインアドレスの生成ルーチン、悪意のあるソフトウェアから生成されるファイルの名前と種類、悪意のあるソフトウェアのソースコード、行為及び悪意のあるコードの通信メッセージで発見されるシグネチャ、例えば、特有のメッセージ構造、開発者ID、及びコードスニペット(snippet)の再利用ログなどが例として挙げられる。本発明の実施形態に係る第1のシードデータは、前記例示以外にも、任意の悪意のあるソフトウェアを特定することができるすべてのデータを含んでいてもよい。
【0024】
第1のシードデータの収集のために、本発明の実施形態に係る一般的データ収集モジュール110は、データソースのリスト113に記録されたウェブページに存在するすべてのURLリンクをクロールしながら正規表現で検索し、ネットワークやデバイスのオペレーティングシステムで発見されたサイバー侵害事故の指標または証拠として活用することができるデータを抽出し、その情報が公開された日付とデータソースを併せて記録することで、第1のシードデータ116を作成する。
【0025】
例えば、悪意のあるコードRanscamの場合、データソースの例としてCisco Talosブログ(https://blog.talosintelligence.com/2016/07/ranscam.html)が挙げられる。一般的データ収集モジュールは、前記ブログからRanscamに対する第1のシードデータを抽出する。
【0026】
例えば、クローラは、Cisco Talosブログ(https://blog.talosintelligence.com/2016/07/ranscam.html)から、Ranscamソースコードのハッシュ値であるSHA256ハッシュ関数、悪意のあるソフトウェアが通信を試みたサーバのドメインアドレス及びIPアドレス、悪意のあるソフトウェアが生成したファイル名、及びドメイン登録者の電子メールアドレスをRanscamの侵害指標である第1のシードデータとして抽出する。
【0027】
また、悪意のあるコード制御サーバのDNS情報に対する第2のシードデータは、データソースから収集したドメインにマッピングされるIPアドレスをモニターしながら、攻撃者が使用するIPアドレスのリストを取得する方法で抽出してもよい。それは、同じ攻撃者が新しい悪意のあるソフトウェアを配布する際に、同一または類似のIPアドレスのリストを使用する可能性が高いからである。
【0028】
さらに詳しくは、前記第2のシードデータは、データソースから手動(Passive)収集DNSレプリケーション(Replication)情報を収集し、第1のシードデータに含まれているC&CのIPアドレス及びドメインアドレスを検索し、検索結果に基づいてドメイン情報を抽出して、IPアドレス、ドメインアドレス、ドメイン登録者情報、及び登録満了日などを解析(parsing)し、ドメイン情報と一緒に保存する方法で作成する。
【0029】
それから、一般的データ収集モジュール110は、悪意のあるコードに対する第1のシードデータ及び第2のシードデータから取得した新しいIPアドレスとドメインアドレスを用いて、悪意のあるコード及び悪意のあるコードにアクセスするためのURLパス、悪意のあるコードのファイル、悪意のあるコードの開発者及びトレーダーに関するデータ119を収集する。
【0030】
例えば、悪意のあるコードに対するデータソース、即ちネットワークセキュリティ企業またはセキュリティ団体が運用するDNS情報検索サービスからDNSリフレクション情報を収集し、シードデータのC&C IPアドレス及びドメインアドレスを検索して、前記DNSリフレクション情報及びC&C IPアドレス、ドメインアドレスに記録された他のIPリンクを確認し、トラバースすべきリンクがなくなるまでトラッキングする方法で悪意のあるコードまでのURLパスを生成し、URLパスに基づいて悪意のあるコードのバイナリファイルに対するRawデータ119を取得する。
【0031】
そのとき、悪意のあるコードの販売サイトは、隠された一般のウェブであるか、あるいは通常のブラウザではアクセスすることができないダークウェブをベースにすることがある。ダークウェブ上で悪意のあるコードが取引される場合には、特殊データ収集モジュール120で、その販売サイトのアドレス及び悪意のあるコードのファイルを取得してもよく、それに対する具体的な内容は、特殊データ収集モジュール120の説明において後述する。
【0032】
さらに、データ処理モジュール130は、収集されたRawデータから無効であるか、あるいは不要な情報をフィルタリングするために前処理を行い、収集されたデータが実際に悪意のあるコードに対応するか否かをラベリングする。データ処理モジュール130の動作については、後述する。
【0033】
また、一般的データ収集モジュールは、当該悪意のあるコードに対する分析によって別の販売サイトのURL情報を獲得し、販売サイトに記録された電子メールアカウント、前記電子メールアカウントと連動したSNSアカウントを用いて、悪意のあるコードの開発者、トレーダーを追跡することのできるデータ119を取得する。
【0034】
そのとき、悪意のあるコードに対する取引ビットコインを用いて行われた場合には、特殊データ収集モジュール120でビットコード取引データを取得してもよく、それに対する具体的な内容は、特殊データ収集モジュール120の説明において後述する。
【0035】
また、特殊データ収集モジュール120は、別途のアクセス権が必要なディープウェブ、特定のブラウザでなければアクセスすることができないダークウェブ及び/または近年において違法な取引の取引手段となっている暗号通貨ネットワークからデータを収集する機能を果たしてもよい。
【0036】
さらに詳しくは、特殊データ収集モジュール120は、アクセス権を要求するディープウェブの場合、陰性的なコミュニティ、ハッキングフォーラムなど、ウォッチリストに対するデータソース113を事前に作成し、データソースへのアクセス権を取得して、データソースから検索の基となるシードデータ116を収集し、シードデータに記録されたIPから、接続された他のIPリンクを確認し、トラバースするリンクがなくなるまでトラッキングする方法で、犯罪及び脅威に関連するセキュリティキーワードを含むディープウェブサーバに掲示されたデータ119を収集する。
【0037】
ところが、ダークウェブの場合、一般的な方法による検索やクローラをネットワークで防御しているので、一般的な検索エンジンを利用することができないといった問題がある。さらに、違法な取引の手段である暗号通貨の場合、暗号化アルゴリズムとP2P(Peer to Peer)ネットワークを用いて取引元帳が分散されて管理されるため、ダークウェブデータと同様に、一般的な検索エンジンを用いては取引元帳に対するデータを収集することができず、取引元帳データを収集するための別の装置が必要である。
【0038】
従って、本発明の実施形態に係るデータ収集システム120は、ダークウェブのデータを収集するためのシステム200及び取引元帳データを収集するためのシステムを構築してもよい。
【0039】
図2は、本発明の実施形態に係るダークウェブデータを収集するためのシステムの構成に関する説明図である。
【0040】
図2Aの例において、本発明の実施形態に係るダークウェブデータを収集するためのシステム200は、ダークウェブドメイン処理装置220、ダークウェブ情報処理装置210、及びダークウェブページデータベース230を含んでもよく、ドメイン処理装置220においてダークウェブの情報収集の対象となるドメインが決定されると、ダークウェブ情報収集装置210は、当該ドメインから取得したウェブサイトのあらゆる情報をデータベース230に保存する機能を果たしてもよい。
【0041】
さらに詳しくは、本発明の実施形態に係るダークウェブドメイン処理装置220には、ドメイン収集器222、ドメイン状態追跡器223、ドメインデータベース224、及びドメイン分配器225を含んでいてもよい。
【0042】
本発明の実施形態に係るドメイン情報収集器222は、FreshOnionsのようなトーア検索エンジンを用いてドメインアドレスを収集するか、あるいはダークウェブドメイン索引サイトに記録された情報を参考にしてドメインアドレスを収集し、ドメインアドレスデータベース224に保存する。
【0043】
なお、トーアネットワークは、ネットワーク迂回と匿名化のために用いられるツールであり、オンラインブラックマーケットの多くがトーアネットワークのドメインに常駐している。このようなブラックマーケットは、追跡の可能性を下げるために頻繁にドメインアドレスを変更し、ウェブサイトを閉鎖したり、閉鎖されたウェブサイトを再度運営する特徴がある。
【0044】
従って、本発明の実施形態に係るドメイン収集装置220は、
図2Bに示すように、ドメイン状態追跡器223を含み、前記ドメイン状態追跡器223は、収集されたドメインアドレスの状態を予め設定された周期で確認する機能を果たす。
【0045】
例えば、ドメイン状態追跡器223は、トーアのSTEM APIを用いて予め設定された周期で収集されたドメインの登録有無を確認する方法で、ドメインアドレスデータベースに存在するドメインの状態変更情報を確認する。即ち、収集されたドメインアドレスの閉鎖、運営、変更有無に対する情報を収集し、ドメインデータベース224は、ドメインの状態変更データをドメインアドレスデータに対するメタデータとして併せて保存する。
【0046】
また、本発明の実施形態に係る分配器225は、ドメインの登録状況を参考にして、一番最近の登録が確認されたドメインから優先して分散クローラ215に分配するように動作する。これは、ドメインが頻繁に変更されるダークウェブの特性を考慮して、データ収集にかかる時間とリソースの無駄を最低限に抑えるためである。
【0047】
さらに詳しくは、本発明の実施形態に係るドメイン分配器225は、ドメイン状態追跡器223で事前に把握したドメインの登録状況を参考にして、一番最近の登録が確認されたドメインから優先して分散クローラ215に分配する。
【0048】
また、本発明の実施形態に係るドメイン分配器225は、分散クローラ215の各クローラインスタンスの状態を把握し、次にクロールするドメインを、クロールを完了したクローラインスタンスに直ちに割り当てる機能を果たしてもよい。これは、ドメインに接続されたウェブサイトの規模がそれぞれ異なることから、トーアネットワークの状態によってクロールにかかる時間が異なるためである。従って、本発明の実施形態に従い、ドメイン分配器225から動的にクローラインスタンスにドメインを割り当てると、分散クローラ215の利用効率(utilization)が極大化され、最も短い時間で多くのデータを収集することができるといった効果がある。
【0049】
また、ほとんどのダークウェブのベースとなるトーアネットワークは、目的地まで一度に通信せずに、途中でトーアルータを実行している複数のクライアントノードを経てチャンネルを形成する構造を成している。よって、通常のブラウザに比べて通信速度が非常に遅い。さらに、匿名性を確保するために、ノードを経る度にパケットが暗号化されるため、パケットの経路を探し出すためには、ほとんどのノードを掌握しなければならない特徴がある。
【0050】
これを解決するために、本発明の実施形態に係るダークウェブデータを収集するためのシステム200は、ダークウェブ情報処理装置210を複数のトーアノードを運用するトーアプロキシミドルボックスの形で運用する特徴がある。これは、ダークウェブの構造上一般的なクローラは動作しないので、ダークウェブアーキテクチャを構成するトーアノードを直接運用してデータを収集するためである。
【0051】
さらに、本発明の実施形態に係るトーアプロキシミドルボックス形のダークウェブ情報処理装置210は、少なくとも1つのトーアノードコンテナ212を構成し、コンテナ212に複数のトーアクライアントノード213を運用して、それぞれのノードにネットワークカード、NIC214及びウェブプロキシ216のネットワーク機能を提供する。
【0052】
また、複数の分散クローラ215を並列的に運用して動作し、分散クローラ215の動作に応じて発生する大量のダークウェブトラフィックを、ロードバランサ217及びウェブプロキシ216を介して直接運用しているトーアクライアントノード213に割り当てる。
【0053】
トーアネットワークの構造及び遅い速度を考慮すると、トーアネットワークのドメインにアクセスして大量の情報を収集する処理を行うと、深刻なボトルネックが発生するといった問題がある。本発明の前記アーキテクチャは、ボトルネックになることなく分散クローラ215で発生するすべての要求をダークウェブに伝達し、ダークウェブから返ってくる応答を分散クローラ215に伝達するために考案されたものである。
【0054】
さらに詳しくは、ダークウェブデータ収集における障害となる第1のボトルネックは、データ処理装置、即ち、ミドルボックス210が配置されたネットワーク環境によって発生する。例えば、ミドルボックス210にネットワークを提供するネットワーク機器の性能が十分でないか、あるいはIPベースの帯域幅制限など、ネットワークポリシーによって帯域幅が制限される場合、ボトルネックが発生する。
【0055】
これを解決するために、本発明の実施形態に係るトーアプロキシミドルボックス210は、1つの物理サーバに複数のネットワークカード(NIC;214)を配置し、複数のパブリックIPを割り当てることで、ダークウェブへのトラフィックを物理的に分散処理することができる。トラフィックを分散処理するために、ミドルボックスは、複数のトーアクライアント213を含む複数の仮想コンテナ212を運用する。
【0056】
それから、ミドルボックスは、入ってくるダークウェブトラフィックをロードバランシング(load balancing;217)して各コンテナに伝達し、各コンテナは、各NICを介してダークウェブに要求を伝達するように設定され、物理的なボトルネックを解決する。
【0057】
ダークウェブデータ収集における障害となる第2のボトルネックは、トーアクライアントが複数の要求を並列処理する際に発生する。1つのトーアクライアントによってダークウェブに対する分散クローラの複数の要求を処理すると、負荷が発生するためである。
【0058】
これを解決するために、本発明の実施形態に係るトーアプロキシミドルボックス210は、複数の仮想コンテナを運用し、それぞれのコンテナは、複数のトーアクライアントを運用する構造で実現することができる。これによると、各コンテナは、受け渡された要求を運用している複数のトーアクライアントに分散伝達することで、トーアクライアントで発生するボトルネックを解決することができるといった効果がある。
【0059】
図3は、本発明の実施形態に従い、ダークウェブデータを収集するためのシステム200においてトーアネットワークのデータを収集する過程に関する説明図である。
【0060】
本発明の実施形態に係るダークウェブデータ収集システム200は、まず、トーアネットワークのドメインリストを収集する(ステップ330)。
【0061】
そのために、本発明の実施形態に係るダークウェブデータ収集システム200のデータ収集装置200は、Ahmia及びFreshOnionsのようなトーア検索エンジンまたはダークウェブインデックスサイトを用いて、ドメインアドレスを収集する。
【0062】
さらに、収集したドメインアドレスをシードとして、当該アドレスからテキストコンテンツをクロールし、ダークウェブページに埋め込まれたリンクを辿ってトラバースするリンクがなくなるまでトラッキングする方法で、トーアネットワークのドメインアドレスを収集する。
【0063】
ステップ350において、ダークウェブデータ収集システム200は、収集されたドメインアドレスの状態を予め設定された周期で確認する。例えば、トーアのSTEM APIを用いて当該ドメインが運営されているか、それとも閉鎖されているかを確認したり、あるいは当該ドメインで運営するウェブページの内容が追加・削除・変更されたか否かを確認し、当該ドメインに対するメタデータに状態変更情報を記録する。
【0064】
それから、ダークウェブデータ収集システム200は、分散クローラ及び複数のトーアノードを運用する複数のコンテナを実現し、収集されたドメインを分散クローラに割り当てる(ステップ370)。
【0065】
さらに詳しくは、本発明の実施形態に係るダークウェブデータ収集システム200は、事前に把握したドメインの登録状況を参考にして、一番最近の登録が確認されたドメインから優先して分散クローラに割り当てるか、あるいは分散クローラを構成する各クローラインスタンスの状態を把握し、次にクロールするドメインを、クロールを完了したクローラインスタンスに動的に割り当てる。
【0066】
それ以降クローラの動作に応じて発生するトラフィックは、ロードバランサを介して各コンテナに伝達され、各コンテナは接続されたNICを介してダークウェブに要求を伝達して、クローラは、当該ドメインで運営するダークウェブページ全体を収集し、それをデータベースに記録する(ステップ390)。
【0067】
図1の説明に再び戻ると、特殊データ収集モジュール120には、暗号通貨取引データ収集モジュールが含まれてもよい。
【0068】
暗号通貨取引データ収集モジュールは、任意の暗号通貨に対応するブロックチェーンの分散元帳情報を収集し、前記分散元帳情報から抽出したブロックチェーンデータを定型化する機能を果たす。
【0069】
さらに詳しくは、暗号通貨取引データ収集モジュールは、少なくとも1つの暗号通貨クライアントを運用し、それを実行してブロックチェーンの分散元帳情報を収集する。暗号通貨クライアントを実行するか否かは、ユーザの要求によって行われる。
【0070】
暗号通貨取引データ収集モジュールは、暗号通貨クライアントがAPIを提供する場合、暗号通貨クライアントのAPIに取引情報を要求し、要求に対応する分散元帳情報を収集してもよい。仮に暗号通貨クライアントが外部APIを提供しない場合には、暗号通貨取引データ収集モジュールは、暗号通貨クライアントが管理するブロックデータを解析(parsing)して、分散元帳情報を収集してもよい。
【0071】
収集された分散元帳情報は、データ処理モジュール130で分析されてもよい。例えば、データ処理モジュール130は、分散元帳情報に含まれる暗号通貨アドレスの所有者推定のために、前記暗号通貨アドレスをグループ化する。
【0072】
暗号通貨アドレスのグループ化には、1つの取引に含まれる複数の入力アドレスをグループ化するマルチ入力ヒューリスティックアルゴリズムと、取引に用いられている秘密鍵(private key)を用いて、同じアドレスを含む複数のグループを1つのグループにグループ化するグループ統合アルゴリズムと、送金後の残高が返金されるアドレスを用いて、同じ所有者であると推定される複数のアドレスをグループ化するアドレス変更ヒューリスティックアルゴリズムとのうち少なくとも1つを用いてもよく、その他にも、ユーザが定義したヒューリスティックアルゴリズムが用いられてもよく、ユーザコマンドによってアドレスのフィルタリング及び/またはアドレスグループ化が行われてもよい。
【0073】
また、
図1の例では、一般的データ収集モジュール110及び特殊データ収集モジュール120の動作により収集されたデータベース125は、マルチドメインから収集されたデータであるため非定型の状態である可能性がある。従って、大量の非精製データを前処理する過程が必要であり、その機能は、データ処理モジュール130で果たされる。
【0074】
さらに詳しくは、本発明の実施形態に係るデータ処理モジュール130は、収集された大量のデータを類型別に他の技術を適用して情報を抽出且つ加工する機能を果たし、データ分析モジュール133、データ加工モジュール136、及びメタデータ生成モジュール138を含んでいてもよい。
【0075】
例えば、収集したデータが整形または非定型文書である場合、データ分析モジュール133は、収集された文書に自然言語処理技術を適用して意味を把握し、データ加工モジュール136は、非定型文書の形を予め設定されたフォーマットに基づいて定型化する。別の例として、収集したデータが画像である場合、データ分析モジュール133は、当該ファイルの画像を抽出し、画像処理(image processing)によって画像の内容を把握することができる。同時にデータ加工モジュール136は、抽出された画像からOCR(Optical Character Recognition)技術を活用してテキストを抽出し、これを予め設定されたフォーマットに基づいて定型化する。さらに、メタデータ生成モジュール138は、分析対象画像の作成者、作成時刻、ソースドメイン情報などに対するメタデータを生成する。
【0076】
また、収集したデータが実行可能ファイルである場合、データ分析モジュール133は、実行可能ファイルの内容を分析して悪意のあるコードであるか否かを判断し、データ加工モジュール136は、当該実行可能ファイルが収集されたドメイン情報に基づいて、悪意のあるコードにアクセスするための複数のURLパスを生成する。さらに、メタデータ生成モジュール138は、悪意のあるコードのハッシュ、ファイルの種類、それぞれのURLパスの悪意のあるコードアクセスカウンタ情報に対するメタデータを生成する。
【0077】
このようなデータ処理は、知識グラフ作成モジュール140の要求に応じて行われる。即ち、データ加工モジュール136は、知識グラフのフォーマットに基づいて、マルチドメインで収集された情報を知識グラフに記録することのできる形に定型化し、データ分析モジュール133は、知識グラフに基づいて収集された情報からオブジェクトを抽出する。
【0078】
例えば、収集したデータが暗号通貨取引の記録、即ち分散元帳情報である場合、データ分析モジュール133は、分散元帳に含まれていない追加情報を取得するために、分散元帳情報を分析する。例えば、収集された分散元帳情報に含まれる暗号通貨アドレスの所有者推定のために、前記暗号通貨アドレスをグループ化する。
【0079】
暗号通貨アドレスのグループ化には、1つの取引に含まれる複数の入力アドレスをグループ化するマルチ入力ヒューリスティックアルゴリズムと、取引に用いられている秘密鍵(private key)を用いて、同じアドレスを含む複数のグループを1つのグループにグループ化するグループ統合アルゴリズムと、送金後の残高が返金されるアドレスを用いて、同じ所有者であると推定される複数のアドレスをグループ化するアドレス変更ヒューリスティックアルゴリズムとのうち少なくとも1つを用いてもよく、その他にも、ユーザが定義したヒューリスティックアルゴリズムが用いられてもよく、ユーザコマンドによってアドレスのフィルタリング及び/またはアドレスグループ化が行われてもよい。
【0080】
マルチ入力ヒューリスティックアルゴリズムは、1つの取引に複数の入力アドレスと複数の出力アドレス(または対象アドレス)が用いられ得る暗号通貨取引の属性を利用したものである。1つの取引に入力アドレス(public address)a、b、cが含まれている場合、a、b、cは、同じ所有者の口座である可能性が高い。従って、ブロックチェーンデータ分析モジュール115は、a、b、cを所有者Xのアドレスとしてグループ化(grouping)する。
【0081】
グループ統合アルゴリズムは、所有者が秘密鍵を所有しなければ取引の入力を生成することができないという点を利用したもので、入力アドレスa、b、cが含まれている取引1と、入力アドレスc、d、eが含まれている取引2が存在する場合、a、b、c、d、eの所有者が同じであると推定することができる。従って、この場合には、データ分析モジュール133は、アドレスa、b、c、d、eを所有者Xのアドレスとしてグループ化する。
【0082】
アドレス変更ヒューリスティックアルゴリズムは、暗号通貨取引が行われるたびに残高返金のためのアドレスが新たに生成される特徴を利用したものである。例えば、アドレスaに10 UTXO(unspent transaction output)を所有したXがYに8 UTXOを送金するとき、Xには新しいアドレスa´が生成され、a´に残高の2 UTXOが入金される。従って、ブロックチェーンデータ分析モジュール115は、aとa´を同じ所有者のものと判断することができ、aとa´は、所有者Xのアドレスとしてグループ化される。
【0083】
データ加工モジュール136は、分散元帳情報及び前記データ分析モジュールから分析した暗号通貨アドレスのグループ情報が含まれるブロックチェーンデータを予め設定された基準に基づいて定型化してもよい。分散元帳情報には、ブロックの生成時間、入力/出力金額、取引手数料、前のブロック、次のブロックなどの暗号通貨ブロックデータ、取引量、手数料、入力/出力暗号通貨アドレスなどのブロック内の取引情報が含まれてもよく、それは、メタデータ138として管理されてもよい。故に、定型化されたブロックチェーンデータには、様々な暗号通貨の分散元帳情報に含まれた暗号通貨ブロックデータと、ブロック内の取引情報とが含まれてもよく、暗号通貨の種類とデータ分析モジュール133で分析した暗号通貨アドレスのグループ情報が含まれてもよい。
【0084】
また、
図1の例において、知識ベースのグラフモジュール140は、精製されたデータを知識グラフの形で構築し、オブジェクト間の関係、関連性を把握する機能を果たしてもよい。知識ベースのグラフは、ノードとエッジで構成される。
【0085】
さらに詳しくは、KBグラフモジュール140は、知識グラフにおいてノードとして動作するオブジェクトに対するモデルを事前に作成し、本発明の実施形態に係るノードモデルは、コンセプトとインスタンスに区分されてツリー形式で作成され、例えば、前述のシードデータ、DNS、悪意のあるコード、ビットコイン取引アドレスなどに対するデータのそれぞれを意味する。ラベルを用いて、当該ノードの詳細情報をインデックスする。
【0086】
前記ノードモデルは、人、職業、場所、国、会社などのグローバルドメインに対して作成されるか、あるいは脆弱点、プロダクト、サイバー攻撃などの特定のドメインに対して作成される。そのとき、グラフ作成モジュール140は、互いに異なる種類のデータを区別するために、ノードのラベルを設定する。前記ラベルには、ノードの属性情報が含まれる。
【0087】
さらに、KBグラフモジュール140は、知識グラフのノード間の関係を説明するエッジの内容を記録してもよい。エッジは、ノードとオブジェクトとの間の関連性を示す。そのとき、すべてのエッジは、方向性を含んでおり、関連性の種類によってエッジにラベルを設定する。
【0088】
さらに、KBグラフモジュール140は、知識グラフを拡大するために、マルチドメインから収集されたデータベース125を活用してもよい。例えば、グラフ作成モジュール140は、データ処理モジュール130に要求して、データベースに記録された情報を、自然言語処理技術を適用して文章の構造を把握し、文章に含まれているオブジェクト同士の関係を確認する。
【0089】
KBグラフモジュール140は、それを踏まえてデータ処理モジュール130に要求して収集されたデータからオブジェクト及び/またはオブジェクト間の関係に対する情報を抽出し、それを知識グラフにノードまたはエッジの形で追加することで、タクソノミーグラフ(Taxonomy Graph)を拡張するか、あるいは事前に作成された知識グラフにマッピングされるエンティティグラフ(Entity Graph)を作成する。
【0090】
さらに、KBグラフモジュール140は、KBグラフに基づいて、オブジェクト同士の関連性を分析するか、あるいは任意のイベントを予測する。
【0091】
例えば、KBグラフモジュール140は、KBグラフを多層(multi-layer)で構成する。例えば、暗号通貨取引記録の場合には、グラフ作成モジュール140は、データ処理モジュール130で処理(processing)した定型化されたブロックチェーンデータを用いて暗号通貨取引に対する第1の知識グラフを構築し、定型化されたマルチドメインデータを用いて、例えば、悪意のあるコード取引に対する第2の知識グラフを構築し、前記第1の知識グラフと第2の知識グラフをマッピングして多層ベースの取引分析知識グラフを生成する。
【0092】
そのとき、第1の知識グラフである暗号通貨ネットワークグラフは、定型化されたブロックチェーンデータから抽出した第1のオブジェクトまたは第1の属性で第1のノードを生成し、各ノード間の関係(edge)を用いて暗号通貨ネットワークグラフを構築してもよい。例えば、暗号通貨入力アドレス(オブジェクトノード)-送付金額(エッジ)-暗号通貨出力アドレス(オブジェクトノード)のようなネットワークグラフや、グループ情報が反映された所有者X(オブジェクトノード)-送付金額(エッジ)-ランサムウェア(属性ノード)のようなネットワークグラフが生成される。
【0093】
さらに、知識グラフ生成モジュール153は、定型化されたマルチドメインデータから抽出した第2のオブジェクトまたは第2の属性で第2のノードを生成し、各ノード間の関係(edge)を用いて第2の知識グラフを構築してもよい。例えば、知識グラフ生成モジュール153は、ウェブページから抽出したプロフィールデータを用いてユーザID(オブジェクトノード)-所有(エッジ)-暗号通貨アドレス(オブジェクトノード)のようなノード及びエッジを生成し、ウェブページから抽出した販売データを用いて暗号通貨アドレス(オブジェクトノード)-入金(エッジ)-製品(オブジェクトノード)のようなノードとエッジを生成することで、第2の知識グラフを構築する。第2の知識グラフもまた、暗号通貨取引記録に対する第1の知識グラフのように少なくとも1つの層に表示され、多層構造を有してもよい。各層の知識グラフは、互いに異なるカテゴリに属してもよい。
【0094】
知識グラフ作成モジュール140は、互いに対応する第1のノードと第2のノードをマッピングして取引分析知識グラフを生成してもよい。例えば、暗号通貨ネットワークグラフの第1の層に含まれているノード(A)がアドレスaに対応し、ノード(B)がアドレスbに対応し、2つのアドレスは、同じグループに属する関係であり、知識グラフの層#1に含まれているノード(C)が、暗号通貨アドレスbである場合を考慮する。
【0095】
ノード(B)とノード(C)は、同じ情報を含むため、相互マッピングされる。即ち、知識グラフは、暗号通貨取引記録に対する第1の知識グラフと第2の知識グラフのノードが相互マッピングされた多層構造を有するので、取引分析知識グラフを用いると、第2の知識グラフの構成要素を介して、暗号通貨ネットワークに対する第1の知識グラフの構成要素を解析する作業が可能である。例えば、ノード(C)が、ユーザIDを表すノード(D)と所有者エッジに接続されている場合、アドレスaとbの所有者は、ノード(D)に対応するユーザIDを有する人であると推論する。
【0096】
本明細書と図面に示す本発明の実施形態は、本発明の技術内容を分かりやすく説明して本発明の理解を助けるために特定の例を提示したものにすぎず、本発明を限定するものではない。ここに示した実施形態以外にも、本発明の技術的思想に基づいた他の変形例が実施可能であることは、本発明の属する技術分野における通常の知識を有する者にとって明らかであろう。
【国際調査報告】