(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025001918
(43)【公開日】2025-01-09
(54)【発明の名称】異常通信検知装置及び異常通信検知プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241226BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023101698
(22)【出願日】2023-06-21
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】517297980
【氏名又は名称】株式会社ARISE analytics
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】奥井 宣広
(72)【発明者】
【氏名】窪田 歩
(72)【発明者】
【氏名】吉田 琢也
(72)【発明者】
【氏名】伊藤 雅典
(72)【発明者】
【氏名】大野 允裕
(72)【発明者】
【氏名】福嶋 昌太郎
(72)【発明者】
【氏名】寺尾 康宏
(72)【発明者】
【氏名】秋元 裕介
(72)【発明者】
【氏名】日比 宏明
(57)【要約】
【課題】時系列のフローデータに基づく異常通信検知における検知精度を向上させられる異常通信検知装置及び異常通信検知プログラムを提供すること。
【解決手段】異常通信検知装置1は、通信ネットワークにおいて蓄積されたフローデータを、特徴量の類似性に基づいて複数のクラスタに分類し、当該複数のクラスタそれぞれにラベルを付与するクラスタリング部11と、ラベルを、フローデータの送信元デバイス別に通信時刻順で並べたシーケンスを生成するシーケンス生成部13と、シーケンスに基づいて、複数のクラスタにそれぞれ異なる多次元ベクトルを割り当てる特徴抽出部14と、シーケンス及び多次元ベクトルに基づいて、順序モデルを作成する事前学習部16と、順序モデルにより新たなシーケンスの異常度を算出し、当該異常度に基づいて当該新たなシーケンスの異常検知をする異常検知部17と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
通信ネットワークにおいて蓄積されたフローデータを、特徴量の類似性に基づいて複数のクラスタに分類し、当該複数のクラスタそれぞれにラベルを付与するクラスタリング部と、
前記ラベルを、前記フローデータの送信元デバイス別に通信時刻順で並べたシーケンスを生成するシーケンス生成部と、
前記シーケンスに基づいて、前記複数のクラスタにそれぞれ異なる多次元ベクトルを割り当てる特徴抽出部と、
前記シーケンス及び多次元ベクトルに基づいて、順序モデルを作成する事前学習部と、
前記順序モデルにより新たなシーケンスの異常度を算出し、当該異常度に基づいて当該新たなシーケンスの異常検知をする異常検知部と、を備える異常通信検知装置。
【請求項2】
前記通信ネットワークは、一つ以上の送信元デバイスと一つの送信先デバイスとが相互に通信を行う構造を、少なくとも一部分に持つ請求項1に記載の異常通信検知装置。
【請求項3】
前記通信ネットワークは、一つ以上の送信元車両と一つの送信先デバイスとが相互に通信を行う構造を、少なくとも一部分に持つ車両通信ネットワークである請求項1に記載の異常通信検知装置。
【請求項4】
前記クラスタリング部により前記複数のクラスタのいずれかに分類されたフローデータのうち、特徴量が外れ値に該当するものを未知クラスタに置き換える未知クラスタ変換部を備える請求項1に記載の異常通信検知装置。
【請求項5】
前記未知クラスタ変換部は、フローデータ単体の特徴に基づく所定の異常検知手法により異常と判定されたフローデータを前記未知クラスタに置き換える請求項4に記載の異常通信検知装置。
【請求項6】
前記未知クラスタ変換部は、各クラスタに属するフローデータそれぞれに対応した特徴量空間における各点の近傍球の集合に含まれない新たなフローデータを前記未知クラスタに置き換える請求項4に記載の異常通信検知装置。
【請求項7】
前記特徴抽出部は、前記多次元ベクトルとして、前記シーケンスの順序関係に基づく分散表現を獲得する請求項1から請求項6のいずれかに記載の異常通信検知装置。
【請求項8】
前記複数のクラスタのうち、前記多次元ベクトルの類似度が所定以上の組み合わせを、一つのクラスタに統合するクラスタ統合部を備える請求項7に記載の異常通信検知装置。
【請求項9】
前記クラスタリング部は、クラスタ数を固定せずに実行可能なクラスタリング手法によって前記フローデータを分類する請求項1から請求項6のいずれかに記載の異常通信検知装置。
【請求項10】
前記異常検知部は、前記順序モデルにより得られる、前記新たなシーケンス又は当該シーケンスを構成するクラスタの特徴ベクトルを、所定の異常検知モデルの入力とすることで、前記異常度を算出する請求項1から請求項6のいずれかに記載の異常通信検知装置。
【請求項11】
前記異常検知部は、前記新たなシーケンスを構成するフローデータの変数を、さらに前記異常検知モデルの入力とする請求項10に記載の異常通信検知装置。
【請求項12】
前記クラスタリング部は、前記ラベルを正解データとし、フローデータの変数を入力データとしたマルチクラス分類器を学習することにより、前記新たなシーケンスのラベル付けをする請求項1から請求項6のいずれかに記載の異常通信検知装置。
【請求項13】
請求項1から請求項6のいずれかに記載の異常通信検知装置としてコンピュータを機能させるための異常通信検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークにおける異常通信を検知するための装置及びプログラムに関する。
【背景技術】
【0002】
一般的に、通信ネットワークの異常通信検知に用いられる通信データの形式は、大きくパケット又はフローの二つに分けられる。パケットは、ペイロードを含むためデータサイズが大きく、異常通信検知の処理速度に関する課題がある。一方、フローは、複数のパケットをセッション単位で集約したデータであり、データサイズがパケットと比較して小さいため、異常通信検知の処理速度を向上させることが期待できる。
【0003】
例えば、非特許文献1では、単一フローの量的変数を入力として、Deep Neural Network(DNN)を用いた異常通信検知モデルを学習する手法が提案されている。しかしながら、フローデータは、複数のパケットを集約している関係で、正常フローと不正フローとを単一フローの量的変数のみでは区別できない場合がある。
【0004】
そこで、複数フロー間の関係を活用して学習する手法が提案されている。
例えば、非特許文献2では、Gated Recurrent Unit (GRU)を用いた異常通信検知手法が提案されている。GRUは、連続するフローの関係性を同時に学習可能な時系列モデルであり、単一フローだけでは利用できなかった時間的特徴を考慮した分類ができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】T. A. Tang, L. Mhamdi, D. McLernon, S. A. R. Zaidi and M. Ghogho, "Deep learning approach for Network Intrusion Detection in Software Defined Networking," 2016 International Conference on Wireless Networks and Mobile Communications (WINCOM), Fez, Morocco, 2016, pp. 258-263.
【非特許文献2】T. A. Tang, L. Mhamdi, D. McLernon, S. A. R. Zaidi and M. Ghogho, "Deep Recurrent Neural Network for Intrusion Detection in SDN-based Networks," 2018 4th IEEE Conference on Network Softwarization and Workshops (NetSoft), Montreal, QC, Canada, 2018, pp. 202-206.
【発明の概要】
【発明が解決しようとする課題】
【0006】
フロー間の順序関係を考慮した異常通信検知において、例えば非特許文献2では、フローが持つ量的変数を通信の発生順に並べた時系列データとして扱い、時系列の学習が可能な深層学習法であるGRUを用いて異常検知の精度を向上させている。
しかしながら、量的変数による時系列学習では、順序関係(A→BとB→A)を区別することが重要な場合に異常通信を検知できない場合がある。
【0007】
例えば、車両からプロキシサーバを経由した、いずれかのアプリケーション宛の通信が発生するような車両通信ネットワークから取得したフローデータを対象として、車両及びプロキシサーバのIPアドレス、通信発生時刻、送信パケット数のみが変数として利用できるとする。
ここで、宛先のアプリケーションは、A,B,C,Dの4種があり、発生する送信パケット数はそれぞれ10,20,40,100パケットとする。また、アプリケーション宛の通信は発生する順序が決まっており、B→A,A→A,A→C,A→D,C→Dの順序でしか通常は発生しないものとする。
【0008】
このとき、二つの正常フロー時系列データ(B→A→C→D,B→A→A→D)と一つの異常フロー時系列データ(B→A→B→D)の送信パケット数の遷移は、例えば
図8のようになる。
異常検知モデルは、正常データのみを用いた教師なしで学習することが多いため、正常1及び正常2の遷移が一定数発生する場合、正常1の「20→10→10→100」のパケット数遷移、及び正常2の「20→10→40→100」のパケット数遷移は正常と予測されることとなる。
したがって、これらの正常遷移に挟まれ、かつ、ユークリッド距離空間上差のない異常1の「20→10→20→100」のパケット数遷移のみを局所的に異常と正しく判定することは困難である。
【0009】
この課題を解決するために、フローデータを一度クラスタリングし、クラスタの発生順序から遷移確率行列を作成することで異常を検知することが考えられる。
しかしながら、遷移確率行列は、クラスタリングの精度に大きく影響する。例えば、本来であれば同一クラスタに割り当てられるべき点群が二つの別々のクラスタとして割り当てられた場合、各クラスタへの遷移確率もまた別々に計算される。一般に、ある閾値以下の発生確率である遷移が発生した場合に異常と判定することが多いため、クラスタが分離することは異常通信の誤検知へとつながっていた。
【0010】
本発明は、時系列のフローデータに基づく異常通信検知における検知精度を向上させられる異常通信検知装置及び異常通信検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明に係る異常通信検知装置は、通信ネットワークにおいて蓄積されたフローデータを、特徴量の類似性に基づいて複数のクラスタに分類し、当該複数のクラスタそれぞれにラベルを付与するクラスタリング部と、前記ラベルを、前記フローデータの送信元デバイス別に通信時刻順で並べたシーケンスを生成するシーケンス生成部と、前記シーケンスに基づいて、前記複数のクラスタにそれぞれ異なる多次元ベクトルを割り当てる特徴抽出部と、前記シーケンス及び多次元ベクトルに基づいて、順序モデルを作成する事前学習部と、前記順序モデルにより新たなシーケンスの異常度を算出し、当該異常度に基づいて当該新たなシーケンスの異常検知をする異常検知部と、を備える。
【0012】
前記通信ネットワークは、一つ以上の送信元デバイスと一つの送信先デバイスとが相互に通信を行う構造を、少なくとも一部分に持つものであってもよい。
【0013】
前記通信ネットワークは、一つ以上の送信元車両と一つの送信先デバイスとが相互に通信を行う構造を、少なくとも一部分に持つ車両通信ネットワークであってもよい。
【0014】
前記異常通信検知装置は、前記クラスタリング部により前記複数のクラスタのいずれかに分類されたフローデータのうち、特徴量が外れ値に該当するものを未知クラスタに置き換える未知クラスタ変換部を備えてもよい。
【0015】
前記未知クラスタ変換部は、フローデータ単体の特徴に基づく所定の異常検知手法により異常と判定されたフローデータを前記未知クラスタに置き換えてもよい。
【0016】
前記未知クラスタ変換部は、各クラスタに属するフローデータそれぞれに対応した特徴量空間における各点の近傍球の集合に含まれない新たなフローデータを前記未知クラスタに置き換えてもよい。
【0017】
前記特徴抽出部は、前記多次元ベクトルとして、前記シーケンスの順序関係に基づく分散表現を獲得してもよい。
【0018】
前記異常通信検知装置は、前記複数のクラスタのうち、前記多次元ベクトルの類似度が所定以上の組み合わせを、一つのクラスタに統合するクラスタ統合部を備えてもよい。
【0019】
前記クラスタリング部は、クラスタ数を固定せずに実行可能なクラスタリング手法によって前記フローデータを分類してもよい。
【0020】
前記異常検知部は、前記順序モデルにより得られる、前記新たなシーケンス又は当該シーケンスを構成するクラスタの特徴ベクトルを、所定の異常検知モデルの入力とすることで、前記異常度を算出してもよい。
【0021】
前記異常検知部は、前記新たなシーケンスを構成するフローデータの変数を、さらに前記異常検知モデルの入力としてもよい。
【0022】
前記クラスタリング部は、前記ラベルを正解データとし、フローデータの変数を入力データとしたマルチクラス分類器を学習することにより、前記新たなシーケンスのラベル付けをしてもよい。
【0023】
本発明に係る異常通信検知プログラムは、前記異常通信検知装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0024】
本発明によれば、時系列のフローデータに基づく異常通信検知における検知精度が向上する。
【図面の簡単な説明】
【0025】
【
図1】実施形態の適用対象である通信ネットワークの構成を例示する図である。
【
図2】実施形態における異常通信検知装置の機能構成を示すブロック図である。
【
図3】実施形態における未知クラスタの第1の判定方法を説明する図である。
【
図4】実施形態における未知クラスタの第2の判定方法を説明する図である。
【
図5】実施形態におけるクラスタリング結果の補正処理を例示する図である。
【
図6】実施形態における順序モデルの学習手順を例示する図である。
【
図7】実施形態における異常検知部の実施態様を例示する図である。
【
図8】従来技術で用いられるパケット数遷移を例示する図である。
【発明を実施するための形態】
【0026】
以下、本発明の実施形態の一例について説明する。
本実施形態の異常通信検知装置は、通信ネットワークにおいて発生したマルウェアなどの異常な通信を、フローデータのクラスタシーケンスを用いて検知するものである。
【0027】
図1は、本実施形態の適用対象である通信ネットワークの構成を例示する図である。
例示した車両通信ネットワークでは、車両群とプロキシサーバとの間で発生する通信データのみを取得可能である。また、各車両がどのアプリケーションへアクセスしているかを明示的に判別可能なURLなどのラベル、又はアプリケーションサーバのIPアドレスなどのアプリケーションと一対一に対応付けられる情報は存在しない。
【0028】
なお、本実施形態は、複数の送信元デバイス(
図1の車両群に相当)からある特定の一つの送信先デバイス(
図1のプロキシサーバに相当)への通信が発生する構造を、全体又は部分的に持つ一般的な通信ネットワークにおいても同様に適用可能である。
例えば、PC又はスマートフォンなどの端末から特定のアプリケーション(ネットサービス)にアクセスする通信が挙げられ、これは、
図1の車両通信ネットワークにおける車両群を端末群に置き換えたものと同形である。
【0029】
以下では、車両通信ネットワークを例に挙げ説明する。
車両からプロキシサーバへのアクセス情報は全て取得でき、取得したパケットデータは、IPFIX(IP Flow Information Export)などのフローデータへ変換されているものとする。
【0030】
図2は、本実施形態における異常通信検知装置1の機能構成を示すブロック図である。
異常通信検知装置1は、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイスなどを備えた情報処理装置であり、通信ネットワークから取得したフローデータを入力として、プロキシサーバを経由したアプリケーションサーバへの不正アクセス(異常通信)を検知する。
【0031】
制御部10は、異常通信検知装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
具体的には、制御部10は、クラスタリング部11と、未知クラスタ変換部12と、シーケンス生成部13と、特徴抽出部14と、クラスタ統合部15と、事前学習部16と、異常検知部17とを備える。
【0032】
記憶部20は、ハードウェア群を異常通信検知装置1として機能させるための各種プログラム、及び各種データなどの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)などであってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(異常通信検知プログラム)を記憶し、さらに、処理対象として受信したフローデータ、及び異常通信検知のための各種の学習モデルを構成するパラメータなどを記憶する。
【0033】
クラスタリング部11は、教師なし学習器Aを用いて、通信ネットワークにおいて蓄積された各フローデータを、その特徴量(量的変数)の類似性に基づいて複数のクラスタに分類し、これら複数のクラスタそれぞれにラベルを付与する。
このとき、TCPフラグなどの質的変数は、例えばワンホットエンコーディングなどにより量的変数に変更されてよい。
【0034】
車両通信ネットワークから取得できるフローデータは、ある車両から、あるアプリケーションのある機能へ送られた通信に関する統計量である。車載システムからの通信は、アプリケーションごとに送信内容がおおよそ決まっているため、教師なし学習器Aにより分類された各クラスタは、送信先のアプリケーションを推定したものになる。
なお、車両通信ネットワークでは、KEEP-ALIVE通信など、アプリケーション宛ではない通信も存在するが、これらの通信内容はTCP/IPなどの一般的な通信規格で定まっているため、同様に分類が可能である。
【0035】
教師なし学習器Aには、例えばk-means又はDBSCANのような統計ベースの手法、あるいは、Deep k-Meansのような深層学習ベースの手法を用いることができる。
また、クラスタリング部11は、フローデータを直接クラスタリングするのではなく、Stacked Auto Encoderなどの次元圧縮器Bにより、フローデータの変数をより低次元空間に圧縮したうえで、教師なし学習器Aを用いてクラスタリングしてもよい。次元圧縮器Bには、前述の深層学習ベースの手法のほか、t-SNEのような統計ベースの手法を用いることができる。
【0036】
ここで、クラスタリング部11によるクラスタリングは、異常通信検知装置1の運用時に、解析対象のフローデータに対しても実施する必要があるが、教師なし学習器A及び次元圧縮器Bの一部には、学習済みモデルの再利用ができないものが存在し、この場合、新たなフローデータを分類できない。例えば、DBSCANのような教師なし学習器やt-SNEのような次元圧縮器がこれに該当する。
この場合、クラスタリング部11は、各フローデータに付与したラベルを正解データとし、フローデータの変数を入力データとした教師ありマルチクラス学習器Cによって学習する。これにより、任意のクラスタリング手法によって、特に密度準拠ベースクラスタリングのようなクラスタ数を固定せずに実行可能なクラスタリング手法によって、学習時及び運用時の両方において、フローデータにラベルを付与することができる。
【0037】
未知クラスタ変換部12は、クラスタリング部11により複数のクラスタのいずれかに分類されたフローデータのうち、特徴量が外れ値に該当するものを未知(UNK)クラスタに置き換える。
【0038】
通信データには、学習時及び運用時に、通常の分布から大きく離れたフロー(以下、外れ値フローという)が出現する。外れ値フローは、例えば、サイバー攻撃により発生したフロー、又は通信失敗による再送フローなどであることが考えられる。
クラスタリング部11がフローデータをクラスタリングする際に、外れ値フローは、最も距離が近いクラスタに割り当てられることとなる。しかし、この外れ値フローは、本来そのクラスタに割り当てられるフローではないため、異常検知における誤学習及び誤検知の一因になる。
そこで、未知クラスタ変換部12は、次の二つの判定方法のいずれかを学習時及び運用時に行うことで、外れ値フローを未知クラスタへ割り当て、誤学習及び誤検知を抑制する。
【0039】
図3は、本実施形態における未知クラスタの第1の判定方法を説明する図である。
未知クラスタ変換部12は、フローデータ単体の特徴に基づく既存の異常検知手法Dを用いることにより、前述のサイバー攻撃により発生したフローの一部、及び通信失敗による再送フローなどを検出できる。異常検知手法Dは、例えば、非特許文献1のDNNベースの手法や、OC-SVMなどの機械学習ベースの手法でもよい。
【0040】
図中のA~Eは、特徴量空間において分類されたクラスタを示している。また、単一のフローに対する正常と異常とを判別する境界が破線(異常ライン)で示されている。
このとき、黒丸で示したフローデータは、境界の外側にあり、異常検知手法Dによって異常と判定されるので、未知クラスタ変換部12は、これらのフローデータを未知クラスタに割り当てる。一方、境界の内側にあるフローデータ(x)は正常と判定されるので、いずれかのクラスタ(例えばE)に分類される。
【0041】
図4は、本実施形態における未知クラスタの第2の判定方法を説明する図である。
未知クラスタ変換部12は、教師なし学習器Aによるクラスタリングの結果を利用し、運用時に外れ値フローを未知クラスタに割り当てる。
【0042】
図中のA~Eは、特徴量空間において分類されたクラスタを示しており、学習データにはクラスタのラベルが付与されている。このとき、各クラスタの点(フローデータの特徴量)ごとに近傍球を作成し、この近傍球の集合をクラスタ近傍集合とする。未知クラスタ変換部12は、どのクラスタ近傍集合にも含まれない点となる新たなフローデータを未知クラスタに割り当てる。
【0043】
シーケンス生成部13は、フローデータに割り当てられたラベルを、フローデータの送信元デバイスのIPアドレス別に通信時刻順で並べたクラスタシーケンスを生成する。
【0044】
特徴抽出部14は、生成されたクラスタシーケンスに基づいて、複数のクラスタにそれぞれ異なる多次元の特徴ベクトルを割り当てる。
この多次元ベクトルは、クラスタの順序関係を表現する分散表現(以下、順序分散表現)であってよい。特徴抽出部14は、例えば、Word2Vecのような順序分散表現獲得器Eによって順序分散表現を獲得することとしてよいが、後述する順序モデルの作成時に同時に獲得してもよい。
【0045】
順序分散表現獲得器Eでは、入力であるクラスタシーケンスをもとに、各クラスタの周辺クラスタを予測する学習を逐次行うことで、ニューラルネットワークにおける隠れ層から各クラスタの順序分散表現が獲得される。
この処理により得られる順序分散表現は、前後で発生するクラスタの種類が類似するクラスタ同士で類似するという特性を持つ。
【0046】
これにより、クラスタリングにおいて、例えば同一アプリケーションであるが、統計量の分布がわずかに異なり、クラスタが分かれてしまったような場合であっても、クラスタシーケンスにおける前後の順序関係は類似することから、分かれたクラスタの順序分散表現は互いに類似する。
【0047】
クラスタ統合部15は、この性質に基づいて、得られた順序分散表現の類似度(例えば、コサイン類似度)が所定以上のクラスタ同士を統合して、クラスタリング結果及びクラスタシーケンスを補正する。
【0048】
図5は、本実施形態におけるクラスタリング結果の補正処理を例示する図である。
この例では、クラスタリングの結果、フローデータは、A,B,B’,C,D,Eの六つのクラスタに分類されている。ところが、これらのクラスタから得られた順序分散表現の分布は、BとB’の類似度が非常に高くなっている。
そこで、クラスタ統合部15は、BとB’とを統合し、クラスタリング結果を五つのクラスタに補正する。
【0049】
事前学習部16は、クラスタシーケンス及び多次元ベクトルに基づいて、順序モデルFを作成する。
順序モデルFは、ある複数種のトークンが並んだシーケンスに対し、シーケンスのi番目のトークンの発生確率をシーケンスのi番目を除くトークンの全てもしくは一部により推定可能なように学習したモデルである。
例えば、順序モデルFには、自然言語処理全般で言語モデルとして使用されるRNNLM又はLSTMLMの他、Transformer又はBertのような、文章をトークン列に変換し言語モデルに拡張可能な構造を持つモデルが用いられてもよい。
【0050】
図6は、本実施形態における順序モデルFの学習手順を例示する図である。
この例は、RNNLMを使用した場合の手順であり、クラスタシーケンスを入力とし、入力のクラスタシーケンスを左に一つずらしたシーケンスを出力(正解データ)とすることで、次のクラスタを予測する順序モデルFが学習される。
【0051】
ここで、順序モデルFは、次の三つの機能を含んでいる。
埋め込み層は、各クラスタを多次元ベクトルに置換する処理を行う(例えば、1→[0.1,0,0,…,0])。なお、多次元ベクトルへの変換には、前述の分散表現獲得器Eが用いられてもよい。
時系列層は、RNNなどの深層学習モデルに、埋め込み部で生成されたベクトル×シーケンス長の行列を入力する。
出力層は、Softmax関数を通して、クラスタラベルそれぞれへの遷移確率(種類数の次元)を、シーケンス長分出力する。
【0052】
異常検知部17は、作成された順序モデルFを用いて、クラスタシーケンスの発生確率が所定未満の場合、このクラスタシーケンスが異常であると判定する。
例えば、異常検知部17は、クラスタシーケンスc1,…,ci-1が与えられた場合に、ciのラベル発生確率P(Xi=ci|X1=c1,…,Xi-1=ci-1)を順序モデルFから計算する。異常検知部17は、これらを掛け合わせることにより、シーケンス発生確率Πi=1
nP(Xi=ci|X1=c1,…,Xi-1=ci-1)=P(X1=c1,…,Xn=cn)を算出し、これが所定値に満たない場合、クラスタシーケンスが異常であると判定する。
また、異常検知部17は、解釈がより簡単な遷移確率行列を用いて、クラスタシーケンスの発生確率を求めてもよい。
【0053】
前述の通り、順序モデルFのみでも異常度の算出が可能であるが、正解とは限らない不確実なクラスタラベルを用いていることから、意図せず異常と判断されてしまう可能性がある。
例えば、車両から通信の継続を意図して行われるKEEP-ALIVE通信の直前のフローは、本来行われる通信の一部までしか行えていないため、統計量が通常のものと比べ異なることがある。このようなフローは意図しないクラスタ又は未知クラスタに割り当てられる。
そこで、異常検知部17は、次のように順序モデルFの一部と深層学習ベースの異常検知モデルGとを組み合わせることで異常検知の精度を向上させてもよい。
【0054】
図7は、本実施形態における異常検知部17の実施態様を例示する図である。
ここでは、異常検知モデルGに対して、順序モデルFから得られたシーケンスベクトル、又はシーケンスを構成する各フローの特徴ベクトルが入力され、シーケンス又はフローの異常度が算出される。
【0055】
ここで、順序モデルFは、前述の通り、各クラスタを入力する埋め込み層、前後のクラスタ間を連結させる時系列層、及び正解クラスタを予測する出力層で構成される。
異常検知部17は、このうち、埋め込み層及び時系列層を利用し、例えば、時系列層の出力であるクラスタごとの複数の特徴ベクトルを要素ごとに平均した一つのシーケンスベクトルを異常検知モデルGへ入力することにより、異常検知を実施する。このとき、異常検知部17は、シーケンスベクトルに加えて、シーケンスを構成するクラスタごとの特徴ベクトル(クラスタベクトル)も入力とし、学習データの件数を増加させてもよい。
さらに、異常検知部17は、元のフローデータの量的変数を入力の要素として加え、次元数を増加させてもよい。
【0056】
本実施形態によれば、異常通信検知装置1は、フローデータに含まれる量的変数に基づいてフローを複数のクラスタに分類し、送信元デバイスごとに発生したフロー順でクラスタを並べたシーケンスを作成する。異常通信検知装置1は、作成したシーケンスの並びを順序モデルに適用することで、文脈異常度を用いて不正アクセスなどの異常通信の有無を検知する。
元のフローデータでは量的変数をもとにしたユークリッド距離空間上の分離しかできなかったところ、フローのクラスタリング、すなわち質的変数化により、クラスタの順序関係によって定義された距離空間を作成できたため、複数の距離による分類が可能となった。これにより、異常通信検知装置1は、従来の手法と比べ、量的変数のみで構成されたフローの順序関係を明示的に学習することができ、時系列のフローデータに基づく異常通信検知における検知精度が向上する。
【0057】
また、異常通信検知装置1は、クラスタの順序分散表現を獲得し、この順序分散表現が類似するクラスタ同士を統合する。
教師なし学習であるクラスタリングでは、同一アプリケーションへの通信など、同一クラスタとすべき場合でも複数のクラスタに分かれてしまうことがあるが、順序分散表現の獲得により、分かれたクラスタのそれぞれで、ほぼ同一の分散表現が獲得できる。複数のクラスタに分かれた状態ではシーケンスの発生確率が分散し、意図せず異常と判定される可能性があるが、異常通信検知装置1は、これらを同一視できるため、統合して確率を合算でき、意図した発生確率を算出できる。
【0058】
また、異常通信検知装置1は、特徴量が大きく離れた外れ値フローを未知クラスタに分類する。
採用するクラスタリング手法によっては、外れ値フローも既知のクラスタに割り当てる処理を行うが、発生確率を計算する処理において、想定しないクラスタへの割り当ては誤学習を生んでいた。異常通信検知装置1は、クラスタリングの種別によらず、未知クラスタを用意することで意図しないクラスタへの分類を排除し、誤学習を防ぐことができる。
この結果、任意のクラスタリング手法への拡張が可能となり、データセットに応じて、精度の良いクラスタリング手法を適切に選択することができる。
【0059】
なお、本実施形態により、例えば、通信ネットワークにおける異常通信を精度良く検知できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0060】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0061】
異常通信検知装置1による異常通信検知方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0062】
1 異常通信検知装置
10 制御部
11 クラスタリング部
12 未知クラスタ変換部
13 シーケンス生成部
14 特徴抽出部
15 クラスタ統合部
16 事前学習部
17 異常検知部
20 記憶部