(57)【要約】  悪性通信パターン抽出装置（１０）は、１以上のマルウェアのトラヒック群の入力を受け付け、入力されたトラヒック群の通信パターンを抽出する。このとき、所定のフィールドの値に変動があるトラヒック群については変動があるフィールドの値をワイルドカードに置き換える。また、悪性通信パターン抽出装置（１０）は、トラヒック群の通信パターンが類似するマルウェア同士を同じクラスタに分類し、クラスタごとに、当該クラスタ内の各マルウェアのトラヒック群における出現率が所定値以上となる通信パターン群を、悪性通信パターンとして抽出する。その後、悪性通信パターン抽出装置（１０）は、抽出した悪性通信パターンのうち、マルウェアに感染していないトラヒック群との適合率が所定値以上の悪性通信パターンを除去する。
2016080232.tif 000002
【特許請求の範囲】
【請求項１】
１以上のマルウェアのトラヒック群の入力を受け付ける入力受付部と、
前記入力されたトラヒック群の通信パターンを抽出するとき、所定のフィールドの値に変動があるトラヒック群については前記変動があるフィールドの値をワイルドカードに置き換えた通信パターンを抽出する通信パターン抽出部と、
前記抽出した通信パターンが類似するマルウェア同士を同じクラスタに分類するクラスタリング部と、
前記クラスタごとに、当該クラスタに属するマルウェアそれぞれのトラヒックにおける出現率が所定値以上となる通信パターン群を、悪性通信パターンとして抽出するクラスタ別通信パターン抽出部と、
前記抽出した悪性通信パターンのうち、マルウェアに感染していないトラヒック群との適合率が所定値以上の悪性通信パターンを除去する正常通信パターン除去部と、
を備えることを特徴とする悪性通信パターン抽出装置。
【請求項２】
前記クラスタリング部は、
前記マルウェアの通信パターンまたは前記マルウェアのトラヒックのトラヒック情報が類似するマルウェア同士を同じクラスタに分類することを特徴とする請求項１に記載の悪性通信パターン抽出装置。
【請求項３】
検知対象のトラヒック群に対し、前記悪性通信パターンとのマッチング処理を行い、前記悪性通信パターンに含まれる通信パターンのうち、マッチする通信パターンの数の割合が所定値以上のトラヒックを異常トラヒックとして検知する検知部をさらに備えることを特徴とする請求項１に記載の悪性通信パターン抽出装置。
【請求項４】
前記検知部は、
前記悪性通信パターンが、前記所定のフィールドの値がワイルドカードに置き換えられた通信パターンを含む場合、当該通信パターンについては、前記検知対象のトラヒック群に所定数以上存在するときに、当該通信パターンがマッチすると判断することを特徴とする請求項３に記載の悪性通信パターン抽出装置。
【請求項５】
前記正常通信パターン除去部は、
前記悪性通信パターンが、前記所定のフィールドの値がワイルドカードに置き換えられた通信パターンを含む場合、当該通信パターンについては、前記マルウェアに感染していないトラヒック群に所定数以上存在するとき、当該通信パターンが前記マルウェアに感染していないトラヒック群とマッチすると判断し、前記適合率を算出することを特徴とする請求項１に記載の悪性通信パターン抽出装置。
【請求項６】
１以上のマルウェアのトラヒック群の入力を受け付けるステップと、
前記入力されたトラヒック群の通信パターンを抽出するとき、所定のフィールドの値に変動があるトラヒック群については前記変動があるフィールドの値をワイルドカードに置き換えた通信パターンを抽出するステップと、
前記抽出した通信パターンが類似するマルウェア同士を同じクラスタに分類するステップと、
前記クラスタごとに、当該クラスタに属するマルウェアのトラヒックそれぞれにおける出現率が所定値以上となる通信パターン群を、悪性通信パターンとして抽出するステップと、
前記抽出した悪性通信パターンのうち、マルウェアに感染していないトラヒック群との適合率が所定値以上の悪性通信パターンを除去するステップと、
を含んだことを特徴とする悪性通信パターン抽出方法。
【請求項７】
１以上のマルウェアのトラヒック群の入力を受け付ける入力受付部と、
前記入力されたトラヒック群の通信パターンを抽出するとき、所定のフィールドの値に変動があるトラヒック群については前記変動があるフィールドの値をワイルドカードに置き換えた通信パターンを抽出する通信パターン抽出部と、
前記抽出した通信パターンが類似するマルウェア同士を同じクラスタに分類するクラスタリング部と、
前記クラスタごとに、当該クラスタに属するマルウェアそれぞれにおける出現率が所定値以上となる通信パターン群を、悪性通信パターンとして抽出するクラスタ別通信パターン抽出部と、
前記抽出した悪性通信パターンのうち、マルウェアに感染していないトラヒック群との適合率が所定値以上の悪性通信パターンを除去する正常通信パターン除去部と、
を備える悪性通信パターン抽出装置としてコンピュータを機能させるための悪性通信パターン抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、悪性通信パターン抽出装置、悪性通信パターン抽出方法、および、悪性通信パターン抽出プログラムに関する。
【背景技術】
【０００２】
従来のサイバー攻撃対策は、アンチウイルスソフト等による入口対策を行ってきたが、完全に感染を防ぐことはできず、マルウェア感染後の被害拡大を防ぐ出口対策の重要性が高まっている。【０００３】
出口対策では感染端末を発見し、マルウェア感染端末をネットワークから切り離すことが行われる。マルウェア感染端末を特定する方法として、マルウェア特有の通信先のＩＰアドレスやＵＲＬなどに関するブラックリストを用いて、このブラックリストのＩＰアドレスやＵＲＬなどを宛先として通信を行う端末を特定する方法がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５００９２４４号公報
【非特許文献】
【０００５】
【非特許文献１】SANS  Eighth  Annual  2012  Log  and  Event  Management  Survey  Results:  Sorting  Through  the  Noise、[online]、[平成26年10月31日検索]、インターネット<URL：http://www.sans.org/reading-room/whitepapers/analyst/eighth-annual-2012-log-event-management-survey-results-sorting-noise-35230>
【非特許文献２】R.Perdisci他、「Behavioral  Clustering  of  HTTP-Based  Malware  and  Signature  Generation  Using  Malicious  Network  Traces」、NSDI、Apr.2010.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、最近のマルウェアは多種多様な通信を行うために、通信の宛先ＩＰアドレスやＵＲＬなどを用いるだけでは誤検知となる可能性がある。また、マルウェアとの通信を検知するため、個々のマルウェアの通信をそのまま通信パターンとして用いたマッチングを行う方法もあるが、マルウェアは日々増加しており、これに合わせて通信パターンを増加させたのではマッチングのための処理時間が増加し、効率的なマルウェア検知を行うことができない。そこで本発明は前記した問題を解決し、マルウェアの誤検知を低減し、かつ、効率的なマルウェア検知を行うことを課題とする。
【課題を解決するための手段】
【０００７】
前記した課題を解決するため、本発明は、１以上のマルウェアのトラヒック群の入力を受け付ける入力受付部と、前記入力されたトラヒック群の通信パターンを抽出するとき、所定のフィールドの値に変動があるトラヒック群については前記変動があるフィールドの値をワイルドカードに置き換えた通信パターンを抽出する通信パターン抽出部と、前記抽出した通信パターンが類似するマルウェア同士を同じクラスタに分類するクラスタリング部と、前記クラスタごとに、当該クラスタに属するマルウェアそれぞれのトラヒックにおける出現率が所定値以上となる通信パターン群を、悪性通信パターンとして抽出するクラスタ別通信パターン抽出部と、前記抽出した悪性通信パターンのうち、マルウェアに感染していないトラヒック群との適合率が所定値以上の悪性通信パターンを除去する正常通信パターン除去部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、マルウェアの誤検知を低減し、かつ、効率的なマルウェア検知を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、悪性通信パターン抽出装置の構成を示す図である。
【図２】図２は、図１の悪性通信パターン抽出装置で扱うトラヒックのログの一例を示す図である。
【図３】図３は、ユニークトラヒックの抽出の一例を示す図である。
【図４】図４は、通信パターンのワイルドカード化の一例を示す図である。
【図５】図５は、マルウェアの通信パターンのクラスタリングの一例を示す図である。
【図６】図６は、悪性通信パターンの抽出の一例を示す図である。
【図７】図７は、悪性通信パターン抽出装置の処理手順を示すフローチャートである。
【図８】図８は、図７のＳ１およびＳ２の処理の詳細を示すフローチャートである。
【図９】図９は、図７のＳ３の処理の詳細を示すフローチャートである。
【図１０】図１０は、図７のＳ４の処理の詳細を示すフローチャートである。
【図１１】図１１は、図７のＳ４の処理の詳細を示すフローチャートである。
【図１２】図１２は、図７のＳ５の処理の詳細を示すフローチャートである。
【図１３】図１３は、図７のＳ６の処理の詳細を示すフローチャートである。
【図１４】図１４は、図８のＳ１５の処理の詳細を示すフローチャートである。
【図１５】図１５は、ユニークトラヒックの最頻値、出現数、種類数のカウント結果と、このカウント結果に基づく最頻値ログと残留ログとの分離の一例とを示す図である。
【図１６】図１６は、類似度の計算に用いられる悪性通信パターンの一例を示す図である。
【図１７】図１７は、類似度の計算に用いられる悪性通信パターンの一例を示す図である。
【図１８】図１８は、適合率の計算に用いられるトレーニング用トラヒックおよび悪性通信パターンの一例を示す図である。
【図１９】図１９は、悪性通信パターン抽出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。まず、図１を用いて本実施形態の悪性通信パターン抽出装置１０の構成を説明する。なお、本発明は本実施形態に限定されない。
【００１１】
悪性通信パターン抽出装置１０は、入出力部１１、記憶部１２、制御部１３を備える。入出力部１１は、例えば、悪性通信パターンの抽出対象となるマルウェアのトラヒックや、異常トラヒックの検知対象のトラヒック等の入力を受け付けたり、制御部１３による異常トラヒックの検知結果を出力したりする。なお、以下、悪性通信パターン抽出装置１０に入力されるトラヒックは、過去のトラヒックのログである場合を例に説明するが、これに限定されない。
【００１２】
入出力部１１へ入力されるマルウェアのトラヒックのログの一例を図２に示す。例えば、トラヒックのログは、図２に示すように、当該トラヒックを発生させているマルウェアのマルウェア識別子、当該トラヒックのプロトコル、宛先ポート番号、宛先ＩＰアドレス、宛先組織、送信元ポート番号、送信バイト数等の情報からなる。なお、宛先組織は、トラヒックには含まれていない可能性があるが、例えば、トラヒックの宛先ＩＰアドレスとMaxMind社のGeoIP（登録商標）とにより特定可能である。トラヒックのログは、上記の情報の他に、トラヒックの宛先の国名、ＡＳ（Autonomous  System）番号、ＩＰ  Prefix、アプリケーション名、トラヒックに含まれるフローの数等の情報を含んでいてもよい。宛先の国名は、宛先ＩＰアドレスとMaxMind社のGeoIP（登録商標）とにより特定可能である。またＡＳ番号やＩＰ  Prefixは宛先ＩＰアドレスと経路表から特定可能である。アプリケーション名は、宛先ポート番号から特定可能である。
【００１３】
記憶部１２は、フィールド情報や悪性通信パターンを記憶する。フィールド情報は、制御部１３において、通信パターンの抽出対象とするトラヒックのフィールド（例えば、プロトコル、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、送信バイト数等）を示した情報である。例えば、制御部１３は、このフィールド情報を参照し、入力されたトラヒックのログから、プロトコル、宛先ポート番号、宛先ＩＰアドレス、送信元ポート番号、送信バイト数のフィールドの値を通信パターンとして抽出する。悪性通信パターンは、制御部１３が異常トラヒックの検知に用いる通信パターンであり、例えば、図６に示すように１以上の通信パターンを含む。例えば、図６に示す悪性通信パターン識別子＝S1の悪性通信パターンは、符号６０１に示す３つの通信パターンを含み、悪性通信パターン識別子＝S2の悪性通信パターンは、符号６０２に示す４つの通信パターンを含む。この悪性通信パターンは、制御部１３がマルウェアのトラヒックから抽出する。
【００１４】
制御部１３は、悪性通信パターン抽出装置１０全体の制御を司り、トラヒック入力受付部１３１と、通信パターン抽出部１３２と、クラスタリング部１３３と、クラスタ別通信パターン抽出部１３４と、正常通信パターン除去部１３５と、検知部１３６とを備える。
【００１５】
トラヒック入力受付部１３１は、トラヒックのログ（図２参照）の入力を受け付ける。
【００１６】
通信パターン抽出部１３２は、入力されたトラヒックのログから通信パターンを抽出する。具体的には、まず、通信パターン抽出部１３２は、入力されたトラヒックのログのうち、所定のフィールドの値が同じトラヒックをまとめる。つまり、ユニークトラヒックを抽出する。例えば、通信パターン抽出部１３２は、図３の符号３０１に示すトラヒックから、マルウェア識別子、プロトコル、宛先ポート番号、宛先組織および宛先ＩＰアドレスの値が同じトラヒックをまとめ、符号３０２に示すトラヒックをユニークトラヒックとして抽出する。なお、マルウェア識別子、トラヒックのプロトコル、宛先ポート番号、宛先組織、宛先ＩＰアドレス以外のフィールド（送信元ポート番号、送信バイト数）の値は、値のセットとして記述する。また、ユニークトラヒックとしてまとめたトラヒックの数の合計を発生回数として記述する。
【００１７】
ここで、通信パターン抽出部１３２は、抽出したユニークトラヒックのフィールドの値に変動があるとき、当該トラヒックの部分変動があるフィールドの値を集約する。つまり、通信パターン抽出部１３２は、マルウェアのトラヒックから通信パターンを抽出するとき、雑音的な値をとるフィールドの値をワイルドカード（*）等に置き換えることにより集約する（以下、このような処理を「ワイルドカード化」と呼ぶ）。
【００１８】
例えば、通信パターン抽出部１３２は、図４に示す符号４０１に示すトラヒック群は、キー項目（例えば、マルウェア識別子、プロトコル、宛先ポート番号、宛先ＩＰアドレス、宛先組織）のうち、マルウェア識別子＝M1、プロトコル＝UDP、宛先ポート番号＝16471で共通するが、その他のフィールドの値は異なる。つまり、これらのフィールドの値には変動がある。そこで、通信パターン抽出部１３２は、符号４０１に示すトラヒック群のフィールドの値のうち、宛先ＩＰアドレス、宛先組織、送信元ポート番号をワイルドカード（*）に置き換えることにより集約し、符号４０２に示す通信パターンを抽出する。この符号４０２に示す通信パターンは、マルウェアM1のトラヒックがプロトコル＝UDP、宛先ポート番号＝16471を共通フィールドとした雑音的トラヒックを含むことを示す。このような処理を行い、通信パターン抽出部１３２は、符号４０３に示すマルウェア識別子＝M1のトラヒック群のログから、符号４０４に示す３つの通信パターンを抽出する。
【００１９】
クラスタリング部１３３は、トラヒックの通信パターンが類似するマルウェア同士を同じクラスタに分類する。例えば、通信パターン抽出部１３２により抽出された通信パターンが図５の符号５０１に示すマルウェア識別子＝M1，M2，M3のマルウェアの通信パターンである場合を考える。なお、図５において、トラヒックの送信元ポート番号、送信バイト数、発生回数の情報は記載を省略している。この場合、クラスタリング部１３３は、各マルウェアのトラヒックのプロトコル、宛先ＩＰアドレス、宛先ポート番号、宛先組織等をキー項目として、各マルウェアの通信パターン間の類似度を求め、類似度が高いマルウェア同士を同じクラスタに分類する。例えば、クラスタリング部１３３は、符号５０２に示すマルウェア識別子＝M1，M2のクラスタと、符号５０３に示すマルウェア識別子＝M3のクラスタに分類する。
【００２０】
また、クラスタリング部１３３は、マルウェアの通信パターンがワイルドカード（*）を含んでいたり、トラヒックのキー項目の値が部分一致したりする場合は、これを考慮してマルウェア間の類似度を求める。この場合の類似度の計算方法については後記する。なお、クラスタリング部１３３は、類似度の計算にあたり、マルウェアの通信パターンの各項目の情報ではなく、トラヒックのトラヒック情報（トラヒックに含まれる全項目の情報）を用いてもよい。
【００２１】
クラスタ別通信パターン抽出部１３４は、クラスタリング部１３３により分類されたクラスタごとに、当該クラスタ内の各マルウェアのトラヒックにおける出現率が所定値以上の通信パターンを、悪性通信パターンとして抽出する。なお、クラスタ内に所定数以上のマルウェアが存在しない場合、悪性通信パターンを抽出しないようにすることも選択可能である。
【００２２】
例えば、クラスタリング部１３３によるマルウェアのクラスタリングの結果（図６参照）、マルウェア識別子＝M1，M2のマルウェアが同じクラスタ（符号５０２のクラスタ）に属している場合を考える。この場合、クラスタ別通信パターン抽出部１３４は、このクラスタ内から、マルウェア識別子＝M1，M2の両方のマルウェアのトラヒックにおける出現率が所定値以上の通信パターンを抽出する。
【００２３】
例えば、マルウェア識別子＝M1，M2の両方のマルウェアのトラヒックに出現する３つの通信パターンを抽出する。つまり、図６の符号５０２に示すクラスタ内の通信パターンのうち、（１）プロトコル＝UDP、宛先ポート番号＝53、宛先ＩＰアドレス＝192.0.2.0、宛先組織＝Aという通信パターンと、（２）プロトコル＝TCP、宛先ポート番号＝80、宛先ＩＰアドレス＝192.0.2.1、宛先組織＝Bという通信パターンと、（３）プロトコル＝UDP、宛先ポート番号＝16471、宛先ＩＰアドレス＝*、宛先組織＝*という３つの通信パターンは、それぞれマルウェア識別子＝M1，M2の両方のトラヒックに１以上出現しているので、クラスタ別通信パターン抽出部１３４は、これらの通信パターンを、悪性通信パターン（悪性通信パターン識別子＝S1の通信パターン群）として抽出する。
【００２４】
一方、プロトコル＝TCP、宛先ポート番号＝80、宛先ＩＰアドレス＝203.0.113.0、宛先組織＝Aという通信パターンはマルウェア識別子＝M1のトラヒックのみにしか出現しないので、悪性通信パターンとして抽出しない。なお、符号５０３に示すクラスタ内には、マルウェア識別子＝M3の通信パターンしかないので、この通信パターンをそのまま、悪性通信パターン（悪性通信パターン識別子＝S2の通信パターン群）として抽出する。
【００２５】
正常通信パターン除去部１３５は、クラスタ別通信パターン抽出部１３４が抽出した悪性通信パターンに、マルウェアに感染していないトラヒック群との適合率が所定値以上の悪性通信パターンがあればこれを除去する。つまり、正常通信パターン除去部１３５は、抽出した悪性通信パターンが正常通信にも登場する度合いが高ければ、当該悪性通信パターンとして出力しない。例えば、正常通信パターン除去部１３５は、クラスタ別通信パターン抽出部１３４が抽出した悪性通信パターン識別子＝S1,S2の悪性通信パターン（図６参照）のうち、マルウェアに感染していないトラヒック群との適合率が０．７５以上の悪性通信パターンを除去して、記憶部１２へ出力する。
【００２６】
検知部１３６は、検知対象のトラヒック群に対し、悪性通信パターンとのマッチング処理を行い、この悪性通信パターンとの適合率が所定値以上のトラヒックを異常トラヒックとして検知する。例えば、検知部１３６は、検知対象のトラヒック群に対し、記憶部１２に記憶された悪性通信パターン（図６の符号６０１，６０２参照）とのマッチング処理を行い、いずれかの悪性通信パターンについて適合（マッチ）する通信パターンの数の割合が所定値以上のトラヒックがあったとき、当該トラヒックを異常トラヒックとして検知する。そして、検知部１３６は、入出力部１１経由で異常トラヒックの検知結果を出力する。
【００２７】
なお、正常通信パターン除去部１３５および検知部１３６は悪性通信パターン抽出装置１０内の構成として説明したがこれに限定されない。例えば、正常通信パターン除去部１３５および検知部１３６の機能を悪性通信パターン抽出装置１０外の装置により実現してもよい。
【００２８】
（処理手順）
次に、悪性通信パターン抽出装置１０の処理手順を説明する。まず、図７を用いて悪性通信パターン抽出装置１０の処理の概要を説明する。
【００２９】
悪性通信パターン抽出装置１０のトラヒック入力受付部１３１は、マルウェアのトラヒック（トラヒックのログ）の入力を受け付ける（Ｓ１）。そして、通信パターン抽出部１３２は、入力されたトラヒックから通信パターンを抽出し（Ｓ２）、クラスタリング部１３３はＳ１で抽出された通信パターンのうち、類似する通信パターンを持つマルウェア同士を同じクラスタに分ける（Ｓ３）。次に、クラスタ別通信パターン抽出部１３４は、クラスタごとに当該クラスタ内の各マルウェアのトラヒックにおける出現率が所定値以上の通信パターンを、悪性通信パターンとして抽出する（Ｓ４）。その後、正常通信パターン除去部１３５は、Ｓ４で抽出された悪性通信パターンから、マルウェアに感染していないトラヒック群との適合率が所定の閾値以上の悪性通信パターンを除去する（Ｓ５）。その後、検知部１３６は、Ｓ１〜Ｓ５の処理により得られた悪性通信パターンによる異常トラヒックの検知を行う（Ｓ６）。つまり、検知部１３６は、検知対象のトラヒックに対し、Ｓ１〜Ｓ５の処理により得られた悪性通信パターンとのマッチングを行い、適合率が所定値以上のトラヒックを異常トラヒックとして検知する。
【００３０】
次に、図８を用いて、図７のＳ１およびＳ２の処理を詳細に説明する。まず、トラヒック入力受付部１３１は、マルウェアのトラヒック（トラヒックのログ）の入力を受け付ける（Ｓ１１）。例えば、様々な種類のマルウェアのトラヒックのログの入力を受け付ける。そして、通信パターン抽出部１３２は、当該入力されたトラヒックの情報抽出項目の選択を受け付ける（Ｓ１２）。例えば、通信パターン抽出部１３２は、当該トラヒックの情報抽出項目（フィールド）として、プロトコル、宛先ポート番号、宛先ＩＰアドレス、宛先組織、送信元ポート番号、送信バイト数等の選択を受け付ける。また、通信パターン抽出部１３２は、マルウェアのトラヒックの項目のうちワイルドカード化するキー項目の選択を受け付ける（Ｓ１３）。例えば、通信パターン抽出部１３２は、ワイルドカード化するキー項目として、プロトコル、宛先ポート番号、宛先ＩＰアドレス、宛先組織等の選択を受け付ける。
【００３１】
その後、通信パターン抽出部１３２は、入力されたトラヒックから、Ｓ１２で選択された項目（フィールド）の値を抽出し、抽出した値をもとにユニークトラヒックの抽出を行う（Ｓ１４）。例えば、通信パターン抽出部１３２は、Ｓ１２で選択された項目のうち、プロトコル、宛先ポート番号、宛先ＩＰアドレス、宛先組織の値の組み合わせがユニークとなるようなトラヒックを抽出する。例えば、通信パターン抽出部１３２は、図３の符号３０１に示すトラヒック群のうち、マルウェア識別子、プロトコル、宛先ポート番号、宛先ＩＰアドレス、宛先組織が同じトラヒックをまとめ、符号３０２に示すユニークトラヒックを抽出する。
【００３２】
次に、通信パターン抽出部１３２は、Ｓ１４で抽出したユニークトラヒックのうち、Ｓ１３で選択されたキー項目の値について所定の変動があればワイルドカード（*）に置き換える（Ｓ１５：ワイルドカード化の処理）。例えば、通信パターン抽出部１３２は、図４の符号４０１に示すトラヒック群に宛先ＩＰアドレス、宛先組織、送信元ポート番号の値について所定の変動があれば、この変動がある項目の値をワイルドカード（*）に置き換え、符号４０２に示す通信パターンにまとめる。そして、通信パターン抽出部１３２は、Ｓ１５までの処理で抽出された通信パターンを出力する（Ｓ１６）。例えば、通信パターン抽出部１３２は、符号４０２に示すワイルドカード化された通信パターンを含む、符号４０４に示す通信パターン群を出力する。
【００３３】
次に、図９を用いて、図７のＳ３の処理を詳細に説明する。まず、クラスタリング部１３３は、通信パターン抽出部１３２により抽出された各マルウェアの通信パターンの入力を受け付ける（Ｓ２１）。例えば、図５の符号５０１に示す通信パターン群の入力を受け付ける。次に、クラスタリング部１３３はクラスタリングに使用するキー項目の選択を受け付ける（Ｓ２２）。例えば、クラスタリング部１３３は、キー項目として、プロトコル、宛先ＩＰアドレス、宛先ポート番号、宛先組織、発生回数の選択入力を受け付ける。
【００３４】
次に、クラスタリング部１３３は、Ｓ２１で入力された各マルウェアの通信パターン間の類似度をＳ２２で選択されたキー項目の値をもとに計算する（Ｓ２３）。
【００３５】
そして、クラスタリング部１３３は、Ｓ２３で計算された各マルウェアの通信パターン間の類似度の高さに基づき各マルウェアの通信パターンのクラスタリングを実行し（Ｓ２４）、クラスタリングの結果を出力する（Ｓ２５）。つまり、クラスタリング部１３３は、Ｓ２３で計算された各マルウェアの通信パターンの類似度の高いもの同士を同じクラスタに分ける。例えば、クラスタリング部１３３は、図５の符号５０１に示す各マルウェアの通信パターンについて類似度に基づき、符号５０２に示すクラスタと、符号５０３に示すクラスタとに分ける。そして、そのクラスタリングの結果を出力する。
【００３６】
なお、クラスタリング部１３３は、クラスタリングの対象となるマルウェアの通信パターンがワイルドカード（*）を含む場合には、これを考慮して類似度の計算を行うものとする。この場合の類似度の計算の詳細は後記する。
【００３７】
次に、図１０および図１１を用いて、図７のＳ４の処理を詳細に説明する。まず、クラスタ別通信パターン抽出部１３４は、クラスタリング部１３３によるクラスタリングの結果の入力を受け付けると（図１０のＳ３１）、クラスタごとに通信パターンを抽出し（Ｓ３２）、クラスタ内で重複する通信パターンを除去し（Ｓ３３）、各クラスタの通信パターンを出力する（Ｓ３４）。
【００３８】
図１０のＳ３４の後、クラスタ別通信パターン抽出部１３４は、あるクラスタにおける各マルウェアの通信パターンの入力を受け付けると（図１１のＳ４１）、当該クラスタの各マルウェアにおける通信パターンごとの出現率を計算する（Ｓ４２）。例えば、あるクラスタにマルウェアが１０個含まれ、当該クラスタに含まれる通信パターンが通信パターンＡ，Ｂ，Ｃである場合を考える。この場合、この通信パターンＡ，Ｂ，Ｃそれぞれについて当該クラスタ内の何個のマルウェアに出現するかを計算する。例えば、上記の通信パターンＡが当該クラスタ内の９個のマルウェアに出現する場合、通信パターンＡの出現率は９／１０＝０．９となる。クラスタ別通信パターン抽出部１３４は、このような計算を通信パターンＢ，Ｃについても行い、各通信パターンの出現率を計算する。
【００３９】
次に、クラスタ別通信パターン抽出部１３４は、当該クラスタに出現率が所定の閾値以上の通信パターンが存在するか否かを判断し（Ｓ４３）、出現率が所定の閾値以上の通信パターンがあれば（Ｓ４３でＹｅｓ）、当該通信パターンを悪性通信パターンとして出力する（Ｓ４５）。一方、当該クラスタに出現率が所定の閾値以上の通信パターンが存在しなければ（Ｓ４３でＮｏ）、クラスタ別通信パターン抽出部１３４は、当該クラスタの通信パターンを対象にワイルドカード化の処理を実施し（Ｓ４４）、ワイルドカード化された通信パターンを含む通信パターンを悪性通信パターンとして出力する（Ｓ４５）。
【００４０】
次に、図１２を用いて、図７のＳ５の処理を詳細に説明する。まず、正常通信パターン除去部１３５は、トレーニング用トラヒックと、クラスタ別通信パターン抽出部１３４で抽出した悪性通信パターンの入力を受け付ける（Ｓ５１）。トレーニング用トラヒックには、例えば、マルウェアに感染していないことが確認されているトラヒックを用いる。
【００４１】
次に、正常通信パターン除去部１３５は、トレーニング用トラヒックに対して、悪性通信パターンとの適合率を計算する（Ｓ５２）。ここでの適合率は、トレーニング用トラヒックにおける条件成立パターン数を、悪性通信パターンに含まれる通信パターンの数で除算することにより得られる。例えば、図６に示す悪性通信パターン識別子＝S2の通信パターン（符号６０２に示す４個の通信パターン）のうち、トレーニング用トラヒックが３個の通信パターンにマッチするとき、条件成立パターン数は「３」、悪性通信パターンに含まれる通信パターンの数は「４」なので、適合率は３／４＝０．７５となる。正常通信パターン除去部１３５は、このようなトレーニング用トラヒックに対する悪性通信パターンの適合率の計算を、各悪性通信パターンについて行う。なお、トレーニング用トラヒックが悪性通信パターンに含まれる通信パターンの一部とマッチするときは、これを考慮して適合率を計算する。例えば、トレーニング用トラヒックが２個の通信パターンに完全一致するが、１個の通信パターンについては半分の項目が一致する場合、条件成立パターン数は「２．５」とする。
【００４２】
次に、正常通信パターン除去部１３５は、Ｓ５２で計算した適合率が所定の閾値以上の悪性通信パターンがあれば（Ｓ５３でＹｅｓ）、Ｓ５１で入力された悪性通信パターンから当該悪性通信パターンを削除し（Ｓ５４）、当該悪性通信パターンを削除した悪性通信パターンを出力する（Ｓ５５）。例えば、Ｓ５２で計算した適合率の閾値が０．５であり、Ｓ５２で計算した悪性通信パターン識別子＝S2の悪性通信パターンの適合率が０．７５である場合、正常通信パターン除去部１３５は、悪性通信パターン識別子＝S2の悪性通信パターンを削除する。一方、Ｓ５２で計算した悪性通信パターンとの適合率が所定の閾値以上のものがなければ（Ｓ５３でＮｏ）、Ｓ５１で入力された悪性通信パターンをそのまま出力する（Ｓ５５）。
【００４３】
なお、正常通信パターン除去部１３５は、Ｓ５２において、悪性通信パターンがワイルドカード化された通信パターンを含む場合、これを考慮して上記の適合率を計算するものとする。この場合の適合率の計算の詳細については後記する。
【００４４】
次に、図１３を用いて、図７のＳ６を詳細に説明する。まず、検知部１３６は、検知対象のトラヒックと、悪性通信パターン（図７のＳ１〜Ｓ５の処理により得られた悪性通信パターン）との入力を受け付ける（Ｓ６１）。
【００４５】
次に、検知部１３６は、検知対象のトラヒックに対して、悪性通信パターンとの適合率を計算する（Ｓ６２）。ここでの適合率は、図１２のＳ５２と同様に、検知対象のトラヒックにおける条件成立パターン数を、悪性通信パターンに含まれる通信パターンの数で除算することにより得られる。
【００４６】
次に、検知部１３６は、Ｓ６２で計算した悪性通信パターンとの適合率が所定の閾値以上のトラヒックがあれば（Ｓ６３でＹｅｓ）、当該トラヒックを「異常トラヒック」として検知し（Ｓ６５）、検知結果を出力する。一方、Ｓ６２で計算した悪性通信パターンとの適合率が所定の閾値以上のトラヒックがなければ（Ｓ６３でＮｏ）、異常トラヒックの検知なしと判断し（Ｓ６４）、その検知結果を出力する。なお、検知部１３６は、悪性通信パターンがワイルドカード化された通信パターンを含むとき、前記した図１２のＳ５２と同様に、これを考慮して上記の適合率を計算するものとする。
【００４７】
また、検知部１３６はＳ６５において異常トラヒックとして検知したトラヒックについて、当該トラヒックの送信元ＩＰアドレスをマルウェアに感染した端末として検知するようにしてもよい。
【００４８】
以上説明した悪性通信パターン抽出装置１０によればマルウェアの検知に用いる通信パターンの数を低減し、かつ、マルウェアの検知を精度よく行うことができる。
【００４９】
（ワイルドカード化の処理）
次に、図１４を用いて、図８のＳ１５における通信パターンのワイルドカード化の処理を詳細に説明する。雑音検知閾値は、悪性通信パターン抽出装置１０の管理者等が適宜設定可能な値であり、ここでは例えば、「３」とする。まず、通信パターン抽出部１３２は、図８のＳ１４で抽出したユニークトラヒックの通信パターンの入力を受け付けると(Ｓ７１)、通信パターンの要素数（通信パターンの数）が雑音検知閾値未満か否かを判断し(Ｓ７２)、通信パターンの要素数（通信パターンの数）が雑音検知閾値未満であれば（Ｓ７２でＹｅｓ)、そのユニークトラヒックの通信パターンをそのまま出力して処理を終了する。
【００５０】
一方、通信パターンの要素数（通信パターンの数）が雑音検知閾値以上であれば(Ｓ７２でＮｏ)、通信パターン抽出部１３２は対象となるユニークトラヒックのキー項目（例えば、プロトコル、宛先ポート番号、宛先ＩＰアドレス、宛先組織）ごとに最頻値、出現数、種類数をカウントする（Ｓ７３）。最頻値はキー項目のなかで最も出現頻度の高い値であり、出現数は最頻値の出現回数であり、種類数はキー項目の種類数である。例えば、図１５に示すユニークトラヒックのプロトコルの項目についてみると、プロトコルの種類は「２」であり、最頻値は「ＵＤＰ」であり、出現数は「４」である。通信パターン抽出部１３２はこのようなカウントを各キー項目について行う。
【００５１】
次に、通信パターン抽出部１３２は、種類数＝１のキー項目を除く全てのキー項目の種類数が、雑音検知閾値を超えているか否かを判断する(Ｓ７４)。そして、種類数＝１のキー項目を除く全てのキー項目の種類数が、雑音検知閾値を超えていれば（Ｓ７４でＹｅｓ)、通信パターン抽出部１３２は、種類数＝１のキー項目の値は全てそのままとし、それ以外のキー項目の値はワイルドカード（*）を使用し、１つの通信パターンに集約する（Ｓ７５）。なお、非キー項目の値は、例えば、適当なデリミタ等で結合する。そして、ワイルドカード化の処理を終了する。
【００５２】
一方、種類数＝１のキー項目以外のキー項目に種類数が雑音検知閾値以下のキー項目があれば（Ｓ７４でＮｏ）、通信パターン抽出部１３２は、出現数が最大のキー項目（最頻値キー項目）を選択する（Ｓ７６）。例えば、図１５に示すユニークトラヒックの通信パターンには雑音検知閾値（例えば、「３」）を超えていないキー項目があるので、出現数が最大（「４」）のキー項目である「プロトコル」を選択する。
【００５３】
そして、通信パターン抽出部１３２は、最頻値キー項目（例えば、「プロトコル」）の値が最頻値（例えば、「ＵＤＰ」）である通信パターン群（最頻値ログ）と、それ以外の通信パターン群（残留ログ）とに分離する（Ｓ７７）。例えば、通信パターン抽出部１３２は、図１５に示すように、プロトコル＝ＵＤＰである通信パターン群を最頻値ログ、それ以外の通信パターン群を残留ログとして分離する。
【００５４】
次に、通信パターン抽出部１３２は、Ｓ７７で分離した最頻値ログ（図１５参照）に対してワイルドカード化処理を再帰的に実施する（Ｓ７８）。つまり、最頻値ログ（図１５参照）に対して、前記したＳ７２以降の処理と同様の処理を再度実施する。また、通信パターン抽出部１３２は、Ｓ７７で分離した残留ログ（図１５参照）に対してワイルドカード化処理を再帰的に実施する（Ｓ７９）。つまり、残留ログ（図１５参照）に対して前記したＳ７２以降の処理と同様の処理を再度実施する。そして、通信パターン抽出部１３２は、分離したログの要素数が所定の雑音検知閾値未満となった段階で、ワイルドカード化処理を終了し、処理の過程で分離したそれぞれのログを合体させて出力する。
【００５５】
このようにすることで、通信パターン抽出部１３２は、キー項目の値に所定の変動がある通信パターンを集約することができる。
【００５６】
（通信パターンが部分一致またはワイルドカード（*）を含む場合の類似度の計算方法）
次に、クラスタリング部１３３による各マルウェア間の類似度の計算において、当該マルウェアの通信パターンが部分一致またはワイルドカード（*）を含む場合の類似度の計算方法を説明する。ここでの類似度は、ジャッカルド係数を応用した以下の式（１）により計算される。以下のマルウェア１，２はそれぞれ、類似度計算の対象となるマルウェアを示す。
【００５７】
類似度＝（マルウェア１の通信パターンとマルウェア２の通信パターンそれぞれのマッチ率の合計）／｛（マルウェア１の通信パターンの数）＋（マルウェア２の通信パターンの数）−（マルウェア１の通信パターンとマルウェア２の通信パターンそれぞれのマッチ率の合計）｝…式（１）
【００５８】
なお、ワイルドカード化された通信パターンのマッチ率は、ワイルドカード化された通信パターン同士が完全一致した場合、マッチ率＝所定の雑音検知閾値であり、ワイルドカード化された通信パターンと一致するものがなかった場合、マッチ率＝０とする。また、ワイルドカード化された通信パターンに部分一致する場合は、マッチ率は０とする。
【００５９】
また、ワイルドカード化されていない通信パターンのマッチ率は、以下の式（４）のように定義される。
【００６０】
マッチ率＝（一致した通信パターンのキー項目の数）／（通信パターンのキー項目の合計）…式（４）
【００６１】
また、各マルウェアの通信パターンがワイルドカード化された通信パターンを含む場合は、当該通信パターンの数については「雑音検知閾値」に置き換えて加算する。
【００６２】
図１６および図１７を用いて類似度の計算例を示す。ここでは、まず図１６に示すマルウェア識別子＝M1のマルウェアの通信パターンと、マルウェア識別子＝M2の通信パターンとを用いて、通信パターンが部分一致する場合の類似度の計算例を説明する。
【００６３】
図１６の個別識別子＝M1-aの通信パターンと個別識別子＝M2-aの通信パターンはキー項目が部分一致し、個別識別子＝M1-bの通信パターンと個別識別子＝M2-bの通信パターンはキー項目が完全一致している。個別識別子＝M1-dの通信パターンと一致するキー項目はマルウェア識別子＝M2のマルウェアの通信パターンには存在しない。ここで個別識別子＝M1-aの通信パターンと個別識別子＝M2-aの通信パターンとのマッチ率は、式（４）に基づき、３／４＝０．７５、個別識別子＝M1-bの通信パターンと個別識別子＝M2-bの通信パターンとのマッチ率は４／４＝１．０と計算できる。よって、式（１）に基づき、類似度＝（０．７５＋１．０）／｛（３）＋（２）−（０．７５＋１．０）｝＝０．５３８となる。
【００６４】
次に、図１７に示すマルウェア識別子＝M1のマルウェアの通信パターンと、マルウェア識別子＝M2のマルウェアの通信パターンとを用いて、通信パターンがワイルドカード（*）を含む場合の類似度の計算例を説明する。図１７の個別識別子＝M1-aの通信パターンと個別識別子＝M2-aの通信パターンはキー項目が部分一致し、個別識別子＝M1-bの通信パターンと個別識別子＝M2-bの通信パターンはキー項目が完全一致している。個別識別子＝M1-cの通信パターンと個別識別子＝M2-cの通信パターンはそれぞれワイルドカード（*）を含み、それぞれのキー項目が完全一致している。個別識別子＝M1-dの通信パターンと一致するキー項目はマルウェア識別子＝M2のマルウェアの通信パターンには存在しない。ここで個別識別子＝M1-aの通信パターンと個別識別子＝M2-aの通信パターンとのマッチ率は、上記と同様、式（４）に基づき、３／４＝０．７５と計算でき、個別識別子＝M1-bの通信パターンと個別識別子＝M2-bの通信パターンとのマッチ率は４／４＝１．０と計算できる。また、個別識別子＝M1-cの通信パターンと個別識別子＝M2-cの通信パターンはそれぞれワイルドカード（*）を含むので、雑音検知閾値＝３とするとマッチ率は３となる。よって、雑音検知閾値＝３とした場合、式（１）に基づき、類似度＝（３＋０．７５＋１．０）／｛（３＋３）＋（３＋２）−（３＋０．７５＋１．０）｝＝０．７６となる。
【００６５】
このようにすることでクラスタリング部１３３は、マルウェアの通信パターンが部分一致またはワイルドカード（*）を含む場合でもこれを考慮して類似度を計算できる。
【００６６】
（通信パターンがワイルドカード（*）を含む場合の適合率の計算方法）
次に、通信パターンがワイルドカード（*）を含む場合の適合率の計算方法を説明する。適合率は、前記したとおり条件成立パターン数を悪性通信パターンに含まれる通信パターンの数で除算することにより得られる。ここで、当該通信パターンがワイルドカード（*）を含む場合、適合率計算の対象となるトラヒックに当該通信パターンが所定の雑音検知閾値（例えば、「３」）より多くの回数出現するときに、当該通信パターンに関する条件成立と判断する。
【００６７】
例えば、正常通信パターン除去部１３５が、図１８の符号１８０に示すトレーニング用トラヒックに対し、通信パターン識別子=S1の悪性通信パターンの適合率を計算する場合について説明する。ここでの雑音検知閾値は「３」とする。図１８に示す通信パターン識別子=S1の悪性通信パターンの通信パターンのうち、個別識別子＝S1-aの通信パターンはトレーニング用トラヒックに含まれていないので、条件成立ＮＧと判断するが、個別識別子＝S1-bの通信パターンはトレーニング用トラヒックに含まれている（条件成立ＯＫ）。また、個別識別子＝S1-cの通信パターンはワイルドカード化された通信パターンであるが、当該通信パターンはトレーニング用トラヒックに雑音検知閾値（「３」）より多くの回数出現するので、条件成立ＯＫと判断する。よって正常通信パターン除去部１３５は、適合率を２／３＝０．６６と計算する。
【００６８】
また、検知部１３６も検知対象のトラヒックに対し、上記と同様の計算方法により悪性通信パターンの適合率を計算する。
【００６９】
このようにすることで、正常通信パターン除去部１３５および検知部１３６は、悪性通信パターンにワイルドカード化された通信パターンが含まれるときも、これを考慮して適合率を計算することができる。
【００７０】
（プログラム）
また、上記実施形態に係る悪性通信パターン抽出装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成し、実行することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、悪性通信パターン抽出装置１０と同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。
【００７１】
図１９は、悪性通信パターン抽出プログラムを実行するコンピュータを示す図である。図１９に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００７２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００７３】
ここで、図１９に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００７４】
また、悪性通信パターン抽出プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明した悪性通信パターン抽出装置１０が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【００７５】
また、悪性通信パターン抽出プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００７６】
なお、悪性通信パターン抽出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。また、ネットワークインタフェース１０７０等によりリアルタイムにパケットを収集することでデータを収集してもよい。
【符号の説明】
【００７７】
１０    悪性通信パターン抽出装置
１１    入出力部
１２    記憶部
１３    制御部
１３１  トラヒック入力受付部
１３２  通信パターン抽出部
１３３  クラスタリング部
１３４  クラスタ別通信パターン抽出部
１３５  正常通信パターン除去部
１３６  検知部
【図１】
2016080232.tif 000003
【図２】
2016080232.tif 000004
【図３】
2016080232.tif 000005
【図４】
2016080232.tif 000006
【図５】
2016080232.tif 000007
【図６】
2016080232.tif 000008
【図７】
2016080232.tif 000009
【図８】
2016080232.tif 000010
【図９】
2016080232.tif 000011
【図１０】
2016080232.tif 000012
【図１１】
2016080232.tif 000013
【図１２】
2016080232.tif 000014
【図１３】
2016080232.tif 000015
【図１４】
2016080232.tif 000016
【図１５】
2016080232.tif 000017
【図１６】
2016080232.tif 000018
【図１７】
2016080232.tif 000019
【図１８】
2016080232.tif 000020
【図１９】
2016080232.tif 000021
【国際調査報告】
2016080232.tif 000022
2016080232.tif 000023
2016080232.tif 000024
2016080232.tif 000025