【文献】
熊谷 充敏,外3名,「HTTP通信を特徴とした機械学習に基づくマルウェア感染端末検知法と悪性良性混在データを用いた長期経時劣化評価」,電子情報通信学会技術研究報告 IEICE Technical Report,日本,一般社団法人電子情報通信学会,2017年 4月10日,第116巻 No.522,p.43-48
(58)【調査した分野】(Int.Cl.,DB名)
正常な通信を行う端末が発する通信ログであることを示す良性な通信ログと、マルウェアに感染した端末が発する通信ログであることを示す悪性な通信ログと、良性または悪性のいずれでもない通信ログとの形式を、全通信ログに含まれる全項目を含む形式に変換して、全通信ログを統合する統合部と、
統合された前記全通信ログの特徴量を特徴ベクトルに変換し、前記通信ログに付与されている、良性であることを示すラベルまたは悪性であることを示すラベルを数値ラベルに変換する変換部と、
前記特徴ベクトルと、前記数値ラベルが付与された通信ログと、前記数値ラベルが付与されていない通信ログとを用いて学習を行って、通信ログを良性または悪性のいずれかに分類するラベルを付与する分類器を作成する作成部と、
作成された前記分類器を用いて、未知の通信ログまたは前記作成部が用いた良性または悪性のいずれでもない通信ログを良性または悪性のいずれかに分類する分類部と、
を備えることを特徴とする分類装置。
前記分類部は、前記分類器が出力する良性または悪性の程度を示すスコアが所定の閾値より高い場合に、良性または悪性と判定することを特徴とする請求項1に記載の分類装置。
前記統合部が統合する良性な通信ログ、悪性な通信ログ、いずれでもない通信ログのそれぞれあるいは一部が、互いに異なる形式の通信ログであることを特徴とする請求項1に記載の分類装置。
前記分類部は、通信ログを発する端末ごとに、正常な通信を行う正常端末またはマルウェアに感染した感染端末のいずれかに分類することを特徴とする請求項1に記載の分類装置。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0016】
[分類装置の構成]
図1は、分類装置の概略構成を例示する模式図である。
図1に例示するように、分類装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
【0017】
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。通信制御部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介したネットワーク機器や管理サーバ等の外部の装置と制御部15との通信を制御する。
【0018】
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、後述する分類処理により作成される分類器14a等が記憶される。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
【0019】
制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、
図1に例示するように、学習データ取得部15a、統合部15b、変換部15c、作成部15d、テストデータ取得部15e、変換部15fおよび分類部15gとして機能する。
【0020】
なお、これらの機能部は、それぞれ、あるいは一部が異なるハードウェアに実装されてもよい。例えば、分類装置10を、学習データ取得部15a、統合部15b、変換部15c、および作成部15dを実装した作成装置と、テストデータ取得部15e、変換部15fおよび分類部15gを実装した判定装置とに分離してもよい。
【0021】
学習データ取得部15aは、Proxyサーバ等のネットワーク機器や管理サーバ等から、後述する分類器14aの学習に用いる学習用データを取得する。ここで、学習用データは、良性挙動データ、悪性挙動データ、および判定なしデータを含む。良性挙動データとは、良性な通信ログ、すなわち正常な通信を行う端末が発する通信ログを意味する。悪性挙動データとは、悪性な通信ログ、すなわちマルウェアに感染した端末が発する通信ログを意味する。判定なしデータとは、良性挙動データまたは悪性挙動データのいずれでもなく、良性または悪性のいずれでもない通信ログを意味する。
【0022】
なお、良性挙動データ/悪性挙動データ/判定なしデータの取得方法は特に限定されない。例えば、良性挙動データは、マルウェアに感染していないことが明らかな実網内の端末から取得できる。また、悪性挙動データは、既知のマルウェアの検体を仮想環境下で動作させる動的解析により取得できる。あるいは、悪性挙動データは、既知のブラックリストを活用して取得できる。
【0023】
また、判定なしデータには、良性挙動データ/悪性挙動データの両者が混在している可能性がある実網のログを用いればよい。新種のマルウェアを検知可能とするために、判定なしデータには、新種のマルウェアを含みうる通信ログ、あるいは新種のマルウェアと類似点がある通信ログが含まれることが望ましい。ただし、両者が混在しないログを用いてもよい。
【0024】
また、通信ログとしては、例えば、Proxyログ、xFlow、Firewallログ等の様々な形式の通信ログが用いられる。ここで、Proxyログは、Proxyサーバから取得される通信ログであり、送信元IPアドレス、HTTPメソッド、URL、UserAgent等の情報を含む。
【0025】
また、xFlow(NetFlow)は、ネットワークのフロー情報である。xFlwowは、業界のフロー計測の標準として、多くのベンダーのネットワーク機器でサポートされている。xFlowは、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、プロトコル等を含む。xFlowは、Proxyログ等に比較して情報量が少ないため、ISP相当の大規模なネットワークから取得することも可能だが、詳細な分析ができない。
【0026】
また、Firewallログは、Firewallから取得される通信ログであり、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、プロトコル、日時、パケットサイズ等の情報を含む。
【0027】
良性挙動データ、悪性挙動データ、判定なしデータのそれぞれあるいは一部は、互いに異なる形式の通信ログでもよい。ラベル付与の手間を削減しつつ、様々な環境に対応した分類器を得るために、例えば、良性挙動データおよび悪性挙動データには、詳細な情報を含むProxyログ等の通信ログを用い、判定なしデータには、ラベルは付いていないが広域の情報を含むxFlow等の通信ログを用いることが望ましい。なお、良性挙動データ、悪性挙動データ、判定なしデータの全てが同一の形式のProxyログ等の詳細な情報を含む通信ログでもよい。本実施形態では、良性挙動データおよび悪性挙動データとしてProxyログを用い、判定なしデータとしてxFlowを用いる。
【0028】
図2および
図3は、学習用データのデータ構成を例示する図である。
図2には、Proxyログを用いた良性挙動データまたは悪性挙動データが例示されている。
図2には、Log1〜Log3の3つの良性挙動データと、Log4の1つの悪性挙動データとが例示されている。また、
図2に示す学習用データには、取得されたProxyログに良性または悪性を示すラベルが付与されている。例えば、Log4の悪性挙動データは、「悪性」ラベルが付与され、送信元IPアドレスが「30.30.30.30」、HTTPメソッドが「GET」、URLが「http://malware.co.jp/」、HTTP User Agentが「<wellknown>」であること等が示されている。
【0029】
また、
図3には、xFlowを用いた判定なしデータが例示されている。
図3には、例えば、LogAの判定なしデータは、送信元IPアドレスが「20.20.20.20」、宛先IPアドレスが「4.4.4.4」、宛先ポート番号が「80」、プロトコルが「TCP」であること等が示されている。
【0030】
統合部15bは、正常な通信を行う端末が発する通信ログであることを示す良性な通信ログと、マルウェアに感染した端末が発する通信ログであることを示す悪性な通信ログと、良性または悪性のいずれでもない通信ログとの形式を、全通信ログに含まれる全項目を含む形式に変換して、全通信ログを統合する。具体的には、統合部15bは、良性挙動データと、悪性挙動データと、判定なしデータとの各データに含まれる項目を結合することにより、全学習用データの形式を統一化して全学習用データを統合する。
【0031】
図4は、統合された学習用データを例示する図である。
図4に示すように、統合部15bは、良性挙動データ、悪性挙動データ、および判定なしデータに含まれる全項目を結合する。
図4に示す例では、各データに該当する値が含まれない項目は「−」で示されている。例えば、LogAは、xFlowを用いた判定なしデータであり、URL、HTTPメソッド、HTTP User Agent、HTTP Status Codeおよびラベルに該当する値が存在しないため、各項目の値が「−」で示されている。
【0032】
図1の説明に戻る。変換部15cは、統合された学習用データを、後述する作成部15dの処理に用いるための準備として、統合された学習用データの特徴量を抽出し、特徴ベクトルへ変換する。まず、変換部15cは、統合された学習用データから、学習の着眼点の組み合わせである特徴量を抽出する。なお、特徴量の抽出の手法は特に限定されない。人手によってもよいし、ディープラーニング等のように自動的に特徴を抽出して機械学習を行う手法を適用してもよい。
【0033】
ここで、機械学習とは、抽出された特徴量のパターンを学習し、目的の分類を行うモデルを作成することである。本実施形態の分類装置10においては、良性/悪性を分類するため、例えば、URLのホスト名、宛先ポート番号、パスの長さ、ドメイン名がIPアドレスか否か、Country Code、通信時間間隔等が特徴量として抽出される。
【0034】
次に、変換部15cは、抽出した特徴量を特徴ベクトルに変換する。具体的には、変換部15cは、Bag−of−WordsやN−gram等の手法を用いて、特徴量を特徴ベクトルに変換する。本実施形態では、変換部15cが、Bag−of−Wordsの手法を用いて、各特徴量において存在する全てのパターンを1つの要素とみなし、各要素が通信ログに出現したかどうかを0/1で表すことにより、特徴量を特徴ベクトルに変換する。
【0035】
ここで、
図5〜
図7は、変換部15cの処理を説明するための説明図である。
図5は、
図4に例示した学習用データから抽出された特徴量を例示している。
図5に示す例では、特徴量として、送信元IPアドレス、宛先IPアドレス、宛先ポート番号、ドメイン名、およびドメイン名内の数字の数等が抽出されている。
【0036】
また、
図6は、特徴量から変換された特徴ベクトルの各要素を例示している。
図6に示す例では、
図5に例示した特徴量のうち、例えば、宛先IPアドレスについて、存在する6つのパターン「1.1.1.1」〜「6.6.6.6」のそれぞれを特徴ベクトルの1つの要素とみなしている。そして、各通信ログに各要素が出現した場合を1、出現していない場合を0で表している。同様に、宛先ポート番号の存在する3つのパターン「80」「2323」「8080」のそれぞれを特徴ベクトルの1つの要素とみなし、各通信ログに出現した要素を1、出現していない場合を0で表している。このように、変換部15cは、該当するデータがない特徴量を0とする。これにより、該当するデータがない特徴量は、特徴量やその組み合わせに対して重み付けして行う分類に影響を及ぼさない。
【0037】
また、変換部15cは、学習用データの良性または悪性を示すラベルを数値ラベルに変換する。例えば、良性を示すラベルを0、悪性を示すラベルを1として、ラベルを数値化して表す。
図7は、特徴量から変換された特徴ベクトルおよびラベルから変換された数値ラベルを例示している。
図7において、例えば、Log1の特徴ベクトルについて、宛先IPアドレスが「1.1.1.1」に対応する要素に1が割り当てられている。また、このLog1において、ラベルが良性を示す0とされている。なお、
図7において、ラベルが付与されていない判定なしデータについては、ラベルは「−」で表されている。
【0038】
図1の説明に戻る。作成部15dは、統合された全通信ログを用いて学習を行って、通信ログを良性または悪性のいずれかに分類する分類器14aを作成する。具体的には、作成部15dは、良性であることを示すラベルまたは悪性であることを示すラベルのいずれかが付与された通信ログと、ラベルが付与されていない通信ログとを用いて、分類器14aによるラベルの付与を学習する。
【0039】
すなわち、作成部15dは、変換部15cが変換した特徴ベクトルおよび数値ラベルを用いて半教師あり学習を行って、通信ログの良性または悪性の程度を示すモデルを分類器14aとして作成する。また、作成部15dは、作成した分類器14aを記憶部14に格納する。
【0040】
ここで、半教師あり学習のアルゴリズムは特に限定されない。例えば、TSVM(Transductive Support Vector Machine)、半教師Logistic Regression、Label Propagation、半教師GMM(Gaussian Mixture Model)、Self−training等が適用される。
【0041】
テストデータ取得部15eは、学習データ取得部15aと同様に、Proxyサーバ等のネットワーク機器や管理サーバ等から、後述する分類部15gの処理対象となるテスト用データを取得する。テスト用データには、良性な通信ログか悪性な通信ログかを判定したい通信ログを用いる。ここで用いる通信ログは、良性挙動データ、悪性挙動データ、および判定なしデータと同一の形式の通信ログを用いてもよいし、異なる形式の通信ログを用いてもよい。なお、判定なしデータと全く同じ通信ログをテスト用データとして用いることも可能である。また、テストデータ取得部15eは、学習データ取得部15aと同一の機能部としてもよい。
【0042】
変換部15fは、前述の変換部15cと同様に、後述する分類部15gの処理に用いるための準備として、テスト用データの特徴量を抽出し、特徴ベクトルへ変換する。変換部15fは、変換部15cと同一の機能部としてもよい。
【0043】
分類部15gは、作成された分類器14aを用いて、未知の通信ログを良性または悪性のいずれかに分類する。具体的には、分類部15gは、変換部15fが変換した特徴ベクトルを分類器14aに代入し、分類器14aが出力する通信ログの良性または悪性の程度を示すスコアが所定の閾値より高い場合に、良性または悪性と判定する。
【0044】
[分類処理]
次に、
図8および
図9を参照して、本実施形態に係る分類装置10による分類処理について説明する。分類処理は、作成処理と判定処理とを含む。
図8は、作成処理手順を示すフローチャートである。
図8のフローチャートは、例えば、作成処理の開始を指示する操作入力があったタイミングで開始される。
【0045】
まず、学習データ取得部15aが、入力部11あるいは通信制御部13を介して、学習用データの入力を受け付ける(ステップS1)。次に、統合部15bが、入力された学習用データである良性挙動データと、悪性挙動データと、判定なしデータとの項目を結合することにより、全データの形式を統一化してデータを統合する(ステップS2)。
【0046】
次に、変換部15cが、形式が統合された学習用データの特徴量を抽出する(ステップS3)。また、変換部15cが、抽出した特徴量を特徴ベクトルへ変換する(ステップS4)。
【0047】
また、作成部15dが、変換部15cが変換した特徴ベクトルを用いて学習を行って、通信ログの良性または悪性の程度を示すモデルを分類器14aとして作成する(ステップS5)。これにより、一連の作成処理が終了する。
【0048】
図9は、判定処理手順を示すフローチャートである。
図9のフローチャートは、例えば、判定処理の開始を指示する操作入力があったタイミングで開始される。
【0049】
まず、テストデータ取得部15eが、入力部11あるいは通信制御部13を介して、処理対象のテスト用データの入力を受け付ける(ステップS11)。次に、変換部15fが、テスト用データの特徴量を抽出する(ステップS12)。また、変換部15fが、抽出した特徴量を特徴ベクトルへ変換する(ステップS13)。
【0050】
次に、分類部15gが、変換部15fが変換した特徴ベクトルを分類器14aに代入する(ステップS14)。分類器14aは、通信ログの良性または悪性の程度を示すスコアを算出して出力する(ステップS15)。そして、分類部15gが、分類器14aが出力したスコアが所定の閾値より高い場合に、良性または悪性と判定する(ステップS16)。これにより、一連の判定処理が終了する。
【0051】
以上、説明したように、本実施形態の分類装置10において、統合部15bが、正常な通信を行う端末が発する通信ログであることを示す良性な通信ログと、マルウェアに感染した端末が発する通信ログであることを示す悪性な通信ログと、良性または悪性のいずれでもない通信ログとの形式を、全通信ログに含まれる全項目を含む形式に変換して、全通信ログを統合する。また、作成部15dが、統合された良性な通信ログと悪性な通信ログといずれでもない通信ログとを用いて学習を行って、通信ログを良性または悪性のいずれかに分類する分類器14aを作成する。また、分類部15gが、作成された分類器14aを用いて、未知の通信ログを良性または悪性のいずれかに分類する。
【0052】
これにより、分類装置10は、既知の良性挙動データ、悪性挙動データに加え、判定なしデータを学習用データとして用いて分類器14aを作成することができる。従来、精度の高い分類器を作成するために、ラベルが付与された大量の通信ログを用意して分類器を更新する必要があった。これに対し、本実施形態の分類装置10によれば、分類器の更新に用いる通信ログとして、少量のラベルが付与された通信ログ(良性挙動データおよび悪性挙動データ)と、大量のラベルが付与されていない通信ログ(判定なしデータ)とを用いて同時に学習させることができるので、ラベル付与の手間を削減しつつ容易に学習データを用意して高精度な分類器14aを作成することが可能となる。
【0053】
ここで、
図10は、分類装置10による分類処理の効果を説明するための説明図である。
図10(a)に示すように、学習用データとして、良性挙動データおよび悪性挙動データを用い、判定なしデータを用いない場合には、良性挙動データまたは悪性挙動データが疎な領域において、良性と悪性との境界となる閾値を推定することが難しい。したがって、分類対象のテスト用データの良性/悪性の判定が難しい。
【0054】
これに対し、本実施形態の分類装置10では、良性挙動データおよび悪性挙動データに加え、判定なしデータを学習用データとして用いる。これにより、
図10(b)に示すように、良性挙動データまたは悪性挙動データが疎な領域において、データの分布等の特徴に関する情報を判定なしデータから得ることができる。したがって、分類の精度を向上させることができる。
【0055】
なお、分類対象のテスト用データを、学習用データとして用いてもよい。この場合に、
図10(c)に示すように、テスト用データを
図10(b)に示した判定なしデータとして扱うことにより、良性挙動データまたは悪性挙動データが疎な領域において、データの分布等の特徴に関する情報をテスト用データから得ることができる。
【0056】
また、本実施形態の分類装置10は、通信ログの形式を問わず、異なる形式の通信ログを学習データとして用いて学習することができる。ネットワークの環境によりネットワーク機器の設置状況が異なり、実網から取得できる通信ログの形式は様々である。各形式の通信ログに含まれる情報は異なるため、サイバー攻撃の痕跡を発見するためには、複数の形式の通信ログを多面から相関的に分析する必要がある。従来の機械学習では、学習データの形式が同一でなければ分類器を作成できなかった。これに対し、本実施形態の分類装置10は、異なる形式の通信ログを用いて分類器を作成することができる。
【0057】
このように、分類装置10は、ラベルが付与された通信ログだけでは得られなかった新種のマルウェアに関連した情報を、ラベルが付与されていない通信ログから得ることができる。そのため、新種のマルウェアに対応した分類処理を行える。
【0058】
また、新たに追加する学習用データとして、ラベルが付与されていない通信ログを用いることができるため、SOCのアナリスト等の専門家が分析してラベルを付与する手間を省略することができる。そのため、分類器14aの更新にかかる負荷を軽減することができる。
【0059】
したがって、本実施形態の分類装置10によれば、学習用データのラベル付与の負担を軽減し、形式の異なる通信ログを学習用データとして用いて、高精度な分類器を作成して新種のマルウェアを検知することができる。
【0060】
[プログラム]
上記実施形態に係る分類装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、分類装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の分類処理を実行する分類プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の分類プログラムを情報処理装置に実行させることにより、情報処理装置を分類装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などがその範疇に含まれる。
【0061】
また、分類装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の分類処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、分類装置10は、学習用データおよび未知のデータを入力とし、未知のデータの良性/悪性の判定結果を出力する分類処理サービスを提供するサーバ装置として実装される。この場合、分類装置10は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の分類処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。以下に、分類装置10と同様の機能を実現する分類プログラムを実行するコンピュータの一例を説明する。
【0062】
図11は、分類プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0063】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
【0064】
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した分類器14a等の各種情報テーブルは、例えばハードディスクドライブ1031やメモリ1010に記憶される。
【0065】
また、分類プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した分類装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0066】
また、分類プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0067】
なお、分類プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、分類プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LANやWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0068】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。