JP6181884B2 - マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム - Google Patents

マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム Download PDF

Info

Publication number
JP6181884B2
JP6181884B2 JP2016559074A JP2016559074A JP6181884B2 JP 6181884 B2 JP6181884 B2 JP 6181884B2 JP 2016559074 A JP2016559074 A JP 2016559074A JP 2016559074 A JP2016559074 A JP 2016559074A JP 6181884 B2 JP6181884 B2 JP 6181884B2
Authority
JP
Japan
Prior art keywords
event
detection
events
malware
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016559074A
Other languages
English (en)
Other versions
JPWO2016076334A1 (ja
Inventor
一史 青木
一史 青木
和憲 神谷
和憲 神谷
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2014231619 priority Critical
Priority to JP2014231618 priority
Priority to JP2014231618 priority
Priority to JP2014231619 priority
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2015/081659 priority patent/WO2016076334A1/ja
Publication of JPWO2016076334A1 publication Critical patent/JPWO2016076334A1/ja
Application granted granted Critical
Publication of JP6181884B2 publication Critical patent/JP6181884B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Description

本発明は、マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラムに関する。

近年、情報漏えいや不正アクセス等の脅威をもたらす不正プログラム(以下、「マルウェア」と呼ぶ)が猛威を振るっている。マルウェアは、感染後に攻撃者からサーバ等を介して指令を受け取り、攻撃や情報漏えいなどの脅威をもたらす。昨今のマルウェアは攻撃者との通信を正規の通信に偽装する手法が取られる(例えば、非特許文献1参照)。

発見されるマルウェアの数の増加も著しく、数秒に1つの新たなマルウェアが出現しているということが報告されている(例えば、非特許文献2参照)。そのため、アンチウィルスソフト等のホスト側での対策だけではマルウェアによる脅威を防ぎきれない。そこで、通信データを分析し、マルウェアに感染した端末を特定することでマルウェアの脅威を低減させる手法が注目されている(例えば、非特許文献3参照)。

マルウェアに感染した端末を検知する手法として、マルウェアに感染した端末に見られる通信の特徴をパターン化し、マルウェアに感染した端末を検知する手法が知られている(例えば、特許文献1参照)。マルウェアに感染した端末を検知する手法の一例は、通信データを分析対象とし、マルウェア解析で得られた通信データをパターン化し、監視対象ネットワーク(NW)の通信に同様のパターンが現れるかを突き合わせることでマルウェアに感染した端末を検知する手法である。

特許第5009244号公報

高度なサイバー攻撃の動向、[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>

しかしながら、上記従来の技術には以下のような問題があった。すなわち、前述の通り昨今はマルウェアの数が膨大であるため、全マルウェアの全通信をパターン化してしまうとパターン数が膨大となり、監視対象のネットワークの通信に当該パターンが存在するか否かを判定するのに長い時間を要する。また、前述の従来技術では、通信ペイロードごとに状態を定義し、状態の遷移をパターンとするため、マルウェアが異なる通信ペイロードで通信するだけで新たなパターンが生成されてしまう。さらに、マルウェアの通信には感染していない端末の通信と類似の通信も確認されるため、全ての通信パターンを監視対象のネットワークの通信での検知に使うと、誤検知を誘発してしまう。

そこで、本発明は、上述の課題を解決し、マルウェア感染端末を検出する装置、方法およびプログラムを提供することを目的とする。

上述した課題を解決し、目的を達成するために、マルウェア感染端末の検出装置は、監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成部と、マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出部と、前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、を備えることを特徴とする。

本発明によれば、監視対象NWで照合すべきパターンを削減し、照合にかかる時間を削減することができるとともに、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。

図1は、第一の実施の形態に係る検出装置の概要を示す構成図である。 図2は、第一の実施の形態に係る監視対象NW分析結果の一例を示す図である。 図3は、第一の実施の形態に係るマルウェア通信分析結果の一例を示す図である。 図4は、第一の実施の形態に係る検出装置の構成例を示す図である。 図5は、除外イベント抽出部による除外イベント抽出処理手順を示すフローチャートである。 図6は、イベント系列生成部によるイベント系列生成処理手順を示すフローチャートである。 図7は、共通イベント系列抽出部による共通イベント系列抽出処理手順を示すフローチャートである。 図8は、イベント照合部および候補判定部による候補判定処理手順を示すフローチャートである。 図9は、検知部による検知処理手順を示すフローチャートである。 図10は、イベント照合部による照合処理手順を示すフローチャートである。 図11は、第二の実施の形態に係る検出装置の概要を示す構成図である。 図12は、第二の実施の形態に係る検出装置の構成例を示す図である。 図13は、除外イベント抽出部による除外イベント抽出処理手順を示すフローチャートである。 図14は、イベント群生成部によるイベント群生成処理手順を示すフローチャートである。 図15は、共通イベント群抽出部による共通イベント群抽出処理手順を示すフローチャートである。 図16は、イベント照合部および候補判定部による候補判定処理手順を示すフローチャートである。 図17は、検知部による検知処理手順を示すフローチャートである。 図18は、イベント照合部による照合処理手順を示すフローチャートである。 図19は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。

以下に、本願に係るマルウェア感染端末の検出装置、マルウェア感染端末の検出方法、マルウェア感染端末の検出プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るマルウェア感染端末の検出装置、マルウェア感染端末の検出方法、マルウェア感染端末の検出プログラムが限定されるものではない。

[第一の実施の形態]
以下の実施の形態では、第一の実施の形態に係る検出装置の構成、第一の実施の形態に係る検出装置の処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。

[第一の実施の形態の概要]
まず、図1を用いて、マルウェア感染端末の検出装置である検出装置100が行う処理の概要を説明する。図1は、第一の実施の形態に係る検出装置100の概要を示す構成図である。図1に示すように、検出装置100による処理は、検出装置100が有する系列生成部130と検知用系列抽出部140と検知部150とによって実行される。検出装置100は、検出を行う前にあらかじめ収集しておいた監視対象NW(Network、ネットワーク)分析結果(系列抽出用)とマルウェア通信分析結果から検知用イベント系列を生成し、監視対象NW分析結果(検知用)から生成したイベント系列と検知用イベント系列を照合することにより、監視対象NWにおいてマルウェアに感染している端末(ホスト)を検出する。

ここで、監視対象NW分析結果(系列抽出用及び検知用)には、監視対象NW内のホストを識別する識別子、イベント、イベント発生時刻のフィールドを有するデータが格納されている。なお、イベントとは、通信に一定の特徴が確認できた際の、各々の特徴を捉えた事象を意味する。例えば、イベントは、FirewallやWebProxyなどに記録される装置ログの分析により特定の通信先との通信が含まれていたという事象、あらかじめ決められた時間内に一定回数以上の通信が行われたという事象、IDS(Intrusion Detection System)によって悪性なデータ送信が検知されたという事象などが該当する。すなわち、イベントは、監視対象NWにおける通信のうち、悪性の通信の蓋然性が高いものと特徴付けられるルールに合致する事象が該当する。検出装置100は、例えば、所定の外部装置によって通信を特徴付けるルールに合致するか否かの分析が行われ、ルールに合致したと判定されたイベントを監視対象NW分析結果として取得する。なお、マルウェア通信分析結果は、マルウェアを実際に動作させた際の通信データを、前述の監視対象NW分析結果を取得した際と同様の観点で分析した結果である。また、イベント系列とは、監視対象NW分析結果を監視対象NWのホストごとに時系列に沿って並べたもの、またはマルウェア通信分析結果をマルウェア検体ごとに時系列に沿って並べたものである。

ここで、図2を用いて、監視対象NW分析結果の一例を示す。図2は、第一の実施の形態に係る監視対象NW分析結果の一例を示す図である。図2に示すように、監視対象NW内ホストの識別子ごとに検出されたイベントは、イベントの種類と、イベント発生時刻とが対応づけられて格納される。例えば、図2では、「192.168.10.11」により識別されるホストで、「特定の通信先との通信検知」というイベントが「2014年10月15日12時20分12秒」に発生した例を示している。次に、図3を用いて、マルウェア通信分析結果の一例を示す。図3は、第一の実施の形態に係るマルウェア通信分析結果の一例を示す図である。図3に示すように、マルウェア識別子ごとに検出されたイベントについても監視対象NW分析結果と同様に、イベントの種類と、イベント発生時刻とが対応づけられて格納される。

以下に、検出装置100が行う処理について、流れに沿って説明する。検出装置100に係る系列生成部130は、除外イベント抽出部131と、イベント系列生成部132とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント系列を生成する。系列生成部130は、監視対象NWの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象NWの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する。例えば、系列生成部130は、イベントの集合として、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。以下に、除外イベント抽出部131およびイベント系列生成部132について説明する。

具体的には、除外イベント抽出部131は、監視対象NW分析結果(系列抽出用)が入力された場合に、当該分析結果において多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。

イベント系列生成部132は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント系列を生成する。一般に、監視対象NWには感染している端末は少ないため、多くのホストで確認されるイベントはマルウェアによる通信の特徴を捉えたものではないと判断できる。そのため、イベント系列生成部132は、除外イベントを除くことにより、マルウェアに感染していない端末で確認されるイベントを除いてイベント系列を生成することができる。すなわち、イベント系列生成部132によれば、感染端末の検出における誤検知を低減させることが可能になる。

また、イベント系列生成部132は、同一ホストまたは同一マルウェアのイベントについて、イベントの発生間隔が一定時間以内であるものからひとつのイベント系列を生成する。すなわち、イベント系列生成部132は、マルウェアの動作に関連する一連の事象を区切ることでイベント系列を生成する。さらに、イベント系列生成部132は、同一ホストまたは同一マルウェアのイベントのうち、重複したイベントを除外してイベント系列を生成する。

イベント系列生成部132の処理について、具体例を挙げて説明する。例えば、あるホストの分析結果として、イベントA、イベントB、イベントCが「ABCABCAA」の順で確認されたとする。例えば、イベントAは、ある特定のサーバへのアクセスを示すイベントであり、イベントBは、ある特定のサーバからファイルをダウンロードすることを示すイベントであり、イベントCは、イベントBでダウンロードしたファイルに基づき所定のサーバにアクセスしたことを示すイベントである。このとき、イベント系列生成部132は、「ABCABCAA」という一連のイベントから、重複したイベントを除外する。すなわち、イベント系列生成部132は、「ABCABCAA」から、イベント系列として「ABC」を生成する。つまり、イベント系列生成部132は、あるホストのイベントを発生時刻が早いものから順にイベント系列の要素として追加し、二回目以降に確認されたイベントはイベント系列に追加しない。

これにより、イベント系列生成部132は、マルウェアの実行タイミングやC&C(Command and Control)サーバからの指令などに起因して繰り返しの通信が発生している場合であっても、繰り返しの回数の差を吸収したイベント系列を生成できる。すなわち、イベント系列生成部132によれば、後述する検知処理における精度の向上を図ることが可能となる。

続いて、検出装置100に係る検知用系列抽出部140の処理について説明する。検知用系列抽出部140は、共通イベント系列抽出部141と、イベント照合部142と候補判定部143とを備え、系列生成部130が生成したイベント系列に基づいて、検知用イベント系列を抽出する。検知用系列抽出部140は、マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する。以下に、共通イベント系列抽出部141、イベント照合部142および候補判定部143について説明する。

具体的には、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリング(clustering)を行う。その後、共通イベント系列抽出部141は、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベントについて、順序を加味して抽出し、検知用イベント系列候補とする。

イベント照合部142は、監視対象NW分析結果(系列抽出用)のイベント系列と検知用イベント系列候補とを照合し、各検知用イベント系列候補が監視対象NW内のホストをどの程度検出しうるかを算出する。

候補判定部143は、イベント照合部142で算出した検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント系列候補を検知用イベント系列として出力する。

続いて、検出装置100に係る検知部150の処理について説明する。検知部150は、イベント照合部151と検知結果出力部152とを備え、監視対象NW内のマルウェア感染端末を検知する。検知部150は、系列生成部130によって生成された監視対象NWの通信に基づくイベントの集合と、検知用系列抽出部140によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象NWにマルウェア感染端末が存在していることを検知する。以下に、イベント照合部151および検知結果出力部152について説明する。

具体的には、イベント照合部151は、検知用系列抽出部140のイベント照合部142と同様に、監視対象NW分析結果(検知用)から生成されたイベント系列と検知用イベント系列とが合致するかどうかを照合する。

検知結果出力部152は、イベント照合部151での照合の結果、検知用イベント系列と合致したと判定されるホスト情報を出力する。ホスト情報とは、例えば、監視対象NW内の端末のIP(Internet Protocol)アドレスなどである。

このように、検出装置100は、監視対象NW分析結果(系列抽出用)とマルウェア通信分析結果から検知用イベント系列を生成し、監視対象NW分析結果(検知用)から生成したイベント系列と検知用イベント系列とを照合することにより、監視対象NWにおいてマルウェアに感染している端末を検出する。

上記のように、第一の実施の形態に係る検出装置100は、複数のマルウェアの通信のうち、マルウェアを特徴付ける共通的な特徴の時系列パターンである検知用イベント系列のみを用いて感染端末の検出を行う。このため、検出装置100によれば、監視対象NWで照合すべきパターンを削減し、照合にかかる時間を削減することができる。さらに、検出装置100は、あらかじめ監視対象NWで観測されうるイベントやイベントの時系列が除外された検知用イベント系列を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。

なお、検出装置100は、検知用イベント系列の生成では、監視対象NW分析結果(系列抽出用)を用いず、マルウェア通信分析結果のみを用いても良い。また、検出装置100に係る処理についての詳細は、フローチャートを用いて後記する。

[第一の実施の形態に係る検出装置の構成]
次に、図4を用いて、第一の実施の形態に係る検出装置100について説明する。図4は、第一の実施の形態に係る検出装置100の構成例を示す図である。

図4に例示するように、第一の実施の形態に係る検出装置100は、IF(interface)部110と、イベント系列記憶部120と、検知用イベント系列記憶部121と、系列生成部130と、検知用系列抽出部140と、検知部150とを有する。

IF部110は、例えば、NIC(Network Interface Card)等であり、外部装置との間で各種データを送受信する。例えば、IF部110は、監視対象NW分析結果として、監視対象NWに設置されたFirewallやWebProxyの装置ログ等を分析した結果を受信する。

イベント系列記憶部120及び検知用イベント系列記憶部121は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。イベント系列記憶部120及び検知用イベント系列記憶部121は、系列生成部130や、検知用系列抽出部140や、検知部150が扱う情報を適宜記憶する。

例えば、イベント系列記憶部120は、系列生成部130が生成したイベント系列を記憶する。また、検知用イベント系列記憶部121は、検知用系列抽出部140が抽出した検知用イベント系列を記憶する。なお、検出装置100は、イベント系列記憶部120または検知用イベント系列記憶部121を構成要素とすることを要しない。例えば、検出装置100は、イベント系列記憶部120または検知用イベント系列記憶部121と同様の処理を行う外部記憶装置を利用してもよい。

系列生成部130、検知用系列抽出部140及び検知部150は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。また、系列生成部130、検知用系列抽出部140及び検知部150は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、図示しない記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。

系列生成部130は、除外イベント抽出部131と、イベント系列生成部132とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント系列を生成する。除外イベント抽出部131は、監視対象NW分析結果(系列抽出用)が入力された場合に、当該分析結果において多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。具体的には、除外イベント抽出部131は、入力された監視対象NW分析結果(系列抽出用)に含まれる監視対象NW内の全ホスト数と、所定のイベントが含まれるホスト数とを取得する。続いて、除外イベント抽出部131は、所定のイベントが含まれるホスト数と全ホスト数との割合に基づき、所定のイベントが含まれるホストが一定の割合を超える場合には、所定のイベントを除外イベントと設定する。これにより、除外イベント抽出部131は、多くのホストで行われている一般的な処理を排除したイベントのみでイベント系列を生成させることを可能とする。

イベント系列生成部132は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント系列を生成する。具体的には、イベント系列生成部132は、監視対象NW分析結果またはマルウェア通信分析結果のうち、除外イベントに該当しないイベントを入力として取得する。このとき、イベント系列生成部132は、読み込んだイベントのイベント発生時刻を記録する。そして、イベント系列生成部132は、記録したイベント発生時刻が直前に読み込んだイベント発生時刻から一定時間以上離れているかを判定する。そして、イベント系列生成部132は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、当該イベントはその前のイベントと同一のイベント系列の要素であると推定し、判定対象となったイベント同士をイベント系列として生成する。このように、イベント系列生成部132は、一般的な処理を除外したイベントによりイベント系列を生成するので、感染端末の検出における誤検知を低減させることが可能になる。

検知用系列抽出部140は、共通イベント系列抽出部141と、イベント照合部142と候補判定部143とを備え、系列生成部130が生成したイベント系列に基づいて、検知用イベント系列を抽出する。

共通イベント系列抽出部141は、系列生成部130が生成したイベント系列から、検知用イベント系列候補を抽出する。具体的には、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリングを行い、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベントについて、順序を加味して抽出する。そして、共通イベント系列抽出部141は、イベントを時系列順に並べた場合に、共通的に確認できたイベントの長さがあらかじめ決められた長さよりも長いときには、共通的に確認されたイベントからなるイベント系列を検知用イベント系列候補とする。このように、共通イベント系列抽出部141によれば、イベント系列をクラスタリングし、共通的なイベントを検知用イベント系列候補の要素とすることで、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント系列で検知部150による判定を実施することが可能となる。すなわち、共通イベント系列抽出部141によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント系列を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置100は、共通的なイベント系列のみを用いることで、照合の判定を行うイベント系列の数を削減し、処理時間の削減を可能にする。

イベント照合部142は、監視対象NW分析結果(系列抽出用)のイベント系列と検知用イベント系列候補とを照合し、各検知用イベント系列候補が監視対象NW内のホストをどの程度検出しうるかを算出する。具体的には、イベント照合部142は、系列生成部130により生成された監視対象NW分析結果(系列抽出用)のイベント系列と、共通イベント系列抽出部141が抽出した検知用イベント系列候補とを入力として取得する。そして、イベント照合部142は、両者のイベント系列を照合し、照合すると判定された監視対象NW分析結果(系列抽出用)に対応するホスト数を算出する。そして、イベント照合部142は、算出されたホスト数を出力として候補判定部143に出力する。

候補判定部143は、イベント照合部142で算出した検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント系列候補を検知用イベント系列として出力する。具体的には、候補判定部143は、イベント照合部142によってイベント系列が合致したと判定された検知用イベント系列候補の検知ホスト数を、監視対象NWの全ホスト数で除算し、イベント系列ごとの検知ホスト割合を算出する。そして、候補判定部143は、検知用イベント系列候補の中から、検知ホスト割合が一定以下であるイベント系列を検知用イベント系列として出力する。これにより、候補判定部143は、除外イベント抽出部131の処理と同様、一般に監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント系列からあらかじめ誤検知につながるものを除外することができる。このため、候補判定部143の処理によれば、監視対象NWにおいて感染端末を検知する際の誤検知を低減することが可能になる。

検知部150は、イベント照合部151と検知結果出力部152とを備え、監視対象NW内のマルウェア感染端末を検知する。具体的には、イベント照合部151は、監視対象NW分析結果(検知用)と検知用イベント系列のイベント系列同士が合致するかどうかを照合する。そして、検知結果出力部152は、イベント照合部151での照合の結果、検知用イベント系列と合致したと判定されるホスト情報を出力する。言い換えれば、検知結果出力部152は、シグネチャである検知用イベント系列と合致したと判定されるホストについては、マルウェア感染端末である可能性が高いものとして、検知用イベント系列と合致したと判定されるホストを識別することのできる情報を出力することにより、マルウェア感染端末を検出する。

[第一の実施の形態の処理手順]
次に、上述した検出装置100による検出処理の手順について詳細に説明する。

(除外イベント抽出処理)
まず、図5を用いて、除外イベント抽出部131が実行する除外イベント抽出処理について説明する。図5は、第一の実施の形態に係る除外イベント抽出部131による除外イベント抽出処理手順を示すフローチャートである。

図5に示すように、除外イベント抽出部131は、監視対象NW分析結果(系列抽出用)を入力として読み込む(ステップS101)。そして、除外イベント抽出部131は、監視対象NW内のホスト数を取得する(ステップS102)。ここで、監視対象NWのホスト数は、監視対象NWに存在するホスト数があらかじめわかっている場合はその数としても良いし、監視対象NW分析結果(系列抽出用)に出現するホスト数を監視対象NWのホスト数とみなしてもよい。言い換えれば、監視対象NW内のホスト数とは、監視対象NWで観測可能な総ホスト数であり、あらかじめ存在する総ホスト数が観測されている場合には当該総ホスト数が適用され、総ホスト数が不明の場合には、監視対象NW分析結果(系列抽出用)により観測可能なホストの総数が適用される。

続いて、除外イベント抽出部131は、読み込んだ監視対象NW分析結果(系列抽出用)に含まれる全てのイベントについて、除外イベントとするかどうかを判定する処理を実行したか否かを判定する(ステップS103)。全てのイベントに対して処理を実行したと判定した場合、除外イベント抽出処理は終了する(ステップS103肯定)。

一方、全てのイベントに対して処理を実行していないと判定した場合(ステップS103否定)、除外イベント抽出部131は、除外イベント抽出処理を続行する。このとき、除外イベント抽出部131は、あるイベントで検出されたホスト数を監視対象NWのホスト数で除算し、イベントの検出割合を取得する(ステップS104)。

そして、除外イベント抽出部131は、検出割合があらかじめ指定された値よりも大きいか否かを判定する(ステップS105)。検出割合があらかじめ指定された値よりも大きいと判定した場合(ステップS105肯定)、除外イベント抽出部131は、判定対象である当該イベントを除外イベントに設定する(ステップS106)。一方、検出割合があらかじめ指定された値よりも大きくないと判定した場合(ステップS105否定)、除外イベント抽出部131は、当該イベントを除外イベントとは設定せずに、異なるイベントについての処理を続行する(ステップS103へ移行)。

このように、除外イベント抽出部131は、多くのホストで確認されるイベントはマルウェアによる通信の特徴のみを捉えたものではないと判定し、当該イベントを抽出し、除外イベントに設定する。これにより、除外イベント抽出部131は、感染端末の検出処理における誤検知を低減することが可能になる。

(イベント系列生成処理)
次に、図6を用いて、イベント系列生成部132が実行するイベント系列生成処理について説明する。図6は、イベント系列生成部132によるイベント系列生成処理手順を示すフローチャートである。

図6に示すように、イベント系列生成部132は、監視対象NW分析結果(系列抽出用及び検知用)とマルウェア通信分析結果とのイベント系列生成処理について、全てのホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS201)。全てに対して処理を実行したと判定した場合、イベント系列生成処理は終了する(ステップS201肯定)。

一方、全てのホストまたはマルウェアの分析結果を処理し終えていないと判定した場合(ステップS201否定)、イベント系列生成部132は、分析結果を読み込むホストまたはマルウェアを指定する(ステップS202)。イベント系列生成部132は、監視対象NW分析結果からイベント系列を抽出する際には、監視対象NW内のホストごとにイベント系列の生成を行う。ここで、ホストの識別には、例えば、ホストのIPアドレスを用いる。また、イベント系列生成部132は、マルウェア通信分析結果からイベント系列を生成する際には、マルウェアごとにイベント系列の生成を行う。ここで、マルウェアの識別には、例えば、マルウェアのハッシュ値を用いる。なお、監視対象NW分析結果およびマルウェア通信分析結果は、いずれもイベントの確認された時刻でソートされているものとする。

そして、イベント系列生成部132は、以下に説明する処理に先立ち、直前イベント時刻およびイベント系列(処理中)を初期化する(ステップS203)。

まず、イベント系列生成部132は、指定されたホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS204)。分析結果を処理し終えたと判定した場合(ステップS204肯定)、イベント系列生成部132は、イベント系列として出力していないイベント系列(すなわち、生成処理中のイベント系列)が存在するか否かを判定する(ステップS205)。イベント系列として出力していないイベント系列が存在する場合には(ステップS205肯定)、イベント系列生成部132は、処理中のイベント系列をイベント系列として出力する(ステップS206)。

一方、イベント系列として出力していない処理中のイベント系列が存在しない場合には(ステップS205否定)、イベント系列生成部132は、処理をステップS201に移行させる。

ステップS204において、分析結果を処理し終えていないと判定した場合(ステップS204否定)、イベント系列生成部132は、指定されたホストまたはマルウェアのイベントとイベント発生時刻を読み込む(ステップS207)。そして、イベント系列生成部132は、読み込んだイベントが除外イベントに該当するか否かを判定する(ステップS208)。除外イベントに該当する場合(ステップS208肯定)、イベント系列生成部132は、読み込んだイベントについてはイベント系列には加えずに、処理をステップS204に移行する。

一方、読み込んだイベントが除外イベントに該当しない場合(ステップS208否定)、イベント系列生成部132は、読み込んだイベントのイベント発生時刻を記録する(ステップS209)。そして、イベント系列生成部132は、記録したイベント発生時刻が直前イベント時刻から一定時間以上離れているかを判定する(ステップS210)。

イベント発生時刻が直前イベント時刻から一定時間以上離れている場合(ステップS210肯定)、読み込んだイベントは、処理中のイベント系列とは異なるイベント系列に追加されることになるため、イベント系列生成部132は、処理中のイベント系列をイベント系列として出力する(ステップS211)。この場合、イベント系列生成部132は、出力したイベント系列(処理中)を初期化する(ステップS212)。

ステップS210において、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合(ステップS210否定)、イベント系列生成部132は、読み込んだイベントのイベント発生時刻を直前イベント時刻に設定する(ステップS213)。言い換えれば、イベント系列生成部132は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、そのイベントはその前のイベントと同一のイベント系列の要素であると推定し、イベント系列(処理中)に追加するかどうかを判定する(後述するステップS214)。

そして、イベント系列生成部132は、読み込んだイベントがイベント系列(処理中)に含まれているか否かを判定する(ステップS214)。読み込んだイベントがイベント系列(処理中)に含まれている場合(ステップS214肯定)、イベント系列生成部132は、重複するイベントをイベント系列(処理中)に追加しないため、処理をステップS204に移行させる。

一方、読み込んだイベントがイベント系列(処理中)に含まれていない場合(ステップS214否定)、イベント系列生成部132は、当該イベントをイベント系列(処理中)に追加する(ステップS215)。その後、イベント系列生成部132は、処理をステップS204に移行させる。

このように、イベント系列生成部132は、読み込んだイベントが除外イベントに該当している場合はそのイベントをイベント系列に組み込まない。また、イベント系列生成部132は、イベントが発生した時刻を記録し、そのイベントが発生した時刻がその前のイベントが発生した時刻と比較し、一定時間以上離れているかどうかを判定する。これにより、イベント系列生成部132は、イベント間の発生間隔が短いイベントによって一つのイベント系列が形成されるように、イベント系列を生成する。さらに、イベント系列生成部132は、イベント系列(処理中)に処理対象であるイベントが含まれているかどうかを判断し、含まれている場合には、当該イベントはイベント系列に追加しない。すなわち、生成されたイベント系列には、重複するイベントが存在しない。なお、イベント系列(処理中)に重複するイベントを追加するか否かの判定(ステップS214)は、監視対象NW分析結果およびマルウェア通信分析結果の特徴を踏まえ、行わなくてもよい。例えば、監視対象NW分析結果およびマルウェア通信分析結果で確認されているイベントの種類が少ない場合(例えば、1種類のみなどの場合)には、イベント系列(処理中)に重複するイベントを追加するか否かの判定を行わず、除外イベントに該当しないイベントを全てイベント系列(処理中)に追加してもよい。

(共通イベント系列抽出処理)
次に、図7を用いて、共通イベント系列抽出部141が実行する共通イベント系列抽出処理について説明する。図7は、共通イベント系列抽出部141による共通イベント系列抽出処理手順を示すフローチャートである。

図7に示すように、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出したイベント系列を処理対象として読み込む(ステップS301)。そして、共通イベント系列抽出部141は、イベント系列間の類似度行列を生成し、階層的クラスタリングを実施する(ステップS302)。ここで、類似度行列の生成では、例えば、各イベントに対して一意に識別可能な文字を割り当て、イベント系列を文字列とみなした上で、イベント系列間のレーベンシュタイン距離を計算し、イベント系列の類似度を求める。

そして、共通イベント系列抽出部141は、実施する階層的クラスタリングにおいて、あらかじめ設定された類似度以上のイベント系列同士を同一のクラスタに設定する(ステップS303)。

ここで、共通イベント系列抽出部141は、全てのクラスタから共通イベント系列を抽出する処理を実行したか否かを判定する(ステップS304)。全てのクラスタから共通イベント系列を抽出する処理を実行したと判定した場合(ステップS304肯定)、共通イベント系列抽出部141による共通イベント系列抽出処理は終了する。

一方、全てのクラスタから共通イベント系列を抽出する処理を実行していないと判定した場合(ステップS304否定)、共通イベント系列抽出部141は、共通イベント系列を抽出するクラスタを指定する(ステップS305)。

そして、共通イベント系列抽出部141は、同一クラスタ内のイベント系列同士で共通する部分列のうち、最長共通部分列(LCS:Longest Common Subsequence)を抽出する(ステップS306)。そして、共通イベント系列抽出部141は、あらかじめ決められた長さよりも長い最長共通部分列を検知用イベント系列候補として出力する(ステップS307)。

このように、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリングを行う。その後、共通イベント系列抽出部141は、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベント系列を抽出し、検知用イベント系列候補とする。なお、同一のクラスタ内に単一のイベント系列しか存在しない場合には、共通イベント系列抽出部141は、そのイベント系列の長さが一定以上であった場合には当該イベント系列を検知用イベント系列候補として出力する。また、共通イベント系列抽出部141は、検知用イベント系列候補とするイベント列の長さを任意に設定することができる。例えば、共通イベント系列抽出部141は、最少のイベント系列の長さとして、2以上のイベントが系列に含まれている場合を設定するようにしてもよい。

これにより、共通イベント系列抽出部141は、共通的なイベントを検知用イベント系列候補の要素とすることができるので、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント系列で検知部150による判定を実施することが可能となる。すなわち、検出装置100によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント系列を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置100は、共通的なイベント系列のみを用いることで、照合の判定を行うイベント系列の数を削減し、処理時間の削減を可能にする。

(候補判定処理)
次に、図8を用いて、イベント照合部142および候補判定部143が実行する候補判定処理について説明する。図8は、イベント照合部142および候補判定部143による候補判定処理手順を示すフローチャートである。

図8に示すように、イベント照合部142は、監視対象NW分析結果(系列抽出用)のイベント系列を検知対象イベント系列として取得する(ステップS401)。また、イベント照合部142は、共通イベント系列抽出部141によって抽出された検知用イベント系列候補をシグネチャ系列として取得する(ステップS402)。

そして、イベント照合部142は、取得した検知対象イベント系列とシグネチャ系列とについて、イベント照合処理を実行する(ステップS403)。なお、イベント照合部142によるイベント照合処理は、検知部150に係るイベント照合処理と同様であるため、詳細については後述する。

続いて、候補判定部143は、イベント照合処理によって合致したと判定された照合用イベント系列ごとの検知ホスト数を、監視対象NWのホスト数で除算し、照合用イベント系列ごとの検知ホスト割合を取得する(ステップS404)。ここで、照合用イベント系列とは、シグネチャ系列のうちから選択された一のイベント系列のことをいう。すなわち、候補判定部143は、シグネチャ系列に含まれるイベント系列ごとに検知ホスト割合を算出する。そして、候補判定部143は、検知ホスト割合が一定以下である照合用イベント系列を検知用イベント系列として出力する(ステップS405)。これにより、イベント照合部142および候補判定部143が実行する候補判定処理は終了する。

このように、候補判定部143は、イベント照合部142によって照合された検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合に、当該検知用イベント系列候補を検知用イベント系列として出力する。これは、除外イベント抽出部131の処理と同様、一般に、監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント系列からあらかじめ誤検知につながるものを除外するための処理である。

すなわち、監視対象NWにはマルウェアに感染している端末が少ないと仮定すると、本処理で合致したと判定された検知用イベント系列候補はマルウェアの通信のみならず、一般の通信でも確認できるイベント系列であるとみなせるため、検知に用いたときには誤検知を誘発しやすいイベント系列であると判断できる。このため、候補判定部143の処理により、一般の通信と区別が難しいマルウェアの通信のイベント系列をあらかじめ除外することで、検知部150での誤検知を低減することが可能である。検出装置100は、例えば、イベント照合処理によって合致したと判定された照合用イベント系列ごとの検知ホスト数を監視対象NWのホスト数で除算した結果が0、すなわち検知用イベント系列候補で監視対象NW分析結果(系列抽出用)のイベント系列を検知しなかったイベント系列のみを検知用イベント系列として出力してもよい。これにより、検出装置100は、検知用イベント系列に誤検知を発生させうるものが混入するのを抑制できる。

(検知処理)
次に、図9を用いて、検知部150が実行する検知処理について説明する。図9は、検知部150による検知処理手順を示すフローチャートである。

図9に示すように、検知部150に係るイベント照合部151は、監視対象NW分析結果(検知用)のイベント系列を検知対象イベント系列として取得する(ステップS501)。また、イベント照合部151は、検知用系列抽出部140によって抽出された検知用イベント系列をシグネチャ系列として取得する(ステップS502)。そして、イベント照合部151は、取得した検知対象イベント系列とシグネチャ系列とについて、イベント照合処理を実行する(ステップS503)。

続いて、検知部150に係る検知結果出力部152は、イベント照合処理によって合致したと判定されたホストをマルウェア感染ホストと判定し、その結果を検知結果として出力する(ステップS504)。これにより、検知部150が実行する検知処理は終了する。

このように、検知部150は、系列生成部130によって生成された監視対象NW分析結果(検知用)のイベント系列と、検知用系列抽出部140によって抽出された検知用イベント系列とを照合する。これにより、検知部150は、あらかじめ監視対象NWで観測されうるイベントやイベントの時系列が除外されたイベント系列同士を照合することができるので、監視対象NWで通常発生する通信を誤って検知する事態を削減させ、マルウェア感染端末を検知することができる。

(照合処理)
次に、図10を用いて、検知部150に係るイベント照合部151が実行する照合処理について説明する。図10は、イベント照合部151による照合処理手順を示すフローチャートである。なお、検知用系列抽出部140に係るイベント照合部142も、以下に説明する処理と同様の処理を実行する。

図10に示すように、イベント照合部151は、監視対象NW分析結果(検知用)のイベント系列を検知対象イベント系列として取得する(ステップS601)。また、イベント照合部151は、検知用系列抽出部140によって抽出された検知用イベント系列をシグネチャ系列として取得する(ステップS602)。

そして、イベント照合部151は、全ての検知対象イベント系列を判定したか否かを判定する(ステップS603)。全ての検知対象イベント系列を判定した場合には(ステップS603肯定)、イベント照合部151による照合処理は終了する。

一方、全ての検知対象イベント系列を判定していない場合(ステップS603否定)、イベント照合部151は、判定対象イベント系列およびホスト情報を検知対象イベント系列から取得する(ステップS604)。そして、イベント照合部151は、取得したホスト情報に基づいて、検知対象となるホストについて、全てのシグネチャ系列と判定を行ったか否かを判定する(ステップS605)。全てのシグネチャ系列と判定を行った場合には(ステップS605肯定)、イベント照合部151は、処理をステップS603に移行させる。

一方、全てのシグネチャ系列と判定を行っていない場合には(ステップS605否定)、イベント照合部151は、シグネチャ系列から照合用イベント系列を取得する(ステップS606)。そして、イベント照合部151は、判定対象イベント系列と、照合用イベント系列との、最長共通部分列長を取得する(ステップS607)。

続いて、イベント照合部151は、最長共通部分列長を照合用イベント系列長で除算した値が、あらかじめ指定した数よりも大きいか否かを判定する(ステップS608)。あらかじめ指定した数よりも大きい場合には(ステップS608肯定)、イベント照合部151は、判定対象イベント系列と照合用イベント系列とが合致したと判定する(ステップS609)。

一方、あらかじめ指定した数よりも大きくない場合には(ステップS608否定)、イベント照合部151は、判定対象イベント系列と照合用イベント系列とが合致しなかったと判定する(ステップS610)。

そして、イベント照合部151は、照合用イベント系列、判定対象イベント系列のホスト情報、判定結果を出力する(ステップS611)。そして、イベント照合部151は、処理をステップS605へ移行させる。

このように、イベント照合部151は、マルウェアの特徴的な通信をもとに抽出されたイベント系列をシグネチャ系列として、検知対象となるイベント系列との照合処理を実行する。これにより、検出装置100は、類似の通信パターンを有するマルウェアに感染した端末を少ない誤検知で検知することができる。

なお、第一の実施の形態と同様の処理は、監視対象NW内の端末装置と検出装置100とを備える検出システムによって実現されてもよい。この場合、端末装置は、監視対象NWにおいて所定のイベントを発生させ、検出装置100は、当該端末装置ごとにイベントを取得する。また、マルウェア感染端末の検出システムには、仮想的にマルウェアの通信を発生させる情報処理装置が含まれてもよい。この場合、検出システムに含まれる検出装置100は、情報処理装置が発生させたイベントをマルウェア分析結果として取得する。

[第一の実施の形態の効果]
上述してきたように、第一の実施の形態に係る検出装置100は、監視対象NWの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントから、イベントの発生順序を踏まえて時系列に基づいて形成されるイベント系列を生成する。そして、検出装置100は、マルウェアが発生させる通信に基づくイベント系列間での類似度を算出し、類似度が一定以上のイベント系列同士を同一クラスタに設定し、当該同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通的に出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、同一クラスタ内に単一のイベント系列しか存在しない場合には、当該イベント系列が一定の長さ以上であった場合に、当該イベント系列を検知用イベント系列として抽出する。そして、検出装置100は、生成された監視対象NWの通信に基づくイベント系列と、抽出された検知用イベント系列とのイベント系列同士を照合し、イベント系列同士が合致していると判定された場合に、監視対象NWにマルウェア感染端末が存在していることを検知する。

これにより、第一の実施の形態に係る検出装置100は、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減することができる。また、検出装置100は、単一のマルウェアの通信をシグネチャとするのではなく、マルウェア通信分析結果に基づいてクラスタリングされたイベント系列のうち共通したイベントの集合を検知用イベント系列(シグネチャ)とする。これにより、検出装置100は、既知のマルウェアだけでなく、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。

また、検出装置100は、監視対象NWの端末ごとに取得されたイベントのうち、所定のイベントが確認された監視対象NWの端末数を監視対象NWで観測可能な総端末数で除算した値が一定の値よりも大きい場合に、当該所定のイベントを除外イベントと設定し、除外イベントを除くイベントのみでイベント系列を生成する。

これにより、第一の実施の形態に係る検出装置100は、あらかじめ監視対象NWで観測されうるイベントやイベントの時系列が除外された検知用イベント系列を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。

また、検出装置100は、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、イベント間の発生間隔が一定時間以上離れていないイベントからイベント系列を生成する。

これにより、第一の実施の形態に係る検出装置100は、マルウェアの動作に関連する一連の事象を区切ることが可能になり、検知処理での精度を向上させることができる。

また、検出装置100は、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、重複して出現するイベントを除外してイベント系列を生成する。

このように、第一の実施の形態に係る検出装置100は、重複して確認されるイベントを除外してイベント系列を生成することで、マルウェアの実行タイミングやC&Cサーバからの指令などに起因して繰り返しの通信が発生している場合、繰り返しの回数の差を吸収することが可能になるため、検知における精度の向上を図ることが可能となる。

また、検出装置100は、抽出した検知用イベント系列(検知用イベント系列候補)と、あらかじめ取得しておいた監視対象NW(系列抽出用)の通信に基づくイベント系列とを照合し、イベント系列同士が合致していると判定された監視対象NWの通信に基づくイベント系列に対応する端末の数を監視対象NWで観測可能な総端末数で除算した値が一定以上となる場合に、抽出した検知用イベント系列候補のうち、イベント系列同士が合致していると判定された検知用イベント系列候補が除外されたイベント系列を検知用イベント系列として抽出する。

これにより、第一の実施の形態に係る検出装置100は、マルウェアを検知するシグネチャとなる検知用イベント系列をより精度よく作成することができるので、マルウェアの誤検知を低減させることができる。

また、検出装置100は、監視対象NWの通信に基づくイベント系列(系列抽出用)と、検知用イベント系列とで共通する部分のうち、最長となる部分長(最長共通部分列長)を当該検知用イベント系列長で除算した値が一定以上であった場合に、当該監視対象NWの通信に基づくイベント系列と当該検知用イベント系列とが合致したと判定する。

これにより、第一の実施の形態に係る検出装置100は、比較対象となる各イベント系列について、合致するイベント系列を適切に照合することができる。結果として、検出装置100は、検知に用いるイベント系列の精度を向上させることができるので、マルウェアの誤検知を低減させることができる。さらに、検出装置100によれば、監視対象NWのホストがマルウェアに感染していた場合で、マルウェアによるイベントと業務上発生する通信に起因するイベントが混在して検知された状態であっても、共通部分列を用いて照合することで精度よく検知することができる。

また、第一の実施の形態に係る検出システムは、監視対象NWにおいて、端末装置と、検出装置100とを備える。端末装置は、監視対象NWにおいて所定の通信を発生させる。検出装置100は、端末装置が発生させる所定の通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、端末装置またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。また、検出装置100は、マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、同一クラスタ内に単一のイベント系列しか存在しない場合には、イベント系列が一定の長さ以上であった場合に、当該イベント系列を検知用イベント系列として抽出する。また、検出装置100は、端末装置の通信に基づくイベント系列と、抽出された検知用イベント系列とが合致していると判定された場合に、監視対象NWにマルウェア感染端末が存在していることを検知する。

これにより、第一の実施の形態に係る検出システムは、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減するとともに、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。

[第二の実施の形態]
上述した第一の実施の形態の説明では、イベントの発生順序を踏まえて形成されるイベント系列を生成し、該イベント系列から検知用イベント系列を抽出する場合を説明したが、本発明はこれに限定されるものではなく、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、該イベント群から検知用イベント群を抽出するようにしてもよい。そこで、以下の第二の実施の形態では、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、該イベント群から検知用イベント群を抽出する場合について説明する。以下の実施の形態では、第二の実施の形態に係る検出装置の構成、第二の実施の形態に係る検出装置の処理の流れを順に説明し、最後に第二の実施の形態による効果を説明する。

[第二の実施の形態の概要]
まず、図11を用いて、マルウェア感染端末の検出装置である検出装置200が行う処理の概要を説明する。図11は、第二の実施の形態に係る検出装置200の概要を示す構成図である。図11に示すように、検出装置200による処理は、検出装置200が有する生成部230と検知イベント群抽出部240と検知部250とによって実行される。検出装置200は、検出を行う前にあらかじめ収集しておいた監視対象NW(Network、ネットワーク)分析結果(組み合わせ抽出用)とマルウェア通信分析結果から検知用イベント群を生成し、監視対象NW分析結果(検知用)から生成したイベント群と検知用イベント群とを照合することにより、監視対象NWにおいてマルウェアに感染している端末(ホスト)を検出する。

ここで、監視対象NW分析結果(組み合わせ抽出用及び検知用)には、監視対象NW内のホストを識別する識別子、イベント、イベント発生時刻のフィールドを有するデータが格納されている。なお、イベントとは、通信に一定の特徴が確認できた際の、各々の特徴を捉えた事象を意味する。例えば、イベントは、FirewallやWebProxyなどに記録される装置ログの分析により特定の通信先との通信が含まれていたという事象や、あらかじめ決められた時間内に一定回数以上の通信が行われたという事象や、IDS(Intrusion Detection System)によって悪性なデータ送信が検知されたという事象などが該当する。すなわち、イベントは、監視対象NWにおける通信のうち、悪性の通信の蓋然性が高いものと特徴付けられるルールに合致する事象が該当する。検出装置200は、例えば、所定の外部装置によって通信を特徴付けるルールに合致するか否かの分析が行われ、ルールに合致したと判定されたイベントを監視対象NW分析結果として取得する。なお、マルウェア通信分析結果は、マルウェアを実際に動作させた際の通信データを、前述の監視対象NW分析結果を取得した際と同様の観点で分析した結果である。また、イベント群とは、監視対象NW分析結果を監視対象NWのホストごとにまとめたもの、またはマルウェア通信分析結果をマルウェア検体ごとにまとめたものである。

ここで、前述したように、監視対象NW内ホストの識別子ごとに検出されたイベントは、イベントの種類と、イベント発生時刻とが対応づけられて格納される。例えば、図2では、「192.168.10.11」により識別されるホストで、「特定の通信先との通信検知」というイベントが「2014年10月15日12時20分12秒」に発生した例を示している。また、図3に示すように、マルウェア識別子ごとに検出されたイベントについても監視対象NW分析結果と同様に、イベントの種類と、イベント発生時刻とが対応づけられて格納される。

以下に、検出装置200が行う処理について、流れに沿って説明する。検出装置200に係る生成部230は、除外イベント抽出部231と、イベント群生成部232とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント群を生成する。

具体的には、除外イベント抽出部231は、監視対象NW分析結果(組み合わせ抽出用)が入力された場合に、当該分析結果において所定の割合よりも多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。

イベント群生成部232は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント群を生成する。一般に、監視対象NWには感染している端末は少ないため、多くのホストで確認されるイベントはマルウェアによる通信の特徴を捉えたものではないと判断できる。そのため、イベント群生成部232は、除外イベントを除くことにより、マルウェアに感染していない端末で確認されるイベントを除いてイベント群を生成することができる。すなわち、イベント群生成部232によれば、感染端末の検出における誤検知を低減させることが可能になる。

また、イベント群生成部232は、同一ホストまたは同一マルウェアのイベントについて、イベントの発生間隔が一定時間以内であるものからひとつのイベント群を生成する。すなわち、イベント群生成部232は、マルウェアの動作に関連する一連の事象を区切ることでイベント群を生成する。さらに、イベント群生成部232は、同一ホストまたは同一マルウェアのイベントのうち、重複したイベントを除外してイベント群を生成する。これにより、イベント群生成部232は、マルウェアの実行タイミングやC&C(Command and Control)サーバからの指令などに起因して繰り返しの通信が発生している場合であっても、繰り返しの回数の差を吸収したイベント群を生成できる。すなわち、イベント群生成部232によれば、後述する検知処理における精度の向上を図ることが可能となる。

続いて、検出装置200に係る検知イベント群抽出部240の処理について説明する。検知イベント群抽出部240は、共通イベント群抽出部241と、イベント照合部242と候補判定部243とを備え、生成部230が生成したイベント群に基づいて、検知用イベント群を抽出する。

具体的には、共通イベント群抽出部241は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリング(clustering)を行う。その後、共通イベント群抽出部241は、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出し、検知用イベント群候補とする。

イベント照合部242は、監視対象NW分析結果(組み合わせ抽出用)のイベント群と検知用イベント群候補とを照合し、各検知用イベント群候補が監視対象NW内のホストをどの程度検出しうるかを算出する。

候補判定部243は、イベント照合部242で算出した検知用イベント群候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント群候補を検知用イベント群として出力する。

続いて、検出装置200に係る検知部250の処理について説明する。検知部250は、イベント照合部251と検知結果出力部252とを備え、監視対象NW内のマルウェア感染端末を検知する。

具体的には、イベント照合部251は、検知イベント群抽出部240のイベント照合部242と同様に、監視対象NW分析結果(検知用)から生成されたイベント群と検知用イベント群とが合致するかどうかを照合する。

検知結果出力部252は、イベント照合部251での照合の結果、検知用イベント群と合致したと判定されるホスト情報を出力する。ホスト情報とは、例えば、監視対象NW内の端末のIP(Internet Protocol)アドレスなどである。

このように、検出装置200は、監視対象NW分析結果(組み合わせ抽出用)とマルウェア通信分析結果から検知用イベント群を生成し、監視対象NW分析結果(検知用)から生成したイベント群と検知用イベント群とを照合することにより、監視対象NWにおいてマルウェアに感染している端末を検出する。

上記のように、第二の実施の形態に係る検出装置200は、複数のマルウェアの通信のうち、マルウェアを特徴付ける共通的な特徴の組み合わせパターンである検知用イベント群のみを用いて感染端末の検出を行う。このため、検出装置200によれば、監視対象NWで照合すべきパターンを削減し、照合にかかる時間を削減することができる。さらに、検出装置200は、あらかじめ監視対象NWで観測されうるイベントやイベントの組み合わせが除外された検知用イベント群を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。

なお、検出装置200は、検知用イベント群の生成では、監視対象NW分析結果(組み合わせ抽出用)を用いず、マルウェア通信分析結果のみを用いても良い。また、検出装置200に係る処理についての詳細は、フローチャートを用いて後記する。

[第二の実施の形態に係る検出装置の構成]
次に、図12を用いて、第二の実施の形態に係る検出装置200について説明する。図12は、第二の実施の形態に係る検出装置200の構成例を示す図である。

図12に例示するように、第二の実施の形態に係る検出装置200は、IF(interface)部210と、イベント群記憶部220と、検知用イベント群記憶部221と、生成部230と、検知イベント群抽出部240と、検知部250とを有する。

IF部210は、例えば、NIC(Network Interface Card)等であり、外部装置との間で各種データを送受信する。例えば、IF部210は、監視対象NW分析結果として、監視対象NWに設置されたFirewallやWebProxyの装置ログ等を分析した結果を受信する。

イベント群記憶部220及び検知用イベント群記憶部221は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。イベント群記憶部220及び検知用イベント群記憶部221は、生成部230や、検知イベント群抽出部240や、検知部250が扱う情報を適宜記憶する。

例えば、イベント群記憶部220は、生成部230が生成したイベント群を記憶する。また、検知用イベント群記憶部221は、検知イベント群抽出部240が抽出した検知用イベント群を記憶する。なお、検出装置200は、イベント群記憶部220または検知用イベント群記憶部221を構成要素とすることを要しない。例えば、検出装置200は、イベント群記憶部220または検知用イベント群記憶部221と同様の処理を行う外部記憶装置を利用してもよい。

生成部230、検知イベント群抽出部240及び検知部250は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。また、生成部230、検知イベント群抽出部240及び検知部250は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、図示しない記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。

生成部230は、除外イベント抽出部231と、イベント群生成部232とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント群を生成する。除外イベント抽出部231は、監視対象NW分析結果(組み合わせ抽出用)が入力された場合に、分析結果において所定の割合よりも多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。具体的には、除外イベント抽出部231は、入力された監視対象NW分析結果(組み合わせ抽出用)に含まれる監視対象NW内の全ホスト数と、所定のイベントが含まれるホスト数とを取得する。続いて、除外イベント抽出部231は、所定のイベントが含まれるホスト数と全ホスト数との割合に基づき、所定のイベントが含まれるホストが一定の割合を超える場合には、所定のイベントを除外イベントと設定する。これにより、除外イベント抽出部231は、多くのホストで行われている一般的な処理を排除したイベントのみでイベント群を生成させることを可能とする。

また、イベント群生成部232は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しない分析結果からなるイベント群を生成する。具体的には、イベント群生成部232は、監視対象NW分析結果またはマルウェア通信分析結果のうち、除外イベントに該当しないイベントを入力として取得する。このとき、イベント群生成部232は、読み込んだイベントのイベント発生時刻を記録する。そして、イベント群生成部232は、記録したイベント発生時刻が直前に読み込んだイベント発生時刻から一定時間以上離れているかを判定する。そして、イベント群生成部232は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、当該イベントはその前のイベントと同一のイベント群の要素であると推定し、判定対象となったイベント同士をイベント群として生成する。このように、イベント群生成部232は、一般的な処理を除外したイベントによりイベント群を生成するので、感染端末の検出における誤検知を低減させることが可能になる。

検知イベント群抽出部240は、共通イベント群抽出部241と、イベント照合部242と候補判定部243とを備え、生成部230が生成したイベント群に基づいて、検知用イベント群を抽出する。

共通イベント群抽出部241は、生成部230が生成したイベント群から、検知用イベント群候補を抽出する。具体的には、共通イベント群抽出部241は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリングを行い、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出する。そして、共通イベント群抽出部241は、共通的に確認できたイベントの種類があらかじめ決められた数よりも多い場合に、抽出されたイベントの集合を検知用イベント群候補とする。例えば、共通イベント群抽出部241は、共通的に確認できるイベントが2種類以上である場合に、抽出されたイベントの集合を検知用イベント群候補として出力する。また、共通イベント群抽出部241は、同一クラスタに単一のイベント群しか存在しなかった場合には、イベント群に含まれるイベントの種類が一定数以上(例えば、2種類以上)であった場合に当該イベント群を、そのまま検知用イベント群候補として抽出してもよい。このように、共通イベント群抽出部241によれば、イベント群をクラスタリングし、共通的なイベントを検知用イベント群候補の要素とすることで、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント群で検知部250による判定を実施することが可能となる。すなわち、共通イベント群抽出部241によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント群を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置200は、共通的なイベント群のみを用いることで、照合の判定を行うイベント群の数を削減し、処理時間の削減を可能にする。

イベント照合部242は、監視対象NW分析結果(組み合わせ抽出用)のイベント群と検知用イベント群候補とを照合し、各検知用イベント群候補が監視対象NW内のホストをどの程度検出しうるかを算出する。具体的には、イベント照合部242は、生成部230により生成された監視対象NW分析結果(組合せ抽出用)のイベント群と、共通イベント群抽出部241が抽出した検知用イベント群候補とを入力として取得する。そして、イベント照合部242は、両者のイベント群を照合し、照合すると判定された監視対象NW分析結果(組合せ抽出用)に対応するホスト数を算出する。そして、イベント照合部242は、算出されたホスト数を出力として候補判定部243に出力する。

候補判定部243は、イベント照合部242で算出した検知用イベント群候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント群候補を検知用イベント群として出力する。具体的には、候補判定部243は、イベント照合部242によってイベント群が合致したと判定された検知用イベント群候補の検知ホスト数を、監視対象NWの全ホスト数で除算し、イベント群ごとの検知ホスト割合を算出する。そして、候補判定部243は、検知用イベント群候補の中から、検知ホスト割合が一定以下であるイベント群を検知用イベント群として出力する。これにより、候補判定部243は、除外イベント抽出部231の処理と同様、一般に監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント群からあらかじめ誤検知につながるものを除外することができる。このため、候補判定部243の処理によれば、監視対象NWにおいて感染端末を検知する際の誤検知を低減することが可能になる。

検知部250は、イベント照合部251と検知結果出力部252とを備え、監視対象NW内のマルウェア感染端末を検知する。イベント照合部251は、監視対象NW分析結果(検知用)と、検知用イベント群のイベント群同士が合致するかどうかを照合する。具体的には、イベント照合部251は、入力された監視対象NW分析結果(検知用)と検知用イベント群とのイベント群同士について、共通的に確認されるイベントの個数を算出する。そして、イベント照合部251は、処理対象とするイベント群のうち、共通的に確認されるイベントの個数に基づいて、判定対象イベント群同士が合致したか否かを判定する。そして、検知結果出力部252は、イベント照合部251での照合の結果、検知用イベント群と合致したと判定されるホスト情報を出力する。言い換えれば、検知結果出力部252は、シグネチャである検知用イベント群と合致したと判定されるホストについては、マルウェア感染端末である可能性が高いものとして、検知用イベント群と合致したと判定されるホストを識別することのできる情報を出力することによって、マルウェア感染端末を検出する。

[第二の実施の形態の処理手順]
次に、上述した検出装置200による検出処理の手順について詳細に説明する。

(除外イベント抽出処理)
まず、図13を用いて、除外イベント抽出部231が実行する除外イベント抽出処理について説明する。図13は、第二の実施の形態に係る除外イベント抽出部231による除外イベント抽出処理手順を示すフローチャートである。

図13に示すように、除外イベント抽出部231は、監視対象NW分析結果(組み合わせ抽出用)を入力として読み込む(ステップS701)。そして、除外イベント抽出部231は、監視対象NW内のホスト数を取得する(ステップS702)。ここで、監視対象NWのホスト数は、監視対象NWに存在するホスト数があらかじめわかっている場合はその数としても良いし、監視対象NW分析結果(組み合わせ抽出用)に出現するホスト数を監視対象NWのホスト数とみなしてもよい。言い換えれば、監視対象NW内のホスト数とは、監視対象NWで観測可能な総ホスト数であり、あらかじめ存在する総ホスト数が観測されている場合には当該総ホスト数が適用され、総ホスト数が不明の場合には、監視対象NW分析結果(組み合わせ抽出用)により観測可能なホストの総数が適用される。

続いて、除外イベント抽出部231は、読み込んだ監視対象NW分析結果(組み合わせ抽出用)に含まれる全てのイベントについて、除外イベントとするかどうかを判定する処理を実行したか否かを判定する(ステップS703)。全てのイベントに対して処理を実行したと判定した場合、除外イベント抽出処理は終了する(ステップS703肯定)。

一方、全てのイベントに対して処理を実行していないと判定した場合(ステップS703否定)、除外イベント抽出部231は、除外イベント抽出処理を続行する。このとき、除外イベント抽出部231は、あるイベントで検出されたホスト数を監視対象NWのホスト数で除算し、イベントの検出割合を取得する(ステップS704)。

そして、除外イベント抽出部231は、検出割合があらかじめ指定された値よりも大きいか否かを判定する(ステップS705)。検出割合があらかじめ指定された値よりも大きいと判定した場合(ステップS705肯定)、除外イベント抽出部231は、判定対象である当該イベントを除外イベントに設定する(ステップS706)。一方、検出割合があらかじめ指定された値よりも大きくないと判定した場合(ステップS705否定)、除外イベント抽出部231は、当該イベントを除外イベントとは設定せずに、異なるイベントについての処理を続行する(ステップS703へ移行)。

このように、除外イベント抽出部231は、多くのホストで確認されるイベントはマルウェアによる通信の特徴のみを捉えたものではないと判定し、当該イベントを抽出し、除外イベントに設定する。これにより、除外イベント抽出部231は、感染端末の検出処理における誤検知を低減することが可能になる。

(イベント群生成処理)
次に、図14を用いて、イベント群生成部232が実行するイベント群生成処理について説明する。図14は、イベント群生成部232によるイベント群生成処理手順を示すフローチャートである。

図14に示すように、イベント群生成部232は、監視対象NW分析結果(組み合わせ抽出用及び検知用)とマルウェア通信分析結果とのイベント群生成処理について、全てのホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS801)。全てに対して処理を実行したと判定した場合、イベント群生成処理は終了する(ステップS801肯定)。

一方、全てのホストまたはマルウェアの分析結果を処理し終えていないと判定した場合(ステップS801否定)、イベント群生成部232は、分析結果を読み込むホストまたはマルウェアを指定する(ステップS802)。イベント群生成部232は、監視対象NW分析結果からイベント群を抽出する際には、監視対象NW内のホストごとにイベント群の生成を行う。ここで、ホストの識別には、例えば、ホストのIPアドレスを用いる。また、イベント群生成部232は、マルウェア通信分析結果からイベント群を生成する際には、マルウェアごとにイベント群の生成を行う。ここで、マルウェアの識別には、例えば、マルウェアのハッシュ値を用いる。なお、監視対象NW分析結果およびマルウェア通信分析結果は、いずれもイベントの確認された時刻でソートされているものとする。

そして、イベント群生成部232は、以下に説明する処理に先立ち、直前イベント時刻およびイベント群(処理中)を初期化する(ステップS803)。

まず、イベント群生成部232は、指定されたホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS804)。分析結果を処理し終えたと判定した場合(ステップS804肯定)、イベント群生成部232は、イベント群として出力していないイベント群(すなわち、生成処理中のイベント群)が存在するか否かを判定する(ステップS805)。イベント群として出力していないイベント群が存在する場合には(ステップS805肯定)、イベント群生成部232は、処理中のイベント群をイベント群として出力する(ステップS806)。

一方、イベント群として出力していない処理中のイベント群が存在しない場合には(ステップS805否定)、イベント群生成部232は、処理をステップS801に移行させる。

ステップS804において、分析結果を処理し終えていないと判定した場合(ステップS804否定)、イベント群生成部232は、指定されたホストまたはマルウェアのイベントとイベント発生時刻とを読み込む(ステップS807)。そして、イベント群生成部232は、読み込んだイベントが除外イベントに該当するか否かを判定する(ステップS808)。除外イベントに該当する場合(ステップS808肯定)、イベント群生成部232は、読み込んだイベントについてはイベント群には加えずに、処理をステップS804に移行する。

一方、読み込んだイベントが除外イベントに該当しない場合(ステップS808否定)、イベント群生成部232は、読み込んだイベントのイベント発生時刻を記録する(ステップS809)。そして、イベント群生成部232は、記録したイベント発生時刻が直前イベント時刻から一定時間以上離れているかを判定する(ステップS810)。

イベント発生時刻が直前イベント時刻から一定時間以上離れている場合(ステップS810肯定)、読み込んだイベントは、処理中のイベント群とは異なるイベント群に追加されることになるため、イベント群生成部232は、処理中のイベント群をイベント群として出力する(ステップS811)。この場合、イベント群生成部232は、出力したイベント群(処理中)を初期化する(ステップS812)。

ステップS810において、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合(ステップS810否定)、イベント群生成部232は、読み込んだイベントのイベント発生時刻を直前イベント時刻に設定する(ステップS813)。言い換えれば、イベント群生成部232は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、そのイベントはその前のイベントと同一のイベント群の要素であると推定し、イベント群(処理中)に追加するかどうかを判定する(後述するステップS814)。

そして、イベント群生成部232は、読み込んだイベントがイベント群(処理中)に含まれているか否かを判定する(ステップS814)。読み込んだイベントがイベント群(処理中)に含まれている場合(ステップS814肯定)、イベント群生成部232は、重複するイベントをイベント群(処理中)に追加しないため、処理をステップS804に移行させる。

一方、読み込んだイベントがイベント群(処理中)に含まれていない場合(ステップS814否定)、イベント群生成部232は、当該イベントをイベント群(処理中)に追加する(ステップS815)。その後、イベント群生成部232は、処理をステップS804に移行させる。

このように、イベント群生成部232は、読み込んだイベントが除外イベントに該当している場合はそのイベントをイベント群に組み込まない。また、イベント群生成部232は、イベントが発生した時刻を記録し、そのイベントが発生した時刻がその前のイベントが発生した時刻と比較し、一定時間以上離れているかどうかを判定する。これにより、イベント群生成部232は、イベント間の発生間隔が短いイベントによって一つのイベント群が形成されるように、イベント群を生成する。さらに、イベント群生成部232は、イベント群(処理中)に処理対象であるイベントが含まれているかどうかを判断し、含まれている場合には、当該イベントはイベント群に追加しない。すなわち、生成されたイベント群には、重複するイベントが存在しない。また、イベント群生成部232は、イベント群に含まれるイベントの数が一定以上であった場合にのみイベント群を出力する。

(共通イベント群抽出処理)
次に、図15を用いて、共通イベント群抽出部241が実行する共通イベント群抽出処理について説明する。図15は、共通イベント群抽出部241による共通イベント群抽出処理手順を示すフローチャートである。

図15に示すように、共通イベント群抽出部241は、マルウェア通信分析結果から抽出したイベント群を処理対象として読み込む(ステップS901)。そして、共通イベント群抽出部241は、イベント群間の類似度行列を生成し、階層的クラスタリングを実施する(ステップS902)。ここで、類似度行列の生成では、例えば、イベント群間のJaccard係数に基づいて類似度を算出する。

そして、共通イベント群抽出部241は、実施する階層的クラスタリングにおいて、あらかじめ設定された類似度以上のイベント群同士を同一のクラスタに設定する(ステップS903)。

ここで、共通イベント群抽出部241は、全てのクラスタから共通イベント群を抽出する処理を実行したか否かを判定する(ステップS904)。全てのクラスタから共通イベント群を抽出する処理を実行したと判定した場合(ステップS904肯定)、共通イベント群抽出部241による共通イベント群抽出処理は終了する。

一方、全てのクラスタから共通イベント群を抽出する処理を実行していないと判定した場合(ステップS904否定)、共通イベント群抽出部241は、共通イベント群を抽出するクラスタを指定する(ステップS905)。

そして、共通イベント群抽出部241は、同一クラスタ内のイベント群同士で共通的に確認できるイベントの集合を抽出する(ステップS906)。そして、共通イベント群抽出部241は、共通的に確認できるイベントの種類があらかじめ決められた数よりも多い場合に、当該イベントの集合を検知用イベント群候補として出力する(ステップS907)。例えば、共通イベント群抽出部241は、共通的に確認できるイベントが2種類以上である場合に、当該イベントの集合を検知用イベント群候補として出力してもよい。また、共通イベント群抽出部241は、類似度が一定以上のイベント群同士を同一クラスタに設定し、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であった場合に当該イベント群を検知用イベント群として抽出してもよい。

このように、共通イベント群抽出部241は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリングを行う。その後、共通イベント群抽出部241は、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出し、検知用イベント群候補とする。これにより、共通イベント群抽出部241は、共通的なイベントを検知用イベント群候補の要素とすることができるので、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント群で検知部250による判定を実施することが可能となる。すなわち、検出装置200によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント群を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置200は、共通的なイベント群のみを用いることで、照合の判定を行うイベント群の数を削減し、処理時間の削減を可能にする。

(候補判定処理)
次に、図16を用いて、イベント照合部242および候補判定部243が実行する候補判定処理について説明する。図16は、イベント照合部242および候補判定部243による候補判定処理手順を示すフローチャートである。

図16に示すように、イベント照合部242は、監視対象NW分析結果(組み合わせ抽出用)のイベント群を検知対象イベント群として取得する(ステップS1001)。また、イベント照合部242は、共通イベント群抽出部241によって抽出された検知用イベント群候補をシグネチャ群として取得する(ステップS1002)。

そして、イベント照合部242は、取得した検知対象イベント群とシグネチャ群とについて、イベント照合処理を実行する(ステップS1003)。なお、イベント照合部242によるイベント照合処理は、検知部250に係るイベント照合処理と同様であるため、詳細については後述する。

続いて、候補判定部243は、イベント照合処理によって合致したと判定された照合用イベント群ごとの検知ホスト数を、監視対象NWのホスト数で除算し、照合用イベント群ごとの検知ホスト割合を算出する(ステップS1004)。ここで、照合用イベント群とは、シグネチャ群のうちから選択された一のイベント群のことをいう。すなわち、候補判定部243は、シグネチャ群に含まれるイベント群ごとに検知ホスト割合を算出する。そして、候補判定部243は、検知ホスト割合が一定以下である照合用イベント群を検知用イベント群として出力する(ステップS1005)。これにより、イベント照合部242および候補判定部243が実行する候補判定処理は終了する。

このように、候補判定部243は、イベント照合部242によって照合された検知用イベント群候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合に、当該検知用イベント群候補を検知用イベント群として出力する。これは、除外イベント抽出部231の処理と同様、一般に、監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント群からあらかじめ誤検知につながるものを除外するための処理である。

すなわち、監視対象NWにはマルウェアに感染している端末が少ないと仮定すると、本処理で合致したと判定された検知用イベント群候補はマルウェアの通信のみならず、一般の通信でも確認できるイベント群であるとみなせるため、検知に用いたときには誤検知を誘発しやすいイベント群であると判断できる。このため、候補判定部243の処理により、一般の通信と区別が難しいマルウェアの通信のイベント群をあらかじめ除外することで、検知部での誤検知を低減することが可能である。検出装置200は、例えば、イベント照合処理によって合致したと判定された照合用イベント群ごとの検知ホスト数を監視対象NWのホスト数で除算した結果が0、すなわち検知用イベント群候補で監視対象NW分析結果(組み合わせ抽出用)のイベント群を検知しなかったイベント群のみを検知用イベント群として出力してもよい。これにより、検出装置200は、検知用イベント群に誤検知を発生させうるものが混入するのを抑制できる。

(検知処理)
次に、図17を用いて、検知部250が実行する検知処理について説明する。図17は、検知部250による検知処理手順を示すフローチャートである。

図17に示すように、検知部250に係るイベント照合部251は、監視対象NW分析結果(検知用)のイベント群を検知対象イベント群として取得する(ステップS1101)。また、イベント照合部251は、検知イベント群抽出部240によって抽出された検知用イベント群をシグネチャ群として取得する(ステップS1102)。そして、イベント照合部251は、取得した検知対象イベント群とシグネチャ群とについて、イベント照合処理を実行する(ステップS1103)。

続いて、検知部250に係る検知結果出力部252は、イベント照合処理によって合致したと判定されたホストをマルウェア感染ホストと判定し、その結果を検知結果として出力する(ステップS1104)。これにより、検知部250が実行する検知処理は終了する。

このように、検知部250は、生成部230によって生成された監視対象NW分析結果(検知用)のイベント群と、検知イベント群抽出部240によって抽出された検知用イベント群とを照合する。これにより、検知部250は、あらかじめ監視対象NWで観測されうるイベントやイベントの組み合わせが除外されたイベント群同士を照合することができるので、監視対象NWで通常発生する通信を誤って検知する事態を削減させ、マルウェア感染端末を検知することができる。

(照合処理)
次に、図18を用いて、検知部250に係るイベント照合部251が実行する照合処理について説明する。図18は、イベント照合部251による照合処理手順を示すフローチャートである。なお、検知イベント群抽出部240に係るイベント照合部242も、以下に説明する処理と同様の処理を実行する。

図18に示すように、イベント照合部251は、監視対象NW分析結果(検知用)のイベント群を検知対象イベント群として取得する(ステップS1201)。また、イベント照合部251は、検知イベント群抽出部240によって抽出された検知用イベント群をシグネチャ群として取得する(ステップS1202)。

そして、イベント照合部251は、全ての検知対象イベント群を判定したか否かを判定する(ステップS1203)。全ての検知対象イベント群を判定した場合には(ステップS1203肯定)、イベント照合部251による照合処理は終了する。

一方、全ての検知対象イベント群を判定していない場合(ステップS1203否定)、イベント照合部251は、判定対象イベント群およびホスト情報を検知対象イベント群から取得する(ステップS1204)。そして、イベント照合部251は、取得したホスト情報に基づいて、検知対象となるホストについて、全てのシグネチャ群と判定を行ったか否かを判定する(ステップS1205)。全てのシグネチャ群と判定を行った場合には(ステップS1205肯定)、イベント照合部251は、処理をステップS1203に移行させる。

一方、全てのシグネチャ群と判定を行っていない場合には(ステップS1205否定)、イベント照合部251は、シグネチャ群から照合用イベント群を取得する(ステップS1206)。そして、イベント照合部251は、判定対象イベント群と、照合用イベント群とで、共通的に確認されるイベントの個数を取得する(ステップS1207)。

続いて、イベント照合部251は、共通的に確認されるイベントの個数を照合用イベント群に含まれるイベントの個数で除算した値が、あらかじめ指定した数よりも大きいか否かを判定する(ステップS1208)。あらかじめ指定した数よりも大きい場合には(ステップS1208肯定)、イベント照合部151は、判定対象イベント群と照合用イベント群とが合致したと判定する(ステップS1209)。

一方、あらかじめ指定した数よりも大きくない場合には(ステップS1208否定)、イベント照合部251は、判定対象イベント群と照合用イベント群とが合致しなかったと判定する(ステップS1210)。

そして、イベント照合部251は、照合用イベント群、判定対象イベント群のホスト情報、判定結果を出力する(ステップS1211)。そして、イベント照合部251は、処理をステップS1205へ移行させる。

このように、イベント照合部251は、マルウェアの特徴的な通信順序をもとに抽出されたイベント群をシグネチャ群として、検知対象となるイベント群との照合処理を実行する。これにより、検出装置200は、類似の通信パターンを有するマルウェアに感染した端末を少ない誤検知で検知することができる。

なお、第二の実施の形態と同様の処理は、監視対象NW内の端末装置と検出装置200とを備える検出システムによって実現されてもよい。この場合、端末装置は、監視対象NWにおいて所定のイベントを発生させ、検出装置200は、当該端末装置ごとにイベントを取得する。また、マルウェア感染端末の検出システムには、仮想的にマルウェアの通信を発生させる情報処理装置が含まれてもよい。この場合、検出システムに含まれる検出装置200は、情報処理装置が発生させたイベントをマルウェア分析結果として取得する。

[第二の実施の形態の効果]
上述してきたように、第二の実施の形態に係る検出装置200は、監視対象NWの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象NWの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、重複しないイベント同士の組み合わせにより形成されるイベント群を生成する。そして、検出装置200は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときに当該イベント群を検知用イベント群として抽出する。そして、検出装置200は、生成された監視対象NWの通信に基づくイベント群と、抽出された検知用イベント群とが合致していると判定された場合に、監視対象NWにマルウェア感染端末が存在していることを検知する。

これにより、第二の実施の形態に係る検出装置200は、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減することができる。また、検出装置200は、単一のマルウェアの通信をシグネチャとするのではなく、マルウェア通信分析結果に基づいてクラスタリングされたイベント群のうち共通したイベントの集合を検知用イベント群(シグネチャ)とする。これにより、検出装置200は、マルウェア感染端末の検出精度を向上させることができる。また、検出装置200は、既知のマルウェアだけでなく、既知のマルウェアに類似する通信を行う亜種のマルウェアに感染した端末についても検出することが可能となる。

また、検出装置200は、監視対象NWの端末ごとに取得されたイベントのうち、所定のイベントを発生させた監視対象NWの端末数を監視対象NWで観測可能な総端末数で除算した値が一定の値よりも大きい場合には、所定のイベントを除くイベントのみでイベント群を生成する。

これにより、第二の実施の形態に係る検出装置200は、あらかじめ監視対象NWで観測されうるイベントやイベントの組み合わせが除外された検知用イベント群を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。

また、検出装置200は、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、イベント間の発生間隔が一定時間以上離れていないイベントからイベント群を生成する。

これにより、第二の実施の形態に係る検出装置200は、マルウェアの動作に関連する一連の事象を区切ることが可能になり、検知処理での精度を向上させることができる。

また、検出装置200は、抽出した検知用イベント群と、あらかじめ取得しておいた監視対象NW(組み合わせ抽出用)の通信に基づくイベント群とのイベント群同士を照合し、イベント群同士が合致していると照合された監視対象NWの通信に基づくイベント群に対応する端末の数を監視対象NWで観測可能な総端末数で除算した値が一定以上となる場合に、イベント群同士が合致していると照合された検知用イベント群が除外されたイベント群を新たな検知用イベント群として抽出する。

これにより、第二の実施の形態に係る検出装置200は、マルウェアを検知するシグネチャとなる検知用イベント群をより精度よく作成することができるので、マルウェアの誤検知を低減させることができる。

また、検出装置200は、監視対象NWの通信に基づくイベント群と検知用イベント群とに含まれるイベントのうち、共通的に出現するイベントの個数を当該検知用イベント群とに含まれるイベントの総数で除算した値が一定以上であった場合に、監視対象NWの通信に基づくイベント群と検知用イベント群とが合致したと判定する。

これにより、第二の実施の形態に係る検出装置200は、比較対象となる各イベント群について、合致するイベント群を適切に照合することができる。結果として、検出装置200は、検知に用いるイベント群の精度を向上させることができるので、マルウェアの誤検知を低減させることができる。

また、第二の実施の形態に係る検出システムは、監視対象NWにおいて、端末装置と、検出装置200とを備える。端末装置は、監視対象NWにおいて所定の通信を発生させる。検出装置200は、端末装置が発生させる所定の通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、端末装置またはマルウェアを区別する識別子ごとに取得されたイベントから、重複しないイベント同士の組み合わせにより形成されるイベント群を生成する。また、検出装置200は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときに当該イベント群を検知用イベント群として抽出する。また、検出装置200は、端末装置の通信に基づくイベント群と、抽出された検知用イベント群とが合致していると判定された場合に、監視対象ネットワークにマルウェア感染端末が存在していることを検知する。

これにより、第二の実施の形態に係る検出システムは、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減するとともに、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。

(構成等)
なお、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。

また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。

(プログラム)
また、上記実施形態に係る検出装置100、200が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、検出装置100、200と同様の機能を実現する検出プログラムを実行するコンピュータの一例を説明する。

図19は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。図19に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。

メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。

ここで、図19に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。

また、検出プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明した検出装置100、200が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。

また、検出プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。

なお、検出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、検出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。

100、200 検出装置
130 系列生成部
131、231 除外イベント抽出部
132 イベント系列生成部
140 検知用系列抽出部
141 共通イベント系列抽出部
142、242 イベント照合部
143、243 候補判定部
150、250 検知部
151、251 イベント照合部
152、252 検知結果出力部
230 生成部
232 イベント群生成部
240 検知イベント群抽出部
241 共通イベント群抽出部

Claims (11)

  1. 監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成部と、
    マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出部と、
    前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、
    を備えることを特徴とするマルウェア感染端末の検出装置。
  2. 前記生成部は、前記イベントの集合として、当該イベントの発生順序を踏まえて形成されるイベント系列を生成し、
    前記抽出部は、マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、当該同一クラスタ内に単一のイベント系列しか存在しない場合には、当該イベント系列が一定の長さ以上であった場合に当該イベント系列を検知用イベント系列として抽出し、
    前記検知部は、前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する、
    ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  3. 前記生成部は、前記イベントの集合として、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、
    前記抽出部は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときには当該イベント群を検知用イベント群として抽出し、
    前記検知部は、前記生成部によって生成された監視対象ネットワークの通信に基づくイベント群と、前記抽出部によって抽出された検知用イベント群とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する、
    ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  4. 前記生成部は、前記監視対象ネットワークの端末ごとに取得されたイベントのうち、所定のイベントを発生させた監視対象ネットワークの端末数を監視対象ネットワークで観測可能な総端末数で除算した値が一定の値よりも大きい場合に、当該所定のイベントを除くイベントのみで前記イベントの集合を生成する、
    ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  5. 前記生成部は、前記監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントのうち、当該イベント間の発生間隔が一定時間以上離れていないイベントからイベントの集合を生成する、
    ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  6. 前記抽出部は、抽出した前記検知用イベントの集合と、あらかじめ取得しておいた監視対象ネットワークの通信に基づく前記イベントの集合とを照合し、前記イベントの集合同士が合致していると判定された前記監視対象ネットワークの通信に基づくイベントの集合に対応する端末の数を監視対象ネットワークで観測可能な総端末数で除算した値が一定以上となる場合に、前記抽出した前記検知用イベントの集合のうち、前記イベントの集合同士が合致していると判定された当該検知用イベントの集合が除外されたイベントの集合を新たな検知用イベントの集合として抽出する、
    ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  7. 前記検知部は、前記監視対象ネットワークの通信に基づくイベント系列と前記検知用イベント系列とで共通する部分のうち、最長となる部分長を当該検知用イベント系列長で除算した値が一定以上であった場合に、当該監視対象ネットワークの通信に基づくイベント系列と当該検知用イベント系列とが合致したと判定する、
    ことを特徴とする請求項2に記載のマルウェア感染端末の検出装置。
  8. 前記検知部は、前記監視対象ネットワークの通信に基づくイベント群と前記検知用イベント群とに含まれるイベントのうち、共通的に出現するイベントの個数を、当該検知用イベント群とに含まれるイベントの総数で除算した値が一定以上であった場合に、当該監視対象ネットワークの通信に基づくイベント群と当該検知用イベント群とが合致したと判定する、
    ことを特徴とする請求項3に記載のマルウェア感染端末の検出装置。
  9. 前記生成部は、前記監視対象ネットワークの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、重複して出現するイベントを除外して前記イベント系列を生成する、
    ことを特徴とする請求項2に記載のマルウェア感染端末の検出装置。
  10. マルウェア感染端末の検出装置で実行される検出方法であって、
    監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成工程と、
    マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出工程と、
    前記生成工程によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出工程によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知工程と、
    を含んだことを特徴とするマルウェア感染端末の検出方法。
  11. 監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成ステップと、
    マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出ステップと、
    前記生成ステップによって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出ステップによって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知ステップと、
    をコンピュータに実行させるためのマルウェア感染端末の検出プログラム。
JP2016559074A 2014-11-14 2015-11-10 マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム Active JP6181884B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014231619 2014-11-14
JP2014231618 2014-11-14
JP2014231618 2014-11-14
JP2014231619 2014-11-14
PCT/JP2015/081659 WO2016076334A1 (ja) 2014-11-14 2015-11-10 マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム

Publications (2)

Publication Number Publication Date
JPWO2016076334A1 JPWO2016076334A1 (ja) 2017-04-27
JP6181884B2 true JP6181884B2 (ja) 2017-08-16

Family

ID=55954417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016559074A Active JP6181884B2 (ja) 2014-11-14 2015-11-10 マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム

Country Status (3)

Country Link
US (1) US20170339171A1 (ja)
JP (1) JP6181884B2 (ja)
WO (1) WO2016076334A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107408181B (zh) 2015-03-18 2020-04-07 日本电信电话株式会社 恶意软件感染终端的检测装置、恶意软件感染终端的检测系统、恶意软件感染终端的检测方法以及记录介质
US20190149570A1 (en) * 2016-06-13 2019-05-16 Nippon Telegraph And Telephone Corporation Log analysis device, log analysis method, and log analysis program
JP2018060288A (ja) * 2016-10-03 2018-04-12 富士通株式会社 ネットワーク監視装置、ネットワーク監視プログラム及びネットワーク監視方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716737B2 (en) * 2002-11-04 2010-05-11 Riverbed Technology, Inc. Connection based detection of scanning attacks
US7809670B2 (en) * 2005-12-09 2010-10-05 Microsoft Corporation Classification of malware using clustering that orders events in accordance with the time of occurance
US8424094B2 (en) * 2007-04-02 2013-04-16 Microsoft Corporation Automated collection of forensic evidence associated with a network security incident
IL219597D0 (en) * 2012-05-03 2012-10-31 Syndrome X Ltd Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention
US9386028B2 (en) * 2012-10-23 2016-07-05 Verint Systems Ltd. System and method for malware detection using multidimensional feature clustering
US9965937B2 (en) * 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis

Also Published As

Publication number Publication date
JPWO2016076334A1 (ja) 2017-04-27
WO2016076334A1 (ja) 2016-05-19
US20170339171A1 (en) 2017-11-23

Similar Documents

Publication Publication Date Title
JP6001689B2 (ja) ログ分析装置、情報処理方法及びプログラム
Zarni Aung Permission-based android malware detection
Meidan et al. ProfilIoT: a machine learning approach for IoT device identification based on network traffic analysis
Bhatt et al. Towards a framework to detect multi-stage advanced persistent threats attacks
Park et al. Fast malware classification by automated behavioral graph matching
Tian et al. Differentiating malware from cleanware using behavioural analysis
US9661003B2 (en) System and method for forensic cyber adversary profiling, attribution and attack identification
US9870471B2 (en) Computer-implemented method for distilling a malware program in a system
JP6201614B2 (ja) ログ分析装置、方法およびプログラム
US10210325B2 (en) Extracting and detecting malicious instructions on a virtual machine
Luo et al. Position-based automatic reverse engineering of network protocols
US20170054745A1 (en) Method and device for processing network threat
RU2580036C2 (ru) Система и способ создания гибкой свертки для обнаружения вредоносных программ
CN106415507B (zh) 日志分析装置、攻击检测装置、攻击检测方法以及程序
US20150089647A1 (en) Distributed Sample Analysis
US9813451B2 (en) Apparatus and method for detecting cyber attacks from communication sources
CN104426906A (zh) 识别计算机网络内的恶意设备
US9621571B2 (en) Apparatus and method for searching for similar malicious code based on malicious code feature information
KR101303643B1 (ko) 침입 코드 탐지 장치 및 그 방법
US9661008B2 (en) Network monitoring apparatus, network monitoring method, and network monitoring program
US9842208B2 (en) Method, apparatus and system for detecting malicious process behavior
US20150047034A1 (en) Composite analysis of executable content across enterprise network
US20120072988A1 (en) Detection of global metamorphic malware variants using control and data flow analysis
US8769692B1 (en) System and method for detecting malware by transforming objects and analyzing different views of objects
US8108931B1 (en) Method and apparatus for identifying invariants to detect software tampering

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170718

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170720

R150 Certificate of patent or registration of utility model

Ref document number: 6181884

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150