IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧 ▶ トヨタ自動車株式会社の特許一覧 ▶ 株式会社ARISE analyticsの特許一覧

特開2025-1919異常通信検知装置及び異常通信検知プログラム
<>
  • 特開-異常通信検知装置及び異常通信検知プログラム 図1
  • 特開-異常通信検知装置及び異常通信検知プログラム 図2
  • 特開-異常通信検知装置及び異常通信検知プログラム 図3
  • 特開-異常通信検知装置及び異常通信検知プログラム 図4
  • 特開-異常通信検知装置及び異常通信検知プログラム 図5
  • 特開-異常通信検知装置及び異常通信検知プログラム 図6
  • 特開-異常通信検知装置及び異常通信検知プログラム 図7
  • 特開-異常通信検知装置及び異常通信検知プログラム 図8
  • 特開-異常通信検知装置及び異常通信検知プログラム 図9
  • 特開-異常通信検知装置及び異常通信検知プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025001919
(43)【公開日】2025-01-09
(54)【発明の名称】異常通信検知装置及び異常通信検知プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241226BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023101699
(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と、抽出された共起パターンの発生確率を計算する発生確率計算部12と、実際の共起パターンの発生数と、当該共起パターンの発生確率から計算される発生数の期待値との差が閾値を超えた場合に、異常が発生していると判定する異常判定部13と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
複数のデバイスから送信されるフローの時系列データから共起パターンを抽出する共起パターン抽出部と、
抽出された前記共起パターンの発生確率を計算する発生確率計算部と、
実際の共起パターンの発生数と、当該共起パターンの発生確率から計算される発生数の期待値との差が閾値を超えた場合に、異常が発生していると判定する異常判定部と、を備える異常通信検知装置。
【請求項2】
前記複数のデバイスは車両であり、共通のサーバを通信先とした車両通信のフローを対象とする請求項1に記載の異常通信検知装置。
【請求項3】
前記共起パターン抽出部は、DTW(Dynamic Time Warping)における距離行列の要素のうち、閾値未満の要素が連続する部分行列を抽出し、当該部分行列にDTWを適用する請求項1に記載の異常通信検知装置。
【請求項4】
前記共起パターン抽出部は、前記距離行列の中で、前記閾値未満の要素が不連続となっている箇所において、閾値以上の要素からなる所定数の行又は列を無視することで前記閾値未満の要素が連続する場合に、当該行又は列を削除した部分行列を抽出する請求項3に記載の異常通信検知装置。
【請求項5】
前記共起パターン抽出部は、DTW(Dynamic Time Warping)における距離行列において、DTWで計算される全ての経路の中で閾値未満の要素が連続している箇所を起点とし、隣接する閾値未満の要素を含めて前記共起パターンとして抽出する請求項1に記載の異常通信検知装置。
【請求項6】
前記共起パターン抽出部は、前記複数のデバイスのうち一部のデバイスの時系列データから共起パターンを抽出した後、当該共起パターンを、所定のアルゴリズムにより他のデバイスの時系列データから探索する請求項1から請求項5のいずれかに記載の異常通信検知装置。
【請求項7】
前記共起パターン抽出部は、前記所定のアルゴリズムとしてSPRINGを使用する請求項6に記載の異常通信検知装置。
【請求項8】
前記発生確率計算部は、前記発生確率を、共起パターンの先頭要素に付与されているラベルの発生確率、各ラベル内で所定のパラメータが所定の範囲に入る確率、及びラベル間の遷移確率から計算する請求項1から請求項5のいずれかに記載の異常検知装置。
【請求項9】
前記発生確率計算部は、前記ラベル間の遷移確率として、時系列の複数のラベルの列から一つのラベルへの遷移確率を計算する請求項8に記載の異常通信検知装置。
【請求項10】
前記発生確率計算部は、時系列の複数のラベルの列を入力とした深層学習モデルによる一つのラベルの予測値を、前記ラベル間の遷移確率とする請求項8に記載の異常通信検知装置。
【請求項11】
前記発生確率計算部は、特定のフローチェーンを集約して一つの要素として扱った時系列データを用いて、1階のマルコフ過程により前記ラベル間の遷移確率を計算する請求項8に記載の異常通信検知装置。
【請求項12】
前記発生確率計算部は、各フローのラベルをノード、ラベルからラベルへの遷移をエッジとしたグラフを作成することで、当該グラフから時系列のチェーンを抽出し、前記特定のフローチェーンとして定義する請求項11に記載の異常通信検知装置。
【請求項13】
前記発生確率計算部は、前記エッジを有向エッジとし、ラベルの順序を特定したチェーンを抽出し、前記特定のフローチェーンとして定義する請求項12に記載の異常通信検知装置。
【請求項14】
請求項1から請求項5のいずれかに記載の異常通信検知装置としてコンピュータを機能させるための異常通信検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークにおける異常通信を検知するための装置及びプログラムに関する。
【背景技術】
【0002】
従来、通信の異常検知においては、主にパケット又はフローといった形式の通信データが使用される。
パケットを用いた手法では、通信内容の詳細な分析が可能であるため検知効率が高い一方で、データ容量が大きくなる傾向があり、大量の通信が行われる環境においては処理速度などが問題となる。
また、フローは、複数のパケットを集約したデータであり、パケットに比べてデータサイズが小さくなるため大量の通信が行われる環境においても扱いやすい利点がある。例えば、非特許文献1では、単一フローの量的変数を入力として、Deep Neural Network(DNN)を用いた異常通信検知モデルを学習する手法が提案されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献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】H. Qiao, T. Wang, P. Wang, S. Qiao and L. Zhang, "A Time-Distributed Spatiotemporal Feature Learning Method for Machine Health Monitoring with Multi-Sensor Time Series," Sensors 18, no. 9: 2932, 2018.
【非特許文献3】J. Li, S. Chen, K. Zhang, G. Andrienko and N. Andrienko, "COPE: Interactive Exploration of Co-Occurrence Patterns in Spatial Time Series," in IEEE Transactions on Visualization and Computer Graphics, vol. 25, no. 8, pp. 2554-2567, 2019.
【非特許文献4】C. Faloutsos, Y. Sakurai and M. Yamamuro, "Stream Processing under the Dynamic Time Warping Distance," Computer Science, 2007.
【非特許文献5】A. Muscariello, G. Gravier and F. Bimbot, "Variability tolerant audio motif discovery," in International Conference on Multimedia Modeling, Springer, 2009, pp. 275-286.
【非特許文献6】B. Rajchel, J. V. Monaco, G. Singh, A. Hu, J. Shingleton and T. Anderson, "Temporal Behavior in Network Traffic as a Basis for Insider Threat Detection," 2020 IEEE Symposium Series on Computational Intelligence (SSCI), 2020, pp. 1427-1434.
【発明の概要】
【発明が解決しようとする課題】
【0004】
異常通信検知の対象としてサイバー攻撃を想定した場合、DDoSやポートスキャンなど、正常通信と比べてフローの統計量に変化が出やすいサイバー攻撃は、古典的な機械学習手法(例えば、k-近傍法、One-Class SVMなど)で検知可能なことが多い。
一方、フローを用いる場合は、複数のパケットの情報を集約した統計情報を用いて異常検知が行われるため、パケットを用いた場合に比べて検知精度が低くなることがある。例えば、Webの脆弱性を狙った攻撃など、統計量だけでは正常通信と区別が難しい攻撃は検知が難しく、このような特徴を持つサイバー攻撃を検知対象とした異常検知手法が望まれている。
【0005】
このようなサイバー攻撃において、例えば、同一のマルウェア又は同一の攻撃手法であれば、決まったフローチェーンを生成し、複数のIoTデバイスに対して被害が及ぶ、という特徴が見られる。そこで、複数の時系列データを利用した異常検知が必要となる。
ここで、フローチェーンとは、複数の連続するフローで構成されたフローのまとまりとする。
【0006】
例えば、非特許文献2では、複数のセンサを用いて故障などの異常を検知する手法が提案されている。この手法では、convLSTMと呼ばれる画像分析で用いられる畳み込み処理を、時系列分析で用いられるLSTMに適用したモデルが使用されている。これにより、複数センサのデータから総合的に異常が判定される。
しかしながら、この手法は、全てのセンサが同じタイミングで異常を検知する状況を前提としており、サイバー攻撃を受けるタイミングがIoTデバイスごとに異なることが多い異常通信の検知に活用することは難しかった。
【0007】
本発明は、統計量に変化が出にくいサイバー攻撃による異常通信を効率的に検知できる異常通信検知装置及び異常通信検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る異常通信検知装置は、複数のデバイスから送信されるフローの時系列データから共起パターンを抽出する共起パターン抽出部と、抽出された前記共起パターンの発生確率を計算する発生確率計算部と、実際の共起パターンの発生数と、当該共起パターンの発生確率から計算される発生数の期待値との差が閾値を超えた場合に、異常が発生していると判定する異常判定部と、を備える。
【0009】
前記複数のデバイスは車両であり、共通のサーバを通信先とした車両通信のフローを対象としてもよい。
【0010】
前記共起パターン抽出部は、DTW(Dynamic Time Warping)における距離行列の要素のうち、閾値未満の要素が連続する部分行列を抽出し、当該部分行列にDTWを適用してもよい。
【0011】
前記共起パターン抽出部は、前記距離行列の中で、前記閾値未満の要素が不連続となっている箇所において、閾値以上の要素からなる所定数の行又は列を無視することで前記閾値未満の要素が連続する場合に、当該行又は列を削除した部分行列を抽出してもよい。
【0012】
前記共起パターン抽出部は、DTW(Dynamic Time Warping)における距離行列において、DTWで計算される全ての経路の中で閾値未満の要素が連続している箇所を起点とし、隣接する閾値未満の要素を含めて前記共起パターンとして抽出してもよい。
【0013】
前記共起パターン抽出部は、前記複数のデバイスのうち一部のデバイスの時系列データから共起パターンを抽出した後、当該共起パターンを、所定のアルゴリズムにより他のデバイスの時系列データから探索してもよい。
【0014】
前記共起パターン抽出部は、前記所定のアルゴリズムとしてSPRINGを使用してもよい。
【0015】
前記発生確率計算部は、前記発生確率を、共起パターンの先頭要素に付与されているラベルの発生確率、各ラベル内で所定のパラメータが所定の範囲に入る確率、及びラベル間の遷移確率から計算してもよい。
【0016】
前記発生確率計算部は、前記ラベル間の遷移確率として、時系列の複数のラベルの列から一つのラベルへの遷移確率を計算してもよい。
【0017】
前記発生確率計算部は、時系列の複数のラベルの列を入力とした深層学習モデルによる一つのラベルの予測値を、前記ラベル間の遷移確率としてもよい。
【0018】
前記発生確率計算部は、特定のフローチェーンを集約して一つの要素として扱った時系列データを用いて、1階のマルコフ過程により前記ラベル間の遷移確率を計算してもよい。
【0019】
前記発生確率計算部は、各フローのラベルをノード、ラベルからラベルへの遷移をエッジとしたグラフを作成することで、当該グラフから時系列のチェーンを抽出し、前記特定のフローチェーンとして定義してもよい。
【0020】
前記発生確率計算部は、前記エッジを有向エッジとし、ラベルの順序を特定したチェーンを抽出し、前記特定のフローチェーンとして定義してもよい。
【0021】
本発明に係る異常通信検知プログラムは、前記異常通信検知装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0022】
本発明によれば、統計量に変化が出にくいサイバー攻撃による異常通信を効率的に検知できる。
【図面の簡単な説明】
【0023】
図1】実施形態の適用対象であるIoTデバイスの通信ネットワーク構成を例示する図である。
図2】実施形態における共起パターン抽出方法の基本となるDTWを説明するため、非特許文献4より引用した概念図である。
図3】実施形態における異常通信検知装置の機能構成を示すブロック図である。
図4】実施形態におけるトリミング法の概要を示す図である。
図5】実施形態における変異点検出法の概要を示す図である。
図6】実施形態における拡張されたトリミング法の概要を示す図である。
図7】実施形態におけるフローチェーンの発生確率の構成要素を示す図である。
図8】実施形態における無向グラフの作成方法を示す概念図である。
図9】実施形態における無向グラフからのフローチェーンの抽出方法を示す概念図である。
図10】実施形態におけるフローチェーンを集約した遷移行列の計算順序を示す概念図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態の一例について説明する。
本実施形態の異常通信検知方法は、複数のIoTデバイスが同時期にサイバー攻撃にさらされた場合や、マルウェアに感染したIoTデバイス群が同時期に特定のサーバに攻撃を仕掛ける場合において、サイバー攻撃の通信パターンを利用することで異常通信を検知する手法である。
本実施形態では、(1)デバイス間における共起パターン抽出、(2)抽出した共起パターンの異常度計算、(3)異常度を用いた異常検知、の手順で異常通信を検知する。
【0025】
図1は、本実施形態の適用対象であるIoTデバイスの通信ネットワーク構成を例示する図である。
例示した車両通信ネットワークでは、インターネットにつながった複数のデバイス(車両)から、何らかのアクションによってプロキシサーバへ接続する通信を、プロキシサーバがデータキャプチャする。
なお、車両からプロキシサーバへのアクセス情報は全て取得でき、取得したパケットデータは、IPFIX(IP Flow Information Export)などのフローデータへ変換されているものとする。
【0026】
フローデータには、送信元及び送信先のIPアドレス及びポート番号の他、通信パケット数、通信データ量、通信時間といった統計情報が格納されている。また、各フローには、どのアプリケーションと通信したのかを表すラベルか、又はフローの変数を用いてクラスタリングされたクラスタ番号など、何らかのラベリングがされているものとする。
【0027】
なお、本実施形態は、複数の送信元デバイス(図1の車両群に相当)からある特定の一つの送信先デバイス(図1のプロキシサーバに相当)への通信が発生する構造を、全体又は部分的に持つ一般的な通信ネットワークにおいても同様に適用可能である。
例えば、PC又はスマートフォンなどの端末から特定のアプリケーション(ネットサービス)にアクセスする通信が挙げられ、これは、図1の車両通信ネットワークにおける車両群を端末群に置き換えたものと同形である。
【0028】
本実施形態で検知対象とするサイバー攻撃のうち、例えば個人情報の取得を狙う攻撃の場合、同じ手法を用いて多くのIoTデバイスに侵入し、被害が拡大する。また、例えばボットネットの構築においては、多数の端末が必要である点から、複数のIoTデバイスに同様の攻撃が同時期に行われる。したがって、複数IoTデバイスの通信データを対象として、共起しているフローチェーンを抽出することで異常通信の検知性能を向上できると考えられる。
ここで、共起とは、複数の時系列データに対して、任意の期間において類似した波形が発生している状態を指す。
【0029】
様々な分野において、複数の時系列データにおける共起パターンの抽出は重要なタスクである。
例えば、論理演算を用いた共起パターンの抽出手段として、経済統計や環境科学分野向けに開発された共起パターンの可視化ツールの一種であるCOPE(Co-Occurrence Pattern Exploration)がある(例えば、非特許文献3参照)。このツールでは、時系列データXを入力すると、論理演算を用いて他の時系列データの中でXに類似している箇所を抽出することができる。
しかしながら、この手法では、比較する時系列データの時間幅を指定する必要があるため、共起しているフローチェーンの時間幅が自明でない異常通信検知には適さない。また、この手法ではデータ点の比較にカテゴリデータであるラベルを用いており、通信量又は通信時間といった連続的な量を扱う異常通信検知には適さない。
【0030】
また、IoTデバイスの通信においては、フローの発生タイミング、頻度、個数がデバイスごとに異なり、異常通信の発生頻度もデバイスごとに異なるという特性から、単純な時系列の比較はできない。
そこで、本実施形態では、DTW(Dynamic Time Warping)を応用した共起パターンの抽出方法を用いる。
DTWは、波形のサンプリング数又はサンプリングタイミングが異なる波形同士を比較する際に有用な手法である。
【0031】
図2は、本実施形態における共起パターン抽出方法の基本となるDTWを説明するため、非特許文献4より引用した概念図である。
ここでは、波形X=[x,…,x]と波形Y=[y,…,y]との比較を考える。
【0032】
まず、X及びYの全てのデータ点において距離dt,i=|x-y|(1≦t≦n,1≦i≦m)が計算される。
次に、このn×m個の距離の和が最も短くなるように(x,y)から(x,y)に続く連続的な経路が算出される。このときに計算された距離をタイムワーピング距離といい、その値が波形の類似度と定義される。
【0033】
左側の図は、XとYとで比較しているデータ点の組み合わせを示している。また、右側の図は、n×m個の距離を要素とする距離行列を表し、黒く塗りつぶされている経路が距離の和が最小になる経路である。
【0034】
また、このDTWを拡張して、長い時系列データの中から任意の短い時系列データと類似している箇所を抽出するSPRINGと呼ばれる手法や、2つの長い時系列データの中から類似している箇所を抽出するSLN-DTW(Segmental Locally Normalized DTW)と呼ばれる手法がある。
【0035】
DTWにおいて始点は(x,y)に固定されていたのに対して、SPRINGでは、始点を(x,y)上の様々な位置から効率的に計算するように拡張されている。これにより、波形Xにおいて波形Yと類似している箇所が複数抽出される。ただし、この手法では、予め抽出対象となる波形Yを指定する必要があるため、波形の形が自明でない異常通信検知に対しては適用できない。
【0036】
また、Yの一部を抜き出したセグメントごとにSPRINGを適用することで網羅的に共起箇所を抽出する手法も提案されている(例えば、非特許文献4参照)。
具体的には、Yがm個のデータ、Xがn個のデータを持っているとして、YのセグメントY[s,e](1≦s<e≦m)でSPRINを実行する場合を考える。セグメントのパターンは、sとeの組み合わせ数なので(m-m)/2個、各セグメントにおけるタイムワーピング距離の平均的な計算量は(m/2)×nと考えると、全体の計算量はO(mn)となる。複数デバイスでの共起パターンを抽出する際は、この計算を各デバイス間で行うため、デバイス数をNとすると、全ての計算量は×O(mn)となる。
このように、SPRINGは、漏れなく類似箇所を抽出できる一方で、計算量が膨大になり、現実的な実行時間にならない。
【0037】
SLN-DTWは、Y軸方向にスライスした領域において類似箇所のセグメントを抽出し、最後にそれらのセグメントを結合することで連続した類似箇所を抽出する手法である(例えば、非特許文献5参照)。連続する3つのスライスは、上から始点探索領域、経路構築領域、終点探索領域に分けられ、これらの3つの領域を上から順にスライドさせていくことで全領域におけるセグメントが獲得される。セグメントの始点及び終点の定義には、地点(i,j)におけるタイムワーピング距離を通過したデータ点の数で割った標準化タイムワーピング距離Wijを用いており、地点(i,j)の距離dijがWijよりも小さい地点を始点、Wijの増加率が10%を超える箇所を終点としている。
【0038】
この手法における各スライスの計算量を考える。ここで、スライスの幅はL(<<m)とする。
始点探索の計算量は、標準化タイムワーピング距離の計算でn×Lである。
経路構築の計算量は、始点ごとに再度タイムワーピング距離を計算し直す必要があるので、(始点の数n)×(残りのX軸方向のマス)×Lとなり、(残りのX軸方向のマス)は始点がランダムに発生することを考えると、平均して0.5nなので、n×0.5n×Lである。
終点探索の計算量についても、始点ごとに計算が行われるので、n×(残りのX軸方向のマス)×L=n×0.5n×Lである。
【0039】
最後に、スライスの数はm/Lなので、全体の計算量は、(m/L)×{(n×L)+(n×0.5n×L)+(n×0.5n×L)}=(m×n)+(m×n×0.5n×2)である。IoTデバイスの通信においては、地点(i,j)における距離dijの値は、通信内容によって極端に小さい場合や大きな場合が混在しており、この手法の始点の定義では、始点が大量に生成され、オーダとしてはn=O(n)となる。したがって、全体の計算量のオーダは、O(mn)となる。
このように、SLN-DTWでは、SPRINGに比べて計算量を抑えることが可能だが、まだ十分ではなく、また、見落としが発生する可能性が高くなる。
【0040】
本実施形態では、DTWを応用した後述の手法により、さらに計算量を抑えつつ、網羅的に共起パターンを抽出する。
【0041】
次に、抽出した共起パターンの異常度計算では、通信内容、すなわちフローに付与されたラベルの遷移確率を算出することで、この遷移確率を異常度の計算に用いることが考えられる。
例えば、非特許文献6では、k-Means法を用いてWebサーバなどホストの状態を分類し、クラスタの遷移確率から異常検知を行う手法が提案されている。この手法では、遷移確率の計算はマルコフ過程を前提としている。マルコフ過程では、時刻t+1における状態は、時刻tにのみ依存し、それ以前の情報にはよらないと仮定しており、次式で表される(以下、1階のマルコフ過程という)。
P(Xt+1|X,Xt-1,…,X)=P(Xt+1|X
【0042】
この遷移確率を用いることで、より確率の低い遷移パターンの異常度が高いと判断できる。ただし、この手法では、1階のマルコフ過程を満たさない通信パターンが含まれる場合に、正しく異常度を計算できない。
つまり、抽出した共起パターンの異常度を計算するためには、その共起パターンが正常通信でよく見られるパターンなのか、ほとんど見られないパターンなのかを正しく評価する必要がある。しかしながら、IoTデバイスの通信には、アプリケーションの仕様などによる決まったフローチェーンが含まれており、このフローチェーンの箇所は1階のマルコフ過程を満たさない。この結果、遷移確率を正しく計算できず、異常度も正しく計算できない問題が発生する。
そこで、本実施形態では、後述の手法により、遷移確率をより正しく計算する。
【0043】
図3は、本実施形態における異常通信検知装置1の機能構成を示すブロック図である。
異常通信検知装置1は、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイスなどを備えた情報処理装置であり、通信ネットワークから取得したフローデータを入力として、プロキシサーバを経由したアプリケーションサーバへの不正アクセス(異常通信)を検知する。
【0044】
制御部10は、異常通信検知装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
具体的には、制御部10は、共起パターン抽出部11と、発生確率計算部12と、異常判定部13とを備える。
【0045】
記憶部20は、ハードウェア群を異常通信検知装置1として機能させるための各種プログラム、及び各種データなどの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)などであってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(異常通信検知プログラム)を記憶し、さらに、処理対象として受信したフローデータ、及び異常通信検知のための各種の学習モデルを構成するパラメータなどを記憶する。
【0046】
共起パターン抽出部11は、複数のデバイスから送信されるフローの時系列データから共起パターンを抽出する。
具体的には、共起パターン抽出部11は、共起パターンの抽出方法について、トリミング法と変異点検出法の2つのいずれかを用いることができる。
【0047】
[共起パターンの抽出方法1:トリミング法]
トリミング法において、共起パターン抽出部11は、次の手順により、DTWにおける距離行列の要素のうち、閾値未満の要素が連続する部分距離行列を抽出し、この部分距離行列にDTWを適用する。
【0048】
ステップ1: 共起パターン抽出部11は、複数のIoTデバイスのフローデータの中から2つのIoTデバイスを選択する。
すなわち、共起パターン抽出部11は、送信元IPアドレスと送信先IPアドレスの組によって区別される各デバイス間、又はデバイスとサーバ間のフローデータにおいて、任意の2つの組における時系列のフローデータを取得する。ただし、2つの組として同じ組のフローデータが用いられてもよく、この場合、異なる時間における共起パターンを探索するものとする。
【0049】
このとき、任意の時間幅における送信元IPアドレスと送信先IPアドレスの組ごとのフローデータの集合をF,Fとする。各フローをf α∈Fα(α∈{1,2})とすると、F=(f ,f ,…,f )であり、Fに含まれるフロー数を|F|とすると、|F|=nである。
【0050】
ステップ2: 共起パターン抽出部11は、F,Fのそれぞれのフローの変数を用いて、F,Fの間の全てのフロー間で距離を計算する。
すなわち、計算量は|F|×|F|であり、距離は、ユークリッド距離、マンハッタン距離、マハラノビス距離など、距離の公理を満たすものを使用できる。例えば、フローデータのパケット数をfi,packet α、通信データ量をfi,byte αとすると、ユークリッド距離di,j α,βは次のように表される。
【数1】
【0051】
また、共起パターン抽出部11は、各変数のスケールの違いを抑えるために、標準化又は正規化された変数を用いたり、計算された距離をシグモイド関数の引数とすることで極端に大きな距離を持つ要素の影響を抑えたりしてもよい。
このようにして計算された|F|×|F|行列を、距離行列と呼ぶ。
【0052】
ステップ3: 共起パターン抽出部11は、共起パターンの始点候補及び終点候補を抽出する。
すなわち、共起パターン抽出部11は、ステップ2で計算した距離をもとに、共起パターンの始点及び終点の候補となるデータ点を次の手順で抽出する。
【0053】
図4は、本実施形態におけるトリミング法の概要を示す図である。
ここで、グリッドの図は距離行列を表し、各マスは行列の要素(フロー間の距離)を表すものとする。
【0054】
(1)共起パターン抽出部11は、各行列要素のうち、所定の閾値より小さな距離である行列要素を抜き出す。
(2)共起パターン抽出部11は、周囲に閾値未満の行列要素がない閾値未満の行列要素(図中の×印の孤立マス)を除外する。
(3)共起パターン抽出部11は、行列の列方向と行方向に(2)の結果を射影する。このとき、各射影成分は、一つでも閾値未満の要素があれば条件を満たす成分とみなす。
(4)共起パターン抽出部11は、射影成分のうち条件を満たす要素と満たさない要素との境界で距離行列を分割する。
(5)共起パターン抽出部11は、分割した距離行列(以下、部分距離行列という)のうち、閾値未満の行列要素を含む部分距離行列を抜き出す。これにより、閾値未満の要素が連続する部分行列が抽出される。
(6)共起パターン抽出部11は、射影成分が全て閾値未満の成分となるまで(3)~(5)を繰り返す。
(7)共起パターン抽出部11は、残った部分距離行列のうち、一番左の列又は一番下の行の閾値未満の要素を始点の候補、一番右の列又は一番上の行の閾値未満の要素を終点の候補とする。ただし、左上角及び右下角の要素を始点又は終点とすると、列又は行を移動しない経路しか取れないため、これらは始点及び終点の候補から除外する。
【0055】
ステップ4: 共起パターン抽出部11は、ステップ3で抽出された部分距離行列において、タイムワーピング距離を計算する。
タイムワーピング距離は、次のように定義される。
i,j=di,j+min(fi,j-1,fi-1,j,fi-1j-1
0,0=0
i,0=f0,j=∞
ここでdi,jは、部分距離行列における距離行列の要素とし、始点における座標を(i,j)=(1,1)とする。
【0056】
このタイムワーピング距離は、各始点候補と終点候補の組み合わせ間で計算される。そして、始点から終点までのタイムワーピング距離を経路のマスの数で割った値が最小となる、すなわち経路上の各要素の距離の平均が最小となる一番尤もらしい経路を代表経路とする。
また、代表経路のタイムワーピング距離を代表経路のマスの数で割った値を、その始点と終点のペアにおけるタイムワーピング距離の代表値とする。ただし、始点と終点の組み合わせを構成する際には、行方向及び列方向の両方に対して所定のマスだけ離れている事を要求する。
【0057】
共起パターン抽出部11は、ステップ1~4の工程を各IoTデバイス間で行い、それぞれで代表経路の抽出を行う。そして、共起パターン抽出部11は、代表経路同士を比較し、一定数以上のIoTデバイス間において確認される代表経路を共起パターンであるフローチェーンとする。
【0058】
[共起パターンの抽出方法2:変異点検出法]
変異点検出法において、共起パターン抽出部11は、次の手順により、距離行列において、DTWで計算される全ての経路の中で閾値未満の要素が連続している箇所を起点とし、隣接する閾値未満の要素を含めて共起パターンとして抽出する。
【0059】
ステップ1: 共起パターン抽出部11は、DTWにより共起パターンの候補経路を抽出する。
【0060】
図5は、本実施形態における変異点検出法の概要を示す図である。
ここで、グリッドの図は距離行列を表し、各マスは行列の要素(フロー間の距離)を表すものとする。また、網掛けのマスは、共起パターンに該当する要素とする。
【0061】
DTWでは、2つの時系列データのタイムワーピング距離を計算する際に、行列の左下から右上に向かって枝分かれする形で全てのマスにおけるタイムワーピング距離を計算する。このとき、ある経路が共起パターンの要素に到達した場合、共起パターンの該当箇所に沿って経路が構成される可能性が高い。
この場合、共起パターンの該当箇所における距離di,jは十分に小さいと考えられるため、共起パターン上の経路では距離の累積和の増加が小さくなる(図5(B)の経路2、網掛けの箇所)。したがって、共起パターン抽出部11は、距離の累積和の増加が閾値よりも小さい区間を共起パターンの候補経路として抽出できる。
【0062】
ステップ2: 共起パターン抽出部11は、候補経路を含む全体の経路における始点を探索する。
抽出された候補経路の始点は、必ずしも共起パターンの始点と一致しないため、共起パターン抽出部11は、候補経路を逆に(左下方向へ)たどることで始点を見つけ出す。具体的には、候補経路の終点から開始し、左、左下、下の中から最も距離di,jの小さいマスを選んで経路を構成していく。このとき、距離di,jが閾値以上となった場合に、共起パターン抽出部11は、その手前の地点を共起パターンの始点とする。
【0063】
共起パターン抽出部11は、ステップ1~2の工程を各IoTデバイス間で行い、それぞれで経路を抽出する。そして、共起パターン抽出部11は、経路同士を比較し、一定数以上のIoTデバイス間において確認される経路を共起パターンであるフローチェーンとする。
【0064】
トリミング法又は変異点検出法によって、共起パターンの効率的な抽出が可能であるが、一部の通信においては、共起パターンの一部欠損、又は無関係な通信の混入の可能性がある。また、デバイス数の多さからくる膨大な計算量が課題となる場合がある。
共起パターン抽出部11は、これらの問題を軽減するため、次の手法(オプション1及び2)のいずれかを用いてもよい。
【0065】
[オプション1:共起パターンの一部欠損又は無関係な通信の混入に対する対処]
通信環境によっては、本来は連続的につながっているべき一つの共起パターンが分断されてしまう場合がある。
例えば、複数のプロキシサーバの間にロードバランサが介入し通信を振り分けるシステムが構築されている場合、一つのプロキシサーバのみのデータをキャプチャしていると、異なるプロキシサーバに割り当てられた通信内容は欠損してしまう。また、共起パターンのフローチェーンの最中に無関係な通信が発生する場合も考えられる。
このような場合、共起パターンが分断されてしまうため、前述のトリミング法では、一つの共起パターンが2つ以上に分割されてしまう。
【0066】
そこで、共起パターン抽出部11は、トリミング法を拡張し、距離行列の中で、閾値未満の要素が不連続となっている箇所において、閾値以上の要素からなる所定数の行又は列を無視することで閾値未満の要素が連続する場合に、これらの行又は列を削除した部分距離行列を抽出してもよい。
【0067】
図6は、本実施形態における拡張されたトリミング法の概要を示す図である。
本来の共起パターンに対して、無関係な通信が混入し、この例では、距離が閾値以上の要素のみの行が挿入されている。
前述のトリミング法では、この無関係な行により部分距離行列が分割され、本来の共起パターンの一部のみが抽出されている。
【0068】
この問題に対処するために、共起パターン抽出部11は、閾値未満のマスがない行又は列を、所定の数の行又は列(例えば、1行)だけ削除した後の距離行列を用いて共起パターンを抽出する。
これにより、共起部分を正しく抽出することが可能である。ただし、無関係な共起パターンが結合してしまう可能性もあるため、これは、共起頻度が少ない場合に適した手法である。
【0069】
[オプション2:デバイス数の多さからくる膨大な計算量に対する対処]
対象のIoTデバイス数が多い場合は、トリミング法又は変異点検知法でも計算量が膨大になる場合がある。
【0070】
そこで、共起パターン抽出部11は、トリミング法又は変異点検知法の適用範囲を限定した次の手順により、複数のデバイスのうち一部のデバイスの時系列データから共起パターンを抽出した後、抽出した共起パターンを、所定のアルゴリズム(例えば、SPRING)で他のデバイスの時系列データから探索してもよい。
【0071】
(1)共起パターン抽出部11は、いくつかのIoTデバイスをランダムに選択する。
(2)共起パターン抽出部11は、選択したIoTデバイス間において、トリミング法又は変異点検知法を用いて網羅的に共起パターンを抽出する。
(3)共起パターン抽出部11は、例えばSPRINGを用いて、(2)で抽出した共起パターンを他のIoTデバイスでも探索する。
【0072】
この共起パターンの探索手順は、大きく2つの段階で構成されており、(1)~(2)で、少量のIoTデバイスから共起パターンを抽出し、(3)で、抽出した共起パターンを他のIoTデバイスにおいても探索している。
なお、(3)で使用されるSPRINGは、探索する共起パターンが指定されていれば比較的少ない計算量で処理が可能であり、全体の計算量を抑えることができる。
【0073】
この手法では、(2)で抽出されなかった共起パターンの見逃しの可能性はあるが、(2)で抽出された共起パターンに対しては、IoTデバイス数の増加で統計誤差が抑えられるため、正常/異常判定の精度を向上させることができる。
【0074】
発生確率計算部12は、共起パターン抽出部11により抽出された共起パターンのフローチェーンの発生確率を計算する。ここで、発生確率が低いほど、該当のフローチェーンの異常度が高いといえる。
【0075】
抽出したフローチェーンの発生確率は、次の3つの要素で決まる。
・フローチェーンの先頭フローが持つラベルの発生確率
・各ラベル内で、パラメータxがk-Δk<x<k+Δkである確率
・ラベル間の遷移確率
ここで、フローは、アプリケーション名又はクラスタリング番号などのラベルで識別されているとする。
【0076】
図7は、本実施形態におけるフローチェーンの発生確率の構成要素を示す図である。
P(X)はラベルXを持つフローの発生確率、P(x|X)はラベルXを持つフローのうち、パラメータxがある幅の範囲に収まる確率、P(X→Y)はラベルXを持つフローの次がラベルYを持つフローとなる確率である。
【0077】
フローチェーンの先頭フローが持つラベルの発生確率P(X)は、予め取得してあるデータを用いて、全体のデータのうちで該当のラベルを持ったフローが占める割合で計算される。
【0078】
P(x|X)の計算方法としては、割合として計算する方法と、ガウス分布又はポアソン分布などの分布を仮定した計算方法の2つが挙げられる。
割合として計算する方法では、発生確率計算部12は、ラベルXを持つフロー数を分母とし、パラメータxが所定の幅に入っているフロー数を分子とした時の割合を計算する。
分布を仮定した計算方法では、発生確率計算部12は、ラベルXにおけるパラメータxの実際の分布を所定の分布で近似し、xが所定の範囲である確率を計算する。
【0079】
ラベル間の遷移確率P(X→Y)に関しては、次の3つの計算手法が挙げられ、発生確率計算部12は、いずれかの計算手法を適宜選択してよい。
【0080】
[遷移確率の計算手法1:N階のマルコフ過程を前提とした計算]
一般的に、1階のマルコフ過程を前提とした遷移行列は、時刻t-1における状態から時刻tにおける状態に遷移する確率を2次元行列で表現する。ここでは、これを1階のマルコフ過程の遷移行列と呼ぶ。
しかしながら、時刻tの状態への遷移確率は、時刻t-1の情報だけでは正しく計算できないケースが存在する。例えば、車両アプリケーションにおけるエンジン起動通知の通信を考えると、エンジン起動通知の通信が時刻t-1で発生した場合、時刻tではナビゲーション、天気、オーディオ関連など、様々な通信が考えられる。ここで、エンジン起動通知の前の時刻t-2において車両の駐車位置取得の通信や、ハザードランプを数回点滅させるなどのリモート操作の通信が発生していたとすると、ユーザは遠方の慣れない土地の広い駐車場にいる場合が考えられる。この場合は、ナビゲーションを使用する確率が普段より高くなるので、P(時刻tでナビゲーションの通信|時刻t-1でエンジン起動通知)<P(時刻tでナビゲーションの通信|時刻t-1でエンジン起動通知,時刻t-2でリモートでの操作)となるため、1階のマルコフ過程を満たさない。
【0081】
このようなケースに対応するために、発生確率計算部12は、次の式で表されるような、時刻t-Nから時刻t-1までの状態に基づいて時刻t-1の状態から時刻tの状態に遷移する確率を計算するN階のマルコフ過程を採用する。
P(X|Xt-1,…,X)=P(X|Xt-1):1階
P(X|Xt-1,…,X)=P(X|Xt-1,Xt-2):2階
P(X|Xt-1,…,X)=P(X|Xt-1,・・・,Xt-N):N階
【0082】
このとき、遷移行列は時刻t-2から時刻t-Nまでのラベルごとに、別々に遷移行列を用意する必要がある。すなわち、(ラベルの種類数)N-1個の遷移行列を計算しなければならないため、この手法は、十分な量の時系列データを用意できる場合に用いられる。
【0083】
[遷移確率の計算手法2:既知のフローチェーンを集約する前処理を適用した計算]
N階のマルコフ過程を用いた計算手法は大量のデータが必要であるという課題を解決するために、発生確率計算部12は、前処理として、1階のマルコフ過程が成立するか否かに関わらず全てのフローチェーンを予め集約し、フローチェーンを単体フローと同等に扱ってもよい。
これにより、1階のマルコフ過程を前提とした遷移行列によっても十分な精度を達成できる。具体的には、この手法は次の手順(1)~(2)の2段階で構成される。
【0084】
(1)正常通信に含まれる既知のフローチェーンの抽出
発生確率計算部12は、アプリケーションの仕様などによって生成される特定のフローチェーンを抽出する。
具体的には、まず、発生確率計算部12は、各フローの遷移が偶然に発生した遷移か何らかの関連があり発生した遷移かを、無向グラフを用いて調査する。
【0085】
図8は、本実施形態における無向グラフの作成方法を示す概念図である。
まず、発生確率計算部12は、送信元IPごとにフローを分別する(i)。
続いて、発生確率計算部12は、各フローのラベルをノード、あるラベルから別のラベルへの遷移を無向エッジとしてグラフを作成する(ii)。
さらに、発生確率計算部12は、送信元IPごとに作成された複数のグラフのうち、少なくとも一部のラベルが共通するグラフ同士を統合する(iii)。
次に、発生確率計算部12は、閾値Xを定め、エッジ(フローの遷移)のうち、出現回数がX回以下のエッジを削除する(iv)。
続いて、発生確率計算部12は、エッジを含まない孤立したノードを削除する。
【0086】
図9は、本実施形態における無向グラフからのフローチェーンの抽出方法を示す概念図である。
発生確率計算部12は、図8に示したようにして作成された無向グラフを用いて、次の手順によりフローチェーンを抽出する。
【0087】
まず、発生確率計算部12は、送信元IPと対応するグラフとを一つずつ選択する。
次に、発生確率計算部12は、選択した送信元IPの時系列の複数のフローから、選択したグラフに含まれるラベルを持つフローのみを抽出する(i)。
発生確率計算部12は、抽出したフローのうち、連続しているフローをアプリの仕様などによって発生する意味のあるフローチェーンの候補とする(ii)。
さらに、発生確率計算部12は、全ての送信元IP及びグラフにおいて、意味のあるフローチェーンの候補を抽出すると、これらの候補のうち、出現頻度が単位時間当たりN回以上のフローチェーンを既知の特定のフローチェーンとして扱う。
【0088】
なお、ここでは、無向グラフを用いてフローチェーンを抽出する方法を示したが、発生確率計算部12は、有向エッジを用いて、ラベルの順序を特定したチェーンを抽出してもよい。
【0089】
(2)遷移行列の計算
発生確率計算部12は、(1)で抽出した既知のフローチェーンの情報を用いて、遷移行列を計算する。
【0090】
図10は、本実施形態におけるフローチェーンを集約した遷移行列の計算順序を示す概念図である。
なお、図中の各英字一文字を、各フローにおけるラベルとする。
例えば、「aca」が既知のフローチェーンであり、1階のマルコフ過程を満たさないチェーンであるとする。発生確率計算部12は、この「aca」をまとめて、他と重複しない新しいラベル「A」を付与する。
【0091】
発生確率計算部12は、この処理を全ての既知のフローチェーンに対して行った後、新しく付与したラベルを含めて遷移行列を計算する。
この遷移行列を用いると、例えば「bacag」は「aca」の部分が1階のマルコフ過程を満たさないので正しく遷移確率を計算できないが、「bAg」は1階のマルコフ過程を満たすので正しく遷移確率が計算できる。
【0092】
ここで、本手法の遷移行列は、要素数が(ラベルの種類数+新しく付与されたラベルの種類数)の一つである。一方で、前述したN階のマルコフ過程を前提とした遷移確率行列では、(ラベルの種類数)個の要素を持つ遷移行列が(ラベルの種類数)N-1個必要であり、Nに対して指数的に行列の要素数が増加する。
全ての要素において高い精度で遷移確率を算出するためには、要素数が多いほどデータ量が必要である。したがって、本手法により要素数が抑えられ、より少ないデータ量で高い精度の遷移確率計算が可能となる。
【0093】
[遷移確率の計算手法3:時系列を扱う深層学習モデルを用いた計算]
発生確率計算部12は、深層学習を用いて遷移確率を計算してもよい。
深層学習モデルの中でも、時系列データを取り扱うモデルとして、transformer、LSTM,RNN,GRUなどが知られている。発生確率計算部12は、これらの時系列を扱う手法を用いて、時刻1~t-1までのフローのラベルから、時刻tにおけるフローのラベルを予測するタスクを解くモデルを学習する。モデルの出力はラベルの遷移確率とする。
この手法では、1階のマルコフ過程を前提としていないため、学習に十分な量のデータがあれば高い精度で遷移確率を計算できる。
【0094】
異常判定部13は、発生確率計算部12により計算されたフローチェーンの発生確率を用いて異常通信を検知する。
任意の期間において異常通信が発生している場合には、本来期待されるフローチェーンの発生数よりも多くフローチェーンが観測される。したがって、異常判定部13は、実際の共起パターンのフローチェーンの発生数と、この共起パターンの発生確率から計算される発生数の期待値とを比較し、実際の発生数が期待値よりも有意に大きい場合に異常通信が発生していると判定する。
【0095】
なお、発生数の期待値は、解析対象期間におけるフローチェーンの総数に発生確率を乗じた値であるが、フローチェーンの総数は、フローの総数で代用されてもよい。
【0096】
本実施形態によれば、異常通信検知装置1は、複数のデバイスから送信されるフローの時系列データから共起パターンを抽出し、抽出された共起パターンの発生確率を計算することで、実際の共起パターンの発生数と、共起パターンの発生確率から計算される発生数の期待値との差が閾値を超えた場合に、異常通信が発生していると判定する。
複数のIoTデバイスにおいて確認される共起的なフローチェーンは、アプリの仕様などよって決まっている特定のフローチェーンか、又はサイバー攻撃によるフローチェーンであると考えられる。また、サイバー攻撃由来のフローチェーンの混入によって、そのフローチェーンの発生確率は正常時よりも高くなる。したがって、共起部分を抜き出すことによって効率的にサイバー攻撃由来のフローチェーンを識別することができる。
すなわち、異常通信検知装置1は、従来は検知が困難であった統計量に変化が出にくいサイバー攻撃に対して、複数のIoTデバイスの共起パターンを抽出することによって、その共起パターンの発生頻度の変化から異常通信の発生を効率的に検知できる。
【0097】
異常通信検知装置1は、ラベル単位では異常とは判定されないようなフローチェーンに対しても、パラメータの値に制限をかけてフローチェーンの共起パターンの抽出及び発生確率の計算をすることで異常通信を判定することができる。
例えば、A→B→Dが正常通信においても高い発生確率のフローチェーンだったとしても、任意のパラメータxも含めて、例えばA(x=50~51)→B(x=120~121)→D(x=50~51)とすると、その発生確率はかなり低くなる。このとき、パラメータxの値を制限しても異常通信のほとんどを取得できる場合は、正常通信に対する異常通信の割合が高くなる。
したがって、パラメータxに対する制限を適切に設定することによって、異常通信検知装置1は、異常通信を精度良く検知できる。
【0098】
異常通信検知装置1は、トリミング法又は変異点検出法を用いて、パターンの前提を置かずに共起パターンを探索する。従来手法では、共起パターンを抽出する際に、考え得るパターンを総当たりで探索するため膨大な計算量が必要であったが、異常通信検知装置1は、より少ない計算量で共起パターンを抽出することができる。
【0099】
具体的には、トリミング法の場合、簡単のためn個のデータ点を持つ時系列Xとn個のデータ点を持つ時系列Yでの共起パターンの抽出を考えると、全ての行列要素の距離を算出する計算量がn×nである。さらに、射影の計算はビット演算(OR演算)を用いるとすると、行方向及び列方向それぞれにn回かかる。また、トリミングされた領域が例えば毎回50%として、これをN回繰り返すとすると、全体の計算量は、
n×n+2n+2(n×0.5)+2(n×0.5)+…
となり、オーダはO(n)である。
従来手法のSPRINGがO(n)、SLN-DTWがO(n)だったので、それぞれO(n)、O(n)だけ計算量を抑えることが可能である。
【0100】
また、変異点検出法の場合、まず、タイムワーピング距離の計算量がn×nでオーダはO(n)である。始点探索における計算量は、共起箇所の長さに依存し、O(共起箇所の長さ)程度となる。基本的に共起箇所が少ないことを考えると、O(共起箇所の長さ)<<O(n)であるので、全体の計算量はO(n)となる。
したがって、SPRING、SLN-DTWの計算量と比べると、それぞれO(n)、O(n)だけ計算量を抑えることが可能である。
【0101】
異常通信検知装置1は、N階マルコフ過程への拡張、1階のマルコフ過程でない箇所を集約することによって近似的に1階のマルコフ過程へとフローチェーンを変換する前処理、又は1階のマルコフ過程を前提としない深層学習による時系列を扱うモデルの使用によって、フローチェーンにおける遷移確率を計算する。
これにより、従来手法では1階のマルコフ過程を前提としていたため、1階のマルコフ過程ではない通信パターンを適切に扱えなかったところ、異常通信検知装置1は、遷移確率をより正確に計算できる。
【0102】
なお、本実施形態により、例えば、通信ネットワークにおける異常通信を精度良く検知できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0103】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0104】
異常通信検知装置1による異常通信検知方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0105】
1 異常通信検知装置
10 制御部
11 共起パターン抽出部
12 発生確率計算部
13 異常判定部
20 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10