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

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

Info

Publication number
WO2016147944A1
WO2016147944A1 PCT/JP2016/057119 JP2016057119W WO2016147944A1 WO 2016147944 A1 WO2016147944 A1 WO 2016147944A1 JP 2016057119 W JP2016057119 W JP 2016057119W WO 2016147944 A1 WO2016147944 A1 WO 2016147944A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
sequence
detection
malware
event sequence
Prior art date
Application number
PCT/JP2016/057119
Other languages
English (en)
French (fr)
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 JP2015-055281 priority Critical
Priority to JP2015055281 priority
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Publication of WO2016147944A1 publication Critical patent/WO2016147944A1/ja

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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

Abstract

 検出装置(100)は、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。そして、検出装置(100)は、類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、類似する共通イベント系列から、出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列として抽出する。そして、検出装置(100)は、生成された監視対象ネットワークの通信に基づくイベント系列と、抽出された検知用イベント系列との合致を基に、監視対象ネットワークの端末のマルウェア感染を検知する。

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は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。

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

[概要]
 まず、図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は、監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。

 具体的には、除外イベント抽出部131は、監視対象NW分析結果(系列抽出用)が入力された場合に、当該分析結果において多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。なお、除外イベント抽出部131を設けることで誤検知率を低減させることができるが、検出装置100は、除外イベント抽出部131を設けない構成としてもよい。

 イベント系列生成部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と候補判定部144とを備え、系列生成部130が生成したイベント系列に基づいて、検知用イベント系列を抽出する。

 検知用系列抽出部140は、マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を共通イベント系列として抽出し、複数の共通イベント系列同士で類似する共通イベント系列から、出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列として抽出する。

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

 代表イベント系列抽出部142では、共通イベント系列抽出部141で抽出された共通イベント系列のうち、類似する共通イベント系列から出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列候補として抽出する。なお、詳細な代表イベント系列の抽出方法については後述する。

 イベント照合部143は、監視対象NW分析結果(系列抽出用)のイベント系列と検知用イベント系列候補とを照合し、各検知用イベント系列候補が監視対象NW内のホストをどの程度検出しうるかを算出する。イベント照合部143は、監視対象ネットワークの通信に基づくイベント系列である判定対象イベント系列と検知用イベント系列候補との合致部分の長さの、検知用イベント系列候補の長さに対する割合である第一の合致率と、検知用イベント系列候補の長さの、検知用イベント系列候補が属するクラスタにおける最長の共通イベント系列の長さに対する割合である第二の合致率と、を乗じた値が所定の閾値以上である場合は、判定対象イベント系列と検知用イベント系列候補とが合致していると判定する。

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

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

 具体的には、イベント照合部151は、検知用系列抽出部140のイベント照合部143と同様に、監視対象NW分析結果(検知用)から生成されたイベント系列と検知用イベント系列とが合致するかどうかを照合する。イベント照合部151は、監視対象ネットワークの通信に基づくイベント系列である判定対象イベント系列と検知用イベント系列との合致部分の長さの、検知用イベント系列の長さに対する割合である第一の合致率と、検知用イベント系列の長さの、検知用イベント系列が属するクラスタにおける最長の共通イベント系列の長さに対する割合である第二の合致率と、を乗じた値が所定の閾値以上である場合は、判定対象イベント系列と検知用イベント系列とが合致していると判定する。

 検知結果出力部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と候補判定部144とを備え、系列生成部130が生成したイベント系列に基づいて、検知用イベント系列を抽出する。

 共通イベント系列抽出部141は、系列生成部130が生成したイベント系列から、共通イベント系列を抽出する。具体的には、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリングを行い、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベントについて、順序を加味して抽出する。そして、共通イベント系列抽出部141は、イベントを時系列順に並べた場合に、共通的に確認できたイベントの長さがあらかじめ決められた長さよりも長いときには、共通的に確認されたイベントからなるイベント系列を共通イベント系列とする。

 代表イベント系列抽出部142は、共通イベント系列抽出部141で抽出された共通イベント系列のうち、類似する共通イベント系列から出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列候補として抽出する。具体的には、代表イベント系列抽出部142は、共通イベント系列から、イベントをノード、イベント間の発生順序をエッジ、イベントの前後関係の出現回数をエッジの重みとする有向グラフを生成し、有向グラフの単純道(Simple path)ごとに重みの総和を計算し、最大の重みを示す単純道を代表イベント系列とする。

 まず、図5を用いて、代表イベント系列を抽出する共通イベント系列の例について説明する。図5は、それぞれ一つのクラスタから抽出された複数の共通イベント系列を示している。また、図5のラベルはイベントを示している。さらに、図5のイベント間の矢印は、イベントが発生する順序を示している。また、図5の共通イベント系列1、4および5は全く同じイベント系列であるため、一つのイベント系列にユニーク化した上で代表イベント系列の抽出を行ってもよい。

 ここで、図5に示すように、ある共通イベント系列が、他の共通イベント系列の一部として表れる場合がある。例えば、図5の共通イベント系列1の「ABCD」という共通イベント系列は、共通イベント系列2および3の一部として表れている。また、ある共通イベント系列の一部のイベントを置き換えたものが他の共通イベント系列となる場合もある。例えば、「ABC1EF」という共通イベント系列のうち「1」を、「2」または「3」に置き換えた「ABC2EF」や「ABC3EF」が存在する場合がある。

 同一クラスタ内の共通イベント系列には、上述のように類似した系列が存在するということを前提として、代表イベント系列抽出部142における代表イベント系列の抽出方法について説明する。まず、代表イベント系列抽出部142は、抽出対象となるクラスタを指定し、指定したクラスタに含まれる共通イベント系列からイベント系列グラフを生成する。ここで、イベント系列グラフとは、イベントをノード、イベントの前後関係をエッジ、イベントの前後関係の出現回数をエッジの重みとしてもつ有向グラフである。代表イベント系列抽出部142は、イベント系列グラフの先頭および末尾には、それらを意味するノードを付与する。

 図6を用いて、イベント系列グラフの具体的な例について説明する。図6は、実施の形態に係る共通イベント系列から生成されるイベント系列グラフの一例を示す図である。図6に示すように、代表イベント系列抽出部142は、イベントをノード、イベントが発生する順序を示す矢印をエッジ、イベントの前後関係の出現回数をエッジの重みとして表している。また、「START」というラベルを持つノード11がイベント系列グラフの先頭を示している。そして、「END」というラベルを持つノード18がイベント系列グラフの末尾を示している。

 まず、図7に示すように、代表イベント系列抽出部142は、イベント系列グラフを生成した後、イベント系列グラフの始点から終点までの単純道を取り出す。図7は、実施の形態に係るイベント系列グラフから生成される単純道の一例を示す図である。次に、代表イベント系列抽出部142は、取り出した各単純道について、代表イベント系列を取り出し得るかを判定する。以降、代表イベント系列抽出部142が代表イベント系列を抽出する手順について詳細に説明する。

 この時、代表イベント系列抽出部142は、イベントの前後関係の出現回数が一定数以上であるイベントを有向グラフのノードとしてもよい。例えば、図7の例において、一定回数を2と設定した場合、ノード17の前後関係の出現回数は1であり一定回数以上ではないため、イベント系列グラフのノードには含まれないことになる。

 まず、代表イベント系列抽出部142は、各単純道について、グラフの先頭を「イベント(前)」、次のイベントを「イベント(後)」とする。次に、代表イベント系列抽出部142は、スキップフラグを偽に設定し、代表イベント系列の重みを0に初期化する。そして、代表イベント系列抽出部142は、「イベント(前)」と「イベント(後)」の間の発生回数をイベント系列グラフの基となっている共通イベント系列の個数で除算した値があらかじめ設定された閾値以上であるか否かを判定する。

 第一に、「イベント(前)」と「イベント(後)」の間の発生回数をイベント系列グラフの基となっている共通イベント系列の個数で除算した値があらかじめ設定された閾値以上である場合について説明する。この場合、代表イベント系列抽出部142はスキップフラグが真であるかどうかを判定する。スキップフラグが真である場合は、代表イベント系列抽出部142は、「イベント(前)」を代表系列の要素に選定し、スキップフラグを偽に設定する。そして、「イベント(後)」を代表イベント系列の要素に選定し、「イベント(前)」と「イベント(後)」の発生回数を当該代表イベント系列の重みに追加する。なお、初回の場合は、スキップフラグは必ず偽であるが、これらの処理は各イベントに対して繰り返し行われるので、2回目以降はスキップフラグが偽である場合と真である場合の両方が考えられる。

 第二に、「イベント(前)」と「イベント(後)」の間の発生回数をイベント系列グラフの基となっている共通イベント系列の個数で除算した値があらかじめ設定された閾値よりも小さい場合について説明する。この場合、代表イベント系列抽出部142は、スキップフラグを真に設定する。

 その後、「イベント(後)」がグラフの終点と一致していた場合には、代表イベント系列抽出部142は、次の単純道の判定を実施する。終点と一致していなかった場合、代表イベント系列抽出部142は、「イベント(後)」を「イベント(前)」にし、さらに「イベント(後)」の次のイベントを新たな「イベント(後)」に設定しなおし、処理を継続する。そして、代表イベント系列抽出部142は、全ての単純道の判定を実施した後、各代表イベント系列のうち、重みが最大となるものを当該クラスタの代表イベント系列として出力する。なお、代表イベント系列抽出部142は、重みが最大となるものが複数存在する場合は、その全てを代表イベント系列として出力してもよいし、代表イベント系列に含まれるイベントの数がもっとも多いもの、もしくはもっとも少ないものを出力してもよい。さらに、クラスタに属する共通イベント系列長の最大値に対する代表イベント系列長の割合が、あらかじめ決められた値よりも小さい場合には、代表イベント系列抽出部142は、共通イベント系列を代表イベント系列としてもよい。

 図7を用いて、代表イベント系列抽出部142が代表イベント系列を抽出する手順を具体的な例を挙げて説明する。最初に、単純道10aに対して判定を行う例を示す。まず、代表イベント系列抽出部142は、ノード11aを「イベント(前)」、ノード12aを「イベント(後)」とする。次に、代表イベント系列抽出部142は、スキップフラグを偽、閾値を0.3に設定し、代表イベント系列の重みを0に初期化する。そして、ノード11aとノード12aの間の発生回数を示すエッジ21aの重みが5であり、これをイベント系列グラフの基となっている共通イベント系列の個数である5で除算した値が1であるため、代表イベント系列抽出部142は、算出した値が閾値以上であると判定する。

 そして、スキップフラグが偽であるため、代表イベント系列抽出部142はノード11aを代表系列の要素に選定せず、スキップフラグを偽から変更しない。そして、代表イベント系列抽出部142はノード12aを代表イベント系列の要素に選定し、ノード11aとノード12aの発生回数を示すエッジ21aの重み5を当該代表イベント系列の重みに追加する。

 続いて、代表イベント系列抽出部142は、ノード12aとノード13a、ノード13aとノード14a、ノード14aとノード15aについても同様の処理を繰り返す。そして、代表イベント系列抽出部142は、ノード15aを「イベント(前)」、ノード18aを「イベント(後)」とする。次に、ノード15aとノード18aの間の発生回数を示すエッジ25aの重みが3であり、これをイベント系列グラフの基となっている共通イベント系列の個数である5で除算した値が0.6であるため、代表イベント系列抽出部142は、算出した値が閾値以上であると判定する。

 そして、「イベント(後)」であるノード18aを代表イベント系列の要素に選定し、「イベント(前)」であるノード15aと「イベント(後)」であるノード18aの発生回数を示すエッジ25aの重みである3を当該代表イベント系列の重みに追加する。そして、「イベント(後)」がグラフの終点であるノード18aと一致しているため、代表イベント系列抽出部142は、単純道10aの判定を終了し、次の単純道の判定を実施する。この時、代表イベント系列の重みにはエッジ21a、22a、23a、24aおよび25aの重みが追加され、単純道10aの重みの総和は23となる。このとき、単純道10aから抽出された代表イベント系列は「ABCD」である。

 次に、単純道10bに対して判定を行う例を示す。まず、代表イベント系列抽出部142は、ノード11bを「イベント(前)」、ノード12bを「イベント(後)」とする。次に、代表イベント系列抽出部142は、スキップフラグを偽、閾値を0.3に設定し、代表イベント系列の重みを0に初期化する。そして、ノード11bとノード12bの間の発生回数を示すエッジ21bの重みが5であり、これをイベント系列グラフの基となっている共通イベント系列の個数である5で除算した値が1であるため、代表イベント系列抽出部142は、算出した値が閾値以上であると判定する。

 そして、スキップフラグが偽であるため、代表イベント系列抽出部142はノード11bを代表系列の要素に選定せず、スキップフラグを偽から変更しない。そして、代表イベント系列抽出部142はノード12bを代表イベント系列の要素に選定し、ノード11bとノード12bの発生回数を示すエッジ21bの重み5を当該代表イベント系列の重みに追加する。

 続いて、代表イベント系列抽出部142は、ノード12bとノード13b、ノード13bとノード14b、ノード14bとノード15b、ノード15bとノード16bについても同様の処理を繰り返す。そして、代表イベント系列抽出部142は、ノード16bを「イベント(前)」、ノード18bを「イベント(後)」とする。次に、ノード16bとノード18bの間の発生回数を示すエッジ27bの重みが1であり、これをイベント系列グラフの基となっている共通イベント系列の個数である5で除算した値が0.2であるため、代表イベント系列抽出部142は、算出した値が閾値より小さいと判定し、スキップフラグを真に変更する。この場合、代表イベント系列抽出部142は、「イベント(前)」であるノード16bと「イベント(後)」であるノード18bの発生回数を示すエッジ27bの重みである1を当該代表イベント系列の重みに追加しない。

 ここで、「イベント(後)」がグラフの終点であるノード18bと一致していないため、代表イベント系列抽出部142は、「イベント(後)」であるノード16bを「イベント(前)」にし、さらに「イベント(後)」の次のイベントであるノード18bを新たな「イベント(後)」に設定しなおし、処理を継続する。

 そして、「イベント(後)」がグラフの終点であるノード18bと一致しているため、代表イベント系列抽出部142は、単純道10bの判定を終了し、次の単純道の判定を実施する。この時、代表イベント系列の重みにはエッジ21b、22b、23b、24bおよび26bの重みが追加され、単純道10bの重みの総和は22となる。このとき、単純道10bから抽出された代表イベント系列は「ABCD1」である。

 次に、単純道10cに対して判定を行う例を示す。まず、代表イベント系列抽出部142は、ノード11cを「イベント(前)」、ノード12cを「イベント(後)」とする。次に、代表イベント系列抽出部142は、スキップフラグを偽、閾値を0.3に設定し、代表イベント系列の重みを0に初期化する。そして、ノード11cとノード12cの間の発生回数を示すエッジ21cの重みが5であり、これをイベント系列グラフの基となっている共通イベント系列の個数である5で除算した値が1であるため、代表イベント系列抽出部142は、算出した値が閾値以上であると判定する。

 そして、スキップフラグが偽であるため、代表イベント系列抽出部142はノード11cを代表系列の要素に選定せず、スキップフラグを偽から変更しない。そして、代表イベント系列抽出部142はノード12cを代表イベント系列の要素に選定し、ノード11cとノード12cの発生回数を示すエッジ21cの重み5を当該代表イベント系列の重みに追加する。

 続いて、代表イベント系列抽出部142は、ノード12cとノード13c、ノード13cとノード14c、ノード14cとノード15c、ノード15cとノード16cについても同様の処理を繰り返す。そして、代表イベント系列抽出部142は、ノード16cを「イベント(前)」、ノード17cを「イベント(後)」とする。次に、ノード16cとノード17cの間の発生回数を示すエッジ28cの重みが1であり、これをイベント系列グラフの基となっている共通イベント系列の個数である5で除算した値が0.2であるため、代表イベント系列抽出部142は、算出した値が閾値より小さいと判定し、スキップフラグを真に変更する。この場合、代表イベント系列抽出部142は、「イベント(前)」であるノード16cと「イベント(後)」であるノード17cの発生回数を示すエッジ28cの重みである1を当該代表イベント系列の重みに追加しない。

 ここで、「イベント(後)」がグラフの終点であるノード18cと一致していないため、代表イベント系列抽出部142は、「イベント(後)」であるノード17cを「イベント(前)」にし、さらに「イベント(後)」の次のイベントであるノード18cを新たな「イベント(後)」に設定しなおし、処理を継続する。

 そして、「イベント(前)」であるノード17cと、「イベント(後)」であるノード18cとの間の発生回数を示すエッジ29cの重みが1であり、これをイベント系列グラフの基となっている共通イベント系列の個数である5で除算した値が0.2であるため、代表イベント系列抽出部142は、算出した値が閾値より小さいと判定し、スキップフラグを真から変更しない。この場合、代表イベント系列抽出部142は、「イベント(前)」であるノード17cと「イベント(後)」であるノード18cの発生回数を示すエッジ29cの重みである1を当該代表イベント系列の重みに追加しない。

 そして、「イベント(後)」がグラフの終点であるノード18cと一致しているため、代表イベント系列抽出部142は、単純道10cの判定を終了する。この時、代表イベント系列の重みにはエッジ21c、22c、23c、24cおよび26cの重みが追加され、単純道10cの重みの総和は22となる。このとき、単純道10cから抽出された代表イベント系列は「ABCD1」である。

 そして、代表イベント系列抽出部142は、単純道10a、10bおよび10cから抽出された代表イベント系列の重みの総和を比較し、単純道10aから抽出された代表イベント系列の重みの総和が23、単純道10bおよび10cから抽出された代表イベント系列の重みの総和が22であることを得る。これより、代表イベント系列抽出部142は、重みの総和が最も大きい単純道10aから抽出された代表イベント系列「ABCD」を当該クラスタの代表イベント系列として選定する。

 なお、代表イベント系列抽出部142は、同一クラスタにおける最長の共通イベント系列の長さに対する代表イベント系列の長さの割合が、所定の値よりも小さい場合、当該クラスタの全ての共通イベント系列を代表イベント系列としてもよい。例えば、所定の値を0.5と設定して、代表イベント系列が「AB」であり、同一クラスタに「ABCDE」という最長の共通イベント系列が存在している場合、最長の共通イベント系列の長さに対する代表イベント系列の長さの割合は0.4であり、所定の値未満であるため、共通イベント系列「ABCDE」を含む全ての共通イベント系列を代表イベント系列とする。すなわち、共通イベント系列の最大長に対する代表イベント系列の長さが所定の値より小さい場合には、当該クラスタの共通イベント系列を代表するイベント系列を作成することができないと判断し、共通イベント系列を代表イベント系列とする。

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

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

 ここで、イベント照合部143における検知用イベント系列候補と監視対象NWの系列との合致の判定方法を図8および図9を用いて説明する。図8は、実施の形態に係る共通イベント系列および代表イベント系列の一例を示す図である。図9は、実施の形態に係るイベント照合部における処理の一例を示す図である。ここでは、図8に示すように、代表イベント系列抽出部142において、3つの共通イベント系列から代表イベント系列「ABD」を抽出した場合を例に挙げて説明する。なお、前述の通り、以降の説明において検知用イベント系列候補とは、代表イベント系列抽出部142で抽出された代表イベント系列を示すものである。

 ここで、イベント照合部143は、監視対象NW分析結果の系列と検知用イベント系列候補との最長共通部分列(LCS:Longest Common Subsequence)の、検知用イベント系列候補の長さに対する割合である合致率の合致と判定するための閾値を、例えば0.8と定めるものとする。図9の(a)は、監視対象NWを分析して得られる系列である。まず、図9の(b)に示すように、仮に、共通イベント系列を検知用イベント系列候補として判定を行った場合の監視対象NWの系列との合致率を見ると、いずれの場合も3/4、すなわち0.75である。前述の通り、合致していると判定する合致率は0.8であるため、イベント照合部143は、共通イベント系列は監視対象NWの系列と合致していると判定しない。

 次に、図9の(c)に示すように、検知用イベント系列候補を用いて検知を行った場合、監視対象NWの系列との合致率が3/3、すなわち1.0であるため、イベント照合部143は、代表イベント系列は監視対象NWと合致していると判定する。この時、「ABD」というパターン自体はマルウェア感染に特徴的ではなく、「B」と「D」の間に「1」「2」「3」等を含むとマルウェア感染に特徴的である場合は、イベント照合部143の代表イベント系列を用いた判定は誤判定につながることになる。

 前述のような誤判定を防止するため、イベント照合部143は、下記の式に基づいて合致率を再計算する。
 第一の合致率=検知用イベント系列候補と監視対象NWの系列とのLCS長/検知用イベント系列候補の系列長
 第二の合致率=検知用イベント系列候補の系列長/検知用イベント系列候補を選定したクラスタ内の最長の共通イベント系列長
 合致率=第一の合致率×第二の合致率

 図9の例の場合は、第一の合致率が3/3、第二の合致率が3/4であるため、合致率が3/4すなわち0.75となり、イベント照合部143は、検知用イベント系列候補は監視対象NWの系列と合致していないと判定する。なお、イベント照合部143における判定方法は、ここで説明した方法に限定されず、第二の合致率を用いず、第一の合致率を合致率とする方法であってもよい。

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

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

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

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

 図10に示すように、除外イベント抽出部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は、感染端末の検出処理における誤検知を低減することが可能になる。

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

 図11に示すように、イベント系列生成部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種類のみなどの場合)には、イベント系列(処理中)に重複するイベントを追加するか否かの判定を行わず、除外イベントに該当しないイベントを全てイベント系列(処理中)に追加してもよい。

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

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

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

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

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

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

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

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

 図13に示すように、代表イベント系列抽出部142は、全てのクラスタから代表イベント系列を抽出したか否かについて判定する(ステップS401)。全てのクラスタから代表イベント系列を抽出したと判定した場合、代表イベント系列抽出処理は終了する(ステップS401肯定)。

 一方、全てのクラスタから代表イベント系列を抽出していないと判定した場合(ステップS401否定)、代表イベント系列抽出部142は、代表イベント系列を取り出すクラスタを指定する(ステップS402)。そして、代表イベント系列抽出部142は、指定されたクラスタの共通イベント系列からイベント系列グラフを生成する(ステップS403)。さらに、代表イベント系列抽出部142は、イベント系列グラフの始点から終点までの単純道を抽出する(ステップS404)。

 次に、代表イベント系列抽出部142は、全ての単純道の判定を実施したか否かについて判定する(ステップS405)。そして、代表イベント系列抽出部142は、全ての単純道の判定を実施したと判定した場合(ステップS405肯定)、代表イベント系列のうち、重みが最大のものを当該クラスタの代表イベント系列として出力する(ステップS406)。また、代表イベント系列抽出部142は、全ての単純道の判定を実施していないと判定した場合(ステップS405否定)、特定対象の単純道を選択する(ステップS407)。

 代表イベント系列抽出部142は、特定対象のパスを選択すると、グラフの先頭のイベントを「イベント(前)」に設定し、次のイベントを「イベント(後)」に設定し、スキップフラグを偽に設定し、さらに代表イベント系列の重みを0に初期化する(ステップS408)。そして、代表イベント系列抽出部142は、「イベント(前)」と「イベント(後)」の間は発生頻度が閾値以上であるか否かを判定する(ステップS409)。ここで、発生頻度とは、ある「イベント(前)」と「イベント(後)」の関係がイベント系列グラフにおいて出現する回数を、イベント系列グラフを形成する共通イベント系列の個数で除算した値である。さらに、代表イベント系列抽出部142は、「イベント(前)」と「イベント(後)」の間は発生頻度が閾値以上であると判定された場合(ステップS409肯定)、スキップフラグが真であるか否かを判定する(ステップS410)。そして、スキップフラグが真であると判定された場合(ステップS410肯定)、代表イベント系列抽出部142は、「イベント(前)」を代表イベント系列の要素に選定し、スキップフラグを偽に設定する(ステップS411)。

 次に、代表イベント系列抽出部142は、「イベント(後)」を代表イベント系列の要素に選定し、「イベント(前)」と「イベント(後)」の間の発生回数を代表イベント系列の重みに追加する(ステップS412)。また、「イベント(前)」と「イベント(後)」の間は発生頻度が閾値以上でないと判定された場合(ステップS409否定)、代表イベント系列抽出部142は、スキップフラグを真に設定する(ステップS413)。

 そして、「イベント(後)」がグラフの終点でなかった場合(ステップS414否定)、代表イベント系列抽出部142は、「イベント(後)」を「イベント(前)」に設定し、「イベント(後)」の次のイベントを「イベント(後)」に設定する(ステップS415)。また、「イベント(後)」がグラフの終点であった場合(ステップS414肯定)、代表イベント系列抽出部142は、全てのパスの判定を実施したか否かの判定を行う(ステップS405)。なお、代表イベント系列抽出部142で最終的に出力された代表イベント系列を、以降の処理における検知用イベント系列候補とする。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 また、検出装置100は、共通イベント系列から、イベントをノード、イベント間の発生順序をエッジ、イベントの前後関係の出現回数をエッジの重みとする有向グラフを生成する。そして、検出装置100は、有向グラフの単純道ごとに重みの総和を計算し、最大の重みを示す単純道を代表イベント系列とする。これにより、検出装置100は、類似の共通イベント系列から最も効率的に検知を行える代表イベント系列を抽出することが可能となる。

 また、検出装置100は、有向グラフの単純道に含まれるエッジのうち、重みが所定の閾値以上であるエッジについて重みの総和を計算し、重みの総和が最大となる単純道を代表イベント系列とする。これにより、検出装置100は、代表イベント系列抽出対象となるイベントを予め削減することができるため、処理を削減することが可能となる。

 また、検出装置100は、同一クラスタにおける最長の共通イベント系列の長さに対する代表イベント系列の長さの割合が、所定の値よりも小さい場合、同一クラスタにおける共通イベント系列を代表イベント系列とする。これにより、クラスタを代表するイベント系列の抽出が困難な場合には、極端に短い代表イベント系列が生成されることを防止でき、誤検知を低減することが可能となる。

 また、検出装置100は、監視対象ネットワークの通信に基づくイベント系列である判定対象イベント系列と検知用イベント系列との合致部分の長さの、検知用イベント系列の長さに対する割合である第一の合致率と、検知用イベント系列の長さの、検知用イベント系列が属するクラスタにおける最長の共通イベント系列の長さに対する割合である第二の合致率と、を乗じた値が所定の閾値以上である場合は、判定対象イベント系列と検知用イベント系列とが合致していると判定し、監視対象ネットワークにマルウェア感染端末が存在していることを検知する。これによって、誤検知を低減することができる。

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

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

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

 図17は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。図17に示すように、コンピュータ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が接続される。

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

 また、検出プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明した検出装置100が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ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 検出装置
 130 系列生成部
 131 除外イベント抽出部
 132 イベント系列生成部
 140 検知用系列抽出部
 141 共通イベント系列抽出部
 142 代表イベント系列抽出部
 143 イベント照合部
 144 候補判定部
 150 検知部
 151 イベント照合部
 152 検知結果出力部

Claims (8)

  1.  監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する系列生成部と、
     マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を共通イベント系列として抽出し、複数の前記共通イベント系列同士で類似する前記共通イベント系列から、出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列として抽出する検知用系列抽出部と、
     前記系列生成部によって生成された監視対象ネットワークの通信に基づくイベント系列と、前記検知用系列抽出部によって抽出された検知用イベント系列と、が合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、
     を有することを特徴とするマルウェア感染端末の検出装置。
  2.  前記検知用系列抽出部は、
     前記共通イベント系列から、前記イベントをノード、前記イベント間の発生順序をエッジ、前記イベントの前後関係の出現回数を前記エッジの重みとする有向グラフを生成し、前記有向グラフの単純道ごとに前記重みの総和を計算し、前記重みの総和が最大となる前記単純道を前記代表イベント系列とすることを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  3.  前記検知用系列抽出部は、
     前記有向グラフの前記単純道に含まれる前記エッジのうち、前記重みが所定の閾値以上であるエッジについて前記重みの総和を計算し、前記重みの総和が最大となる前記単純道を前記代表イベント系列とすることを特徴とする請求項2に記載のマルウェア感染端末の検出装置。
  4.  前記検知用系列抽出部は、
     前記同一クラスタにおける最長の前記共通イベント系列の長さに対する前記代表イベント系列の長さの割合が、所定の値よりも小さい場合、前記同一クラスタに含まれる全ての前記共通イベント系列を前記代表イベント系列とすることを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  5.  前記検知部は、
     前記監視対象ネットワークの通信に基づくイベント系列である判定対象イベント系列と前記検知用イベント系列との合致部分の長さの、前記検知用イベント系列の長さに対する割合である第一の合致率と、前記検知用イベント系列の長さの、前記検知用イベント系列が属するクラスタにおける最長の共通イベント系列の長さに対する割合である第二の合致率と、を乗じた値が所定の閾値以上である場合は、前記判定対象イベント系列と前記検知用イベント系列とが合致していると判定し、前記監視対象ネットワークにマルウェア感染端末が存在していることを検知することを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  6.  マルウェア実行環境と、
     監視対象ネットワークと、
     マルウェア感染端末の検出装置と、を備えるマルウェア感染端末の検出システムであって、
     前記マルウェア感染端末の検出装置は、
     前記監視対象ネットワークの通信および前記マルウェア実行環境で実行されるマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する系列生成部と、
     マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を共通イベント系列として抽出し、複数の前記共通イベント系列同士で類似する前記共通イベント系列から、出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列として抽出する検知用系列抽出部と、
     前記系列生成部によって生成された監視対象ネットワークの通信に基づくイベント系列と、前記検知用系列抽出部によって抽出された検知用イベント系列と、が合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、
     を有することを特徴とするマルウェア感染端末の検出システム。
  7.  マルウェア実行環境と、
     監視対象ネットワークと、
     マルウェア感染端末の検出装置と、を有するマルウェア感染端末の検出システムで実行されるマルウェア感染端末の検出方法であって、
     前記監視対象ネットワークの通信および前記マルウェア実行環境で実行されるマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する系列生成工程と、
     マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を共通イベント系列として抽出し、複数の前記共通イベント系列同士で類似する前記共通イベント系列から、出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列として抽出する検知用系列抽出工程と、
     前記系列生成工程によって生成された監視対象ネットワークの通信に基づくイベント系列と、前記検知用系列抽出工程によって抽出された検知用イベント系列と、が合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知工程と、
     を含んだことを特徴とするマルウェア感染端末の検出方法。
  8.  監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する系列生成ステップと、
     マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を共通イベント系列として抽出し、複数の前記共通イベント系列同士で類似する前記共通イベント系列から、出現頻度の多いイベント間の関係からなる代表イベント系列を検知用イベント系列として抽出する検知用系列抽出ステップと、
     前記系列生成ステップによって生成された監視対象ネットワークの通信に基づくイベント系列と、前記検知用系列抽出ステップによって抽出された検知用イベント系列と、が合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知ステップと、をコンピュータに実行させるためのマルウェア感染端末の検出プログラム。
PCT/JP2016/057119 2015-03-18 2016-03-08 マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム WO2016147944A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015-055281 2015-03-18
JP2015055281 2015-03-18

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/558,248 US10303873B2 (en) 2015-03-18 2016-03-08 Device for detecting malware infected terminal, system for detecting malware infected terminal, method for detecting malware infected terminal, and program for detecting malware infected terminal
EP16764774.2A EP3258409B1 (en) 2015-03-18 2016-03-08 Device for detecting terminal infected by malware, system for detecting terminal infected by malware, method for detecting terminal infected by malware, and program for detecting terminal infected by malware
CN201680015471.7A CN107408181A (zh) 2015-03-18 2016-03-08 恶意软件感染终端的检测装置、恶意软件感染终端的检测系统、恶意软件感染终端的检测方法以及恶意软件感染终端的检测程序
JP2017506466A JP6348656B2 (ja) 2015-03-18 2016-03-08 マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム

Publications (1)

Publication Number Publication Date
WO2016147944A1 true WO2016147944A1 (ja) 2016-09-22

Family

ID=56918776

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/057119 WO2016147944A1 (ja) 2015-03-18 2016-03-08 マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム

Country Status (5)

Country Link
US (1) US10303873B2 (ja)
EP (1) EP3258409B1 (ja)
JP (1) JP6348656B2 (ja)
CN (1) CN107408181A (ja)
WO (1) WO2016147944A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136455A1 (en) * 2005-12-09 2007-06-14 Microsoft Corporation Application behavioral classification
US20130276117A1 (en) * 2010-12-31 2013-10-17 Ahnlab, Inc. Method and apparatus for detecting a malware in files
US20140123280A1 (en) * 2012-10-30 2014-05-01 Gabriel Kedma Runtime detection of self-replicating malware

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1280298A1 (en) * 2001-07-26 2003-01-29 BRITISH TELECOMMUNICATIONS public limited company Method and apparatus of detecting network activity
US7308714B2 (en) * 2001-09-27 2007-12-11 International Business Machines Corporation Limiting the output of alerts generated by an intrusion detection sensor during a denial of service attack
JP4020912B2 (ja) 2002-05-28 2007-12-12 富士通株式会社 不正アクセス検知装置、不正アクセス検知プログラムおよび不正アクセス検知方法
TW200711375A (en) * 2005-03-25 2007-03-16 Qualcomm Inc Apparatus and methods for managing content exchange on a wireless device
US7948977B2 (en) * 2006-05-05 2011-05-24 Broadcom Corporation Packet routing with payload analysis, encapsulation and service module vectoring
JP4883409B2 (ja) * 2007-01-22 2012-02-22 独立行政法人情報通信研究機構 データ類似性検査方法及び装置
JP5159451B2 (ja) * 2008-06-13 2013-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ネットワーク行動を分析する情報処理装置、分析システム、ネットワーク行動の分析方法およびプログラム
JP5009244B2 (ja) 2008-07-07 2012-08-22 日本電信電話株式会社 マルウェア検知システム、マルウェア検知方法及びマルウェア検知プログラム
US8370931B1 (en) * 2008-09-17 2013-02-05 Trend Micro Incorporated Multi-behavior policy matching for malware detection
US20130019309A1 (en) * 2011-07-12 2013-01-17 Raytheon Bbn Technologies Corp. Systems and methods for detecting malicious insiders using event models
US20150304345A1 (en) * 2012-11-22 2015-10-22 Koninklijke Kpn N.V. System to Detect Behaviour in a Telecommunications Network
JP5751496B2 (ja) * 2012-12-27 2015-07-22 横河電機株式会社 イベント解析装置およびコンピュータプログラム
CN103778372B (zh) * 2014-01-13 2016-10-19 福建师范大学 一种识别计算机软件行为的谱方法
JP6181884B2 (ja) * 2014-11-14 2017-08-16 日本電信電話株式会社 マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
US20180096149A1 (en) * 2016-09-30 2018-04-05 AVAST Software s.r.o. Detecting malware with hash-based fingerprints

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136455A1 (en) * 2005-12-09 2007-06-14 Microsoft Corporation Application behavioral classification
US20130276117A1 (en) * 2010-12-31 2013-10-17 Ahnlab, Inc. Method and apparatus for detecting a malware in files
US20140123280A1 (en) * 2012-10-30 2014-05-01 Gabriel Kedma Runtime detection of self-replicating malware

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KAZUNORI KAMIYA ET AL.: "Firewall Log o Mochiita Malware Kansen Tanmatsu no Kenchi Shuho", PROCEEDINGS OF THE 77TH NATIONAL CONVENTION OF INFORMATION PROCESSING SOCIETY OF JAPAN (HEISEI 27 NEN, 17 March 2015 (2015-03-17), pages 3-433 - 3-434, XP009504580 *
See also references of EP3258409A4 *

Also Published As

Publication number Publication date
JPWO2016147944A1 (ja) 2017-08-31
EP3258409A1 (en) 2017-12-20
US20180046800A1 (en) 2018-02-15
EP3258409A4 (en) 2018-10-03
CN107408181A (zh) 2017-11-28
EP3258409B1 (en) 2019-07-17
JP6348656B2 (ja) 2018-06-27
US10303873B2 (en) 2019-05-28

Similar Documents

Publication Publication Date Title
US10366231B1 (en) Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US9665713B2 (en) System and method for automated machine-learning, zero-day malware detection
Aljawarneh et al. Anomaly-based intrusion detection system through feature selection analysis and building hybrid efficient model
Nadiammai et al. Effective approach toward Intrusion Detection System using data mining techniques
RU2580032C2 (ru) Система и способ определения категории доверенности приложения
RU2580036C2 (ru) Система и способ создания гибкой свертки для обнаружения вредоносных программ
Zarni Aung Permission-based android malware detection
US20150172303A1 (en) Malware Detection and Identification
Bhatt et al. Towards a framework to detect multi-stage advanced persistent threats attacks
US20170054745A1 (en) Method and device for processing network threat
US7555777B2 (en) Preventing attacks in a data processing system
WO2014119669A1 (ja) ログ分析装置、情報処理方法及びプログラム
Shu et al. Unearthing stealthy program attacks buried in extremely long execution paths
Meidan et al. ProfilIoT: a machine learning approach for IoT device identification based on network traffic analysis
US20180278636A1 (en) System and method for malware detection learning
US9813451B2 (en) Apparatus and method for detecting cyber attacks from communication sources
US20150047034A1 (en) Composite analysis of executable content across enterprise network
US9407649B2 (en) Log analysis device and method
CN100504903C (zh) 一种恶意代码自动识别方法
US7962611B2 (en) Methods, systems and computer program products for detecting flow-level network traffic anomalies via abstraction levels
KR101303643B1 (ko) 침입 코드 탐지 장치 및 그 방법
Siddiqui et al. Detecting advanced persistent threats using fractal dimension based machine learning classification
WO2012071989A1 (zh) 基于机器学习的程序识别方法及装置
EP3136249A1 (en) Log analysis device, attack detection device, attack detection method and program
US20130198841A1 (en) Malware Classification for Unknown Executable Files

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16764774

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase in:

Ref document number: 2017506466

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2016764774

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15558248

Country of ref document: US

NENP Non-entry into the national phase in:

Ref country code: DE