(57)【要約】      （修正有）【課題】悪性サーバの探索を効率的に行うことが可能な探索装置、探索方法及び探索プログラムを提供する。【解決手段】探索装置は、既知のマルウェアの通信データから、リクエストに対応する第１の通信データと、レスポンスに対応する第２の通信データと、の組み合わせであるフィンガープリントをプロトコル非依存で抽出する。探索装置は、フィンガープリントに対し、マルウェアの悪性度に応じた優先度を付与する。探索装置は、送出先の中から探索対象の送出先を決定する。探索装置は、フィンガープリントの第１の通信データに基づくプローブと、フィンガープリントの第２の通信データのペイロードに基づくシグネチャと、を生成する。探索装置は、探索対象の送出先に対し、優先度に応じた順序でプローブを送出する。探索装置は、レスポンス及びシグネチャを基に送出先が悪性であるか否かを判定する。【選択図】図６
2020060978.tif 000002
【特許請求の範囲】
【請求項１】
既知のマルウェアを実行して得た通信データから、リクエストに対応する第１の通信データと、当該リクエストに対するレスポンスに対応する第２の通信データと、の組み合わせであるフィンガープリントを抽出する抽出部と、
前記フィンガープリントに対し、前記マルウェアの悪性度に応じた優先度を付与する付与部と、
前記フィンガープリントに含まれる前記第１の通信データに基づくリクエストであるプローブと、前記フィンガープリントに含まれる前記第２の通信データに基づくシグネチャと、を生成する生成部と、
送出先の通信に関する情報を基に、前記送出先の中から探索対象の送出先を決定する決定部と、
前記決定部によって決定された探索対象の送出先に対し、前記付与部によって付与された優先度に応じた順序で、前記生成部によって生成されたプローブを送出する送出部と、
前記送出部によって送出されたプローブに対するレスポンスが、前記生成部によって生成されたシグネチャにマッチするか否かを基に、前記探索対象の送出先が悪性であるか否かを判定する判定部と、
を有することを特徴とする探索装置。
【請求項２】
前記抽出部は、前記第１の通信データと前記第２の通信データの組み合わせのうち、前記第１の通信データに含まれる送信先が、あらかじめ設定されたホワイトリストに掲載されていない組み合わせをペイロードを基に複数のクラスタに分類し、プロトコルに非依存で各クラスタから前記フィンガープリントを抽出することを特徴とする請求項１に記載の探索装置。
【請求項３】
前記付与部は、前記フィンガープリントに対し、前記判定部によって悪性であることが判定された回数が多いほど大きい優先度を付与することを特徴とする請求項１に記載の探索装置。
【請求項４】
前記決定部は、外部から収集したトラヒックデータに基づき、悪性であることが既知の送出先から２ｈｏｐ先の送出先を探索対象の送出先に決定することを特徴とする請求項１に記載の探索装置。
【請求項５】
前記決定部は、悪性の送出先の発見状況に基づくＡＳ（Autonomous  System）ごとの悪性度が、所定の閾値以上であるＡＳに含まれる送出先を探索対象の送出先に決定することを特徴とする請求項１に記載の探索装置。
【請求項６】
前記決定部は、探索対象の送出先に対し、前記ＡＳごとの悪性度が大きい順に探索順序を決定し、
前記送出部は、前記探索順序に従って前記生成部によって生成されたプローブを送出することを特徴とする請求項５に記載の探索装置。
【請求項７】
コンピュータによって実行される探索方法であって、
既知のマルウェアを実行して得た通信データから、リクエストに対応する第１の通信データと、当該リクエストに対するレスポンスに対応する第２の通信データと、の組み合わせであるフィンガープリントを抽出する抽出工程と、
前記フィンガープリントに対し、前記マルウェアの悪性度に応じた優先度を付与する付与工程と、
前記フィンガープリントに含まれる前記第１の通信データに基づくリクエストであるプローブと、前記フィンガープリントに含まれる前記第２の通信データに基づくシグネチャと、を生成する生成工程と、
送出先の通信に関する情報を基に、前記送出先の中から探索対象の送出先を決定する決定工程と、
前記決定工程によって決定された探索対象の送出先に対し、前記付与工程によって付与された優先度に応じた順序で、前記生成工程によって生成されたプローブを送出する送出工程と、
前記送出工程によって送出されたプローブに対するレスポンスが、前記生成工程によって生成されたシグネチャにマッチするか否かを基に、前記探索対象の送出先が悪性であるか否かを判定する判定工程と、
を含むことを特徴とする探索方法。
【請求項８】
コンピュータを、請求項１から６のいずれか１項に記載の探索装置として機能させるための探索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、探索装置、探索方法及び探索プログラムに関する。
【背景技術】
【０００２】
サイバー攻撃において、攻撃者は、作成したマルウェアを感染させたホストをＣ＆Ｃ（Command  and  Control）サーバ等の悪性サーバを通じて操作することで、任意の攻撃を成立させる。このような攻撃に対する防護策として、悪性サーバのブラックリストを用いた通信の検知及び遮断が行われている。
【０００３】
また、ブラックリストに掲載する悪性サーバを探索する方法として、プローブパケットをサーバに送出し、当該プローブパケットに対するレスポンスから当該サーバが悪性であるか否かを判断する方法が知られている（例えば、非特許文献１を参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Antonio  Nappa,  Zhaoyan  Xu,  M.  Zubair  Rafique,  Juan  Caballero,  and  Guofei  Gu.  CyberProbe:  Towards  Internet-Scale  Active  Detection  of  Malicious  Servers.  Proceedings  of  NDSS,  pp.23-26,  February  2014.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術には、悪性サーバの探索を効率的に行うことができない場合があるという問題がある。攻撃者は、複数のサーバを用意し、短期間に使用するサーバを切り替えることで探索を回避する場合があるため、効率的に探索して悪性サーバのリストを更新する必要があるが、従来の技術では効率的な探索を行うことができないことがある。
【０００６】
例えば、非特許文献１に記載の方法では、悪性サーバの候補の絞り込みが不十分なため、悪性として使用され始めたサーバにすぐにプローブパケットを送信できないことや、切り替えにより既に悪性でなくなったサーバに対してもプローブパケットをより多く送信することが考えられる。また、非特許文献１に記載の方法は、フィンガープリントの生成にヘッダの情報を参照し、特定のプロトコルを重視する方式をとっているため、マルウェア独自のプロトコルを含む、その他のプロトコルを用いて通信を行う悪性サーバの発見が不可能になる。このため、非特許文献１に記載の方法では、悪性サーバの探索の効率が低下することがある。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、探索装置は、既知のマルウェアを実行して得た通信データから、リクエストに対応する第１の通信データと、当該リクエストに対するレスポンスに対応する第２の通信データと、の組み合わせであるフィンガープリントを抽出する抽出部と、前記フィンガープリントに対し、前記マルウェアの悪性度に応じた優先度を付与する付与部と、前記フィンガープリントに含まれる前記第１の通信データに基づくリクエストであるプローブと、前記フィンガープリントに含まれる前記第２の通信データに基づくシグネチャと、をプロトコル非依存で生成する生成部と、送出先の通信に関する情報を基に、前記送出先の中から探索対象の送出先を決定する決定部と、前記決定部によって決定された探索対象の送出先に対し、前記付与部によって付与された優先度に応じた順序で、前記生成部によって生成されたプローブを送出する送出部と、前記送出部によって送出されたプローブに対するレスポンスが、前記生成部によって生成されたシグネチャにマッチするか否かを基に、前記探索対象の送出先が悪性であるか否かを判定する判定部と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、悪性サーバの探索を効率的に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態に係る探索装置の構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る悪性通信データの一例を示す図である。
【図３】図３は、第１の実施形態に係るフィンガープリントの一例を示す図である。
【図４】図４は、第１の実施形態に係る探索部の構成の一例を示す図である。
【図５】図５は、第１の実施形態に係る探索対象のサーバの一例を示す図である。
【図６】図６は、第１の実施形態に係る探索装置の処理全体の流れを示すフローチャートである。
【図７】図７は、第１の実施形態に係る探索処理の流れを示すフローチャートである。
【図８】図８は、探索プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る探索装置、探索方法及び探索プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【００１１】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る探索装置の構成について説明する。図１は、第１の実施形態に係る探索装置の構成の一例を示す図である。図１に示すように、探索装置１０は、入出力部１１、通信部１２、記憶部１３及び制御部１４を有する。
【００１２】
入出力部１１は、データの入力の受け付け、及びデータの出力を行う。例えば、入出力部１１は、マウスやキーボード等の入力装置を含む。また、例えば、入出力部１１は、ディスプレイ等の表示装置を含む。また、通信部１２は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部１２はＮＩＣ（Network  Interface  Card）である。
【００１３】
記憶部１３は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１３は、探索装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１３は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部１３は、フィンガープリント記憶部１３１を有する。また、記憶部１３は、トラヒックデータ１３２、ＡＳ情報１３３及びホワイトリスト１３４を記憶する。
【００１４】
ここで、図１に示すように、探索装置１０は、悪性通信データ２０の入力を受け付ける。悪性通信データ２０は、既知のマルウェアをサンドボックス環境で実行した際に発生する通信のデータである。また、探索装置１０は、悪性サーバリスト３０を出力する。悪性サーバリスト３０は、ＩＰアドレス等によって表される悪性サーバの一覧である。
【００１５】
例えば、悪性通信データ２０は、通信において送受信されたＩＰパケットのヘッダ及びペイロードである。図２は、第１の実施形態に係る悪性通信データの一例を示す図である。図２に示すように、悪性通信データ２０には、「データＩＤ」、「マルウェアＩＤ」、「セッションＩＤ」、「プロトコル」、「送信元ＩＰ」、「送信先ＩＰ」、「送信元ポート」、「送信先ポート」及び「ペイロード」等が含まれる。
【００１６】
ここで、図２の悪性通信データ２０の各レコードは、それぞれＩＰパケットに対応しているものとする。「データＩＤ」は、悪性通信データ２０の各レコードを識別するためのＩＤである。また、「マルウェアＩＤ」は、各レコードに対応するＩＰパケットを発生させたマルウェアを識別するためのＩＤである。
【００１７】
また、「セッションＩＤ」は、ＩＰパケットが発生したセッションを識別するためのＩＤである。また、「プロトコル」は、ＩＰパケットのトランスポート層のプロトコルである。また、「送信元ＩＰ」は、ＩＰパケットの送信元のＩＰアドレスである。また、「送信先ＩＰ」は、ＩＰパケットの送信先のＩＰアドレスである。また、「送信元ポート」は、ＩＰパケットの送信元のポート番号である。また、「送信先ポート」は、ＩＰパケットの送信先のポート番号である。また、「ペイロード」は、ＩＰパケットのペイロードである。
【００１８】
例えば、図２の「データＩＤ」が「１」のレコードは、「マルウェアＩＤ」が「Ｍ０１」であるマルウェアが、「セッションＩＤ」が「ａ００１」であるセッションにおいて、「プロトコル」が「ＴＣＰ」、「送信元ＩＰ」が「192.0.10.101」、「送信先ＩＰ」が「192.0.20.201」、「送信元ポート」が「50000」、「送信先ポート」が「80」、「ペイロード」が「1011011001…」であるＩＰパケットを発生させたことを示している。
【００１９】
ここで、図３を用いて、フィンガープリント記憶部１３１に記憶されるフィンガープリントについて説明する。図３は、第１の実施形態に係るフィンガープリントの一例を示す図である。フィンガープリントは、悪性通信データ２０において、要求（リクエスト）と応答（レスポンス）の関係にある通信の組み合わせである。
【００２０】
図３に示すように、フィンガープリントは、「リクエストＩＤ」及び「レスポンスＩＤ」によって識別される。ここで、「リクエストＩＤ」及び「レスポンスＩＤ」は、悪性通信データ２０の「データＩＤ」に対応している。つまり、図３の１行目のフィンガープリントの「リクエストＩＤ」と「レスポンスＩＤ」の組み合わせは「１」と「２」なので、当該フィンガープリントは、図２の「データＩＤ」が「１」であるＩＰパケットと「データＩＤ」が「２」であるＩＰパケットとの組み合わせである。また、「リクエストＩＤ」及び「レスポンスＩＤ」には、それぞれ複数の「データＩＤ」が含まれていてもよい。
【００２１】
例えば、図３の１行目のレコードは、悪性通信データ２０における「データＩＤ」が「１」であるＩＰパケットをリクエストとし、「データＩＤ」が「２」であるＩＰパケットをレスポンスとするフィンガープリントを表している。
【００２２】
「発見数」は、当該フィンガープリントを用いてこれまでに発見された悪性サーバの数である。また、「危険度」は、当該フィンガープリントの生成元である既知のマルウェアの危険度である。また、「優先度」は、当該フィンガープリントの優先度である。「優先度」の付与方法については後述する。
【００２３】
トラヒックデータ１３２は、サンドボックスではない大規模な実ネットワークでの通信のログである。トラヒックデータ１３２は、通信におけるデータの送信元及び送信先の情報を含む。例えば、トラヒックデータ１３２は、ＩＰパケットの５−Ｔｕｐｌｅの情報であってもよいし、フローごとの通信量等の統計情報であってもよい。ＡＳ（Autonomous  System）情報１３３は、ＡＳごとの悪性度の情報である。ホワイトリスト１３４は、悪性でないことが既知のサーバの一覧であり、ＩＰアドレス等によって表される。
【００２４】
制御部１４は、探索装置１０全体を制御する。制御部１４は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１４は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１４は、抽出部１４１、付与部１４２、生成部１４３及び探索部１４４を有する。
【００２５】
抽出部１４１は、既知のマルウェアを実行して得た通信データから、リクエストに対応する第１の通信データと、当該リクエストに対するレスポンスに対応する第２の通信データと、の組み合わせであるフィンガープリントを抽出する。
【００２６】
例えば、抽出部１４１は、図２の「データＩＤ」が「１」のレコードと「データＩＤ」が「２」のレコードとの組み合わせであるフィンガープリントを取得する。このとき、図２の「データＩＤ」が「１」のレコードは、第１の通信データの一例である。また、図２の「データＩＤ」が「２」のレコードは、第２の通信データの一例である。また、図３の１行目のレコードは、フィンガープリントの一例である。
【００２７】
まず、抽出部１４１は、第１の通信データ及び第２の通信データの組み合わせである要求応答組を、所定の単位でまとめて抽出する。ここで抽出された要求応答組は、フィンガープリントの候補である。例えば、図２の「プロトコル」が「ＴＣＰ」である場合、抽出部１４１は、セッション単位で第１の通信データ及び第２の通信データの組み合わせを抽出する。また、例えば、図２の「プロトコル」が「ＵＤＰ」である場合、抽出部１４１は、フロー単位で第１の通信データ及び第２の通信データの組み合わせを抽出する。
【００２８】
ここで、フロー単位は、「送信元ＩＰ」、「送信先ＩＰ」、「送信元ポート」、「送信元ポート」同一の単位である。また、抽出部１４１は、通信の間が所定の時間（例えば、１秒）以上開くまでの間に発生した通信のデータをまとめて抽出してもよい。
【００２９】
また、抽出部１４１は、第１の通信データと第２の通信データの組み合わせのうち、第１の通信データに含まれる送信先が、あらかじめ設定されたホワイトリスト１３４に掲載されていない組み合わせを複数のクラスタに分類し、各クラスタからフィンガープリントを１つ以上抽出する。例えば、ＩＰアドレス「192.0.40.201」がホワイトリスト１３４に含まれている場合、抽出部１４１は、図２の「データＩＤ」が「３１」のレコードを抽出しない。また、抽出部１４１は、悪性通信データ２０の各項目の値、すなわちＩＰパケットのヘッダ情報及びペイロードを基にクラスタリングを行う。このようにペイロードを基にクラスタリングを行うことで、抽出部１４１は、プロトコルに依存しないフィンガープリントを生成することができる。
【００３０】
付与部１４２は、フィンガープリントに対し、マルウェアの悪性度に応じた優先度を付与する。付与部１４２は、図３に示すような、フィンガープリントの「危険度」に基づいて優先度を付与することができる。また、付与部１４２は、フィンガープリントに対し、探索部１４４によって悪性であることが判定された回数が多いほど大きい優先度を付与する。探索部１４４による判定処理については後述する。図３の例では、付与部１４２は、「危険度」や「発見数」を基に特定の計算式で優先度を算出する。
【００３１】
生成部１４３は、フィンガープリントに含まれる第１の通信データに基づくリクエストであるプローブと、フィンガープリントに含まれる第２の通信データに基づくシグネチャと、を生成する。
【００３２】
ここで、プローブは、ＩＰパケットであるものとする。このとき、例えば、生成部１４３は、図２の「データＩＤ」が「１」のレコードから、「送信先ＩＰ」が「192.0.20.201」、「送信先ポート」が「80」であるＩＰパケットをプローブとして生成する。また、当該プローブのペイロードは、第１の通信データに対応するＩＰパケットのペイロードそのものであってもよいし、第１の通信データに対応するＩＰパケットのペイロードに変更を加えたものであってもよい。
【００３３】
また、生成部１４３は、第２の通信データに対応するＩＰパケットのペイロードをシグネチャとすることができる。また、生成部１４３は、第２の通信データに対応するＩＰパケットのペイロードの一部を正規表現に置き換えること等によってシグネチャを生成してもよい。
【００３４】
探索部１４４は、プローブ及びシグネチャを用いて悪性サーバの探索を行う。また、探索部１４４は、発見した悪性サーバの一覧である悪性サーバリスト３０を生成し出力する。ここで、図４に示すように、探索部１４４は、ＡＳ評価部１４４ａ、決定部１４４ｂ、調査部１４４ｃ、送出部１４４ｄ及び判定部１４４ｅを有する。図４は、第１の実施形態に係る探索部の構成の一例を示す図である。また、以降の説明で、探索部１４４がプローブを送出するサーバを単に送出先と呼ぶ場合がある。
【００３５】
ＡＳ評価部１４４ａは、悪性の送出先の発見状況に基づくＡＳごとの悪性度を評価する。例えば、ＡＳ評価部１４４ａは、ＡＳごとの悪性のサーバの数を悪性度としてもよいし、ＡＳごとのサーバの総数に対する悪性のサーバの割合を悪性度としてもよい。また、ＡＳごとの過去の悪性サーバの発見数は、ＡＳ情報１３３として記憶部１３に記憶されているものとする。なお、ＡＳ情報１３３は、探索装置１０によって発見された悪性サーバの情報に基づいて作成されたものであってもよいし、あらかじめ外部から取得したものであってもよい。
【００３６】
決定部１４４ｂは、送出先の通信に関する情報を基に、送出先の中から探索対象の送出先を決定する。例えば、決定部１４４ｂは、ＡＳ評価部１４４ａによって評価されたＡＳごとの悪性度が、所定の閾値以上であるＡＳに含まれる送出先を探索対象の送出先に決定することができる。
【００３７】
決定部１４４ｂは、外部から収集したトラヒックデータ１３２に基づき、悪性であることが既知の送出先から２ｈｏｐ先の送出先を探索対象の送出先に決定する。図５は、第１の実施形態に係る探索対象のサーバの一例を示す図である。図５のサーバ５１は、Ｃ＆Ｃサーバであり、悪性であることが既知のサーバである。
【００３８】
ここで、トラヒックデータ１３２は、サーバ５１とマルウェアによりｂｏｔが実行されているサーバ５２との間で通信が行われていることを示しているものとする。さらに、トラヒックデータ１３２は、サーバ５２とサーバ５３との間で通信が行われていることを示しているものとする。この場合、サーバ５３はサーバ５１の２ｈｏｐ先にあるため、決定部１４４ｂは、サーバ５３を探索対象の送出先に決定する。
【００３９】
また、決定部１４４ｂは、探索対象を範囲として決定してもよい。例えば、決定部１４４ｂは、悪性であることが既知の送出先から１ｈｏｐ先及び２ｈｏｐ先の両方、すなわち２ｈｏｐ先以内を探索範囲に決定する。
【００４０】
また、決定部１４４ｂは、ＡＳごとの悪性度が、所定の閾値以上、かつ悪性であることが既知の送出先から２ｈｏｐ先の送出先を探索対象の送出先に決定してもよい。また、決定部１４４ｂは、探索対象の送出先に対し、ＡＳごとの悪性度が大きい順に探索順序を決定することができる。
【００４１】
さらに、決定部１４４ｂは、ＢＧＰ（Border  Gateway  Protocol）経路情報等の外部の情報を参照し、悪性通信データ２０の送信先ＩＰアドレスが含まれるプレフィックスや、悪性通信データ２０の送信先ＩＰアドレスを保持する組織が保持する他のＩＰアドレスが優先的に探索されるように、探索対象及び探索順序を決定してもよい。
【００４２】
調査部１４４ｃは、プローブの送出先のポートが開いているか否かを調査する。例えば、調査部１４４ｃは、既存のポートスキャン技術を用いて送出先のポートを調査することができる。
【００４３】
送出部１４４ｄは、決定部１４４ｂによって決定された探索対象の送出先に対し、付与部１４２によって付与された優先度に応じた順序で、生成部１４３によって生成されたプローブを送出する。また、決定部１４４ｂによって探索順序が決定されている場合、送出部１４４ｄは、探索順序に従って生成部によって生成されたプローブを送出する。
【００４４】
また、調査部１４４ｃの調査により、プローブの送出先のポートが開いていないことが判明している場合、送出部１４４ｄは、当該プローブを送出せずに次のプローブの送出処理に移行することができる。
【００４５】
判定部１４４ｅは、送出部１４４ｄによって送出されたプローブに対するレスポンスが、生成部１４３によって生成されたシグネチャにマッチするか否かを基に、探索対象の送出先が悪性であるか否かを判定する。例えば、判定部１４４ｅは、レスポンスのＩＰパケットのペイロードがシグネチャに完全一致又は部分一致する場合にレスポンスがシグネチャにマッチすると判定してもよい。また、判定部１４４ｅは、レスポンスのＩＰパケットのペイロードとシグネチャとの一致度合いが閾値以上である場合にレスポンスがシグネチャにマッチすると判定してもよい。
【００４６】
［第１の実施形態の処理］
図６を用いて、探索装置１０の処理の流れを説明する。図６は、第１の実施形態に係る探索装置の処理全体の流れを示すフローチャートである。図６に示すように、まず、探索装置１０は、悪性通信データ２０の入力を受け付ける（ステップＳ１１）。次に、探索装置１０は、悪性通信データ２０から要求応答組を抽出する（ステップＳ１２）。
【００４７】
ここで、探索装置１０は、正常な要求応答組を除外する（ステップＳ１３）。なお、正常な要求応答組とは、抽出した要求応答組のうち、送信先がホワイトリスト１３４に含まれる要求応答組である。そして、探索装置１０は、要求応答組のクラスタリングを行い、各クラスタからフィンガープリントを抽出する（ステップＳ１４）。
【００４８】
そして、探索装置１０は、各フィンガープリントの危険度（ステップＳ１５）及び発見数（ステップＳ１６）に基づいて優先度を付与する。ここで、探索装置１０は、探索処理（ステップＳ１７）を行い、探索処理の結果を反映させた悪性サーバリスト３０を出力する（ステップＳ１８）。
【００４９】
図７を用いて、探索装置１０による探索処理について説明する。図７は、第１の実施形態に係る探索処理の流れを示すフローチャートである。また、探索処理は、図６のステップＳ１７に対応する処理である。
【００５０】
まず、図７に示すように、探索装置１０は、フィンガープリントからプローブ及びシグネチャを生成する（ステップＳ１７１）。次に、探索装置１０は、サーバの探索範囲を決定する（ステップＳ１７２）。また、探索装置１０は、サーバの探索順序を決定する（ステップＳ１７３）。そして、探索装置１０は、送出先のポートが開いているか否かを調査する（ステップＳ１７４）。
【００５１】
そして、探索装置１０は、送出先にプローブを送出する（ステップＳ１７５）。このとき、探索装置１０は、送出したプローブに対する応答がシグネチャにマッチするか否かを判定する（ステップＳ１７６）。応答がシグネチャにマッチする場合（ステップＳ１７６、Ｙｅｓ）、探索装置１０は、送出先を悪性サーバリスト３０に追加する（ステップＳ１７７）。一方、応答がシグネチャにマッチしない場合（ステップＳ１７６、Ｎｏ）、探索装置１０は、送出先を悪性サーバリスト３０に追加せずに処理を終了する。また、探索装置１０は、ステップＳ１７５においてプローブを送出した後に、応答が返って来なかった場合（例えば、タイムアウトが発生した場合）、応答がシグネチャにマッチしない場合と同様に、送出先を悪性サーバリスト３０に追加せずに処理を終了する。
【００５２】
［第１の実施形態の効果］
これまで説明してきたように、探索装置１０は、既知のマルウェアを実行して得た通信データから、リクエストに対応する第１の通信データと、当該リクエストに対するレスポンスに対応する第２の通信データと、の組み合わせであるフィンガープリントを抽出する。また、探索装置１０は、フィンガープリントに対し、マルウェアの悪性度に応じた優先度を付与する。また、探索装置１０は、送出先の通信に関する情報を基に、送出先の中から探索対象の送出先を決定する。また、探索装置１０は、フィンガープリントに含まれる第１の通信データに基づくリクエストであるプローブと、フィンガープリントに含まれる第２の通信データに基づくシグネチャと、を生成する。また、探索装置１０は、決定した探索対象の送出先に対し、付与した優先度に応じた順序で、プローブを送出する。また、探索装置１０は、送出したプローブに対するレスポンスが、シグネチャにマッチするか否かを基に、探索対象の送出先が悪性であるか否かを判定する。
【００５３】
このように、探索装置１０は、悪性サーバを発見する可能性が高いフィンガープリントによる探索を優先し、かつ、悪性である可能性が高いサーバを探索対象としている。このため、探索装置１０によれば、悪性サーバの探索を効率的に行うことができる。
【００５４】
また、非特許文献１に記載の方法では、例えばＨＴＴＰのような特定のプロトコルに適合したシグネチャが生成される。これに対し、探索装置１０は、プロトコルに依存せずにフィンガープリントを生成することができ、悪性サーバの探索を効率化することができる。
【００５５】
また、探索装置１０は、第１の通信データと第２の通信データの組み合わせのうち、第１の通信データに含まれる送信先が、あらかじめ設定されたホワイトリスト１３４に掲載されていない組み合わせを、ペイロードを基に複数のクラスタに分類し、プロトコルに非依存で各クラスタからフィンガープリントを抽出する。これにより、悪性でないことが明らかなサーバを探索対象から除外し、探索を効率化することができる。
【００５６】
また、探索装置１０は、フィンガープリントに対し、悪性であることが判定された回数が多いほど大きい優先度を付与する。これにより、過去の実績に基づき、悪性サーバを発見する可能性が高いフィンガープリントによる探索を優先することができる。
【００５７】
また、探索装置１０は、外部から収集したトラヒックデータ１３２に基づき、悪性であることが既知の送出先から２ｈｏｐ先の送出先を探索対象の送出先に決定する。これにより、悪性である可能性が高いサーバを探索対象とすることができる。特に、悪性サーバであるＣ＆Ｃサーバから２ｈｏｐ先には、マルウェアに感染したクライアントの通信先である他の悪性サーバが存在する可能性がある。
【００５８】
また、探索装置１０は、悪性の送出先の発見状況に基づくＡＳごとの悪性度が、所定の閾値以上であるＡＳに含まれる送出先を探索対象の送出先に決定する。これにより、悪性サーバが多く存在することが予想されるＡＳを探索対象とすることができる。
【００５９】
また、探索装置１０は、探索対象の送出先に対し、ＡＳごとの悪性度が大きい順に探索順序を決定する。このとき、探索装置１０は、探索順序に従ってプローブを送出する。これにより、悪性サーバをより早く発見することが可能になる。
【００６０】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６１】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６２】
［プログラム］
一実施形態として、探索装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の悪性サーバの探索を実行する探索プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の探索プログラムを情報処理装置に実行させることにより、情報処理装置を探索装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００６３】
また、探索装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の悪性サーバの探索に関するサービスを提供する探索サーバ装置として実装することもできる。例えば、探索サーバ装置は、悪性通信データを入力とし、悪性サーバリストを出力とする探索サービスを提供するサーバ装置として実装される。この場合、探索サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の悪性サーバの探索に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００６４】
図８は、探索プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６５】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００６６】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、探索装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、探索装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００６７】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０は、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した実施形態の処理を実行する。
【００６８】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６９】
１０  探索装置
１１  入出力部
１２  通信部
１３  記憶部
１４  制御部
２０  悪性通信データ
３０  悪性サーバリスト
１３１  フィンガープリント記憶部
１３２  トラヒックデータ
１３３  ＡＳ情報
１３４  ホワイトリスト
１４１  抽出部
１４２  付与部
１４３  生成部
１４４  探索部
１４４ａ  ＡＳ評価部
１４４ｂ  決定部
１４４ｃ  調査部
１４４ｄ  送出部
１４４ｅ  判定部
【図１】
2020060978.tif 000003
【図２】
2020060978.tif 000004
【図３】
2020060978.tif 000005
【図４】
2020060978.tif 000006
【図５】
2020060978.tif 000007
【図６】
2020060978.tif 000008
【図７】
2020060978.tif 000009
【図８】
2020060978.tif 000010