(57)【要約】  検出装置（１００、２００）は、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する。そして、検出装置（１００、２００）は、類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントを検知用イベントの集合として抽出する。そして、検出装置（１００、２００）は、生成された監視対象ネットワークの通信に基づくイベントの集合と、抽出された検知用イベントの集合とが合致していると判定された場合に、監視対象ネットワークにマルウェア感染端末が存在していることを検知する。
2016076334.tif 000002
【特許請求の範囲】
【請求項１】
監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成部と、
マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出部と、
前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、
を備えることを特徴とするマルウェア感染端末の検出装置。
【請求項２】
前記生成部は、前記イベントの集合として、当該イベントの発生順序を踏まえて形成されるイベント系列を生成し、
前記抽出部は、マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、当該同一クラスタ内に単一のイベント系列しか存在しない場合には、当該イベント系列が一定の長さ以上であった場合に当該イベント系列を検知用イベント系列として抽出し、
前記検知部は、前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する、
ことを特徴とする請求項１に記載のマルウェア感染端末の検出装置。
【請求項３】
前記生成部は、前記イベントの集合として、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、
前記抽出部は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときには当該イベント群を検知用イベント群として抽出し、
前記検知部は、前記生成部によって生成された監視対象ネットワークの通信に基づくイベント群と、前記抽出部によって抽出された検知用イベント群とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する、
ことを特徴とする請求項１に記載のマルウェア感染端末の検出装置。
【請求項４】
前記生成部は、前記監視対象ネットワークの端末ごとに取得されたイベントのうち、所定のイベントを発生させた監視対象ネットワークの端末数を監視対象ネットワークで観測可能な総端末数で除算した値が一定の値よりも大きい場合に、当該所定のイベントを除くイベントのみで前記イベントの集合を生成する、
ことを特徴とする請求項１に記載のマルウェア感染端末の検出装置。
【請求項５】
前記生成部は、前記監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントのうち、当該イベント間の発生間隔が一定時間以上離れていないイベントからイベントの集合を生成する、
ことを特徴とする請求項１に記載のマルウェア感染端末の検出装置。
【請求項６】
前記抽出部は、抽出した前記検知用イベントの集合と、あらかじめ取得しておいた監視対象ネットワークの通信に基づく前記イベントの集合とを照合し、前記イベントの集合同士が合致していると判定された前記監視対象ネットワークの通信に基づくイベントの集合に対応する端末の数を監視対象ネットワークで観測可能な総端末数で除算した値が一定以上となる場合に、前記抽出した前記検知用イベントの集合のうち、前記イベントの集合同士が合致していると判定された当該検知用イベントの集合が除外されたイベントの集合を新たな検知用イベントの集合として抽出する、
ことを特徴とする請求項１に記載のマルウェア感染端末の検出装置。
【請求項７】
前記検知部は、前記監視対象ネットワークの通信に基づくイベント系列と前記検知用イベント系列とで共通する部分のうち、最長となる部分長を当該検知用イベント系列長で除算した値が一定以上であった場合に、当該監視対象ネットワークの通信に基づくイベント系列と当該検知用イベント系列とが合致したと判定する、
ことを特徴とする請求項２に記載のマルウェア感染端末の検出装置。
【請求項８】
前記検知部は、前記監視対象ネットワークの通信に基づくイベント群と前記検知用イベント群とに含まれるイベントのうち、共通的に出現するイベントの個数を、当該検知用イベント群とに含まれるイベントの総数で除算した値が一定以上であった場合に、当該監視対象ネットワークの通信に基づくイベント群と当該検知用イベント群とが合致したと判定する、
ことを特徴とする請求項３に記載のマルウェア感染端末の検出装置。
【請求項９】
前記生成部は、前記監視対象ネットワークの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、重複して出現するイベントを除外して前記イベント系列を生成する、
ことを特徴とする請求項２に記載のマルウェア感染端末の検出装置。
【請求項１０】
マルウェア感染端末の検出装置で実行される検出方法であって、
監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成工程と、
マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出工程と、
前記生成工程によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出工程によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知工程と、
を含んだことを特徴とするマルウェア感染端末の検出方法。
【請求項１１】
監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成ステップと、
マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出ステップと、
前記生成ステップによって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出ステップによって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知ステップと、
をコンピュータに実行させるためのマルウェア感染端末の検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラムに関する。
【背景技術】
【０００２】
近年、情報漏えいや不正アクセス等の脅威をもたらす不正プログラム（以下、「マルウェア」と呼ぶ）が猛威を振るっている。マルウェアは、感染後に攻撃者からサーバ等を介して指令を受け取り、攻撃や情報漏えいなどの脅威をもたらす。昨今のマルウェアは攻撃者との通信を正規の通信に偽装する手法が取られる（例えば、非特許文献１参照）。【０００３】
発見されるマルウェアの数の増加も著しく、数秒に１つの新たなマルウェアが出現しているということが報告されている（例えば、非特許文献２参照）。そのため、アンチウィルスソフト等のホスト側での対策だけではマルウェアによる脅威を防ぎきれない。そこで、通信データを分析し、マルウェアに感染した端末を特定することでマルウェアの脅威を低減させる手法が注目されている（例えば、非特許文献３参照）。【０００４】
マルウェアに感染した端末を検知する手法として、マルウェアに感染した端末に見られる通信の特徴をパターン化し、マルウェアに感染した端末を検知する手法が知られている（例えば、特許文献１参照）。マルウェアに感染した端末を検知する手法の一例は、通信データを分析対象とし、マルウェア解析で得られた通信データをパターン化し、監視対象ネットワーク（ＮＷ）の通信に同様のパターンが現れるかを突き合わせることでマルウェアに感染した端末を検知する手法である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５００９２４４号公報
【非特許文献】
【０００６】
【非特許文献１】高度なサイバー攻撃の動向、[online]、[平成26年9月4日検索]、インターネット<URL：http://www.fireeye.com/jp/ja/resources/pdfs/fireeye-advanced-cyber-attack-landscape.pdf>
【非特許文献２】Annual  Report  Pandalabs  2013  summary、[online]、[平成26年9月3日検索]、インターネット<URL：http://press.pandasecurity.com/wp-content/uploads/2010/05/PandaLabs-Annual-Report_2013.pdf>
【非特許文献３】Sebastian  Garcia他、Survey  on  network-based  botnet  detection  methods、Security  and  communication  networks  2013、[online]、[平成26年3月13日検索]、インターネット<URL：http://onlinelibrary.wiley.com/doi/10.1002/sec.800/full>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の技術には以下のような問題があった。すなわち、前述の通り昨今はマルウェアの数が膨大であるため、全マルウェアの全通信をパターン化してしまうとパターン数が膨大となり、監視対象のネットワークの通信に当該パターンが存在するか否かを判定するのに長い時間を要する。また、前述の従来技術では、通信ペイロードごとに状態を定義し、状態の遷移をパターンとするため、マルウェアが異なる通信ペイロードで通信するだけで新たなパターンが生成されてしまう。さらに、マルウェアの通信には感染していない端末の通信と類似の通信も確認されるため、全ての通信パターンを監視対象のネットワークの通信での検知に使うと、誤検知を誘発してしまう。【０００８】
そこで、本発明は、上述の課題を解決し、マルウェア感染端末を検出する装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、マルウェア感染端末の検出装置は、監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成部と、マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出部と、前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、監視対象ＮＷで照合すべきパターンを削減し、照合にかかる時間を削減することができるとともに、監視対象ＮＷで通常発生する通信を誤って検知する事態を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、第一の実施の形態に係る検出装置の概要を示す構成図である。
【図２】図２は、第一の実施の形態に係る監視対象ＮＷ分析結果の一例を示す図である。
【図３】図３は、第一の実施の形態に係るマルウェア通信分析結果の一例を示す図である。
【図４】図４は、第一の実施の形態に係る検出装置の構成例を示す図である。
【図５】図５は、除外イベント抽出部による除外イベント抽出処理手順を示すフローチャートである。
【図６】図６は、イベント系列生成部によるイベント系列生成処理手順を示すフローチャートである。
【図７】図７は、共通イベント系列抽出部による共通イベント系列抽出処理手順を示すフローチャートである。
【図８】図８は、イベント照合部および候補判定部による候補判定処理手順を示すフローチャートである。
【図９】図９は、検知部による検知処理手順を示すフローチャートである。
【図１０】図１０は、イベント照合部による照合処理手順を示すフローチャートである。
【図１１】図１１は、第二の実施の形態に係る検出装置の概要を示す構成図である。
【図１２】図１２は、第二の実施の形態に係る検出装置の構成例を示す図である。
【図１３】図１３は、除外イベント抽出部による除外イベント抽出処理手順を示すフローチャートである。
【図１４】図１４は、イベント群生成部によるイベント群生成処理手順を示すフローチャートである。
【図１５】図１５は、共通イベント群抽出部による共通イベント群抽出処理手順を示すフローチャートである。
【図１６】図１６は、イベント照合部および候補判定部による候補判定処理手順を示すフローチャートである。
【図１７】図１７は、検知部による検知処理手順を示すフローチャートである。
【図１８】図１８は、イベント照合部による照合処理手順を示すフローチャートである。
【図１９】図１９は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願に係るマルウェア感染端末の検出装置、マルウェア感染端末の検出方法、マルウェア感染端末の検出プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るマルウェア感染端末の検出装置、マルウェア感染端末の検出方法、マルウェア感染端末の検出プログラムが限定されるものではない。
【００１３】
［第一の実施の形態］
以下の実施の形態では、第一の実施の形態に係る検出装置の構成、第一の実施の形態に係る検出装置の処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
【００１４】
［第一の実施の形態の概要］
まず、図１を用いて、マルウェア感染端末の検出装置である検出装置１００が行う処理の概要を説明する。図１は、第一の実施の形態に係る検出装置１００の概要を示す構成図である。図１に示すように、検出装置１００による処理は、検出装置１００が有する系列生成部１３０と検知用系列抽出部１４０と検知部１５０とによって実行される。検出装置１００は、検出を行う前にあらかじめ収集しておいた監視対象ＮＷ（Network、ネットワーク）分析結果（系列抽出用）とマルウェア通信分析結果から検知用イベント系列を生成し、監視対象ＮＷ分析結果（検知用）から生成したイベント系列と検知用イベント系列を照合することにより、監視対象ＮＷにおいてマルウェアに感染している端末（ホスト）を検出する。
【００１５】
ここで、監視対象ＮＷ分析結果（系列抽出用及び検知用）には、監視対象ＮＷ内のホストを識別する識別子、イベント、イベント発生時刻のフィールドを有するデータが格納されている。なお、イベントとは、通信に一定の特徴が確認できた際の、各々の特徴を捉えた事象を意味する。例えば、イベントは、ＦｉｒｅｗａｌｌやＷｅｂＰｒｏｘｙなどに記録される装置ログの分析により特定の通信先との通信が含まれていたという事象、あらかじめ決められた時間内に一定回数以上の通信が行われたという事象、ＩＤＳ（Intrusion  Detection  System）によって悪性なデータ送信が検知されたという事象などが該当する。すなわち、イベントは、監視対象ＮＷにおける通信のうち、悪性の通信の蓋然性が高いものと特徴付けられるルールに合致する事象が該当する。検出装置１００は、例えば、所定の外部装置によって通信を特徴付けるルールに合致するか否かの分析が行われ、ルールに合致したと判定されたイベントを監視対象ＮＷ分析結果として取得する。なお、マルウェア通信分析結果は、マルウェアを実際に動作させた際の通信データを、前述の監視対象ＮＷ分析結果を取得した際と同様の観点で分析した結果である。また、イベント系列とは、監視対象ＮＷ分析結果を監視対象ＮＷのホストごとに時系列に沿って並べたもの、またはマルウェア通信分析結果をマルウェア検体ごとに時系列に沿って並べたものである。
【００１６】
ここで、図２を用いて、監視対象ＮＷ分析結果の一例を示す。図２は、第一の実施の形態に係る監視対象ＮＷ分析結果の一例を示す図である。図２に示すように、監視対象ＮＷ内ホストの識別子ごとに検出されたイベントは、イベントの種類と、イベント発生時刻とが対応づけられて格納される。例えば、図２では、「１９２．１６８．１０．１１」により識別されるホストで、「特定の通信先との通信検知」というイベントが「２０１４年１０月１５日１２時２０分１２秒」に発生した例を示している。次に、図３を用いて、マルウェア通信分析結果の一例を示す。図３は、第一の実施の形態に係るマルウェア通信分析結果の一例を示す図である。図３に示すように、マルウェア識別子ごとに検出されたイベントについても監視対象ＮＷ分析結果と同様に、イベントの種類と、イベント発生時刻とが対応づけられて格納される。
【００１７】
以下に、検出装置１００が行う処理について、流れに沿って説明する。検出装置１００に係る系列生成部１３０は、除外イベント抽出部１３１と、イベント系列生成部１３２とを備え、監視対象ＮＷ分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント系列を生成する。系列生成部１３０は、監視対象ＮＷの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ＮＷの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する。例えば、系列生成部１３０は、イベントの集合として、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。以下に、除外イベント抽出部１３１およびイベント系列生成部１３２について説明する。
【００１８】
具体的には、除外イベント抽出部１３１は、監視対象ＮＷ分析結果（系列抽出用）が入力された場合に、当該分析結果において多くの監視対象ＮＷ内のホストで確認されているイベントを除外イベントと設定する。
【００１９】
イベント系列生成部１３２は、監視対象ＮＷ分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント系列を生成する。一般に、監視対象ＮＷには感染している端末は少ないため、多くのホストで確認されるイベントはマルウェアによる通信の特徴を捉えたものではないと判断できる。そのため、イベント系列生成部１３２は、除外イベントを除くことにより、マルウェアに感染していない端末で確認されるイベントを除いてイベント系列を生成することができる。すなわち、イベント系列生成部１３２によれば、感染端末の検出における誤検知を低減させることが可能になる。
【００２０】
また、イベント系列生成部１３２は、同一ホストまたは同一マルウェアのイベントについて、イベントの発生間隔が一定時間以内であるものからひとつのイベント系列を生成する。すなわち、イベント系列生成部１３２は、マルウェアの動作に関連する一連の事象を区切ることでイベント系列を生成する。さらに、イベント系列生成部１３２は、同一ホストまたは同一マルウェアのイベントのうち、重複したイベントを除外してイベント系列を生成する。
【００２１】
イベント系列生成部１３２の処理について、具体例を挙げて説明する。例えば、あるホストの分析結果として、イベントＡ、イベントＢ、イベントＣが「ＡＢＣＡＢＣＡＡ」の順で確認されたとする。例えば、イベントＡは、ある特定のサーバへのアクセスを示すイベントであり、イベントＢは、ある特定のサーバからファイルをダウンロードすることを示すイベントであり、イベントＣは、イベントＢでダウンロードしたファイルに基づき所定のサーバにアクセスしたことを示すイベントである。このとき、イベント系列生成部１３２は、「ＡＢＣＡＢＣＡＡ」という一連のイベントから、重複したイベントを除外する。すなわち、イベント系列生成部１３２は、「ＡＢＣＡＢＣＡＡ」から、イベント系列として「ＡＢＣ」を生成する。つまり、イベント系列生成部１３２は、あるホストのイベントを発生時刻が早いものから順にイベント系列の要素として追加し、二回目以降に確認されたイベントはイベント系列に追加しない。
【００２２】
これにより、イベント系列生成部１３２は、マルウェアの実行タイミングやＣ＆Ｃ（Command  and  Control）サーバからの指令などに起因して繰り返しの通信が発生している場合であっても、繰り返しの回数の差を吸収したイベント系列を生成できる。すなわち、イベント系列生成部１３２によれば、後述する検知処理における精度の向上を図ることが可能となる。
【００２３】
続いて、検出装置１００に係る検知用系列抽出部１４０の処理について説明する。検知用系列抽出部１４０は、共通イベント系列抽出部１４１と、イベント照合部１４２と候補判定部１４３とを備え、系列生成部１３０が生成したイベント系列に基づいて、検知用イベント系列を抽出する。検知用系列抽出部１４０は、マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する。以下に、共通イベント系列抽出部１４１、イベント照合部１４２および候補判定部１４３について説明する。
【００２４】
具体的には、共通イベント系列抽出部１４１は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリング(clustering)を行う。その後、共通イベント系列抽出部１４１は、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベントについて、順序を加味して抽出し、検知用イベント系列候補とする。
【００２５】
イベント照合部１４２は、監視対象ＮＷ分析結果（系列抽出用）のイベント系列と検知用イベント系列候補とを照合し、各検知用イベント系列候補が監視対象ＮＷ内のホストをどの程度検出しうるかを算出する。
【００２６】
候補判定部１４３は、イベント照合部１４２で算出した検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象ＮＷの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント系列候補を検知用イベント系列として出力する。
【００２７】
続いて、検出装置１００に係る検知部１５０の処理について説明する。検知部１５０は、イベント照合部１５１と検知結果出力部１５２とを備え、監視対象ＮＷ内のマルウェア感染端末を検知する。検知部１５０は、系列生成部１３０によって生成された監視対象ＮＷの通信に基づくイベントの集合と、検知用系列抽出部１４０によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ＮＷにマルウェア感染端末が存在していることを検知する。以下に、イベント照合部１５１および検知結果出力部１５２について説明する。
【００２８】
具体的には、イベント照合部１５１は、検知用系列抽出部１４０のイベント照合部１４２と同様に、監視対象ＮＷ分析結果（検知用）から生成されたイベント系列と検知用イベント系列とが合致するかどうかを照合する。
【００２９】
検知結果出力部１５２は、イベント照合部１５１での照合の結果、検知用イベント系列と合致したと判定されるホスト情報を出力する。ホスト情報とは、例えば、監視対象ＮＷ内の端末のＩＰ（Internet  Protocol）アドレスなどである。
【００３０】
このように、検出装置１００は、監視対象ＮＷ分析結果（系列抽出用）とマルウェア通信分析結果から検知用イベント系列を生成し、監視対象ＮＷ分析結果（検知用）から生成したイベント系列と検知用イベント系列とを照合することにより、監視対象ＮＷにおいてマルウェアに感染している端末を検出する。
【００３１】
上記のように、第一の実施の形態に係る検出装置１００は、複数のマルウェアの通信のうち、マルウェアを特徴付ける共通的な特徴の時系列パターンである検知用イベント系列のみを用いて感染端末の検出を行う。このため、検出装置１００によれば、監視対象ＮＷで照合すべきパターンを削減し、照合にかかる時間を削減することができる。さらに、検出装置１００は、あらかじめ監視対象ＮＷで観測されうるイベントやイベントの時系列が除外された検知用イベント系列を処理に用いるため、監視対象ＮＷで通常発生する通信を誤って検知する事態を削減することができる。
【００３２】
なお、検出装置１００は、検知用イベント系列の生成では、監視対象ＮＷ分析結果（系列抽出用）を用いず、マルウェア通信分析結果のみを用いても良い。また、検出装置１００に係る処理についての詳細は、フローチャートを用いて後記する。
【００３３】
［第一の実施の形態に係る検出装置の構成］
次に、図４を用いて、第一の実施の形態に係る検出装置１００について説明する。図４は、第一の実施の形態に係る検出装置１００の構成例を示す図である。
【００３４】
図４に例示するように、第一の実施の形態に係る検出装置１００は、ＩＦ（interface）部１１０と、イベント系列記憶部１２０と、検知用イベント系列記憶部１２１と、系列生成部１３０と、検知用系列抽出部１４０と、検知部１５０とを有する。
【００３５】
ＩＦ部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等であり、外部装置との間で各種データを送受信する。例えば、ＩＦ部１１０は、監視対象ＮＷ分析結果として、監視対象ＮＷに設置されたＦｉｒｅｗａｌｌやＷｅｂＰｒｏｘｙの装置ログ等を分析した結果を受信する。
【００３６】
イベント系列記憶部１２０及び検知用イベント系列記憶部１２１は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。イベント系列記憶部１２０及び検知用イベント系列記憶部１２１は、系列生成部１３０や、検知用系列抽出部１４０や、検知部１５０が扱う情報を適宜記憶する。
【００３７】
例えば、イベント系列記憶部１２０は、系列生成部１３０が生成したイベント系列を記憶する。また、検知用イベント系列記憶部１２１は、検知用系列抽出部１４０が抽出した検知用イベント系列を記憶する。なお、検出装置１００は、イベント系列記憶部１２０または検知用イベント系列記憶部１２１を構成要素とすることを要しない。例えば、検出装置１００は、イベント系列記憶部１２０または検知用イベント系列記憶部１２１と同様の処理を行う外部記憶装置を利用してもよい。
【００３８】
系列生成部１３０、検知用系列抽出部１４０及び検知部１５０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。また、系列生成部１３０、検知用系列抽出部１４０及び検知部１５０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、図示しない記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。
【００３９】
系列生成部１３０は、除外イベント抽出部１３１と、イベント系列生成部１３２とを備え、監視対象ＮＷ分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント系列を生成する。除外イベント抽出部１３１は、監視対象ＮＷ分析結果（系列抽出用）が入力された場合に、当該分析結果において多くの監視対象ＮＷ内のホストで確認されているイベントを除外イベントと設定する。具体的には、除外イベント抽出部１３１は、入力された監視対象ＮＷ分析結果（系列抽出用）に含まれる監視対象ＮＷ内の全ホスト数と、所定のイベントが含まれるホスト数とを取得する。続いて、除外イベント抽出部１３１は、所定のイベントが含まれるホスト数と全ホスト数との割合に基づき、所定のイベントが含まれるホストが一定の割合を超える場合には、所定のイベントを除外イベントと設定する。これにより、除外イベント抽出部１３１は、多くのホストで行われている一般的な処理を排除したイベントのみでイベント系列を生成させることを可能とする。
【００４０】
イベント系列生成部１３２は、監視対象ＮＷ分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント系列を生成する。具体的には、イベント系列生成部１３２は、監視対象ＮＷ分析結果またはマルウェア通信分析結果のうち、除外イベントに該当しないイベントを入力として取得する。このとき、イベント系列生成部１３２は、読み込んだイベントのイベント発生時刻を記録する。そして、イベント系列生成部１３２は、記録したイベント発生時刻が直前に読み込んだイベント発生時刻から一定時間以上離れているかを判定する。そして、イベント系列生成部１３２は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、当該イベントはその前のイベントと同一のイベント系列の要素であると推定し、判定対象となったイベント同士をイベント系列として生成する。このように、イベント系列生成部１３２は、一般的な処理を除外したイベントによりイベント系列を生成するので、感染端末の検出における誤検知を低減させることが可能になる。
【００４１】
検知用系列抽出部１４０は、共通イベント系列抽出部１４１と、イベント照合部１４２と候補判定部１４３とを備え、系列生成部１３０が生成したイベント系列に基づいて、検知用イベント系列を抽出する。
【００４２】
共通イベント系列抽出部１４１は、系列生成部１３０が生成したイベント系列から、検知用イベント系列候補を抽出する。具体的には、共通イベント系列抽出部１４１は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリングを行い、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベントについて、順序を加味して抽出する。そして、共通イベント系列抽出部１４１は、イベントを時系列順に並べた場合に、共通的に確認できたイベントの長さがあらかじめ決められた長さよりも長いときには、共通的に確認されたイベントからなるイベント系列を検知用イベント系列候補とする。このように、共通イベント系列抽出部１４１によれば、イベント系列をクラスタリングし、共通的なイベントを検知用イベント系列候補の要素とすることで、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント系列で検知部１５０による判定を実施することが可能となる。すなわち、共通イベント系列抽出部１４１によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント系列を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置１００は、共通的なイベント系列のみを用いることで、照合の判定を行うイベント系列の数を削減し、処理時間の削減を可能にする。
【００４３】
イベント照合部１４２は、監視対象ＮＷ分析結果（系列抽出用）のイベント系列と検知用イベント系列候補とを照合し、各検知用イベント系列候補が監視対象ＮＷ内のホストをどの程度検出しうるかを算出する。具体的には、イベント照合部１４２は、系列生成部１３０により生成された監視対象ＮＷ分析結果（系列抽出用）のイベント系列と、共通イベント系列抽出部１４１が抽出した検知用イベント系列候補とを入力として取得する。そして、イベント照合部１４２は、両者のイベント系列を照合し、照合すると判定された監視対象ＮＷ分析結果（系列抽出用）に対応するホスト数を算出する。そして、イベント照合部１４２は、算出されたホスト数を出力として候補判定部１４３に出力する。
【００４４】
候補判定部１４３は、イベント照合部１４２で算出した検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象ＮＷの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント系列候補を検知用イベント系列として出力する。具体的には、候補判定部１４３は、イベント照合部１４２によってイベント系列が合致したと判定された検知用イベント系列候補の検知ホスト数を、監視対象ＮＷの全ホスト数で除算し、イベント系列ごとの検知ホスト割合を算出する。そして、候補判定部１４３は、検知用イベント系列候補の中から、検知ホスト割合が一定以下であるイベント系列を検知用イベント系列として出力する。これにより、候補判定部１４３は、除外イベント抽出部１３１の処理と同様、一般に監視対象ＮＷにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント系列からあらかじめ誤検知につながるものを除外することができる。このため、候補判定部１４３の処理によれば、監視対象ＮＷにおいて感染端末を検知する際の誤検知を低減することが可能になる。
【００４５】
検知部１５０は、イベント照合部１５１と検知結果出力部１５２とを備え、監視対象ＮＷ内のマルウェア感染端末を検知する。具体的には、イベント照合部１５１は、監視対象ＮＷ分析結果（検知用）と検知用イベント系列のイベント系列同士が合致するかどうかを照合する。そして、検知結果出力部１５２は、イベント照合部１５１での照合の結果、検知用イベント系列と合致したと判定されるホスト情報を出力する。言い換えれば、検知結果出力部１５２は、シグネチャである検知用イベント系列と合致したと判定されるホストについては、マルウェア感染端末である可能性が高いものとして、検知用イベント系列と合致したと判定されるホストを識別することのできる情報を出力することにより、マルウェア感染端末を検出する。
【００４６】
［第一の実施の形態の処理手順］
次に、上述した検出装置１００による検出処理の手順について詳細に説明する。
【００４７】
（除外イベント抽出処理）
まず、図５を用いて、除外イベント抽出部１３１が実行する除外イベント抽出処理について説明する。図５は、第一の実施の形態に係る除外イベント抽出部１３１による除外イベント抽出処理手順を示すフローチャートである。
【００４８】
図５に示すように、除外イベント抽出部１３１は、監視対象ＮＷ分析結果（系列抽出用）を入力として読み込む（ステップＳ１０１）。そして、除外イベント抽出部１３１は、監視対象ＮＷ内のホスト数を取得する（ステップＳ１０２）。ここで、監視対象ＮＷのホスト数は、監視対象ＮＷに存在するホスト数があらかじめわかっている場合はその数としても良いし、監視対象ＮＷ分析結果（系列抽出用）に出現するホスト数を監視対象ＮＷのホスト数とみなしてもよい。言い換えれば、監視対象ＮＷ内のホスト数とは、監視対象ＮＷで観測可能な総ホスト数であり、あらかじめ存在する総ホスト数が観測されている場合には当該総ホスト数が適用され、総ホスト数が不明の場合には、監視対象ＮＷ分析結果（系列抽出用）により観測可能なホストの総数が適用される。
【００４９】
続いて、除外イベント抽出部１３１は、読み込んだ監視対象ＮＷ分析結果（系列抽出用）に含まれる全てのイベントについて、除外イベントとするかどうかを判定する処理を実行したか否かを判定する（ステップＳ１０３）。全てのイベントに対して処理を実行したと判定した場合、除外イベント抽出処理は終了する（ステップＳ１０３肯定）。
【００５０】
一方、全てのイベントに対して処理を実行していないと判定した場合（ステップＳ１０３否定）、除外イベント抽出部１３１は、除外イベント抽出処理を続行する。このとき、除外イベント抽出部１３１は、あるイベントで検出されたホスト数を監視対象ＮＷのホスト数で除算し、イベントの検出割合を取得する（ステップＳ１０４）。
【００５１】
そして、除外イベント抽出部１３１は、検出割合があらかじめ指定された値よりも大きいか否かを判定する（ステップＳ１０５）。検出割合があらかじめ指定された値よりも大きいと判定した場合（ステップＳ１０５肯定）、除外イベント抽出部１３１は、判定対象である当該イベントを除外イベントに設定する（ステップＳ１０６）。一方、検出割合があらかじめ指定された値よりも大きくないと判定した場合（ステップＳ１０５否定）、除外イベント抽出部１３１は、当該イベントを除外イベントとは設定せずに、異なるイベントについての処理を続行する（ステップＳ１０３へ移行）。
【００５２】
このように、除外イベント抽出部１３１は、多くのホストで確認されるイベントはマルウェアによる通信の特徴のみを捉えたものではないと判定し、当該イベントを抽出し、除外イベントに設定する。これにより、除外イベント抽出部１３１は、感染端末の検出処理における誤検知を低減することが可能になる。
【００５３】
（イベント系列生成処理）
次に、図６を用いて、イベント系列生成部１３２が実行するイベント系列生成処理について説明する。図６は、イベント系列生成部１３２によるイベント系列生成処理手順を示すフローチャートである。
【００５４】
図６に示すように、イベント系列生成部１３２は、監視対象ＮＷ分析結果（系列抽出用及び検知用）とマルウェア通信分析結果とのイベント系列生成処理について、全てのホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する（ステップＳ２０１）。全てに対して処理を実行したと判定した場合、イベント系列生成処理は終了する（ステップＳ２０１肯定）。
【００５５】
一方、全てのホストまたはマルウェアの分析結果を処理し終えていないと判定した場合（ステップＳ２０１否定）、イベント系列生成部１３２は、分析結果を読み込むホストまたはマルウェアを指定する（ステップＳ２０２）。イベント系列生成部１３２は、監視対象ＮＷ分析結果からイベント系列を抽出する際には、監視対象ＮＷ内のホストごとにイベント系列の生成を行う。ここで、ホストの識別には、例えば、ホストのＩＰアドレスを用いる。また、イベント系列生成部１３２は、マルウェア通信分析結果からイベント系列を生成する際には、マルウェアごとにイベント系列の生成を行う。ここで、マルウェアの識別には、例えば、マルウェアのハッシュ値を用いる。なお、監視対象ＮＷ分析結果およびマルウェア通信分析結果は、いずれもイベントの確認された時刻でソートされているものとする。
【００５６】
そして、イベント系列生成部１３２は、以下に説明する処理に先立ち、直前イベント時刻およびイベント系列（処理中）を初期化する（ステップＳ２０３）。
【００５７】
まず、イベント系列生成部１３２は、指定されたホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する（ステップＳ２０４）。分析結果を処理し終えたと判定した場合（ステップＳ２０４肯定）、イベント系列生成部１３２は、イベント系列として出力していないイベント系列（すなわち、生成処理中のイベント系列）が存在するか否かを判定する（ステップＳ２０５）。イベント系列として出力していないイベント系列が存在する場合には（ステップＳ２０５肯定）、イベント系列生成部１３２は、処理中のイベント系列をイベント系列として出力する（ステップＳ２０６）。
【００５８】
一方、イベント系列として出力していない処理中のイベント系列が存在しない場合には（ステップＳ２０５否定）、イベント系列生成部１３２は、処理をステップＳ２０１に移行させる。
【００５９】
ステップＳ２０４において、分析結果を処理し終えていないと判定した場合（ステップＳ２０４否定）、イベント系列生成部１３２は、指定されたホストまたはマルウェアのイベントとイベント発生時刻を読み込む（ステップＳ２０７）。そして、イベント系列生成部１３２は、読み込んだイベントが除外イベントに該当するか否かを判定する（ステップＳ２０８）。除外イベントに該当する場合（ステップＳ２０８肯定）、イベント系列生成部１３２は、読み込んだイベントについてはイベント系列には加えずに、処理をステップＳ２０４に移行する。
【００６０】
一方、読み込んだイベントが除外イベントに該当しない場合（ステップＳ２０８否定）、イベント系列生成部１３２は、読み込んだイベントのイベント発生時刻を記録する（ステップＳ２０９）。そして、イベント系列生成部１３２は、記録したイベント発生時刻が直前イベント時刻から一定時間以上離れているかを判定する（ステップＳ２１０）。
【００６１】
イベント発生時刻が直前イベント時刻から一定時間以上離れている場合（ステップＳ２１０肯定）、読み込んだイベントは、処理中のイベント系列とは異なるイベント系列に追加されることになるため、イベント系列生成部１３２は、処理中のイベント系列をイベント系列として出力する（ステップＳ２１１）。この場合、イベント系列生成部１３２は、出力したイベント系列（処理中）を初期化する（ステップＳ２１２）。
【００６２】
ステップＳ２１０において、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合（ステップＳ２１０否定）、イベント系列生成部１３２は、読み込んだイベントのイベント発生時刻を直前イベント時刻に設定する（ステップＳ２１３）。言い換えれば、イベント系列生成部１３２は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、そのイベントはその前のイベントと同一のイベント系列の要素であると推定し、イベント系列（処理中）に追加するかどうかを判定する（後述するステップＳ２１４）。
【００６３】
そして、イベント系列生成部１３２は、読み込んだイベントがイベント系列（処理中）に含まれているか否かを判定する（ステップＳ２１４）。読み込んだイベントがイベント系列（処理中）に含まれている場合（ステップＳ２１４肯定）、イベント系列生成部１３２は、重複するイベントをイベント系列（処理中）に追加しないため、処理をステップＳ２０４に移行させる。
【００６４】
一方、読み込んだイベントがイベント系列（処理中）に含まれていない場合（ステップＳ２１４否定）、イベント系列生成部１３２は、当該イベントをイベント系列（処理中）に追加する（ステップＳ２１５）。その後、イベント系列生成部１３２は、処理をステップＳ２０４に移行させる。
【００６５】
このように、イベント系列生成部１３２は、読み込んだイベントが除外イベントに該当している場合はそのイベントをイベント系列に組み込まない。また、イベント系列生成部１３２は、イベントが発生した時刻を記録し、そのイベントが発生した時刻がその前のイベントが発生した時刻と比較し、一定時間以上離れているかどうかを判定する。これにより、イベント系列生成部１３２は、イベント間の発生間隔が短いイベントによって一つのイベント系列が形成されるように、イベント系列を生成する。さらに、イベント系列生成部１３２は、イベント系列（処理中）に処理対象であるイベントが含まれているかどうかを判断し、含まれている場合には、当該イベントはイベント系列に追加しない。すなわち、生成されたイベント系列には、重複するイベントが存在しない。なお、イベント系列（処理中）に重複するイベントを追加するか否かの判定（ステップＳ２１４）は、監視対象ＮＷ分析結果およびマルウェア通信分析結果の特徴を踏まえ、行わなくてもよい。例えば、監視対象ＮＷ分析結果およびマルウェア通信分析結果で確認されているイベントの種類が少ない場合（例えば、１種類のみなどの場合）には、イベント系列（処理中）に重複するイベントを追加するか否かの判定を行わず、除外イベントに該当しないイベントを全てイベント系列（処理中）に追加してもよい。
【００６６】
（共通イベント系列抽出処理）
次に、図７を用いて、共通イベント系列抽出部１４１が実行する共通イベント系列抽出処理について説明する。図７は、共通イベント系列抽出部１４１による共通イベント系列抽出処理手順を示すフローチャートである。
【００６７】
図７に示すように、共通イベント系列抽出部１４１は、マルウェア通信分析結果から抽出したイベント系列を処理対象として読み込む（ステップＳ３０１）。そして、共通イベント系列抽出部１４１は、イベント系列間の類似度行列を生成し、階層的クラスタリングを実施する（ステップＳ３０２）。ここで、類似度行列の生成では、例えば、各イベントに対して一意に識別可能な文字を割り当て、イベント系列を文字列とみなした上で、イベント系列間のレーベンシュタイン距離を計算し、イベント系列の類似度を求める。
【００６８】
そして、共通イベント系列抽出部１４１は、実施する階層的クラスタリングにおいて、あらかじめ設定された類似度以上のイベント系列同士を同一のクラスタに設定する（ステップＳ３０３）。
【００６９】
ここで、共通イベント系列抽出部１４１は、全てのクラスタから共通イベント系列を抽出する処理を実行したか否かを判定する（ステップＳ３０４）。全てのクラスタから共通イベント系列を抽出する処理を実行したと判定した場合（ステップＳ３０４肯定）、共通イベント系列抽出部１４１による共通イベント系列抽出処理は終了する。
【００７０】
一方、全てのクラスタから共通イベント系列を抽出する処理を実行していないと判定した場合（ステップＳ３０４否定）、共通イベント系列抽出部１４１は、共通イベント系列を抽出するクラスタを指定する（ステップＳ３０５）。
【００７１】
そして、共通イベント系列抽出部１４１は、同一クラスタ内のイベント系列同士で共通する部分列のうち、最長共通部分列（ＬＣＳ：Longest  Common  Subsequence）を抽出する（ステップＳ３０６）。そして、共通イベント系列抽出部１４１は、あらかじめ決められた長さよりも長い最長共通部分列を検知用イベント系列候補として出力する（ステップＳ３０７）。
【００７２】
このように、共通イベント系列抽出部１４１は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリングを行う。その後、共通イベント系列抽出部１４１は、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベント系列を抽出し、検知用イベント系列候補とする。なお、同一のクラスタ内に単一のイベント系列しか存在しない場合には、共通イベント系列抽出部１４１は、そのイベント系列の長さが一定以上であった場合には当該イベント系列を検知用イベント系列候補として出力する。また、共通イベント系列抽出部１４１は、検知用イベント系列候補とするイベント列の長さを任意に設定することができる。例えば、共通イベント系列抽出部１４１は、最少のイベント系列の長さとして、２以上のイベントが系列に含まれている場合を設定するようにしてもよい。
【００７３】
これにより、共通イベント系列抽出部１４１は、共通的なイベントを検知用イベント系列候補の要素とすることができるので、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント系列で検知部１５０による判定を実施することが可能となる。すなわち、検出装置１００によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント系列を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置１００は、共通的なイベント系列のみを用いることで、照合の判定を行うイベント系列の数を削減し、処理時間の削減を可能にする。
【００７４】
（候補判定処理）
次に、図８を用いて、イベント照合部１４２および候補判定部１４３が実行する候補判定処理について説明する。図８は、イベント照合部１４２および候補判定部１４３による候補判定処理手順を示すフローチャートである。
【００７５】
図８に示すように、イベント照合部１４２は、監視対象ＮＷ分析結果（系列抽出用）のイベント系列を検知対象イベント系列として取得する（ステップＳ４０１）。また、イベント照合部１４２は、共通イベント系列抽出部１４１によって抽出された検知用イベント系列候補をシグネチャ系列として取得する（ステップＳ４０２）。
【００７６】
そして、イベント照合部１４２は、取得した検知対象イベント系列とシグネチャ系列とについて、イベント照合処理を実行する（ステップＳ４０３）。なお、イベント照合部１４２によるイベント照合処理は、検知部１５０に係るイベント照合処理と同様であるため、詳細については後述する。
【００７７】
続いて、候補判定部１４３は、イベント照合処理によって合致したと判定された照合用イベント系列ごとの検知ホスト数を、監視対象ＮＷのホスト数で除算し、照合用イベント系列ごとの検知ホスト割合を取得する（ステップＳ４０４）。ここで、照合用イベント系列とは、シグネチャ系列のうちから選択された一のイベント系列のことをいう。すなわち、候補判定部１４３は、シグネチャ系列に含まれるイベント系列ごとに検知ホスト割合を算出する。そして、候補判定部１４３は、検知ホスト割合が一定以下である照合用イベント系列を検知用イベント系列として出力する（ステップＳ４０５）。これにより、イベント照合部１４２および候補判定部１４３が実行する候補判定処理は終了する。
【００７８】
このように、候補判定部１４３は、イベント照合部１４２によって照合された検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象ＮＷの総ホスト数に対する検知ホスト数の割合が一定以下である場合に、当該検知用イベント系列候補を検知用イベント系列として出力する。これは、除外イベント抽出部１３１の処理と同様、一般に、監視対象ＮＷにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント系列からあらかじめ誤検知につながるものを除外するための処理である。
【００７９】
すなわち、監視対象ＮＷにはマルウェアに感染している端末が少ないと仮定すると、本処理で合致したと判定された検知用イベント系列候補はマルウェアの通信のみならず、一般の通信でも確認できるイベント系列であるとみなせるため、検知に用いたときには誤検知を誘発しやすいイベント系列であると判断できる。このため、候補判定部１４３の処理により、一般の通信と区別が難しいマルウェアの通信のイベント系列をあらかじめ除外することで、検知部１５０での誤検知を低減することが可能である。検出装置１００は、例えば、イベント照合処理によって合致したと判定された照合用イベント系列ごとの検知ホスト数を監視対象ＮＷのホスト数で除算した結果が０、すなわち検知用イベント系列候補で監視対象ＮＷ分析結果（系列抽出用）のイベント系列を検知しなかったイベント系列のみを検知用イベント系列として出力してもよい。これにより、検出装置１００は、検知用イベント系列に誤検知を発生させうるものが混入するのを抑制できる。
【００８０】
（検知処理）
次に、図９を用いて、検知部１５０が実行する検知処理について説明する。図９は、検知部１５０による検知処理手順を示すフローチャートである。
【００８１】
図９に示すように、検知部１５０に係るイベント照合部１５１は、監視対象ＮＷ分析結果（検知用）のイベント系列を検知対象イベント系列として取得する（ステップＳ５０１）。また、イベント照合部１５１は、検知用系列抽出部１４０によって抽出された検知用イベント系列をシグネチャ系列として取得する（ステップＳ５０２）。そして、イベント照合部１５１は、取得した検知対象イベント系列とシグネチャ系列とについて、イベント照合処理を実行する（ステップＳ５０３）。
【００８２】
続いて、検知部１５０に係る検知結果出力部１５２は、イベント照合処理によって合致したと判定されたホストをマルウェア感染ホストと判定し、その結果を検知結果として出力する（ステップＳ５０４）。これにより、検知部１５０が実行する検知処理は終了する。
【００８３】
このように、検知部１５０は、系列生成部１３０によって生成された監視対象ＮＷ分析結果（検知用）のイベント系列と、検知用系列抽出部１４０によって抽出された検知用イベント系列とを照合する。これにより、検知部１５０は、あらかじめ監視対象ＮＷで観測されうるイベントやイベントの時系列が除外されたイベント系列同士を照合することができるので、監視対象ＮＷで通常発生する通信を誤って検知する事態を削減させ、マルウェア感染端末を検知することができる。
【００８４】
（照合処理）
次に、図１０を用いて、検知部１５０に係るイベント照合部１５１が実行する照合処理について説明する。図１０は、イベント照合部１５１による照合処理手順を示すフローチャートである。なお、検知用系列抽出部１４０に係るイベント照合部１４２も、以下に説明する処理と同様の処理を実行する。
【００８５】
図１０に示すように、イベント照合部１５１は、監視対象ＮＷ分析結果（検知用）のイベント系列を検知対象イベント系列として取得する（ステップＳ６０１）。また、イベント照合部１５１は、検知用系列抽出部１４０によって抽出された検知用イベント系列をシグネチャ系列として取得する（ステップＳ６０２）。
【００８６】
そして、イベント照合部１５１は、全ての検知対象イベント系列を判定したか否かを判定する（ステップＳ６０３）。全ての検知対象イベント系列を判定した場合には（ステップＳ６０３肯定）、イベント照合部１５１による照合処理は終了する。
【００８７】
一方、全ての検知対象イベント系列を判定していない場合（ステップＳ６０３否定）、イベント照合部１５１は、判定対象イベント系列およびホスト情報を検知対象イベント系列から取得する（ステップＳ６０４）。そして、イベント照合部１５１は、取得したホスト情報に基づいて、検知対象となるホストについて、全てのシグネチャ系列と判定を行ったか否かを判定する（ステップＳ６０５）。全てのシグネチャ系列と判定を行った場合には（ステップＳ６０５肯定）、イベント照合部１５１は、処理をステップＳ６０３に移行させる。
【００８８】
一方、全てのシグネチャ系列と判定を行っていない場合には（ステップＳ６０５否定）、イベント照合部１５１は、シグネチャ系列から照合用イベント系列を取得する（ステップＳ６０６）。そして、イベント照合部１５１は、判定対象イベント系列と、照合用イベント系列との、最長共通部分列長を取得する（ステップＳ６０７）。
【００８９】
続いて、イベント照合部１５１は、最長共通部分列長を照合用イベント系列長で除算した値が、あらかじめ指定した数よりも大きいか否かを判定する（ステップＳ６０８）。あらかじめ指定した数よりも大きい場合には（ステップＳ６０８肯定）、イベント照合部１５１は、判定対象イベント系列と照合用イベント系列とが合致したと判定する（ステップＳ６０９）。
【００９０】
一方、あらかじめ指定した数よりも大きくない場合には（ステップＳ６０８否定）、イベント照合部１５１は、判定対象イベント系列と照合用イベント系列とが合致しなかったと判定する（ステップＳ６１０）。
【００９１】
そして、イベント照合部１５１は、照合用イベント系列、判定対象イベント系列のホスト情報、判定結果を出力する（ステップＳ６１１）。そして、イベント照合部１５１は、処理をステップＳ６０５へ移行させる。
【００９２】
このように、イベント照合部１５１は、マルウェアの特徴的な通信をもとに抽出されたイベント系列をシグネチャ系列として、検知対象となるイベント系列との照合処理を実行する。これにより、検出装置１００は、類似の通信パターンを有するマルウェアに感染した端末を少ない誤検知で検知することができる。
【００９３】
なお、第一の実施の形態と同様の処理は、監視対象ＮＷ内の端末装置と検出装置１００とを備える検出システムによって実現されてもよい。この場合、端末装置は、監視対象ＮＷにおいて所定のイベントを発生させ、検出装置１００は、当該端末装置ごとにイベントを取得する。また、マルウェア感染端末の検出システムには、仮想的にマルウェアの通信を発生させる情報処理装置が含まれてもよい。この場合、検出システムに含まれる検出装置１００は、情報処理装置が発生させたイベントをマルウェア分析結果として取得する。
【００９４】
［第一の実施の形態の効果］
上述してきたように、第一の実施の形態に係る検出装置１００は、監視対象ＮＷの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ＮＷの端末およびマルウェアを区別する識別子ごとに取得されたイベントから、イベントの発生順序を踏まえて時系列に基づいて形成されるイベント系列を生成する。そして、検出装置１００は、マルウェアが発生させる通信に基づくイベント系列間での類似度を算出し、類似度が一定以上のイベント系列同士を同一クラスタに設定し、当該同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通的に出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、同一クラスタ内に単一のイベント系列しか存在しない場合には、当該イベント系列が一定の長さ以上であった場合に、当該イベント系列を検知用イベント系列として抽出する。そして、検出装置１００は、生成された監視対象ＮＷの通信に基づくイベント系列と、抽出された検知用イベント系列とのイベント系列同士を照合し、イベント系列同士が合致していると判定された場合に、監視対象ＮＷにマルウェア感染端末が存在していることを検知する。
【００９５】
これにより、第一の実施の形態に係る検出装置１００は、監視対象ＮＷで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減することができる。また、検出装置１００は、単一のマルウェアの通信をシグネチャとするのではなく、マルウェア通信分析結果に基づいてクラスタリングされたイベント系列のうち共通したイベントの集合を検知用イベント系列（シグネチャ）とする。これにより、検出装置１００は、既知のマルウェアだけでなく、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。
【００９６】
また、検出装置１００は、監視対象ＮＷの端末ごとに取得されたイベントのうち、所定のイベントが確認された監視対象ＮＷの端末数を監視対象ＮＷで観測可能な総端末数で除算した値が一定の値よりも大きい場合に、当該所定のイベントを除外イベントと設定し、除外イベントを除くイベントのみでイベント系列を生成する。
【００９７】
これにより、第一の実施の形態に係る検出装置１００は、あらかじめ監視対象ＮＷで観測されうるイベントやイベントの時系列が除外された検知用イベント系列を処理に用いるため、監視対象ＮＷで通常発生する通信を誤って検知する事態を削減することができる。
【００９８】
また、検出装置１００は、監視対象ＮＷの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、イベント間の発生間隔が一定時間以上離れていないイベントからイベント系列を生成する。
【００９９】
これにより、第一の実施の形態に係る検出装置１００は、マルウェアの動作に関連する一連の事象を区切ることが可能になり、検知処理での精度を向上させることができる。
【０１００】
また、検出装置１００は、監視対象ＮＷの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、重複して出現するイベントを除外してイベント系列を生成する。
【０１０１】
このように、第一の実施の形態に係る検出装置１００は、重複して確認されるイベントを除外してイベント系列を生成することで、マルウェアの実行タイミングやＣ＆Ｃサーバからの指令などに起因して繰り返しの通信が発生している場合、繰り返しの回数の差を吸収することが可能になるため、検知における精度の向上を図ることが可能となる。
【０１０２】
また、検出装置１００は、抽出した検知用イベント系列（検知用イベント系列候補）と、あらかじめ取得しておいた監視対象ＮＷ（系列抽出用）の通信に基づくイベント系列とを照合し、イベント系列同士が合致していると判定された監視対象ＮＷの通信に基づくイベント系列に対応する端末の数を監視対象ＮＷで観測可能な総端末数で除算した値が一定以上となる場合に、抽出した検知用イベント系列候補のうち、イベント系列同士が合致していると判定された検知用イベント系列候補が除外されたイベント系列を検知用イベント系列として抽出する。
【０１０３】
これにより、第一の実施の形態に係る検出装置１００は、マルウェアを検知するシグネチャとなる検知用イベント系列をより精度よく作成することができるので、マルウェアの誤検知を低減させることができる。
【０１０４】
また、検出装置１００は、監視対象ＮＷの通信に基づくイベント系列（系列抽出用）と、検知用イベント系列とで共通する部分のうち、最長となる部分長（最長共通部分列長）を当該検知用イベント系列長で除算した値が一定以上であった場合に、当該監視対象ＮＷの通信に基づくイベント系列と当該検知用イベント系列とが合致したと判定する。
【０１０５】
これにより、第一の実施の形態に係る検出装置１００は、比較対象となる各イベント系列について、合致するイベント系列を適切に照合することができる。結果として、検出装置１００は、検知に用いるイベント系列の精度を向上させることができるので、マルウェアの誤検知を低減させることができる。さらに、検出装置１００によれば、監視対象ＮＷのホストがマルウェアに感染していた場合で、マルウェアによるイベントと業務上発生する通信に起因するイベントが混在して検知された状態であっても、共通部分列を用いて照合することで精度よく検知することができる。
【０１０６】
また、第一の実施の形態に係る検出システムは、監視対象ＮＷにおいて、端末装置と、検出装置１００とを備える。端末装置は、監視対象ＮＷにおいて所定の通信を発生させる。検出装置１００は、端末装置が発生させる所定の通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、端末装置またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。また、検出装置１００は、マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、同一クラスタ内に単一のイベント系列しか存在しない場合には、イベント系列が一定の長さ以上であった場合に、当該イベント系列を検知用イベント系列として抽出する。また、検出装置１００は、端末装置の通信に基づくイベント系列と、抽出された検知用イベント系列とが合致していると判定された場合に、監視対象ＮＷにマルウェア感染端末が存在していることを検知する。
【０１０７】
これにより、第一の実施の形態に係る検出システムは、監視対象ＮＷで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減するとともに、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。
【０１０８】
［第二の実施の形態］
上述した第一の実施の形態の説明では、イベントの発生順序を踏まえて形成されるイベント系列を生成し、該イベント系列から検知用イベント系列を抽出する場合を説明したが、本発明はこれに限定されるものではなく、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、該イベント群から検知用イベント群を抽出するようにしてもよい。そこで、以下の第二の実施の形態では、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、該イベント群から検知用イベント群を抽出する場合について説明する。以下の実施の形態では、第二の実施の形態に係る検出装置の構成、第二の実施の形態に係る検出装置の処理の流れを順に説明し、最後に第二の実施の形態による効果を説明する。
【０１０９】
［第二の実施の形態の概要］
まず、図１１を用いて、マルウェア感染端末の検出装置である検出装置２００が行う処理の概要を説明する。図１１は、第二の実施の形態に係る検出装置２００の概要を示す構成図である。図１１に示すように、検出装置２００による処理は、検出装置２００が有する生成部２３０と検知イベント群抽出部２４０と検知部２５０とによって実行される。検出装置２００は、検出を行う前にあらかじめ収集しておいた監視対象ＮＷ（Network、ネットワーク）分析結果（組み合わせ抽出用）とマルウェア通信分析結果から検知用イベント群を生成し、監視対象ＮＷ分析結果（検知用）から生成したイベント群と検知用イベント群とを照合することにより、監視対象ＮＷにおいてマルウェアに感染している端末（ホスト）を検出する。
【０１１０】
ここで、監視対象ＮＷ分析結果（組み合わせ抽出用及び検知用）には、監視対象ＮＷ内のホストを識別する識別子、イベント、イベント発生時刻のフィールドを有するデータが格納されている。なお、イベントとは、通信に一定の特徴が確認できた際の、各々の特徴を捉えた事象を意味する。例えば、イベントは、ＦｉｒｅｗａｌｌやＷｅｂＰｒｏｘｙなどに記録される装置ログの分析により特定の通信先との通信が含まれていたという事象や、あらかじめ決められた時間内に一定回数以上の通信が行われたという事象や、ＩＤＳ（Intrusion  Detection  System）によって悪性なデータ送信が検知されたという事象などが該当する。すなわち、イベントは、監視対象ＮＷにおける通信のうち、悪性の通信の蓋然性が高いものと特徴付けられるルールに合致する事象が該当する。検出装置２００は、例えば、所定の外部装置によって通信を特徴付けるルールに合致するか否かの分析が行われ、ルールに合致したと判定されたイベントを監視対象ＮＷ分析結果として取得する。なお、マルウェア通信分析結果は、マルウェアを実際に動作させた際の通信データを、前述の監視対象ＮＷ分析結果を取得した際と同様の観点で分析した結果である。また、イベント群とは、監視対象ＮＷ分析結果を監視対象ＮＷのホストごとにまとめたもの、またはマルウェア通信分析結果をマルウェア検体ごとにまとめたものである。
【０１１１】
ここで、前述したように、監視対象ＮＷ内ホストの識別子ごとに検出されたイベントは、イベントの種類と、イベント発生時刻とが対応づけられて格納される。例えば、図２では、「１９２．１６８．１０．１１」により識別されるホストで、「特定の通信先との通信検知」というイベントが「２０１４年１０月１５日１２時２０分１２秒」に発生した例を示している。また、図３に示すように、マルウェア識別子ごとに検出されたイベントについても監視対象ＮＷ分析結果と同様に、イベントの種類と、イベント発生時刻とが対応づけられて格納される。
【０１１２】
以下に、検出装置２００が行う処理について、流れに沿って説明する。検出装置２００に係る生成部２３０は、除外イベント抽出部２３１と、イベント群生成部２３２とを備え、監視対象ＮＷ分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント群を生成する。
【０１１３】
具体的には、除外イベント抽出部２３１は、監視対象ＮＷ分析結果（組み合わせ抽出用）が入力された場合に、当該分析結果において所定の割合よりも多くの監視対象ＮＷ内のホストで確認されているイベントを除外イベントと設定する。
【０１１４】
イベント群生成部２３２は、監視対象ＮＷ分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント群を生成する。一般に、監視対象ＮＷには感染している端末は少ないため、多くのホストで確認されるイベントはマルウェアによる通信の特徴を捉えたものではないと判断できる。そのため、イベント群生成部２３２は、除外イベントを除くことにより、マルウェアに感染していない端末で確認されるイベントを除いてイベント群を生成することができる。すなわち、イベント群生成部２３２によれば、感染端末の検出における誤検知を低減させることが可能になる。
【０１１５】
また、イベント群生成部２３２は、同一ホストまたは同一マルウェアのイベントについて、イベントの発生間隔が一定時間以内であるものからひとつのイベント群を生成する。すなわち、イベント群生成部２３２は、マルウェアの動作に関連する一連の事象を区切ることでイベント群を生成する。さらに、イベント群生成部２３２は、同一ホストまたは同一マルウェアのイベントのうち、重複したイベントを除外してイベント群を生成する。これにより、イベント群生成部２３２は、マルウェアの実行タイミングやＣ＆Ｃ（Command  and  Control）サーバからの指令などに起因して繰り返しの通信が発生している場合であっても、繰り返しの回数の差を吸収したイベント群を生成できる。すなわち、イベント群生成部２３２によれば、後述する検知処理における精度の向上を図ることが可能となる。
【０１１６】
続いて、検出装置２００に係る検知イベント群抽出部２４０の処理について説明する。検知イベント群抽出部２４０は、共通イベント群抽出部２４１と、イベント照合部２４２と候補判定部２４３とを備え、生成部２３０が生成したイベント群に基づいて、検知用イベント群を抽出する。
【０１１７】
具体的には、共通イベント群抽出部２４１は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリング(clustering)を行う。その後、共通イベント群抽出部２４１は、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出し、検知用イベント群候補とする。
【０１１８】
イベント照合部２４２は、監視対象ＮＷ分析結果（組み合わせ抽出用）のイベント群と検知用イベント群候補とを照合し、各検知用イベント群候補が監視対象ＮＷ内のホストをどの程度検出しうるかを算出する。
【０１１９】
候補判定部２４３は、イベント照合部２４２で算出した検知用イベント群候補ごとの検知ホスト数に基づき、監視対象ＮＷの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント群候補を検知用イベント群として出力する。
【０１２０】
続いて、検出装置２００に係る検知部２５０の処理について説明する。検知部２５０は、イベント照合部２５１と検知結果出力部２５２とを備え、監視対象ＮＷ内のマルウェア感染端末を検知する。
【０１２１】
具体的には、イベント照合部２５１は、検知イベント群抽出部２４０のイベント照合部２４２と同様に、監視対象ＮＷ分析結果（検知用）から生成されたイベント群と検知用イベント群とが合致するかどうかを照合する。
【０１２２】
検知結果出力部２５２は、イベント照合部２５１での照合の結果、検知用イベント群と合致したと判定されるホスト情報を出力する。ホスト情報とは、例えば、監視対象ＮＷ内の端末のＩＰ（Internet  Protocol）アドレスなどである。
【０１２３】
このように、検出装置２００は、監視対象ＮＷ分析結果（組み合わせ抽出用）とマルウェア通信分析結果から検知用イベント群を生成し、監視対象ＮＷ分析結果（検知用）から生成したイベント群と検知用イベント群とを照合することにより、監視対象ＮＷにおいてマルウェアに感染している端末を検出する。
【０１２４】
上記のように、第二の実施の形態に係る検出装置２００は、複数のマルウェアの通信のうち、マルウェアを特徴付ける共通的な特徴の組み合わせパターンである検知用イベント群のみを用いて感染端末の検出を行う。このため、検出装置２００によれば、監視対象ＮＷで照合すべきパターンを削減し、照合にかかる時間を削減することができる。さらに、検出装置２００は、あらかじめ監視対象ＮＷで観測されうるイベントやイベントの組み合わせが除外された検知用イベント群を処理に用いるため、監視対象ＮＷで通常発生する通信を誤って検知する事態を削減することができる。
【０１２５】
なお、検出装置２００は、検知用イベント群の生成では、監視対象ＮＷ分析結果（組み合わせ抽出用）を用いず、マルウェア通信分析結果のみを用いても良い。また、検出装置２００に係る処理についての詳細は、フローチャートを用いて後記する。
【０１２６】
［第二の実施の形態に係る検出装置の構成］
次に、図１２を用いて、第二の実施の形態に係る検出装置２００について説明する。図１２は、第二の実施の形態に係る検出装置２００の構成例を示す図である。
【０１２７】
図１２に例示するように、第二の実施の形態に係る検出装置２００は、ＩＦ（interface）部２１０と、イベント群記憶部２２０と、検知用イベント群記憶部２２１と、生成部２３０と、検知イベント群抽出部２４０と、検知部２５０とを有する。
【０１２８】
ＩＦ部２１０は、例えば、ＮＩＣ（Network  Interface  Card）等であり、外部装置との間で各種データを送受信する。例えば、ＩＦ部２１０は、監視対象ＮＷ分析結果として、監視対象ＮＷに設置されたＦｉｒｅｗａｌｌやＷｅｂＰｒｏｘｙの装置ログ等を分析した結果を受信する。
【０１２９】
イベント群記憶部２２０及び検知用イベント群記憶部２２１は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。イベント群記憶部２２０及び検知用イベント群記憶部２２１は、生成部２３０や、検知イベント群抽出部２４０や、検知部２５０が扱う情報を適宜記憶する。
【０１３０】
例えば、イベント群記憶部２２０は、生成部２３０が生成したイベント群を記憶する。また、検知用イベント群記憶部２２１は、検知イベント群抽出部２４０が抽出した検知用イベント群を記憶する。なお、検出装置２００は、イベント群記憶部２２０または検知用イベント群記憶部２２１を構成要素とすることを要しない。例えば、検出装置２００は、イベント群記憶部２２０または検知用イベント群記憶部２２１と同様の処理を行う外部記憶装置を利用してもよい。
【０１３１】
生成部２３０、検知イベント群抽出部２４０及び検知部２５０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。また、生成部２３０、検知イベント群抽出部２４０及び検知部２５０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、図示しない記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。
【０１３２】
生成部２３０は、除外イベント抽出部２３１と、イベント群生成部２３２とを備え、監視対象ＮＷ分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント群を生成する。除外イベント抽出部２３１は、監視対象ＮＷ分析結果（組み合わせ抽出用）が入力された場合に、分析結果において所定の割合よりも多くの監視対象ＮＷ内のホストで確認されているイベントを除外イベントと設定する。具体的には、除外イベント抽出部２３１は、入力された監視対象ＮＷ分析結果（組み合わせ抽出用）に含まれる監視対象ＮＷ内の全ホスト数と、所定のイベントが含まれるホスト数とを取得する。続いて、除外イベント抽出部２３１は、所定のイベントが含まれるホスト数と全ホスト数との割合に基づき、所定のイベントが含まれるホストが一定の割合を超える場合には、所定のイベントを除外イベントと設定する。これにより、除外イベント抽出部２３１は、多くのホストで行われている一般的な処理を排除したイベントのみでイベント群を生成させることを可能とする。
【０１３３】
また、イベント群生成部２３２は、監視対象ＮＷ分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しない分析結果からなるイベント群を生成する。具体的には、イベント群生成部２３２は、監視対象ＮＷ分析結果またはマルウェア通信分析結果のうち、除外イベントに該当しないイベントを入力として取得する。このとき、イベント群生成部２３２は、読み込んだイベントのイベント発生時刻を記録する。そして、イベント群生成部２３２は、記録したイベント発生時刻が直前に読み込んだイベント発生時刻から一定時間以上離れているかを判定する。そして、イベント群生成部２３２は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、当該イベントはその前のイベントと同一のイベント群の要素であると推定し、判定対象となったイベント同士をイベント群として生成する。このように、イベント群生成部２３２は、一般的な処理を除外したイベントによりイベント群を生成するので、感染端末の検出における誤検知を低減させることが可能になる。
【０１３４】
検知イベント群抽出部２４０は、共通イベント群抽出部２４１と、イベント照合部２４２と候補判定部２４３とを備え、生成部２３０が生成したイベント群に基づいて、検知用イベント群を抽出する。
【０１３５】
共通イベント群抽出部２４１は、生成部２３０が生成したイベント群から、検知用イベント群候補を抽出する。具体的には、共通イベント群抽出部２４１は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリングを行い、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出する。そして、共通イベント群抽出部２４１は、共通的に確認できたイベントの種類があらかじめ決められた数よりも多い場合に、抽出されたイベントの集合を検知用イベント群候補とする。例えば、共通イベント群抽出部２４１は、共通的に確認できるイベントが２種類以上である場合に、抽出されたイベントの集合を検知用イベント群候補として出力する。また、共通イベント群抽出部２４１は、同一クラスタに単一のイベント群しか存在しなかった場合には、イベント群に含まれるイベントの種類が一定数以上（例えば、２種類以上）であった場合に当該イベント群を、そのまま検知用イベント群候補として抽出してもよい。このように、共通イベント群抽出部２４１によれば、イベント群をクラスタリングし、共通的なイベントを検知用イベント群候補の要素とすることで、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント群で検知部２５０による判定を実施することが可能となる。すなわち、共通イベント群抽出部２４１によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント群を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置２００は、共通的なイベント群のみを用いることで、照合の判定を行うイベント群の数を削減し、処理時間の削減を可能にする。
【０１３６】
イベント照合部２４２は、監視対象ＮＷ分析結果（組み合わせ抽出用）のイベント群と検知用イベント群候補とを照合し、各検知用イベント群候補が監視対象ＮＷ内のホストをどの程度検出しうるかを算出する。具体的には、イベント照合部２４２は、生成部２３０により生成された監視対象ＮＷ分析結果（組合せ抽出用）のイベント群と、共通イベント群抽出部２４１が抽出した検知用イベント群候補とを入力として取得する。そして、イベント照合部２４２は、両者のイベント群を照合し、照合すると判定された監視対象ＮＷ分析結果（組合せ抽出用）に対応するホスト数を算出する。そして、イベント照合部２４２は、算出されたホスト数を出力として候補判定部２４３に出力する。
【０１３７】
候補判定部２４３は、イベント照合部２４２で算出した検知用イベント群候補ごとの検知ホスト数に基づき、監視対象ＮＷの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント群候補を検知用イベント群として出力する。具体的には、候補判定部２４３は、イベント照合部２４２によってイベント群が合致したと判定された検知用イベント群候補の検知ホスト数を、監視対象ＮＷの全ホスト数で除算し、イベント群ごとの検知ホスト割合を算出する。そして、候補判定部２４３は、検知用イベント群候補の中から、検知ホスト割合が一定以下であるイベント群を検知用イベント群として出力する。これにより、候補判定部２４３は、除外イベント抽出部２３１の処理と同様、一般に監視対象ＮＷにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント群からあらかじめ誤検知につながるものを除外することができる。このため、候補判定部２４３の処理によれば、監視対象ＮＷにおいて感染端末を検知する際の誤検知を低減することが可能になる。
【０１３８】
検知部２５０は、イベント照合部２５１と検知結果出力部２５２とを備え、監視対象ＮＷ内のマルウェア感染端末を検知する。イベント照合部２５１は、監視対象ＮＷ分析結果（検知用）と、検知用イベント群のイベント群同士が合致するかどうかを照合する。具体的には、イベント照合部２５１は、入力された監視対象ＮＷ分析結果（検知用）と検知用イベント群とのイベント群同士について、共通的に確認されるイベントの個数を算出する。そして、イベント照合部２５１は、処理対象とするイベント群のうち、共通的に確認されるイベントの個数に基づいて、判定対象イベント群同士が合致したか否かを判定する。そして、検知結果出力部２５２は、イベント照合部２５１での照合の結果、検知用イベント群と合致したと判定されるホスト情報を出力する。言い換えれば、検知結果出力部２５２は、シグネチャである検知用イベント群と合致したと判定されるホストについては、マルウェア感染端末である可能性が高いものとして、検知用イベント群と合致したと判定されるホストを識別することのできる情報を出力することによって、マルウェア感染端末を検出する。
【０１３９】
［第二の実施の形態の処理手順］
次に、上述した検出装置２００による検出処理の手順について詳細に説明する。
【０１４０】
（除外イベント抽出処理）
まず、図１３を用いて、除外イベント抽出部２３１が実行する除外イベント抽出処理について説明する。図１３は、第二の実施の形態に係る除外イベント抽出部２３１による除外イベント抽出処理手順を示すフローチャートである。
【０１４１】
図１３に示すように、除外イベント抽出部２３１は、監視対象ＮＷ分析結果（組み合わせ抽出用）を入力として読み込む（ステップＳ７０１）。そして、除外イベント抽出部２３１は、監視対象ＮＷ内のホスト数を取得する（ステップＳ７０２）。ここで、監視対象ＮＷのホスト数は、監視対象ＮＷに存在するホスト数があらかじめわかっている場合はその数としても良いし、監視対象ＮＷ分析結果（組み合わせ抽出用）に出現するホスト数を監視対象ＮＷのホスト数とみなしてもよい。言い換えれば、監視対象ＮＷ内のホスト数とは、監視対象ＮＷで観測可能な総ホスト数であり、あらかじめ存在する総ホスト数が観測されている場合には当該総ホスト数が適用され、総ホスト数が不明の場合には、監視対象ＮＷ分析結果（組み合わせ抽出用）により観測可能なホストの総数が適用される。
【０１４２】
続いて、除外イベント抽出部２３１は、読み込んだ監視対象ＮＷ分析結果（組み合わせ抽出用）に含まれる全てのイベントについて、除外イベントとするかどうかを判定する処理を実行したか否かを判定する（ステップＳ７０３）。全てのイベントに対して処理を実行したと判定した場合、除外イベント抽出処理は終了する（ステップＳ７０３肯定）。
【０１４３】
一方、全てのイベントに対して処理を実行していないと判定した場合（ステップＳ７０３否定）、除外イベント抽出部２３１は、除外イベント抽出処理を続行する。このとき、除外イベント抽出部２３１は、あるイベントで検出されたホスト数を監視対象ＮＷのホスト数で除算し、イベントの検出割合を取得する（ステップＳ７０４）。
【０１４４】
そして、除外イベント抽出部２３１は、検出割合があらかじめ指定された値よりも大きいか否かを判定する（ステップＳ７０５）。検出割合があらかじめ指定された値よりも大きいと判定した場合（ステップＳ７０５肯定）、除外イベント抽出部２３１は、判定対象である当該イベントを除外イベントに設定する（ステップＳ７０６）。一方、検出割合があらかじめ指定された値よりも大きくないと判定した場合（ステップＳ７０５否定）、除外イベント抽出部２３１は、当該イベントを除外イベントとは設定せずに、異なるイベントについての処理を続行する（ステップＳ７０３へ移行）。
【０１４５】
このように、除外イベント抽出部２３１は、多くのホストで確認されるイベントはマルウェアによる通信の特徴のみを捉えたものではないと判定し、当該イベントを抽出し、除外イベントに設定する。これにより、除外イベント抽出部２３１は、感染端末の検出処理における誤検知を低減することが可能になる。
【０１４６】
（イベント群生成処理）
次に、図１４を用いて、イベント群生成部２３２が実行するイベント群生成処理について説明する。図１４は、イベント群生成部２３２によるイベント群生成処理手順を示すフローチャートである。
【０１４７】
図１４に示すように、イベント群生成部２３２は、監視対象ＮＷ分析結果（組み合わせ抽出用及び検知用）とマルウェア通信分析結果とのイベント群生成処理について、全てのホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する（ステップＳ８０１）。全てに対して処理を実行したと判定した場合、イベント群生成処理は終了する（ステップＳ８０１肯定）。
【０１４８】
一方、全てのホストまたはマルウェアの分析結果を処理し終えていないと判定した場合（ステップＳ８０１否定）、イベント群生成部２３２は、分析結果を読み込むホストまたはマルウェアを指定する（ステップＳ８０２）。イベント群生成部２３２は、監視対象ＮＷ分析結果からイベント群を抽出する際には、監視対象ＮＷ内のホストごとにイベント群の生成を行う。ここで、ホストの識別には、例えば、ホストのＩＰアドレスを用いる。また、イベント群生成部２３２は、マルウェア通信分析結果からイベント群を生成する際には、マルウェアごとにイベント群の生成を行う。ここで、マルウェアの識別には、例えば、マルウェアのハッシュ値を用いる。なお、監視対象ＮＷ分析結果およびマルウェア通信分析結果は、いずれもイベントの確認された時刻でソートされているものとする。
【０１４９】
そして、イベント群生成部２３２は、以下に説明する処理に先立ち、直前イベント時刻およびイベント群（処理中）を初期化する（ステップＳ８０３）。
【０１５０】
まず、イベント群生成部２３２は、指定されたホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する（ステップＳ８０４）。分析結果を処理し終えたと判定した場合（ステップＳ８０４肯定）、イベント群生成部２３２は、イベント群として出力していないイベント群（すなわち、生成処理中のイベント群）が存在するか否かを判定する（ステップＳ８０５）。イベント群として出力していないイベント群が存在する場合には（ステップＳ８０５肯定）、イベント群生成部２３２は、処理中のイベント群をイベント群として出力する（ステップＳ８０６）。
【０１５１】
一方、イベント群として出力していない処理中のイベント群が存在しない場合には（ステップＳ８０５否定）、イベント群生成部２３２は、処理をステップＳ８０１に移行させる。
【０１５２】
ステップＳ８０４において、分析結果を処理し終えていないと判定した場合（ステップＳ８０４否定）、イベント群生成部２３２は、指定されたホストまたはマルウェアのイベントとイベント発生時刻とを読み込む（ステップＳ８０７）。そして、イベント群生成部２３２は、読み込んだイベントが除外イベントに該当するか否かを判定する（ステップＳ８０８）。除外イベントに該当する場合（ステップＳ８０８肯定）、イベント群生成部２３２は、読み込んだイベントについてはイベント群には加えずに、処理をステップＳ８０４に移行する。
【０１５３】
一方、読み込んだイベントが除外イベントに該当しない場合（ステップＳ８０８否定）、イベント群生成部２３２は、読み込んだイベントのイベント発生時刻を記録する（ステップＳ８０９）。そして、イベント群生成部２３２は、記録したイベント発生時刻が直前イベント時刻から一定時間以上離れているかを判定する（ステップＳ８１０）。
【０１５４】
イベント発生時刻が直前イベント時刻から一定時間以上離れている場合（ステップＳ８１０肯定）、読み込んだイベントは、処理中のイベント群とは異なるイベント群に追加されることになるため、イベント群生成部２３２は、処理中のイベント群をイベント群として出力する（ステップＳ８１１）。この場合、イベント群生成部２３２は、出力したイベント群（処理中）を初期化する（ステップＳ８１２）。
【０１５５】
ステップＳ８１０において、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合（ステップＳ８１０否定）、イベント群生成部２３２は、読み込んだイベントのイベント発生時刻を直前イベント時刻に設定する（ステップＳ８１３）。言い換えれば、イベント群生成部２３２は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、そのイベントはその前のイベントと同一のイベント群の要素であると推定し、イベント群（処理中）に追加するかどうかを判定する（後述するステップＳ８１４）。
【０１５６】
そして、イベント群生成部２３２は、読み込んだイベントがイベント群（処理中）に含まれているか否かを判定する（ステップＳ８１４）。読み込んだイベントがイベント群（処理中）に含まれている場合（ステップＳ８１４肯定）、イベント群生成部２３２は、重複するイベントをイベント群（処理中）に追加しないため、処理をステップＳ８０４に移行させる。
【０１５７】
一方、読み込んだイベントがイベント群（処理中）に含まれていない場合（ステップＳ８１４否定）、イベント群生成部２３２は、当該イベントをイベント群（処理中）に追加する（ステップＳ８１５）。その後、イベント群生成部２３２は、処理をステップＳ８０４に移行させる。
【０１５８】
このように、イベント群生成部２３２は、読み込んだイベントが除外イベントに該当している場合はそのイベントをイベント群に組み込まない。また、イベント群生成部２３２は、イベントが発生した時刻を記録し、そのイベントが発生した時刻がその前のイベントが発生した時刻と比較し、一定時間以上離れているかどうかを判定する。これにより、イベント群生成部２３２は、イベント間の発生間隔が短いイベントによって一つのイベント群が形成されるように、イベント群を生成する。さらに、イベント群生成部２３２は、イベント群（処理中）に処理対象であるイベントが含まれているかどうかを判断し、含まれている場合には、当該イベントはイベント群に追加しない。すなわち、生成されたイベント群には、重複するイベントが存在しない。また、イベント群生成部２３２は、イベント群に含まれるイベントの数が一定以上であった場合にのみイベント群を出力する。
【０１５９】
（共通イベント群抽出処理）
次に、図１５を用いて、共通イベント群抽出部２４１が実行する共通イベント群抽出処理について説明する。図１５は、共通イベント群抽出部２４１による共通イベント群抽出処理手順を示すフローチャートである。
【０１６０】
図１５に示すように、共通イベント群抽出部２４１は、マルウェア通信分析結果から抽出したイベント群を処理対象として読み込む（ステップＳ９０１）。そして、共通イベント群抽出部２４１は、イベント群間の類似度行列を生成し、階層的クラスタリングを実施する（ステップＳ９０２）。ここで、類似度行列の生成では、例えば、イベント群間のＪａｃｃａｒｄ係数に基づいて類似度を算出する。
【０１６１】
そして、共通イベント群抽出部２４１は、実施する階層的クラスタリングにおいて、あらかじめ設定された類似度以上のイベント群同士を同一のクラスタに設定する（ステップＳ９０３）。
【０１６２】
ここで、共通イベント群抽出部２４１は、全てのクラスタから共通イベント群を抽出する処理を実行したか否かを判定する（ステップＳ９０４）。全てのクラスタから共通イベント群を抽出する処理を実行したと判定した場合（ステップＳ９０４肯定）、共通イベント群抽出部２４１による共通イベント群抽出処理は終了する。
【０１６３】
一方、全てのクラスタから共通イベント群を抽出する処理を実行していないと判定した場合（ステップＳ９０４否定）、共通イベント群抽出部２４１は、共通イベント群を抽出するクラスタを指定する（ステップＳ９０５）。
【０１６４】
そして、共通イベント群抽出部２４１は、同一クラスタ内のイベント群同士で共通的に確認できるイベントの集合を抽出する（ステップＳ９０６）。そして、共通イベント群抽出部２４１は、共通的に確認できるイベントの種類があらかじめ決められた数よりも多い場合に、当該イベントの集合を検知用イベント群候補として出力する（ステップＳ９０７）。例えば、共通イベント群抽出部２４１は、共通的に確認できるイベントが２種類以上である場合に、当該イベントの集合を検知用イベント群候補として出力してもよい。また、共通イベント群抽出部２４１は、類似度が一定以上のイベント群同士を同一クラスタに設定し、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であった場合に当該イベント群を検知用イベント群として抽出してもよい。
【０１６５】
このように、共通イベント群抽出部２４１は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリングを行う。その後、共通イベント群抽出部２４１は、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出し、検知用イベント群候補とする。これにより、共通イベント群抽出部２４１は、共通的なイベントを検知用イベント群候補の要素とすることができるので、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント群で検知部２５０による判定を実施することが可能となる。すなわち、検出装置２００によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント群を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置２００は、共通的なイベント群のみを用いることで、照合の判定を行うイベント群の数を削減し、処理時間の削減を可能にする。
【０１６６】
（候補判定処理）
次に、図１６を用いて、イベント照合部２４２および候補判定部２４３が実行する候補判定処理について説明する。図１６は、イベント照合部２４２および候補判定部２４３による候補判定処理手順を示すフローチャートである。
【０１６７】
図１６に示すように、イベント照合部２４２は、監視対象ＮＷ分析結果（組み合わせ抽出用）のイベント群を検知対象イベント群として取得する（ステップＳ１００１）。また、イベント照合部２４２は、共通イベント群抽出部２４１によって抽出された検知用イベント群候補をシグネチャ群として取得する（ステップＳ１００２）。
【０１６８】
そして、イベント照合部２４２は、取得した検知対象イベント群とシグネチャ群とについて、イベント照合処理を実行する（ステップＳ１００３）。なお、イベント照合部２４２によるイベント照合処理は、検知部２５０に係るイベント照合処理と同様であるため、詳細については後述する。
【０１６９】
続いて、候補判定部２４３は、イベント照合処理によって合致したと判定された照合用イベント群ごとの検知ホスト数を、監視対象ＮＷのホスト数で除算し、照合用イベント群ごとの検知ホスト割合を算出する（ステップＳ１００４）。ここで、照合用イベント群とは、シグネチャ群のうちから選択された一のイベント群のことをいう。すなわち、候補判定部２４３は、シグネチャ群に含まれるイベント群ごとに検知ホスト割合を算出する。そして、候補判定部２４３は、検知ホスト割合が一定以下である照合用イベント群を検知用イベント群として出力する（ステップＳ１００５）。これにより、イベント照合部２４２および候補判定部２４３が実行する候補判定処理は終了する。
【０１７０】
このように、候補判定部２４３は、イベント照合部２４２によって照合された検知用イベント群候補ごとの検知ホスト数に基づき、監視対象ＮＷの総ホスト数に対する検知ホスト数の割合が一定以下である場合に、当該検知用イベント群候補を検知用イベント群として出力する。これは、除外イベント抽出部２３１の処理と同様、一般に、監視対象ＮＷにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント群からあらかじめ誤検知につながるものを除外するための処理である。
【０１７１】
すなわち、監視対象ＮＷにはマルウェアに感染している端末が少ないと仮定すると、本処理で合致したと判定された検知用イベント群候補はマルウェアの通信のみならず、一般の通信でも確認できるイベント群であるとみなせるため、検知に用いたときには誤検知を誘発しやすいイベント群であると判断できる。このため、候補判定部２４３の処理により、一般の通信と区別が難しいマルウェアの通信のイベント群をあらかじめ除外することで、検知部での誤検知を低減することが可能である。検出装置２００は、例えば、イベント照合処理によって合致したと判定された照合用イベント群ごとの検知ホスト数を監視対象ＮＷのホスト数で除算した結果が０、すなわち検知用イベント群候補で監視対象ＮＷ分析結果（組み合わせ抽出用）のイベント群を検知しなかったイベント群のみを検知用イベント群として出力してもよい。これにより、検出装置２００は、検知用イベント群に誤検知を発生させうるものが混入するのを抑制できる。
【０１７２】
（検知処理）
次に、図１７を用いて、検知部２５０が実行する検知処理について説明する。図１７は、検知部２５０による検知処理手順を示すフローチャートである。
【０１７３】
図１７に示すように、検知部２５０に係るイベント照合部２５１は、監視対象ＮＷ分析結果（検知用）のイベント群を検知対象イベント群として取得する（ステップＳ１１０１）。また、イベント照合部２５１は、検知イベント群抽出部２４０によって抽出された検知用イベント群をシグネチャ群として取得する（ステップＳ１１０２）。そして、イベント照合部２５１は、取得した検知対象イベント群とシグネチャ群とについて、イベント照合処理を実行する（ステップＳ１１０３）。
【０１７４】
続いて、検知部２５０に係る検知結果出力部２５２は、イベント照合処理によって合致したと判定されたホストをマルウェア感染ホストと判定し、その結果を検知結果として出力する（ステップＳ１１０４）。これにより、検知部２５０が実行する検知処理は終了する。
【０１７５】
このように、検知部２５０は、生成部２３０によって生成された監視対象ＮＷ分析結果（検知用）のイベント群と、検知イベント群抽出部２４０によって抽出された検知用イベント群とを照合する。これにより、検知部２５０は、あらかじめ監視対象ＮＷで観測されうるイベントやイベントの組み合わせが除外されたイベント群同士を照合することができるので、監視対象ＮＷで通常発生する通信を誤って検知する事態を削減させ、マルウェア感染端末を検知することができる。
【０１７６】
（照合処理）
次に、図１８を用いて、検知部２５０に係るイベント照合部２５１が実行する照合処理について説明する。図１８は、イベント照合部２５１による照合処理手順を示すフローチャートである。なお、検知イベント群抽出部２４０に係るイベント照合部２４２も、以下に説明する処理と同様の処理を実行する。
【０１７７】
図１８に示すように、イベント照合部２５１は、監視対象ＮＷ分析結果（検知用）のイベント群を検知対象イベント群として取得する（ステップＳ１２０１）。また、イベント照合部２５１は、検知イベント群抽出部２４０によって抽出された検知用イベント群をシグネチャ群として取得する（ステップＳ１２０２）。
【０１７８】
そして、イベント照合部２５１は、全ての検知対象イベント群を判定したか否かを判定する（ステップＳ１２０３）。全ての検知対象イベント群を判定した場合には（ステップＳ１２０３肯定）、イベント照合部２５１による照合処理は終了する。
【０１７９】
一方、全ての検知対象イベント群を判定していない場合（ステップＳ１２０３否定）、イベント照合部２５１は、判定対象イベント群およびホスト情報を検知対象イベント群から取得する（ステップＳ１２０４）。そして、イベント照合部２５１は、取得したホスト情報に基づいて、検知対象となるホストについて、全てのシグネチャ群と判定を行ったか否かを判定する（ステップＳ１２０５）。全てのシグネチャ群と判定を行った場合には（ステップＳ１２０５肯定）、イベント照合部２５１は、処理をステップＳ１２０３に移行させる。
【０１８０】
一方、全てのシグネチャ群と判定を行っていない場合には（ステップＳ１２０５否定）、イベント照合部２５１は、シグネチャ群から照合用イベント群を取得する（ステップＳ１２０６）。そして、イベント照合部２５１は、判定対象イベント群と、照合用イベント群とで、共通的に確認されるイベントの個数を取得する（ステップＳ１２０７）。
【０１８１】
続いて、イベント照合部２５１は、共通的に確認されるイベントの個数を照合用イベント群に含まれるイベントの個数で除算した値が、あらかじめ指定した数よりも大きいか否かを判定する（ステップＳ１２０８）。あらかじめ指定した数よりも大きい場合には（ステップＳ１２０８肯定）、イベント照合部１５１は、判定対象イベント群と照合用イベント群とが合致したと判定する（ステップＳ１２０９）。
【０１８２】
一方、あらかじめ指定した数よりも大きくない場合には（ステップＳ１２０８否定）、イベント照合部２５１は、判定対象イベント群と照合用イベント群とが合致しなかったと判定する（ステップＳ１２１０）。
【０１８３】
そして、イベント照合部２５１は、照合用イベント群、判定対象イベント群のホスト情報、判定結果を出力する（ステップＳ１２１１）。そして、イベント照合部２５１は、処理をステップＳ１２０５へ移行させる。
【０１８４】
このように、イベント照合部２５１は、マルウェアの特徴的な通信順序をもとに抽出されたイベント群をシグネチャ群として、検知対象となるイベント群との照合処理を実行する。これにより、検出装置２００は、類似の通信パターンを有するマルウェアに感染した端末を少ない誤検知で検知することができる。
【０１８５】
なお、第二の実施の形態と同様の処理は、監視対象ＮＷ内の端末装置と検出装置２００とを備える検出システムによって実現されてもよい。この場合、端末装置は、監視対象ＮＷにおいて所定のイベントを発生させ、検出装置２００は、当該端末装置ごとにイベントを取得する。また、マルウェア感染端末の検出システムには、仮想的にマルウェアの通信を発生させる情報処理装置が含まれてもよい。この場合、検出システムに含まれる検出装置２００は、情報処理装置が発生させたイベントをマルウェア分析結果として取得する。
【０１８６】
［第二の実施の形態の効果］
上述してきたように、第二の実施の形態に係る検出装置２００は、監視対象ＮＷの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ＮＷの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、重複しないイベント同士の組み合わせにより形成されるイベント群を生成する。そして、検出装置２００は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときに当該イベント群を検知用イベント群として抽出する。そして、検出装置２００は、生成された監視対象ＮＷの通信に基づくイベント群と、抽出された検知用イベント群とが合致していると判定された場合に、監視対象ＮＷにマルウェア感染端末が存在していることを検知する。
【０１８７】
これにより、第二の実施の形態に係る検出装置２００は、監視対象ＮＷで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減することができる。また、検出装置２００は、単一のマルウェアの通信をシグネチャとするのではなく、マルウェア通信分析結果に基づいてクラスタリングされたイベント群のうち共通したイベントの集合を検知用イベント群（シグネチャ）とする。これにより、検出装置２００は、マルウェア感染端末の検出精度を向上させることができる。また、検出装置２００は、既知のマルウェアだけでなく、既知のマルウェアに類似する通信を行う亜種のマルウェアに感染した端末についても検出することが可能となる。
【０１８８】
また、検出装置２００は、監視対象ＮＷの端末ごとに取得されたイベントのうち、所定のイベントを発生させた監視対象ＮＷの端末数を監視対象ＮＷで観測可能な総端末数で除算した値が一定の値よりも大きい場合には、所定のイベントを除くイベントのみでイベント群を生成する。
【０１８９】
これにより、第二の実施の形態に係る検出装置２００は、あらかじめ監視対象ＮＷで観測されうるイベントやイベントの組み合わせが除外された検知用イベント群を処理に用いるため、監視対象ＮＷで通常発生する通信を誤って検知する事態を削減することができる。
【０１９０】
また、検出装置２００は、監視対象ＮＷの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、イベント間の発生間隔が一定時間以上離れていないイベントからイベント群を生成する。
【０１９１】
これにより、第二の実施の形態に係る検出装置２００は、マルウェアの動作に関連する一連の事象を区切ることが可能になり、検知処理での精度を向上させることができる。
【０１９２】
また、検出装置２００は、抽出した検知用イベント群と、あらかじめ取得しておいた監視対象ＮＷ（組み合わせ抽出用）の通信に基づくイベント群とのイベント群同士を照合し、イベント群同士が合致していると照合された監視対象ＮＷの通信に基づくイベント群に対応する端末の数を監視対象ＮＷで観測可能な総端末数で除算した値が一定以上となる場合に、イベント群同士が合致していると照合された検知用イベント群が除外されたイベント群を新たな検知用イベント群として抽出する。
【０１９３】
これにより、第二の実施の形態に係る検出装置２００は、マルウェアを検知するシグネチャとなる検知用イベント群をより精度よく作成することができるので、マルウェアの誤検知を低減させることができる。
【０１９４】
また、検出装置２００は、監視対象ＮＷの通信に基づくイベント群と検知用イベント群とに含まれるイベントのうち、共通的に出現するイベントの個数を当該検知用イベント群とに含まれるイベントの総数で除算した値が一定以上であった場合に、監視対象ＮＷの通信に基づくイベント群と検知用イベント群とが合致したと判定する。
【０１９５】
これにより、第二の実施の形態に係る検出装置２００は、比較対象となる各イベント群について、合致するイベント群を適切に照合することができる。結果として、検出装置２００は、検知に用いるイベント群の精度を向上させることができるので、マルウェアの誤検知を低減させることができる。
【０１９６】
また、第二の実施の形態に係る検出システムは、監視対象ＮＷにおいて、端末装置と、検出装置２００とを備える。端末装置は、監視対象ＮＷにおいて所定の通信を発生させる。検出装置２００は、端末装置が発生させる所定の通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、端末装置またはマルウェアを区別する識別子ごとに取得されたイベントから、重複しないイベント同士の組み合わせにより形成されるイベント群を生成する。また、検出装置２００は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときに当該イベント群を検知用イベント群として抽出する。また、検出装置２００は、端末装置の通信に基づくイベント群と、抽出された検知用イベント群とが合致していると判定された場合に、監視対象ネットワークにマルウェア感染端末が存在していることを検知する。
【０１９７】
これにより、第二の実施の形態に係る検出システムは、監視対象ＮＷで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減するとともに、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。
【０１９８】
（構成等）
なお、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１９９】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０２００】
（プログラム）
また、上記実施形態に係る検出装置１００、２００が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、検出装置１００、２００と同様の機能を実現する検出プログラムを実行するコンピュータの一例を説明する。
【０２０１】
図１９は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。図１９に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【０２０２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【０２０３】
ここで、図１９に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【０２０４】
また、検出プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明した検出装置１００、２００が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【０２０５】
また、検出プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【０２０６】
なお、検出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、検出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０２０７】
１００、２００  検出装置
１３０  系列生成部
１３１、２３１  除外イベント抽出部
１３２  イベント系列生成部
１４０  検知用系列抽出部
１４１  共通イベント系列抽出部
１４２、２４２  イベント照合部
１４３、２４３  候補判定部
１５０、２５０  検知部
１５１、２５１  イベント照合部
１５２、２５２  検知結果出力部
２３０  生成部
２３２  イベント群生成部
２４０  検知イベント群抽出部
２４１  共通イベント群抽出部
【図１】
2016076334.tif 000003
【図２】
2016076334.tif 000004
【図３】
2016076334.tif 000005
【図４】
2016076334.tif 000006
【図５】
2016076334.tif 000007
【図６】
2016076334.tif 000008
【図７】
2016076334.tif 000009
【図８】
2016076334.tif 000010
【図９】
2016076334.tif 000011
【図１０】
2016076334.tif 000012
【図１１】
2016076334.tif 000013
【図１２】
2016076334.tif 000014
【図１３】
2016076334.tif 000015
【図１４】
2016076334.tif 000016
【図１５】
2016076334.tif 000017
【図１６】
2016076334.tif 000018
【図１７】
2016076334.tif 000019
【図１８】
2016076334.tif 000020
【図１９】
2016076334.tif 000021
【国際調査報告】
2016076334.tif 000022
2016076334.tif 000023
2016076334.tif 000024
2016076334.tif 000025
2016076334.tif 000026
2016076334.tif 000027