(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024036800
(43)【公開日】2024-03-18
(54)【発明の名称】トラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法
(51)【国際特許分類】
H04L 43/0876 20220101AFI20240311BHJP
【FI】
H04L43/0876
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022141279
(22)【出願日】2022-09-06
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100180275
【弁理士】
【氏名又は名称】吉田 倫太郎
(74)【代理人】
【識別番号】100161861
【弁理士】
【氏名又は名称】若林 裕介
(72)【発明者】
【氏名】土江 康太
(57)【要約】
【課題】 単体装置でリアルタイム且つ効率的に通信トラフィックを析し異常通信を検出する。
【解決手段】 本発明は、トラフィック分析装置に関する。そして、本発明のトラフィック分析装置は、分析対象のネットワーク上を流れる通信トラフィックデータに基づく分析対象データについて、それぞれ異なる項目で分析して異常通信の有無の検知を行う検知処理部を1以上備える第1の分析手段と、1以上の検知処理部で異常通信有りと検知された分析対象データについて学習モデルを用いたAI分析処理を行うAI分析処理部により異常通信の有無を判定する第2の分析手段とを有することを特徴とするトラフィック分析装置。
【選択図】
図1
【特許請求の範囲】
【請求項1】
分析対象のネットワーク上を流れる通信トラフィックデータに基づく分析対象データについて、それぞれ異なる項目で分析して異常通信の有無の検知を行う検知処理部を1以上備える第1の分析手段と、
1以上の前記検知処理部で異常通信有りと検知された前記分析対象データについて学習モデルを用いたAI分析処理を行うAI分析処理部により異常通信の有無を判定する第2の分析手段と
を有することを特徴とするトラフィック分析装置。
【請求項2】
前記第2の分析手段に前記AI分析処理をさせる前記分析対象データの優先順位を決定する優先順位決定処理を行い、前記優先順位決定処理の結果に従った順序で、前記分析対象データについて前記第2の分析手段に前記AI分析処理を実行させる分析制御手段をさらに有することを特徴とする請求項1に記載のトラフィック分析装置。
【請求項3】
前記分析制御手段は、前記第1の分析手段で異常通信有りと検知された前記検知処理部に応じて前記分析対象データの優先順位を決定することを特徴とする請求項2に記載のトラフィック分析装置。
【請求項4】
前記分析制御手段は、前記優先順位決定処理で異常通信有りと検知した前記検知処理部の数に基づく第1の判断基準を考慮して優先順位を決定することを特徴とする請求項3に記載のトラフィック分析装置。
【請求項5】
前記分析制御手段は、前記通信トラフィックデータの送信元の属性ごとに優先すべき前記検知処理部を記述した機器種別毎優先情報を保持し、前記優先順位決定処理で異常通信有りと検知した前記検知処理部と前記機器種別毎優先情報との照合結果に基づく第2の判断基準も考慮して優先順位を決定することを特徴とする請求項4に記載のトラフィック分析装置。
【請求項6】
前記分析制御手段は、前記通信トラフィックデータの送信元に関わらず共通で優先すべき前記検知処理部を記述した機器共通優先情報を保持し、前記優先順位決定処理で異常通信有りと検知した前記検知処理部と前記機器共通優先情報との照合結果に基づく第3の判断基準も考慮して優先順位を決定することを特徴とする請求項5に記載のトラフィック分析装置。
【請求項7】
前記第2の分析手段は、前記分析対象データに係る前記通信トラフィックデータの送信元に応じた学習モデルを前記AI分析処理部に設定し、
前記分析制御手段は、前記AI分析処理部に設定する学習モデルの切替回数がより少なるような順序で前記分析対象データの優先順位を決定する
ことを特徴とする請求項2に記載のトラフィック分析装置。
【請求項8】
前記第1の分析手段で異常通信有りと検知した前記検知処理部と、前記第2の分析手段の判定結果の組合せに応じて異常通信の理由について推定する異常判定理由推定処理を行う異常判定理由推定処理手段をさらに備えることを特徴とする請求項1に記載のトラフィック分析装置。
【請求項9】
前記通信トラフィックデータの送信元ごとに、定常状態における前記通信トラフィックデータを取得し、取得した前記通信トラフィックデータに基づいて機械学習処理を行って学習モデルを取得する学習手段をさらに備えることを特徴とする請求項1に記載のトラフィック分析装置。
【請求項10】
コンピュータを、
分析対象のネットワーク上を流れる通信トラフィックデータに基づく分析対象データについて、それぞれ異なる項目で分析して異常通信の有無の検知を行う検知処理部を1以上備える第1の分析手段と、
1以上の前記検知処理部で異常通信有りと検知された前記分析対象データについて学習モデルを用いたAI分析処理を行うAI分析処理部により異常通信の有無を判定する第2の分析手段と
して機能させることを特徴とするトラフィック分析プログラム。
【請求項11】
トラフィック分析装置が行うトラフィック分析方法において、
前記トラフィック分析装置は、第1の分析手段と第2の分析手段とを有し、
前記第1の分析手段は、分析対象のネットワーク上を流れる通信トラフィックデータに基づく分析対象データについて、それぞれ異なる項目で分析して異常通信の有無の検知を行う検知処理部を1以上備え、
前記第2の分析手段は、1以上の前記検知処理部で異常通信有りと検知された前記分析対象データについて学習モデルを用いたAI分析処理を行うAI分析処理部により異常通信の有無を判定する
ことを特徴とするトラフィック分析方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、トラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法に関し、例えば、ネットワークを流れる通信トラフィックを収集・分析し、サイバー攻撃等の異常通信を検知するシステムに適用し得る。
【背景技術】
【0002】
現在、IoT(Internet Of Things)機器は、オフィスや工場など組織の様々な環境で活用されている。企業等の組織では、組織内のネットワークに管理外の機器が接続されていないか、マルウェア感染等により不正な通信を発生させていないか等、ネットワークに接続される機器の管理を行う。従来、コアネットワークのインターネットとの接続口(コアスイッチ等)を流れる通信トラフィックをキャプチャし分析することで、接続されている機器をリストアップするとともに機器が不正な通信を行っていないかを監視(場合によっては通信遮断まで)する通信トラフィック分析装置を設置することでネットワーク機器の管理を行う方法がある。しかしながらIoT機器は、普段はインターネット接続せず、末端の生産現場やオフィス内等の閉じたネットワーク環境(エッジネットワークと呼ぶ)で使われる場合も多く、コアネットワークの監視だけではネットワーク全体を網羅できない場合がある。そのため、IoT機器が設置されるエッジネットワークにも監視ポイントを設置しそこを流れるトラフィックをキャプチャし分析する通信トラフィック分析装置が必要となっている。
【0003】
通信トラフィック分析装置によりIoT機器による不正通信を検出するために、機械学習を用いる方法がある。機械学習により不正通信を検出する具体的な方法の一つに、ネットワークの定常通信パターンを機械学習し定常通信パターンから大きく逸脱する通信パターンを異常通信として検出する教師無し学習による方法がある。教師無し学習では、未知のマルウェア感染による通信や内部不正による情報漏洩の通信等、エッジネットワークで起こり得る異常通信を幅広く検出することができる。上記の従来における教師無し学習による不正通信検出方法では、さらに機器単位に定常通信パターンを学習した機械学習モデルを構築(つまり機器の数だけ機械学習モデルを構築)することで、機器が持つ特有の定常通信パターンを学習に反映できるため、不正通信の検出精度を高めることができる。
【0004】
ここで、エッジネットワークに設置する通信トラフィック分析装置は、監視ポイント数だけ装置が必要になるため、安価に導入できることが望ましい。そのため、エッジネットワーク向けのトラフィック分析装置が持てる計算資源は限られたものにならざるを得ない。従来、計算資源の限られたエッジ装置では、計算負荷の高い、例えば深層学習によって構築された機械学習モデルを分析するのが困難であった。しかし近年、エッジ装置でも深層学習による機械学習モデルの推論処理を実行可能にするVPU(Vision Processing Unit)が開発され実用化されている。VPUでは、ハードウェア上に機械学習モデルをロードして実行可能なものであり、CPUやメモリが潤沢でない場合にも、深層学習により構築された機械学習モデルの推論処理を高速に実行することができる。
【0005】
以上より、エッジネットワークにおける通信トラフィック分析装置は、VPUを搭載し、機器毎に定常通信パターンを学習した機械学習モデルをVPU上で動作させ、通信トラフィックをリアルタイムに分析して異常通信を検出するものが望ましい。しかし、VPUは機械学習モデルをハードウェア上にロードするため、モデルのロードに時間がかかる。そのため、機器毎に機械学習モデルを用意し、受信したトラフィックに合わせてモデルを切り替えながら分析を行う場合、モデルの切り替え時間がボトルネックとなり、リアルタイムに分析を行うことができない課題がある。よって、モデル切り替えが発生する構成においてもリアルタイムに異常通信を検出できる方法が求められている。
【0006】
上記のような背景に鑑みて、特許文献1の技術が提案されている。特許文献1の記載技術は、IoT機器を対象に通信を収集し、機器毎に定常通信範囲を定義して、そこから逸脱する通信を異常通信として検出し通信遮断等の制御を行う通信制御装置に関するものである。特許文献1では、IoT機器の通信量が多く単体の通信制御装置では処理しきれない場合に、他の通信制御装置との共有情報を使って解析する方法について言及されている。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1の技術は複数の通信制御装置が連携することが前提となっており、単体装置で動作させる場合には適用することができない。
【0009】
以上より、単体装置で、リアルタイム且つ効率的に通信トラフィックを分析し、異常通信を検出することができるトラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法が望まれている。
【課題を解決するための手段】
【0010】
第1の本発明のトラフィック分析装置は、分析対象のネットワーク上を流れる通信トラフィックデータに基づく分析対象データについて、それぞれ異なる項目で分析して異常通信の有無の検知を行う検知処理部を1以上備える第1の分析手段と、1以上の前記検知処理部で異常通信有りと検知された前記分析対象データについて学習モデルを用いたAI分析処理を行うAI分析処理部により異常通信の有無を判定する第2の分析手段とを有することを特徴とする。
【0011】
第2の本発明のトラフィック分析プログラムは、コンピュータを、分析対象のネットワーク上を流れる通信トラフィックデータに基づく分析対象データについて、それぞれ異なる項目で分析して異常通信の有無の検知を行う検知処理部を1以上備える第1の分析手段と、1以上の前記検知処理部で異常通信有りと検知された前記分析対象データについて学習モデルを用いたAI分析処理を行うAI分析処理部により異常通信の有無を判定する第2の分析手段として機能させることを特徴とする。
【0012】
第3の本発明は、トラフィック分析装置が行うトラフィック分析方法において、前記トラフィック分析装置は、第1の分析手段と第2の分析手段とを有し、前記第1の分析手段は、分析対象のネットワーク上を流れる通信トラフィックデータに基づく分析対象データについて、それぞれ異なる項目で分析して異常通信の有無の検知を行う検知処理部を1以上備え、前記第2の分析手段は、1以上の前記検知処理部で異常通信有りと検知された前記分析対象データについて学習モデルを用いたAI分析処理を行うAI分析処理部により異常通信の有無を判定することを特徴とする。
【発明の効果】
【0013】
本発明によれば、単体装置で、リアルタイム且つ効率的に通信トラフィックを析し、異常通信を検出することができる。
【図面の簡単な説明】
【0014】
【
図1】第1の実施形態に係るトラフィック分析装置の機能的構成について示したブロック図である。
【
図2】第1の実施形態に関係する各装置の接続関係について示したブロック図である。
【
図3】第1の実施形態に係るトラフィック分析装置のハードウェア構成の例について示したブロック図である。
【
図4】第1の実施形態に係るAI分析キッカー部で用いられる優先度情報の構成例について示した図である。
【
図5】第1の実施形態に係るAI分析部で適用されるAIの構成例について示した図である。
【
図6】第1の実施形態に係るトラフィック分析装置における分析処理の概要について示した図である。
【
図7】第1の実施形態に係るトラフィック分析装置の動作について示したフローチャート(その1)である。
【
図8】第1の実施形態に係るトラフィック分析装置の動作について示したフローチャート(その2)である。
【
図9】第1の実施形態に係るトラフィック分析装置の動作について示したフローチャート(その3)である。
【
図10】第1の実施形態に係るトラフィック分析装置の動作について示したフローチャート(その4)である。
【
図11】第1の実施形態に係るAI分析キッカー部によるAI分析対象フローの優先付けの処理の具体例について示した図である。
【
図12】第2の実施形態に係るトラフィック分析装置の機能的構成について示したブロック図である。
【
図13】第3の実施形態に係るトラフィック分析装置の機能的構成について示したブロック図である。
【
図14】第4の実施形態に係るトラフィック分析装置の機能的構成について示したブロック図である。
【
図15】第5の実施形態に係るトラフィック分析装置の機能的構成について示したブロック図である。
【
図16】第5の実施形態に係る異常判定事由推定部で用いられる異常理由条件リストの構成例について示した図である。
【発明を実施するための形態】
【0015】
(A)第1の実施形態
以下、本発明によるトラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法の第1の実施形態を、図面を参照しながら詳述する。
【0016】
(A-1)第1の実施形態の構成
図2は、第1の実施形態に関係する各装置の接続関係について示したブロック図である。
図2における括弧内の符号は後述する第2~第5の実施形態において用いられる符号である。
【0017】
ここでは、トラフィック分析装置10は、監視対象(分析対象)となる監視対象ネットワークN1に接続された通信装置としての監視対象機器30(30ー1、30-2、・・・)から発生するトラフィックを分析する処理を行うものであるものとする。
図2の構成例では、監視対象ネットワークN1には、ネットワーク機器として、ネットワークスイッチ20(レイヤ2スイッチ)とゲートウェイ40(例えば、ファイアウォールの機能に対応するゲートウェイ)が配置されているものとする。なお、監視対象ネットワークN1に接続される通信装置はIoT機器に限定されず種々の装置とするようにしてもよい。
【0018】
監視対象機器30としては、IoT機器、PC(例えば、ユーザが操作するPC)等の種々の通信端末が含まれるものとする。トラフィック分析装置10では、それぞれの監視対象機器30について種類/属性(以下、「機器種別」と呼ぶ)が管理されているものとする。この実施形態では、トラフィック分析装置10で管理される機器種別として、少なくとも「IoT機器」、「PC」が含まれるものとして説明する。
【0019】
図2の構成例では、各監視対象機器30が、ネットワークスイッチ20(レイヤ2スイッチ)に接続されており、ネットワークスイッチ20とインターネットN2との間にはゲートウェイ40が接続されている。したがって、
図2の例では、各監視対象機器30は、ネットワークスイッチ20とゲートウェイ40を経由してインターネットN2と通信可能な状態になっている。また、ネットワークスイッチ20では、接続される監視対象機器30等の数は限定されないものであり、運用中に増減する場合もあるものとして説明する。ネットワークスイッチ20は、いわゆるエッジネットワークに属する監視対象機器30を収容するスイッチであるためものとする。なお、各監視対象機器30の具体的な機能・構成や通信内容については限定されないものである。
【0020】
図2の例では、トラフィック分析装置10は、ネットワークスイッチ20に接続されているものとする。ここでは、ネットワークスイッチ20において、ゲートウェイ40と接続するLANポート(イーサネット(登録商標)ポート)で送受信されるパケット(イーサネットフレーム)が、トラフィック分析装置10が接続するポートにミラーリングされる設定(いわゆるポートミラー接続)となっているものとする。これにより、トラフィック分析装置10では、ネットワークスイッチ20の配下の接続端末(監視対象機器30)とインターネットN2との間を流れるトラフィック(パケット)を収集することができる。この実施形態では、ネットワークスイッチ20のポートミラー設定により、トラフィック分析装置10に監視対象機器30とインターネットN2との間を流れる通信トラフィックに基づくデータ(以下、単に「通信トラフィックデータ」とも呼ぶ)を供給する構成となっているが、トラフィック分析装置10に通信トラフィックデータを供給する具体的な構成については限定されないものである。なお、
図1に示す監視対象ネットワークN1の構成は一例であり、トラフィック分析装置10に通信トラフィックデータを供給可能な構成であれば種々の構成とするようにしてもよい。
【0021】
トラフィック分析装置10は、通信トラフィックデータ又は通信トラフィックデータに基づくデータ(例えば、後述するフロー情報等;(以下、「分析対象データ」とも呼ぶ)を用いて、各監視対象機器30の通信を分析し、その結果を出力する。トラフィック分析装置10は、分析対象データについて、AIを用いた分析処理(以下、「AI分析処理」と呼ぶ)と、AIを用いない分析処理(以下、「非AI分析処理」と呼ぶ)を行うことができる。なお、この実施形態では、トラフィック分析装置10に通信トラフィックデータ(パケット)自体が供給される構成としているが、通信トラフィックデータに基づく分析対象データ(例えば、パケットごとのフロー情報)を供給する構成としてもよい。
【0022】
次に、トラフィック分析装置10の内部構成について説明する。
【0023】
図1は、第1の実施形態に係るトラフィック分析装置10の機能的構成について示したブロック図である。
【0024】
図1に示すように、トラフィック分析装置10は、トラフィックキャプチャ部11、制御部12、学習部13、非AI分析部14、AI分析キッカー部15、記憶部16、AI分析部17、及び通知/可視化部18を有している。
【0025】
トラフィック分析装置10は、全てハードウェア(例えば、専用チップ等)により構成するようにしてもよいし一部又は全部についてソフトウェア(プログラム)として構成するようにしてもよい。トラフィック分析装置10は、例えば、プロセッサ及びメモリを有するコンピュータにプログラム(実施形態のトラフィック分析プログラムを含む)をインストールすることにより構成するようにしてもよい。
【0026】
図3では、トラフィック分析装置10を、ソフトウェア(コンピュータ)を用いて構成する際のハードウェア構成の例について示している。
【0027】
図3に示すトラフィック分析装置10は、ハードウェア的な構成要素として、プログラム(実施形態のトラフィック分析プログラムを含む)がインストールされたコンピュータ200を有している。また、コンピュータ200は、トラフィック分析プログラム専用のコンピュータとしてもよいし、他の機能のプログラムと共用される構成としてもよい。
【0028】
図3に示すコンピュータ200は、CPU201、一次記憶部202、二次記憶部203、及びVPU204を有している。
【0029】
この実施形態において、コンピュータ200は、いわゆるエッジコンピューティングに用いられるコンピュータであり、消費電力やコスト等の観点から計算資源が限られた構成であるものとする。つまり、コンピュータ200では、限られた計算資源を効率的に活用することが求められている。しかしながら、トラフィック分析装置10では、処理負荷の大きいAI分析処理(例えば、ディープニューラルネットワーク等の処理)を含むため、CPU201の他に、AI(特にDNN)に関する処理を効率的に実行することができるVPU204を搭載している。VPU204としては、例えば、インテル社のMovidius(登録商標)を適用することができるが、その他の種々のVPUを適用するようにしてもよい。なお、コンピュータ200では、AIに関する処理を効率的に行うことができれば、VPU204を他のデバイス(チップ)に置き換えるようにしてもよい。
【0030】
一次記憶部202は、CPU201の作業用メモリ(ワークメモリ)として機能する記憶手段であり、例えば、DRAM(Dynamic Random Access Memory)等の高速動作するメモリを適用することができる。
【0031】
二次記憶部203は、OS(Operating System)やプログラムデータ(実施形態に係るトラフィック分析プログラムのデータを含む)等の種々のデータを記録する記憶手段であり、例えば、FLASH(登録商標)メモリやHDDやSSD等の不揮発性メモリを適用することができる。
【0032】
この実施形態のコンピュータ200では、CPU201が起動する際、二次記憶部203に記録されたOSやプログラム(実施形態に係るトラフィック分析プログラムを含む)を読み込み、一次記憶部202上に展開して実行する。CPU201は、トラフィック分析プログラムに従って動作した結果、AIに関連するモジュール(ソフトウェア)についてはVPU204にロード及び実行させる場合がある。
【0033】
なお、コンピュータ200の具体的な構成は
図3の構成に限定されないものであり、種々の構成を適用することができる。例えば、一次記憶部202が不揮発メモリ(例えば、FLASHメモリ等)であれば、二次記憶部203については除外した構成としてもよい。また、例えば、コンピュータ200において、VPU204を除外した構成としてもよい。
【0034】
次に、
図1を用いてトラフィック分析装置10の内部構成(機能的構成)の各構成要素の概要について説明する。
【0035】
トラフィックキャプチャ部11は、エッジネットワークを流れる通信トラフィックに基づく通信トラフィックデータをキャプチャし、通信トラフィックデータからフロー情報を抽出する手段を有する。
【0036】
「フロー」とは、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号の組により識別される通信トラフィックの要素である。以下では、フローを識別可能な情報(例えば、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号等の組)を「フロー識別情報」とも呼ぶものとする。以下では、各フローのパケットの送信元となる監視対象機器を「送信元機器」とも呼ぶものとする。なお、トラフィック分析装置10では、各フロー情報にはフロー識別情報が対応付けられている(つまり、各フロー情報に対応するフロー識別情報が把握可能な状態で保持)されているものとする。
【0037】
「フロー情報」とは、フローの通信状況を示す情報であり、例えば、当該フローの通信トラフィックデータから得られる統計情報(例えば、パケットサイズやパケット到着間隔等の情報)等が含まれる。トラフィック分析装置10では、このフロー情報を分析することで、各監視対象機器30の異常に関する判断を行う。トラフィックキャプチャ部11は、フロー情報を制御部12に通知する。
【0038】
制御部12は、トラフィック分析装置10内の各要素を制御して、各監視対象機器30に対する分析処理に関する管理/制御を行う。
【0039】
AI分析部17は、AI分析キッカー部15の制御に従い、機械学習済の学習モデルを用いてフロー情報に対する分析処理(以下、「AI分析処理」とも呼ぶ)を行う。
【0040】
非AI分析部14は、フロー情報に対して1以上の項目の「非AI分析処理」(AIを用いない分析処理)を行う。
【0041】
学習部13は、制御部12の制御に従って、AI分析部17に適用する学習モデル(機械学習モデル)を得るための機械学習処理を行う。また、学習部13は、非AI分析部14における非AI分析に用いるパラメータ(例えば、非AI分析処理に用いる統計閾値やパターンマッチルール等;以下、「分析パラメータ」と呼ぶ)を算出する処理も行うようにしてもよい。この実施形態では、学習部13は、各監視対象機器30の定常状態におけるフロー情報に基づくデータ(フロー情報の特徴量をベクトル化したデータ)を、オートエンコーダに機械学習(教師無し学習により学習)させることで機械学習済の学習モデル(オートエンコーダの学習モデル)を取得することができるものとする。そして、AI分析部17は、機械学習済(定常状態のフローを用いて学習済)の学習モデルがセットされたオートエンコーダに、監視対象機器30のフロー情報(例えば、新たに収集したフロー情報)を入力することで当該監視対象機器30の状態を分析する処理を行う。この実施形態では、AI分析部17は、上記のオートエンコーダ等のディープニューラルネットワーク(DNN)を用いたAI分析処理を行う際には、ハードウェア資源としてVPU204を用いるものとして説明する。
【0042】
AI分析キッカー部15は、フローごとに非AI分析部14による非AI分析処理の結果を評価し、その評価結果に基づいて各フローについてAI分析処理を行う優先順位を決定する処理を行う。そして、AI分析キッカー部15は、決定した優先順位に従った順序でAI分析処理を行うようにAI分析部17を制御する処理を行う。上記の通り、AI分析部17は、VPU204を用いてAI分析処理を行うが、VPU204が同時に実行可能なAI分析処理の数は限られている。そのため、トラフィック分析装置10では、AI分析キッカー部15を設けることで、優先度(例えば、セキュリティ的な緊急度)の高いフローについて優先的にAI分析処理を行って待ち行列(AI分析処理待ちのフローの待ち行列)を管理する構成となっている。この実施形態では、VPU204が同時に実行可能なAI分析処理(すなわち、同時にロード可能な学習モデルの数)は1つであるものとして説明するが2以上であってもよい。
【0043】
通知/可視化部18は、各フローに対する最終的な分析結果(判定結果)を出力する出力手段である。通知/可視化部18が分析結果を出力する具体的な手段(通知方法や可視化する手段)や内容については限定されないものであり種々の構成を適用することができる。通知/可視化部18は、全ての分析結果について出力するようにしてもよいし、一部の分析結果についてのみ出力するようにしてもよい。この実施形態では、通知/可視化部18は、分析結果が異常と判定されたフロー(定常状態でないと判定されたフロー)についてのみ、分析結果を出力するものとして説明する。具体的には、通知/可視化部18は、AI分析部17から異常判定されたフロー(フローを特定する情報)を受信すると、管理者への通知、および可視化する処理を行う。通知/可視化部18は、例えば、異常判定されたフローに関する情報(以下、「通知情報」と呼ぶ)を、電子メールにより所定のアドレス宛(例えば、ネットワーク管理者のメールアドレス)に送信するようにしてもよい。また、通知/可視化部18は、Webブラウザ上で表示可能なWebページとして異常検知されたフローを表示(例えば、トラフィック分析装置10にWebブラウザ(例えば、http等)でアクセスしてきた端末に対するWeb画面(GUI画面)を提示)するようにしてもよい。
【0044】
次に、制御部12の詳細構成について説明する。
【0045】
制御部12は、監視対象機器30ごとに分析処理に関する状態(以下、「機器状態」とも呼ぶ)を管理する。ここでは、制御部12により管理される機器状態には、少なくとも、初めてフロー情報を受信(送信元機器として初めてフロー情報を受信)した監視対象機器30であるため未登録(未管理)の状態である「未登録状態」、学習部13により定常状態の機械学習中であることを示す「学習状態」、及び、定常状態の機械学習モデル等を取得済で分析処理が可能な状態(若しくは分析処理中の状態)である「分析状態」の3つが含まれるものとして説明する。
【0046】
制御部12は、監視対象機器30毎の定常通信パターンの機械学習状況(学習部13による機械学習状況)を管理し、トラフィックキャプチャ部11から受信したフロー情報を、当該フローの送信元機器の学習状況に応じて他の各部へ振り分ける。また、制御部12は、受信したフロー情報に対応する監視対象機器30が接続されてから(例えば、初めてフロー情報を受信してから)の一定期間を定常通信パターンの学習状態として扱う。学習状態では、制御部12はフロー情報を学習部13に通知する。制御部12は、ある監視対象機器30の学習状態期間が過ぎると、非AI分析部14による非AI分析処理で用いる分析パラメータの算出、および後述のAI分析部17で異常判定に用いる機械学習モデルの構築を学習部13に要求する。制御部12は、学習部13から学習完了の通知を受けると、当該監視対象機器30を分析状態として扱う。分析状態では、制御部12は受信したフロー情報を非AI分析部14及びAI分析部17に通知する。
【0047】
学習部13は各種学習が完了すると、制御部12に学習完了を通知する。
【0048】
次に、非AI分析部14の詳細構成について説明する。
【0049】
非AI分析部14は、制御部12からフロー情報を受信すると、記憶部16から当該フロー情報の送信元機器に対応する分析パラメータを取得し、AIを用いない分析方法(例えば、統計的またはパターンマッチング的な方法)でフロー情報から異常が疑われる通信を抽出する処理を行う。非AI分析部14は、フロー情報に基づいて異常を検知する分析処理を行うプログラム(以下、「検知エンジン」又は「検知処理部」と呼ぶ)を複数種類備えている。非AI分析部14が備える複数種類の検知エンジンは、それぞれ異なる観点で異常が疑われる通信を抽出する処理を行う。非AI分析部14が備える各検知エンジンは、独立して同時並行的に動作することができるものとする。検知エンジンで用いる分析手法や分析の観点は限定するものではない。
【0050】
例えば、非AI分析部14は、監視対象機器30が普段通信しない通信相手(例えば、定常状態では通信しない通信相手)と通信している状態(以下、「レア通信状態」と呼ぶ)であるか否かを検知する処理(以下、「レア通信状態検知処理」と呼ぶ)や、監視対象機器30の通信量が普段より統計的に多い状態(以下、「通信量異常状態」と呼ぶ)か否かを検知する処理(以下、「通信量異常検知処理」と呼ぶ)や、「ポートスキャンによる攻撃を受けている」若しくは「マルウェア等によりポートスキャンの攻撃を行っている」ことが疑われる状態(以下、「スキャン疑い状態」と呼ぶ)であるか否かを検知する処理(以下、「スキャン疑い検知処理」と呼ぶ)を行う検知エンジンを備えるようにしてもよい。非AI分析部14は、検知エンジン群の何れかの検知エンジンで異常と判定されたフローについて、検知エンジンを表す名称(以降、「検知エンジン名」と呼ぶ)とともにAI分析キッカー部15に通知する。この実施形態では、検知エンジン名は、異常の項目(インデックス)に該当する情報であるものとして説明する。この実施形態の例において、非AI分析部14は、少なくともレア通信検知処理を行う検知エンジン(検知エンジン名:レア通信)と、通信量異常検知処理を行う検知エンジン(検知エンジン名:通信量異常)と、スキャン疑い検知処理を行う検知エンジン(検知エンジン名:スキャン疑い)を備えているものとして説明する。なお、非AI分析部14に搭載する検知エンジンの種類や組み合わせは限定されないものである。
【0051】
次に、学習部13の詳細構成について説明する。
【0052】
学習部13は、制御部12からフロー情報を受信すると、当該フロー情報を記憶部16に保存する。また学習部13は、制御部12から監視対象機器30の学習要求を受信すると、記憶部16から当該監視対象機器30のフロー情報を取得し、AI分析部17で用いる機械学習モデルを構築する。学習部13が機械学習モデルを構築する際には、ハードウェア資源としてVPU204を利用するようにしてもよいが、CPU201上で動作するプログラムで実現する構成としてもよい。
【0053】
また、学習部13は、制御部12から監視対象機器30の学習要求を受信すると、学習処理の一環として非AI分析部14の各検知エンジンで用いる分析パラメータ(当該監視対象機器30の分析パラメータ)を算出する処理も行うようにしてもよい。
【0054】
学習部13が、各検知エンジンで用いる分析パラメータ(当該監視対象機器30の分析パラメータ)を取得する処理は、種々の通信セキュリティに関する検知エンジンと同様の処理を適用することができるが、例えば、以下のような処理により行うようにしてもよい。「レア通信状態」を検知する検知エンジンについては、例えば、定常状態で通信する通信相手のアドレスやホスト名等を分析パラメータとして保持しておき、保持された通信相手以外と通信が開始された場合にレア通信状態と検知させるようにしてもよい。また、「通信量異常状態」を検知する検知エンジンについては、例えば、定常状態における通信量(例えば、1分あたりのデータ量やパケット数等)を分析パラメータとして保持しておき、定常状態の通信量+α(αは例えば定常状態の通信量の50%程度)の閾値を分析パラメータとして保持しておき、保持した閾値を超える通信量が発生した場合に通信量異常状態と検知させるようにしてもよい。さらに、「スキャン疑い状態」を検知する検知エンジンについては、例えば、スキャンの攻撃を受けている状態のパケット列のパターン(パケット列を構成するフロー情報のパターン;パターンマッチングのルール)を分析パラメータとして保持しておき、当該パターンに一致するパケット列が発生した場合にスキャン疑い状態と検知させるようにしてもよい。スキャンの攻撃が発生している状態のパケット列については定常状態で保持することができないため、学習部13は、予め機器種別毎又は機器共通のパターンをスキャン疑い状態を検知する検知エンジンに設定するようにしてもよい。また、学習部13は、監視対象機器30の定常状態における単位時間当たりのフロー発生数を定常状態のパラメータとして用いるようにしてもよい。この場合、各監視対象機器30のについて、自身から発生した単位時間当たりのフロー数が定常状態の値より大きく逸脱する場合や、自身に対して発生した単位時間当たりのフロー数が定常状態の値より大きく逸脱する場合にスキャンの疑いとして検出することができる。
【0055】
次に、AI分析キッカー部15の詳細構成について説明する。
【0056】
AI分析キッカー部15は、非AI分析部14から異常判定されたフローと当該フローを異常判定した検知エンジン名を受信すると、記憶部16から優先度情報161を取得し、優先度情報161の内容に基づいて当該フローの優先度を評価し、当該フローについてAI分析部17でAI分析する優先順位(順序)を決定する。優先度情報161は、非AI分析部14で一つ以上の検知エンジンで異常判定されたフローが複数ある場合に、どのフローを優先してAI分析するかを決定するために用いるものであり、一つ以上の項目で構成され項目毎に優先度が付与されている。言い換えると、優先度情報161は、フローを異常判定された検知エンジン名に基づいて評価するためのポリシーについて定義した情報となっている。
【0057】
図4は、優先度情報161の構成例について示した図である。
【0058】
この実施形態の例では、優先度情報161には
図4に示すような構成の情報が含まれているものとして説明する。
図4(a)は、優先度情報161を構成する優先度リストについて示した図である。
【0059】
図4(a)に示す優先度リストでは、フローの評価基準の項目名ごとに優先度が記述されている。優先度の値は低いほど当該項目名の優先度が高いことを示している。
【0060】
図4(a)では、「検知項目数」、「機器種別毎の優先検知エンジンの有無」、「機器共通の優先エンジンの有無」を含む項目名の判定基準(評価の観点)が示されている。また、
図4(a)では、「検知項目数」、「機器種別毎の優先検知エンジンの有無」、「機器共通の優先検知エンジンの有無」の優先度がそれぞれ1、2、3となっている。つまり、
図4(a)では、検知項目数の項目が最も優先度の高い判定基準であることを表している。
【0061】
「検知項目数」の判定基準では、同一フローに対しより多くの検知エンジンで異常検知しているフローを優先度が高いと判断される。
【0062】
「機器種別毎の優先検知エンジンの有無」の判定基準では、監視対象機器30が属する機種種別(属性)毎に異常の確度が高い検知エンジンのリストを用意し、フローの送信元機器の機器種別の優先検知エンジンに記載される検知エンジンで異常判定されたフローを優先度が高いと判断される。例えば、PCであれば、一般にユーザが使用するため通信先は日々変化しやすいためレア通信を検知する検知エンジンの優先度は低いが、通信量が普段よりはるかに多い場合は異常の疑いがあるため、通信量異常を検知する検知エンジンを優先検知エンジンに設定することが望ましい。一方、IoT機器では、通常決められた通信先とのみ通信する場合が多いため、レア通信を検知する検知エンジンを優先検知エンジンに設定することが望ましい。
【0063】
図4(b)は、「機器種別毎の優先検知エンジンの有無」の判定基準に用いるための機器種別毎の優先検知エンジン名(項目名)のリストについて示している。
図4(b)では、「PC」の機種種別についての優先検知エンジンとして「通信量異常」が優先検知エンジン名(項目名)として設定されている。また、
図4(b)では、「IoT機器」の機種種別についての優先検知エンジンとして「レア通信」が優先検知エンジン名(項目名)として設定されている。なお、
図4(b)では機器種別毎に一つの優先検知エンジンが割り当てられているが、2つ以上の検知エンジンを設定しても良い。この場合、AI分析キッカー部15では、複数の検知エンジンが設定された機器種別については、いずれかの優先検知エンジン名が該当すれば、「機器種別毎の優先検知エンジンの有無」について有りと判定するようにしてもよい。なお、AI分析キッカー部15において、各監視対象機器30の機器種別の情報を保持する方式については限定されないものである。例えば、トラフィック分析装置10において、オペレータ(管理者)等により手動で監視対象機器30ごとの機器種別の情報の入力を受け付ける手段を備えるようにしてもよいし、通信トラフィックから別のAI分析アルゴリズムによって機器種別を推定する方法を適用するようにしてもよい。
【0064】
「機器共通の優先検知エンジンの有無」の判定基準では、機器種別に関わらず共通に検知エンジンの優先度情報161を用意し、優先順位が高い検知エンジンで異常判定されたフローを優先度が高いと判断することになる。
図4(c)は、「機器共通の優先検知エンジンの有無」の判定基準に用いるための優先検知エンジン名(項目名)のリストについて示している。
図4(c)では、優先検知エンジン名(項目名)ごとに優先度が記述されている。優先度の値は小さいほど当該優先検知エンジン名(項目名)の優先度が高いことを示している。また、
図4(c)では、「スキャン疑い」、「通信量異常」、「レア通信」の優先度がそれぞれ1、2、3となっている。つまり、
図4(c)では、スキャン疑いの項目が最も優先度の高い判定基準であることを表している。
【0065】
以上のように、AI分析キッカー部15は、記憶部16から優先度情報161を読出し、優先度情報161に基づいて非AI分析部14で抽出されたフローの優先度付けを行い、優先度順にフロー(フローを特定するための識別情報)をAI分析部17に通知する。
【0066】
次に、AI分析部17の詳細構成について説明する。
【0067】
AI分析部17は、制御部12からフロー情報を受信すると、受信したフロー情報を記憶部16に保存する。そして、AI分析部17は、AI分析キッカー部15からAI分析処理すべきフローの通知(例えば、フロー識別情報の通知)を受けると、対応するフローのフロー情報を記憶部16から取得し、当該フローの送信元機器(監視対象機器30)の機械学習モデルを記憶部16から取得してAI分析し異常判定する処理を行う。AI分析部17は、当該フローの送信元機器(監視対象機器30)の定常通信パターンを学習した機械学習モデルをVPU204にロードし、フロー情報を入力して異常判定処理を行う。AI分析部17で用いる深層学習の機械学習器や異常判定方法は限定しないが、例えば、フローの先頭(最新)の所定数のパケット(例えば、数十程度のパケット)のフロー情報を特徴量で表したベクトルデータした特徴量で構成されるベクトルデータ)に変換し、特徴量の次元を圧縮した後に入力の次元に再構成するオートエンコーダを用いる方式を適用してもよい。この場合、AI分析部17は、当該オートエンコーダに入力されたベクトルデータと、当該オートエンコーダから出力されるベクトルデータとが大きく乖離する場合(例えば、入力側と出力側で所定以上の差分が発生する場合等)に、当該フロー(フロー情報)について異常と判定するようにしてもよい。なお、オートエンコーダ(DNN)で処理するベクトルデータ(特徴量)の形式としては、例えば、フロー情報から得られるパケットサイズや、パケット到着間隔等の統計値を組み合わせたデータを用いる方法が挙げられる。なお、監視対象機器30において、定常状態のフロー情報に基づいて学習モデルを獲得し、当該学習モデルを用いて最新の監視対象機器30の通信状態(異常通信が含まれるか否か)を判定する処理については上記の例に限定されず種々の構成を適用することができる。
【0068】
図5は、AI(オートエンコーダ/DNN)を用いたフロー(フロー情報)の異常判定処理の例について示した図である。
【0069】
図5では、ある監視対象機器30(以下、「機器A」と呼ぶ)のフローに基づくフロー情報についてAI分析処理(異常判定処理)を行う例について示している。
【0070】
図5に示すAI分析処理(異常判定処理)では、元データとして、機器Aのフローの先頭からiパケット分(iは2以上の整数;iは例えば数十程度の値としてもよい)のフロー情報pkt1~pktiを時系列に並べたものを用いている。また、
図5に示すAI分析処理(異常判定処理)では、各パケットのフロー情報からパケットサイズ、パケット到着間隔等を抽出して、特徴量に変換したデータを入力データfvalとして取得している。
図5では、フロー情報pkt1~pktiに対応するデータをfval1~fvaliと図示している。そして、
図5では、入力データfval(fval1~fvali)がオートエンコーダ171(入力層)に入力され、オートエンコーダ171(出力層)からは出力データfval’(fval1’~fvali’)が出力される。なお、出力データfval’を構成するデータfval1’~fvali’は、それぞれ入力データfvalを構成するデータfval1~fvaliに対応する出力データ(復元データ)である。AI分析部17は入力データfval(fval1~fvali)と出力データfval’(fval1’~fvali’)とを比較し、差分(オートエンコーダ171によるロス;例えば、二乗平均誤差)が一定値以上ある場合に、当該フローについて異常状態と判定するようにしてもよい。AI分析部17は、AI分析により異常と判断した場合、通知/可視化部18に異常検知したフローを通知する。
【0071】
記憶部16は、トラフィック分析装置10の処理で用いられる種々の情報を記憶する記憶手段である。記憶部16は、例えば、優先度情報161や学習部13で用いる学習用のフロー情報、AI分析部17で用いる異常判定用のフロー情報、非AI分析部14の検知エンジンで用いる分析パラメータ、AI分析部17で用いる機械学習モデル等を記憶する。例えば、記憶部16は、AI分析部17のAI分析処理に用いられる情報(例えば、異常判定用のフロー情報)について、期限付き(例えば1分間等)で管理し、期限が切れたフロー情報を逐次削除するようにしてもよい。また、記憶部16は、学習部13で学習の完了した監視対象機器30のフロー情報を削除するようにしてもよい。
【0072】
(A-2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態のトラフィック分析装置10の動作(実施形態に係るトラフィック分析方法)を説明する。
【0073】
図6は、トラフィック分析装置10における分析処理の概要について示した図である。
【0074】
トラフィック分析装置10では、制御部12により、通信トラフィックデータに基づくフロー情報が非AI分析部14の各検知エンジンに供給されると各検知エンジンにおいてそれぞれの項目(例えば、攻撃等の異常通信が疑われる通信に関する項目)について分析され通信異常の有無が判定され、判定結果がAI分析キッカー部15に供給される。そして、AI分析キッカー部15は、各検知エンジンの検知結果を集計し、1以上の検知エンジンで通信異常が判定されたフローについてAI分析処理を行うようにAI分析部17に指示する。AI分析部17は、AI分析キッカー部15に指示されたフローの送信元機器の機械学習モデルをVPU204にロードする。そして、AI分析部17は、AI分析キッカー部15に指示されたフローのフロー情報(例えば、先頭のiパケット分のフロー情報)を取得して機械学習モデル(オートエンコーダ171)に入力しAI分析処理を行い、AI分析処理の結果に基づいて通信異常の有無を判定する。AI分析部17は、判定結果を通知/可視化部18に供給する。通知/可視化部18は、AI分析部17から供給された判定結果等を所定の形式及び手段により出力する処理(例えば、オペレータへの通知及び可視化の処理)を行う。
【0075】
次に、トラフィック分析装置10の詳細動作について、
図7~
図10のフローチャートを用いて説明する。
【0076】
図7は、任意の監視対象機器30(以下、当該監視対象機器30を「注目機器」とも呼ぶものとする)を送信元機器とするフローの通信トラフィックデータ(以下、当該通信トラフィックデータを、「注目通信トラフィックデータ」と呼ぶ)がトラフィックキャプチャ部11に供給された場合の動作について示している。
【0077】
まず、ここでは、注目機器を送信元機器とするフローの通信トラフィックデータが、トラフィックキャプチャ部11で受信されたものとする(S101)。
【0078】
トラフィックキャプチャ部11は、通信トラフィックデータを受信すると、当該通信トラフィックデータからフロー情報を抽出し、制御部12にフロー情報を通知する。制御部12は、受信したフロー情報から、注目機器のアドレス情報を取得し、注目機器の状態(未登録状態、学習状態、又は分析のいずれか)を確認する(S102)。
【0079】
制御部12は、注目機器が初めて通信トラフィックデータを受信する監視対象機器30だった場合、注目機器について未登録状態と判断して後述するステップS103に移行する。また、制御部12は、注目機器の状態が学習状態だった場合は後述するステップS106に移行し、分析状態だった場合は後述するステップS111に移行する。
【0080】
上述のステップS102で注目機器の状態が未登録状態だった場合、制御部12は、注目機器の状態を学習状態に設定し(S103)、さらに注目機器に対して学習に必要な定常通信パターンデータの取得期間を設定する(S104)。当該期間の設定方法は限定しないが、ここでは全ての機器共通で同じ期間(例えば1週間)を設定するものとする。そして、制御部12は、フロー情報を学習部13に通知して、学習部13に当該フロー情報を記憶部16に保存させ(S105)、注目通信トラフィックデータの処理を終了する。
【0081】
上述のステップS102で注目機器の状態が学習状態だった場合、制御部12は、注目機器の定常通信パターンデータの取得期間が経過したかを確認する(S106)。定常通信パターンデータの取得期間が未経過の場合、制御部12は上述のステップS105に移行し、そうでない場合には後述するステップS107に移行する。
【0082】
上述のステップS106で、注目機器の定常通信パターンデータの取得期間が経過していた場合、制御部12は、学習部13に注目機器の学習要求を送信済みか確認し(S107)、確認済だった場合は後述するステップS109に移行し、そうでない場合には後述するステップS108に移行する。
【0083】
上述のステップS107で、学習部13に注目機器の学習要求を送信していなかったと確認された場合、制御部12は、学習部13に注目機器に関する学習処理の開始を要求(指示)し(S108)、注目通信トラフィックデータの処理を終了する。学習部13による学習処理の詳細については、後述する
図8のフローチャートにより詳述する。
【0084】
上述のステップS107で、学習部13に注目機器の学習要求を送信済だったと確認された場合、制御部12は、学習部13から注目機器に関する学習処理が完了した旨の学習完了通知を受信しているかを確認する(S109)。制御部12は、注目機器に関する学習完了通知を受信済であった場合には、後述するステップS110に移行し、そうでない場合には後述するステップS112に移行する。
【0085】
上述のステップS109で、学習部13から注目機器に関する学習完了通知を受信していないと確認された場合、制御部12は、受信したフロー情報を破棄し(S112)、注目通信トラフィックデータに関する処理を終了する。
【0086】
一方、上述のステップS109で、学習部13から注目機器に関する学習処理が完了した旨の学習完了通知を受信済と確認された場合、制御部12は、注目機器の状態を分析状態に設定し(S110)、フロー情報を非AI分析部14及びAI分析部17に通知し、分析処理の実行を開始させ(S111)、注目通信トラフィックデータに関する処理を終了する。なお、分析処理の詳細(非AI分析部14、AI分析キッカー部15、及びAI分析部17による処理の詳細)については、後述する
図9のフローチャートにより説明する。
【0087】
図8は、学習部13が注目機器について学習処理を行う際の動作について示したフローチャートである。
【0088】
学習部13は、上述のステップS108で、制御部12から監視対象機器30の学習処理開始の指示を受信すると(S201)、注目機器のフロー情報を記憶部16から取得する(S202)。
【0089】
次に、学習部13は、取得したフロー情報を用いて、AI分析で使用される機械学習モデルを構築する(S203)。構築する機械学習モデルは、例えば上述の
図5に示すようなオートエンコーダ171に適用するモデルである。また、このとき、学習部13は、取得したフロー情報を用いて、非AI分析部14の各検知エンジンで使用される統計的外れ値の閾値やパターン情報(例えば、パターンマッチングのルールを定義した情報)を算出する処理を行うようにしてもよい。
【0090】
注目機器に関する機械学習モデルの構築が完了すると、学習部13は、取得した機械学習モデル、及び注目機器に関する各検知エンジンの分析パラメータ(例えば、閾値情報やパターン情報等)を記憶部16に保存し、注目機器に関する学習処理完了を制御部12に通知し(S204)、注目機器に関する学習処理を終了する。
【0091】
図9は、非AI分析部14、AI分析キッカー部15及びAI分析部17で注目通信トラフィックデータに関する分析処理が行われる際の動作について示したフローチャートである。
【0092】
ここでは、まず、非AI分析部14およびAI分析部17が、制御部12からフロー情報(以下、当該フロー情報を「注目フロー情報」と呼び、注目フロー情報に対応するフローを「注目フロー」と呼ぶものとする)を受信したものとする(S301)。
【0093】
AI分析部17は、注目フロー情報を記憶部16に保存する(S302)。また、非AI分析部14は、各検知エンジンに注目フロー情報を入力し、それぞれの検知エンジンにそれぞれの検知観点で異常判定処理を実行させ(S303)、各検知エンジンの判定結果を確認する(S304)。非AI分析部14は、注目フロー情報が供給されたことにより、一つ以上の検知エンジンで異常判定が発生した場合後述するステップS305に移行し、そうでない場合(異常判定した検知エンジンが無い場合)は注目フロー情報のデータを破棄して(S307)注目フロー情報に関する処理を終了する。
【0094】
なお、検知エンジンによっては複数のフロー情報を用いて異常判定するものも考えられるため、そのような検知エンジンは、判定に必要なフロー情報を受信するまでは検知エンジン内にフロー情報を保持し、判定可能なだけフロー情報が蓄積された時に異常判定するようにしてもよい。複数のフロー情報を用いる検知エンジンとしては、例えば、スキャン疑いの検知エンジン(例えば、監視対象機器30の単位時間当たりのフロー発生数が普段より異常に多いことを異常判定する検知エンジン)が挙げられる。このような検知エンジンでは、過去に受信したフロー情報も用いて異常判定する必要があるため、一定期間のフロー情報の蓄積が必要である。
【0095】
上記のステップS304において、一つ以上の検知エンジンで異常判定が発生した場合、非AI分析部14は、AI分析キッカー部15に注目フロー情報と共に異常判定した検知エンジンの検知エンジン名を通知する。ここで、前述のような複数のフロー情報を用いて異常判定する検知エンジンでは、過去に受信したフローも含めて複数のフローに対して異常判定することがあるため、非AI分析部14は、そのような場合は当該複数のフローを全てAI分析キッカー部15に通知する。
【0096】
AI分析キッカー部15は、非AI分析部14からフロー情報を受信すると、受信したフロー情報のフローに対して、AI分析部17でAI分析する優先順位付けする処理を行う(S305)。
【0097】
そして、AI分析キッカー部15は、優先付けした順序に従ってフローのAI分析処理を行うようにAI分析部17を制御し(S306)、注目フロー情報に関する処理を終了する。
【0098】
このとき、AI分析キッカー部15がAI分析部17に通知する内容はAI分析処理対象となるフローが特定できればよく、その具体的な形式については限定されないものである。例えば、AI分析キッカー部15はAI分析部17に対して、次にAI分析処理すべきフローのフロー識別情報(例えば、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号等の組)等を通知するようにしてもよい。これにより、AI分析部17では、フロー識別情報が通知されたフローのフロー情報(例えば、先頭のiパケット分のフロー情報)を記憶部16から取得することができる。
【0099】
なお、ここで、AI分析キッカー部15がAI分析部17に全てのフローを入力する前に、非AI分析部14から次のフロー情報を受信する場合が考えられる。この場合、AI分析キッカー部15は、入力待ちのフローと、新たに受信したフローを前述の優先順位付け方法で比較し、新たに優先順位付けされた順にAI分析部17にフロー識別情報を通知するようにしてもよい。
【0100】
図10は、AI分析部17におけるAI分析動作、および通知/可視化部18での表示動作について示したフローチャートである。
【0101】
AI分析部17は、AI分析キッカー部15から、次にAI分析処理対象となるフローの通知(例えば、AI分析処理対象となるフローのフロー識別情報)を受けると(S401)、当該フローに対応するフロー(以下、「AI分析対象フロー」とも呼ぶ)のフロー情報(例えば、当該フローの先頭からiパケット分のフロー情報)を記憶部16から取得し、当該フロー情報を用いてAI分析対象フローのAI分析処理(異常であるか否かの判定)を行い(S402)、その結果を確認する(S403)。このとき、AI分析部17は、例えば、上述の
図5に示すようなオートエンコーダを用いたAI分析処理により、AI分析対象フローのAI分析処理(異常であるか否かの判定/定常状態であるか否かの判定)を行う。
【0102】
上述のステップS403で、AI分析対象フローのAI分析処理結果が異常であった場合、AI分析部17は、通知/可視化部18にAI分析対象フローが異常な状態である旨を、通知/可視化部18に通知する。通知/可視化部18は、AI分析部17の通知に従った出力処理(通知・可視化の処理)を行う(S404)。このとき、通知/可視化部18は、例えば、管理者に異常判定結果(AI分析対象フローが異常状態である旨の内容)を通知する処理(例えば、メールによりを送信する処理)や、WebベースのGUI(Web画面)で管理者の使用する端末に異常判定結果を提示(可視化;表示)する処理を行うようにしてもよい。
【0103】
一方、上述のステップS403で、AI分析対象フローのAI分析処理結果が異常でなかった場合(定常状態であった場合)、AI分析部17は、当該AI分析対象フローに関するデータを破棄して(S405)、当該AI分析対象フローに関する処理を終了する。
【0104】
次に、上述のステップS305におけるAI分析キッカー部15によるAI分析対象フローの優先付けの処理の詳細について説明する。
【0105】
AI分析キッカー部15は、優先度情報161に基づいて、優先度の高い判断基準(観点)から比較して、合致する優先度を各フローの優先度として決定する。ここでは、上記のように、優先度情報161の内容は、
図4のような内容であるものとする。
【0106】
図11は、AI分析キッカー部15によるAI分析対象フローの優先付けの処理の具体例について示した図である。
【0107】
図11は、非AI分析部14で一つ以上の検知エンジンで異常判定されたフロー(優先順位付け対象のフロー)の送信元機器の機器種別と当該フローを異常判定した検知エンジン(検知エンジン名)を図示した表となっている。
図11では、1以上の検知エンジンで異常判定となり、AI分析キッカー部15においてAI分析処理待ちの待ち行列に設定されているフローA、フローB、フローCについて図示している。
【0108】
図11では、フローAについては、送信元機器の機器種別が「PC」で、「スキャン疑い」と「通信量異常」の2つの検知エンジンで異常判定されていることを表している。また、
図11では、フローBについては、送信元機器の機器種別が「PC」で「通信量異常」の検知エンジンで異常判定されていることを表している。さらに、
図11では、フローCについては、送信元機器の機器種別が「IoT機器」で、「レア通信」の検知エンジンで異常判定されていることを表している。つまり、
図11では、フローA、B、Cの検知エンジン数がそれぞれ「2」、「1」、「1」となっている。
【0109】
ここでは、
図4(a)に示すように、優先度情報161で、最も優先度の高い判定基準が「検知項目数」となっている。つまり、ここでは、AI分析キッカー部15では、検知項目数が多いフローほど優先度が高くなるように評価することになる。この場合、上記の通り、フローAのみ検知項目数が2であり、最も優先度が高いと判定される。
【0110】
一方、フローBとフローCは検知項目数が1で同じであるため、検知項目数の判断基準では優先度は同じとなる。そこで、AI分析キッカー部15は、検知項目数の次に優先度の高い「機器種別毎の優先検知エンジンの有無」の判断基準を用いて、フローB、Cの優先度を評価する。
【0111】
「機器種別毎の優先検知エンジンの有無」の判断基準では、各機器種別に優先検知エンジンが設定されており、フローの送信元機器の機器種別に対応する優先検知エンジンで異常判定された場合に優先度が高いと判定される。
【0112】
ここでは、上記の通り、フローBの機器種別はPCであり、フローCの機器種別はIoT機器である。そして、
図4(b)に示す優先度情報161において、機器種別「PC」の優先検知エンジンは「通信量異常」、IoT機器の優先検知エンジンは「レア通信」である。そして、
図11に示すように、フローBはPCの優先検知エンジンである「通信量異常」で異常判定されている。また、
図11に示すように、フローCもIoT機器の優先検知エンジンである「レア通信」で異常判定されている。したがって、「機器種別毎の優先検知エンジンの有無」の判断基準でもフローBとフローCの優先度は等しいと判断されることになる。
【0113】
そこで、AI分析キッカー部15は、「機器種別毎の優先検知エンジンの有無」の次に優先度の高い「機器共通の優先検知エンジンの有無」の判断基準を用いて、フローB、Cの優先度を評価する。
【0114】
機器共通の優先検知エンジンの有無では、機器種別関係なく検知エンジンに優先順位付けがされており、優先順位の高い検知エンジンで異常判定されるほど優先度が高いフローと判定される。ここでは、
図4(c)に示すように、スキャン疑い、通信量異常、レア通信の順に優先順位が高い。そして、ここでは、
図11に示すように、フローBが「通信量異常」、フローCが「レア通信」で異常判定されているため、
図4(c)のリストに従えば、フローBの優先度が高いと判定される。
【0115】
以上より、AI分析キッカー部15ではフローA、フローB、フローCの順で優先順位が高いと判定することになる。
【0116】
(A-3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
【0117】
第1の実施形態のトラフィック分析装置10は、AI分析部17で通信トラフィックデータをAI分析する前段に、非AI分析部14およびAI分析キッカー部15を設け、非AI分析部14でAI分析が必要な通信トラフィックデータを絞込み、AI分析キッカー部15で優先度付けしてAI分析部17に入力し異常判定する。つまり、第1の実施形態のトラフィック分析装置10では、通信トラフィックを機械学習モデルで異常判定をする前に、機械学習を用いない非AI分析を行い、非AI分析で疑わしい通信を抽出し、非AI分析の結果をもとに機械学習モデルで異常判定する通信トラフィックを絞り込み、さらに絞り込まれた通信トラフィックを優先順位付けしている。これにより、第1の実施形態のトラフィック分析装置10では、VPU204を搭載した装置単体でエッジネットワークの通信トラフィックをキャプチャし、監視対象機器30単位に定常通信パターンを教師無し機械学習した機械学習モデルで攻撃通信等の非定常な通信パターンをリアルタイムに異常検出することができる。
【0118】
また、第1の実施形態のトラフィック分析装置10では、優先度の高い通信トラフィックデータが適切に選別されてAI分析部17で分析されるため、トータルでAI分析処理する回数を低減することができる。特に、トラフィック分析装置10のようにVPU204を用いてAI判定処理を行う場合、単にAI分析処理する回数を低減するだけでなく、VPU204に設定する機械学習モデル切替回数も削減するため、大幅にAI判定処理の効率が上がることになる。
【0119】
(B)第2の実施形態
以下、本発明によるトラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法の第2の実施形態を、図面を参照しながら詳述する。
【0120】
以下では第2の実施形態に係るトラフィック分析装置10Aについて、第1の実施形態との差異を説明する。
【0121】
図12は、第2の実施形態に係るトラフィック分析装置10Aの機能的構成について示したブロック図である。
図12では、上述の
図1と同一部分又は対応部分には、同一符号又は対応符号を付している。
【0122】
第1の実施形態のトラフィック分析装置10では、AI分析キッカー部15により、非AI分析部14で絞り込まれたフローをさらに優先順位付けしていたが、第2の実施形態のトラフィック分析装置10Aでは、AI分析キッカー部15を設けない構成となっている。
【0123】
例えば、AI分析部17での処理能力が通信トラフィックをリアルタイムにAI分析するのにわずかに足りないような環境(例えば通信レートがあまり高くない環境)では、トラフィック分析装置10Aのように、非AI分析部14でAI分析不要な通信トラフィックデータを絞り込むだけで十分である。トラフィック分析装置10Aでは、非AI分析部14で絞り込まれたフローをAI分析部17に直接通知し、AI分析部17でAI分析する構成となっている。
【0124】
第2の実施形態のトラフィック分析装置10Aでは、AI分析キッカー部15を設けないことで、フローの優先順位付け処理に係るシステム動作負荷を軽減できる。
【0125】
(C)第3の実施形態
以下、本発明によるトラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法の第3の実施形態を、図面を参照しながら詳述する。
【0126】
以下では第3の実施形態に係るトラフィック分析装置10Bについて、第1の実施形態との差異を説明する。
【0127】
図13は、第3の実施形態に係るトラフィック分析装置10Bの機能的構成について示したブロック図である。
図13では、上述の
図1と同一部分又は対応部分には、同一符号又は対応符号を付している。
【0128】
第1の実施形態のトラフィック分析装置10では、非AI分析部14の検知エンジン群の分析パラメータ(例えば、統計閾値やパターン情報)、およびAI分析部17の機械学習モデルの構築を行う学習部13を設けていた。これに対して、第3の実施形態のトラフィック分析装置10Bでは、
図13に示すように学習部13を設けない構成となっている。
【0129】
一般に、AI分析の機械学習モデルの構築は、処理負荷が非常に高くエッジ装置のCPUやメモリでは学習に時間がかかる場合や、処理させること自体が困難な場合も多い。そのため、トラフィック分析装置10Bでは、学習処理を外部(例えばエッジネットワークの上位側の社内ネットワークに設置されるエッジ分析サーバ)で実施し、学習された機械学習モデルを記憶部16に保存する構成としている。これにより、第3の実施形態のトラフィック分析装置10Bでは、学習時間の短縮による分析処理開始までの時間の短縮、およびトラフィック分析装置の処理負荷軽減が可能になる。ただし非AI分析の分析パラメータを取得する処理は、計算負荷が高くない場合も多いため、非AI分析の分析パラメータの取得処理についてだけは、第3の実施形態のトラフィック分析装置10B内トラフィック分析装置内(例えば非AI分析部14)で実施する構成としてもよい。
【0130】
(D)第4の実施形態
以下、本発明によるトラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法の第4の実施形態を、図面を参照しながら詳述する。
【0131】
以下では第4の実施形態に係るトラフィック分析装置10Cについて、第1の実施形態との差異を説明する。
【0132】
図14は、第4の実施形態に係るトラフィック分析装置10Cの機能的構成について示したブロック図である。
図14では、上述の
図1と同一部分又は対応部分には、同一符号又は対応符号を付している。
【0133】
図14に示すように、第4の実施形態のトラフィック分析装置10Cでは、第2及び第3の実施形態の両方の特徴を適用し、学習部13とAI分析キッカー部15の両方を設けない構成となっている。これにより、第4の実施形態のトラフィック分析装置10Cでは、第2の実施形態の効果と、第3の実施形態の効果の両方を奏することができる。
【0134】
(E)第5の実施形態
以下、本発明によるトラフィック分析装置、トラフィック分析プログラム及びトラフィック分析方法の第5の実施形態を、図面を参照しながら詳述する。
【0135】
以下では第5の実施形態に係るトラフィック分析装置10Dについて、第4の実施形態との差異を説明する。
【0136】
図15は、第5の実施形態に係るトラフィック分析装置10Dの機能的構成について示したブロック図である。
図15では、上述の
図14と同一部分又は対応部分には、同一符号又は対応符号を付している。
【0137】
第5の実施形態のトラフィック分析装置10Dでは、異常判定事由推定部19が追加されている点で第4の実施形態と異なっている。
【0138】
第5の実施形態のトラフィック分析装置10Dでは、AI分析部17での異常判定結果と非AI分析部14で異常判定された検知エンジンの情報を対応付けすることにより、異常判定の内容(理由)まで含めて出力することが可能な構成となっている。第4の実施形態のトラフィック分析装置10Dでは、異常判定事由推定部19が、異常判定の理由について認識する処理(以下、「異常理由判定処理」と呼ぶ)を行う。
【0139】
図16は、異常判定事由推定部19において、異常理由判定処理に用いられるテーブル(条件リスト;以下、「異常理由条件リスト」と呼ぶ)の例について示した図である。
【0140】
図16に示す異常理由条件リストでは、左列から順に、非AI分析部14で異常判定された検知エンジン名を示す「非AI分析における異常判定項目名」、AI分析部17による判定結果を示す「AI分析判定結果」、及び「異常理由」の項目が示されている。
【0141】
つまり、
図16に示す異常理由条件リストでは、非AI分析部14で異常判定された検知エンジン名とAI分析部17による判定結果の組合せごとの「異常理由」が定義されていることになる。異常判定事由推定部19は、AI分析部17でAI分析処理されたフローごとに、AI分析処理の判定結果と非AI分析部14において異常判定された検知エンジン名の情報を取得して異常理由条件リストにあてはめ、当該フローに対応する異常理由を取得することができる。
【0142】
図16では、監視対象機器30の通信量が普段より統計的に多いことを検出する「通信量異常」の検知エンジンを対象に、AI分析部17での判定結果も踏まえて異常事由を出力するための条件リストを表している。異常理由条件リストにおける異常理由の項目については、例えば、予め記述されたデータを異常判定事由推定部19に保持させるようにしてもよいし、オペレータ等により編集可能な構成としてもよい。
【0143】
図16に示す異常理由条件リストの1行目では、非AI分析部14の通信量異常で異常判定されAI分析部17でも異常判定された場合の異常理由として「外部からの攻撃の疑い」というテキストが記述されている。この場合、当該フローの送信元機器(監視対象機器30)で、普段発生させない通信パターンで異常な通信量の通信が発生したことになるため、外部からの攻撃の疑いと理由付けできるため、上記のようなテキストが記述されている。
【0144】
図16に示す異常理由条件リストの2行目では、非AI分析部14の通信量異常で異常判定されAI分析部17で異常判定されなかった場合(正常と判定された場合)の異常理由として「内部不正によるデータ持ち出しの疑い」というテキストが記述されている。この場合、当該フローの送信元機器(監視対象機器30)で、普段の通信パターンであるが通信量が普段より異常に多いため、内部不正によるデータ持ち出しの疑いと理由付けできるためである。
【0145】
異常判定事由推定部19により取得されたフロー毎(送信元機器ごと)の異常理由(異常理由のテキスト)については、通知/可視化部18に供給され所定の手段及び形式で出力されオペレータ等に提示(通知)されることになる。
【0146】
以上のように、第5の実施形態のトラフィック分析装置10Dでは、AI分析部17の結果と非AI分析部14の結果とを組み合わせて異常理由を推定することで、異常検知後の対処方法までも明確化した情報を出力(通知/可視化部18により出力)することができる。
【0147】
なお、第1~第3の実施形態のいずれかのトラフィック分析装置10、10A、10Bにおいて、異常判定事由推定部19を追加する構成としてもよい。
【0148】
(F)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【0149】
(F-1)第1の実施形態では、学習部13において、学習期間経過後に非AI分析の検知エンジン群の閾値やパターンの算出を行っていたが、学習期間でも受信した通信トラフィックデータを逐次学習するようにしても良い。例えば、普段通信しない通信先やサービス等のレア通信を検出する検知エンジンでは、実現方法として、学習期間に受信した通信トラフィックデータから通信先やサービス情報を取得しリストとして保持して、異常判定ではリストに存在しない通信先やサービスを異常とみなす方法が考えられる。このような検知エンジンでは受信した通信トラフィックデータを逐次分析してリストに追加することができるため、学習期間が終了するまで待つ必要が無い。これにより、トラフィック分析装置10では、非AI分析の閾値計算等を逐次処理することで、学習処理負荷が分散され、学習期間完了後の学習処理負荷を軽減することができる。
【0150】
(F-2)第1の実施形態のトラフィック分析装置10では、AI分析キッカー部15における優先度情報161として、異常と判定される可能性が高いフローの優先度が高くなるようなものを用いたが、これに限定されず、機械学習モデルの切換えが少なくなるような観点を設けるようにしてもよい。例えば、AI分析キッカー部15が、
図4の優先度情報161を用いて最も優先度の高いフローを決定した後に、当該フローの送信元機器の他のフローに限定して次に優先度の高いフローを選択し、これを注目機器のフローが無くなるまで行うようにしてもよい。次に、AI分析キッカー部15が、他の監視対象機器30のフローから最も優先度の高いフローを選択し、同様に選択したフローの送信元機器のフローに限定して優先度付けしていく(VPU204において機械学習モデルの切替が少なくなるような順序で優先度付けしていく)ようにしてもよい。このような優先順位付けの方法により、AI分析部17では、同一機器のフローを連続してAI分析することになるため、機械学習モデルの切換え回数が削減され、AI分析のスループットを向上させることができる。
【0151】
(F-3)上記の各実施形態の非AI分析部14において、検知エンジンには軽量な機械学習アルゴリズム(VPU204を用いる必要のないアルゴリズム)を用いるものがあっても良い。軽量な機械学習アルゴリズムとしては、例えば、ロジスティック回帰モデルや単純な決定木モデル等が挙げられる。
【0152】
(F-4)上記の各実施形態のAI分析キッカー部15では、
図4のような優先度情報161を用いて、優先度の高い判断基準(項目名)から順に判断することで各フローの優先付けを行っているが、
図4のような優先度の高い判断基準(項目名)について重視して考慮される手順であれば、他の優先付け手順を適用するようにしてもよい。例えば、AI分析キッカー部15が、複数の判断基準(項目名)に基づく評価値を算出してその評価値に応じてフローの優先付けを行うようにしてもよい。この場合、判断基準(項目名)ごとに優先度(重要度)に応じた評価値の重みを変更するようにしてもよい。例えば、「検知項目数」の評価値の重みを「3」、「機器種別毎の優先検知エンジンの有無」の評価値の重みを「2」、「機器共通の優先検知エンジンの有無」の評価値の重みを「1」と設定するようにしてもよい。例えば、検知項目数が複数であるだけのフローの評価値は「3」、検知項目数が複数で且つ「機器種別毎の優先検知エンジンの有無」が有りとなるフローについての評価値は「5」となり、後者のフローの方が評価値が大きいため優先度が高くなる。
【符号の説明】
【0153】
10、10A、10B、10C、10D…トラフィック分析装置、11…トラフィックキャプチャ部、12…制御部、13…学習部、14…非AI分析部、15…AI分析キッカー部、16…記憶部、17…AI分析部、18…可視化部、19…異常判定事由推定部、20…ネットワークスイッチ、30…監視対象機器、40…ゲートウェイ、161…優先度情報、171…オートエンコーダ、200…コンピュータ、201…CPU、202…一次記憶部、203…二次記憶部、204…VPU、N1…監視対象ネットワーク、N2…インターネット