(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、本実施形態に限定されない。
【0011】
[構成と概要]
まず、
図1を用いて、本実施形態の異常検知装置を含むシステムの構成例を説明する。システムは、例えば、
図1に示すように、通信機器10と、ゲートウェイ装置20と、異常検知装置30とを備える。通信機器10とゲートウェイ装置20とはLAN(Local Area Network)等により接続される。また、ゲートウェイ装置20と異常検知装置30とはインターネット等のネットワークにより接続される。
【0012】
通信機器10は、本システムにおける異常の検知対象となる通信機器である。この通信機器10は、例えば、PC等である。ゲートウェイ装置20は、通信機器10をインターネット等のネットワーク経由で外部装置に接続したり、同一LAN内の他の通信機器10に接続したりする装置である。このゲートウェイ装置20は、各通信機器10が送受信するネットワークフローの情報、当該ネットワークフローの通信特徴量、各通信機器10の動作ログ等、通信機器10の挙動を示す情報を取得する。
【0013】
なお、ネットワークフローの情報(ネットワークフロー情報)は、例えば、当該ネットワークフローの送信元IP(Internet Protocol)アドレス、送信元MAC(Media Access Control)アドレス、送信先IPアドレス、送信先MACアドレス、通信ポート番号、受信パケット数、送信パケット数、通信ペイロード等である。通信特徴量は、例えば、ネットワークフローの送信元IPアドレス、送信元MACアドレス、送信先IPアドレス、送信先MACアドレス、受信パケット総数の平均値、送信パケット総数の分散値等である。また、動作ログは、当該通信機器10において実行されたプロセスのID、プロセスの実行開始時刻等である。
【0014】
異常検知装置30は、ゲートウェイ装置20から取得した各通信機器10の正常状態における挙動を示す情報を学習することにより、各通信機器10への不正アクセスやウィルス感染等の異常の検出を行う。異常検知装置30は、例えば、各通信機器10の正常状態にけるネットワークフロー情報、当該ネットワークフローの通信特徴量、各通信機器の動作ログ等(以上まとめて「通信ログ」と称す)を学習データとし、アノマリ検知型の検知モデルを生成する。そして、異常検知装置30は、生成した検知モデルと、検知対象との通信機器10のネットワークフロー情報、通信特徴量、動作ログ等とを用いて、アノマリ検知型の異常検知を行う。
【0015】
ここで、異常検知装置30は、各通信機器10の設定変更等による正常状態の変化に追従するため、各通信機器10の正常状態の通信ログを再学習し、再学習の結果を用いて検知モデルを更新する。
【0016】
例えば、異常検知装置30は、現在の検知モデルAの生成に用いられた通信ログ(学習データセットA)の後に発生した上記各通信機器10の通信ログ(学習データセットB)を取得する。ここで、取得した学習データセットBと学習データセットAとの差分情報が所定の評価基準を満たす場合、異常検知装置30は、学習データセットBを用いた再学習を行う。これにより異常検知装置30は、計算コストをかけられない環境であっても適切なタイミングで、通信機器10の正常状態の挙動の再学習を行うことができる。
【0017】
[異常検知装置]
引き続き
図1を用いて異常検知装置30を詳細に説明する。異常検知装置30は、学習部31と、異常検知部32と、再学習実施判定部33とを備える。
【0018】
学習部31は、通信機器10の正常状態の通信ログを学習データとして、通信機器10の異常を検知するための検知モデルを生成する。例えば、学習部31は、ゲートウェイ装置20から各通信機器10の正常状態の通信ログを取得すると、この通信ログを学習データとして、各通信機器10の異常を検知するための検知モデルを生成する。
【0019】
学習部31は、学習データによる学習が完了し、検知モデルが生成されると、異常検知部32に対し、当該検知モデルを用いた異常検知(異常検知のための分析)を開始させる。そして、学習部31は、当該学習に用いた通信機器10の識別情報、通信ログ(学習データセットA)、および、当該通信ログの学習により生成された検知モデル(検知モデルA)を、再学習実施判定部33に保存する。
【0020】
異常検知部32は、学習部31により生成された検知モデルと、通信機器10の通信ログとを用いて、通信機器10に対しアノマリ検知型の異常検知を行う。例えば、異常検知部32は、ゲートウェイ装置20から、検知対象の通信機器10の通信ログを取得すると、学習部31により生成された検知モデルを用いて、当該通信機器10の異常検知を行う。
【0021】
再学習実施判定部33は、学習部31が通信ログの再学習を実施すべきか否かを判定する。この再学習実施判定部33は、データ取得部330と、追加情報特定部331と、差分情報特定部332と、削除情報特定部333と、判定部334とを備える。
【0022】
データ取得部330は、所定期間ごと、あるいは、異常検知装置30の管理者からの指示入力が行われたとき、ゲートウェイ装置20から所定の通信機器10について、その時点から所定期間の通信ログ(第2の通信ログ)を取得する。
【0023】
追加情報特定部331は、データ取得部330により取得された第2の通信ログのうち、現在異常検知部32で用いている検知モデル(検知モデルA)により異常が検知された通信ログを追加情報として特定する。
【0024】
差分情報特定部332は、検知モデルAの生成に用いられた通信ログ(学習データセットA)と、データ取得部330により取得された第2の通信ログ(学習データセットB)とを比較し、差分情報の有無を判定する。
【0025】
例えば、比較対象となる学習データセットA,Bが、通信機器10のネットワークフロー情報または通信特徴量である場合、差分情報特定部332は、学習データセットA,Bの5タプル情報(送信元/宛先のIPアドレス、送信元/宛先のMACアドレス、通信ポート番号)を比較する。また、例えば、学習データセットA,Bが、通信機器10の動作ログである場合、差分情報特定部332は、当該通信機器10の宛先の通信機器のIPアドレス、MACアドレス、通信ポートを比較する。
【0026】
削除情報特定部333は、第1の通信ログ(学習データセットA)と第2の通信ログ(学習データセットB)との差分情報から、上記の追加情報を除いた削除情報を特定する。
【0027】
この追加情報および削除情報を、
図2を参照しながら詳細に説明する。
【0028】
例えば、
図2に示すように、更新前検知モデル(検知モデルA)の生成に用いられた学習データセットA(ネットワークフロー情報A−1,A−2,A−3,…)と、最新学習データセット(学習データセットB。ネットワークフロー情報B−1,B−2,B−3,…)とが与えられた場合を考える。各ネットワークフロー情報は、
図2に示すように、5タプル情報の他に、5タプル以外の情報(例えば、受信パケット数、送信パケット数、ペイロード等)を含んでいてもよい。
【0029】
このような場合、追加情報特定部331が、学習データセットBに、更新前検知モデル(検知モデルA)を用いて異常検知の有無を確認することで、学習データセットBに追加フロー(追加情報)の有無がわかるだけでなく、追加フロー(追加情報)を特定できる((1))。
【0030】
つまり、学習データセットBに、検知モデルAを用いて異常が検知されたということは、この学習データセットBに、学習データセットAにはない通信先との通信ログ(追加フローの通信ログ)が含まれることを意味する。よって、差分情報特定部332は、検知モデルAで異常を検知した学習データセットBの通信ログがあれば、その通信ログを追加情報として特定する。
【0031】
次に、差分情報特定部332が、学習データセットAおよび学習データセットBの5タプル情報を用いて、両データセットの差分(差分情報)を確認し、差分情報がある場合、削除情報特定部333は、この差分情報から追加フロー(追加情報)を除く。これにより、削除情報特定部333は、削除フロー(削除情報)の有無がわかるだけでなく、削除フロー(削除情報)を特定できる((2))。
【0032】
つまり、学習データセットAと学習データセットBとの間に差分(差分情報)があるにもかかわらず、上記の追加フロー(追加情報)以外の情報(通信ログ)があるということは、学習データセットAに含まれる通信先のうち、学習データセットBで含まれなくなった通信先があることを意味する。すなわち、削除フローがあることを意味する。よって、削除情報特定部333は、学習データセットAと学習データセットBとの差分情報に追加情報以外の情報(通信ログ)があれば、その通信ログを削除情報として特定する。
【0033】
図1に戻り、判定部334を説明する。判定部334は、第1の通信ログ(学習データセットA)と第2の通信ログ(学習データセットB)との間に差分情報がある場合、学習部31に、第2の通信ログ(学習データセットB)を学習データとして異常検知モデルを生成するよう(再学習するよう)命令する。
【0034】
例えば、判定部334は、第1の通信ログ(学習データセットA)と第2の通信ログ(学習データセットB)との間に差分情報がある場合において、その差分情報に含まれる追加情報の数、または、削除情報の数が所定の評価基準を満たす場合、学習部31に第2の通信ログ(学習データセットB)を学習データとした再学習を実施するよう命令する。
【0035】
例えば、判定部334は、(1)追加情報の数が所定の閾値を超える場合、(2)削除情報の数が所定の閾値を超える場合、または、(3)追加情報と削除情報との合計が所定の閾値を超える場合、学習部31に再学習を実施するよう命令する。
【0036】
なお、(1)〜(3)に用いられる閾値は、異常検知装置30のユーザが決定してもよいし、異常検知装置30が、過去の統計値等に基づき決定してもよい。
【0037】
また、判定部334は、第1の通信ログ(学習データセットA)と第2の通信ログ(学習データセットB)との間に差分情報がある場合において、(1)〜(3)のいずれか、または、これらの組み合わせにより記述された評価基準を満たす場合、学習部31に再学習を実施するよう命令してもよい。なお、判定部334が、どのような評価基準を用いて判定を行うかは、異常検知装置30のユーザが適宜設定可能である。
【0038】
そして、学習部31による再学習が完了し、新たな検知モデル(検知モデルB)が生成されると、異常検知部32に対し、検知モデルBを用いた異常検知(異常検知のための分析)を開始させる。そして、学習部31は、再学習に用いた通信機器10の識別情報、通信ログ(学習データセットB)、および、当該通信ログの学習により生成された検知モデル(検知モデルB)を、再学習実施判定部33に上書き保存する。
【0039】
なお、更新前学習データセット(学習データセットA)と最新学習データセット(学習データセットB)との関係は、
図3に示すパターン1〜4が考えらえる。つまり、パターン1のように最新学習データセットすべてが更新前学習データセットに含まれる場合と、パターン2のように、更新前学習データセットの一部が最新学習データセットの一部に含まれる場合と、パターン3のように、更新前学習データセットすべてが最新学習データセットに含まれる場合と、パターン4のように、更新前学習データセットと最新学習データセットとがまったく異なる場合とが考えられる。
【0040】
なお、
図3のパターン1〜4の斜線部分は、それぞれパターンにおける更新前学習データセットと最新学習データセットとの差分情報を示す。パターン1の場合、差分情報には追加情報はないが削除情報はあり、パターン2,4の場合、差分情報に追加情報も削除情報もある。また、パターン3の場合、差分情報に追加情報はあるが削除情報はない。よって、パターン1の場合、学習部31は、最新学習データセットを学習することで、異常の見逃しの少ない検知モデルを生成することができる。また、パターン2,4の場合、学習部31は、最新学習データセットを学習することで、異常の見逃しが少なく、かつ、誤検知の少ない検知モデルを生成することができる。また、パターン3の場合、学習部31は、最新学習データセットを学習することで、誤検知の少ない検知モデルを生成することができる。
【0041】
ここで、再学習をするか否かを、判定部334が、追加情報または削除情報(またはこれらの組み合わせ)を用いた評価基準を用いて判定することで、上記のいずれのパターンであっても、適切なタイミングで学習部31に再学習を実施するよう命令することができる。
【0042】
例えば、判定部334が、(1)追加情報の数が所定値を超える場合に、学習部31に再学習を命令することで、パターン2,3,4における最新学習データセットによる再学習を実現できる。その結果、学習部31は、誤検知の少ない検知モデルを生成することができる。また、判定部334が、(2)削除情報の数が所定値を超える場合に、学習部31に再学習を命令することで、パターン1,2,4における最新学習データセットによる再学習を実現できる。その結果、学習部31は、異常の見逃しの少ない検知モデルを生成することができる。判定部334が、(3)追加情報と削除情報の合計数が所定値を超える場合に、学習部31に再学習を命令することで、パターン2,4における最新学習データセットによる再学習を実現できる。その結果、学習部31は、誤検知と異常の見逃しが少ない検知モデルを生成することができる。
【0043】
[処理手順]
次に、
図4を用いて異常検知装置30の処理手順を説明する。異常検知装置30の処理は、最初の検知モデルを生成する初期学習フェーズと、再学習により検知モデルを更新する運用フェーズとに分けられる。まず初期学習フェーズから説明する。
【0044】
(初期学習フェーズ)
まず、学習部31は、通信機器10の正常動作(学習データセットA)を学習し、検知モデルAを生成する(S1)。そして、学習部31は、再学習実施判定部33に、学習データセットAと検知モデルAを保存する(S2)。また、学習部31は、異常検知部32に対し、当該検知モデルを用いた異常検知の分析動作を開始させる(S3)。
【0045】
(運用フェーズ)
次に、運用フェーズを説明する。S3の後、データ取得部330は、学習データセットA以降の通信ログ(学習データセットB)を取得する(S11)。その後、追加情報特定部331は、検知モデルAと学習データセットBとにより追加情報の有無を確認する(S12)。つまり、追加情報特定部331は、学習データセットBに、検知モデルAで異常を検知した通信ログがあるか否かを確認し、あれば当該通信ログを追加情報として特定する。その後、削除情報特定部333は、学習データセットAと学習データセットBと追加情報とにより削除情報の有無を確認する(S13)。つまり、まず、差分情報特定部332が、学習データセットAと学習データセットBとの差分の有無を確認し、差分があれば、その差分の通信ログを差分情報として特定する。そして、削除情報特定部333は、当該差分情報に、S12で特定された追加情報以外の通信ログがあるか否かを確認し、あれば当該通信ログを削除情報として特定する。
【0046】
S13の後、判定部334は、追加情報または削除情報があり(つまり、差分情報があり)(S14でYes)、かつ、追加情報の数または削除情報の数が所定の評価基準(例えば、前記した(1)〜(3))を満たす場合(S15でYes)、学習部31に、正常動作を再学習させ、検知モデルBを生成するよう命令する(S16)。すなわち、判定部334は、学習部31に、学習データセットBを学習し、検知モデルBを生成するよう命令する。これにより、学習部31は、検知モデルBを生成する。その後、学習部31は、再学習実施判定部33の学習データセットAを学習データセットBで上書きし、検知モデルAを検知モデルBで上書きする(S17)。また、学習部31は、異常検知部32に対し、S17で上書きされた検知モデル(検知モデルB)を用いた異常検知の分析動作を開始させる(S18)。その後、S11へ戻る。
【0047】
なお、判定部334が、追加情報も削除情報もない(つまり、差分情報がない)と判定した場合(S14でNo)、S11へ戻る。また、判定部334が、追加情報の数または削除情報の数が所定の評価基準(例えば、前記した(1)〜(3))を満たさないと判定した場合(S15でNo)もS11へ戻る。
【0048】
このように異常検知装置30は、学習データセットにおける追加情報の数または削除情報の数を用いた評価基準に基づき、再学習を実施するか否かを判定する。つまり、異常検知装置30は、現在の検知モデルの生成後の追加フローの数または削除フローの数に基づき、再学習を実施するか否かを判定する。その結果、異常検知装置30は、適切なタイミングで再学習を実施することができる。
【0049】
なお、異常検知装置30は、学習データセットにおける追加情報の数または削除情報の数を用いた評価基準に基づき、再学習を実施するか否かを判定することとしたが、これに限定されない。例えば、異常検知装置30は、学習データセットにおける追加情報または削除情報の有無にかかわらず、差分情報がある場合に再学習を実施すると判定してもよい。
【0050】
[プログラム]
また、上記の実施形態で述べた異常検知装置30の機能を実現するプログラムを所望の情報処理装置(コンピュータ)にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置を異常検知装置30として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等がその範疇に含まれる。また、異常検知装置30を、クラウドサーバに実装してもよい。
【0051】
図5を用いて、上記のプログラム(管理プログラム)を実行するコンピュータの一例を説明する。
図5に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0052】
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
【0053】
ここで、
図5に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。前記した実施形態で説明した各種データや情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。
【0054】
そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0055】
なお、上記の管理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。