以下、本発明の実施の形態について、図面を参照しながら説明する。
[第一の実施形態]
<全体構成>
まず、本実施形態に係るシステムの全体構成について、図1を参照しながら説明する。図1は、本実施形態に係るシステムの全体構成の一例を示す図である。
図1に示すように、本実施形態に係るシステムには、例えばISP(Internet Service Provider)や電気通信事業者等のコアネットワークであるシステム環境Eと、複数の端末40とが含まれる。すなわち、システム環境Eには、これら複数の端末40が収容されている。
端末40は、ネットワークに接続可能な各種電子機器又は装置である。端末40の具体例としては、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末、各種センサ、監視カメラ、各種家電製品、ゲーム機器、自動車、スマートメータ等が挙げられる。各端末40は、システム環境Eに接続されており、それぞれが異なる通信特性(例えば、通信発生の頻度、宛先(送信先IPアドレス(Internet Protocol))の種類数、パケットサイズ等)を有している。
システム環境Eには、パケット転送装置10と、トラヒック情報収集装置20と、異常検知システム30とが含まれる。
パケット転送装置10は、例えばエッジルータ等のネットワーク機器であり、インターネットと各端末40との間のパケットを中継する機能を有する。すなわち、パケット転送装置10は、各端末40から受信したパケットを、当該パケットの宛先IPアドレスに従って転送(フォワーディング)する。
また、パケット転送装置10は、端末40のパケットを中継する際に、当該端末40のトラヒック情報を取得する。パケット転送装置10により取得されたトラヒック情報は、トラヒック情報収集装置20に蓄積される。トラヒック情報とは、例えば、所定の時間の間に、所定のアドレス空間のネットワーク宛にフォワーディングされたパケット数が挙げられる。
トラヒック情報収集装置20は、パケット転送装置10からトラヒック情報を収集して、収集したトラヒック情報を蓄積(保存)する。すなわち、トラヒック情報収集装置20は、パケット転送装置10単位でトラヒック情報を収集する。
異常検知システム30は、感染拡大攻撃等の少ないパケット数で成功する攻撃を異常として検知する1以上のコンピュータにより構成されるシステムである。
異常検知システム30には、異常検知用ストレージ装置31と、特徴量生成装置32と、検知用演算装置33とが含まれる。
異常検知用ストレージ装置31は、異常検知に用いられる検知モデルを生成するための情報(すなわち、異常検知に用いられるアルゴリズムを実行するための検知アルゴリズム情報及び当該アルゴリズムに用いられるパラメータ情報等)を記憶する記憶装置である。
特徴量生成装置32は、トラヒック情報収集装置20からトラヒック情報を取得して、取得したトラヒック情報を加工することで、異常検知に用いられる特徴量を算出する。
検知用演算装置33は、異常検知用ストレージ装置31から取得した情報から検知モデルを生成する。そして、検知用演算装置33は、特徴量生成装置32から取得した特徴量を検知モデルに入力することで、異常の有無を判定する。異常の有無が判定されることで、異常検知が行われる。
このように、本実施形態に係る異常検知システム30は、パケット転送装置10単位で収集されたトラヒック情報から特徴量を算出して、異常検知に用いる。パケット転送装置10単位で収集されたトラヒック情報から特徴量を算出することで、感染拡大攻撃等の少ないパケット数で成功する攻撃を異常として検知することができる。
なお、図1に示すシステム構成は、一例であって、他の構成であっても良い。例えば、システム環境Eには、複数台のパケット転送装置10、複数台のトラヒック情報収集装置20、複数の異常検知システム30等が含まれていても良い。また、異常検知用ストレージ装置31と、特徴量生成装置32と、検知用演算装置33とのうちの少なくとも2つの装置が1台の装置(コンピュータ)で構成されていても良い。更に、パケット転送装置10とトラヒック情報収集装置20とが1台の装置で構成されていても良い。
<ハードウェア構成>
次に、本実施形態に係るパケット転送装置10、トラヒック情報収集装置20、異常検知用ストレージ装置31、特徴量生成装置32、及び検知用演算装置33等を実現するコンピュータ100のハードウェア構成について、図2を参照しながら説明する。図2は、コンピュータ100のハードウェア構成の一例を示す図である。
図2に示すように、コンピュータ100は、外部I/F11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、CPU(Central Processing Unit)14と、通信I/F15と、補助記憶装置16とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
外部I/F11は、外部装置とのインタフェースである。外部装置には、記録媒体11a等がある。コンピュータ100は、外部I/F11を介して、記録媒体11a等の読み取りや書き込みを行うことができる。
記録媒体11aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
RAM12は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM13は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM13には、例えば、OS(Operating System)設定やネットワーク設定等が格納されている。
CPU14は、ROM13や補助記憶装置16等からプログラムやデータをRAM12上に読み出して処理を実行する演算装置である。通信I/F15は、コンピュータ100をネットワークに接続するためのインタフェースである。
補助記憶装置16は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置16に格納されているプログラムやデータには、例えば、OS、当該OS上において各種機能を実現するアプリケーションソフトウェア、本実施形態における各種処理を実現するプログラム等がある。
なお、コンピュータ100は、上記の各ハードウェアに加えて、例えば、ディスプレイ等の表示装置と、キーボードやマウス等の入力装置とを有していても良い。
本実施形態に係るパケット転送装置10、トラヒック情報収集装置20、異常検知用ストレージ装置31、特徴量生成装置32、及び検知用演算装置33等は、図2に示すコンピュータ100のハードウェア構成を有することにより、後述する各種処理を実現することができる。
<機能構成>
次に、パケット転送装置10と、異常検知用ストレージ装置31と、特徴量生成装置32と、検知用演算装置33との機能構成について説明する。
≪パケット転送装置10≫
まず、本実施形態に係るパケット転送装置10の機能構成について、図3を参照しながら説明する。図3は、本実施形態に係るパケット転送装置10の機能構成の一例を示す図である。
図3に示すように、本実施形態に係るパケット転送装置10は、通信部101と、ルーティング部102と、情報収集部103とを有する。これら各機能部は、パケット転送装置10にインストールされた1以上のプログラムが、CPUに実行させる処理により実現される。
通信部101は、端末40やインターネット等との間で情報の送受信を行う。例えば、通信部101は、端末40からのパケットを受信する。また、例えば、通信部101は、ルーティング部102による制御に従って、端末40から受信したパケットを転送(フォワーディング)する。
ルーティング部102は、端末40から受信したパケットに含まれる宛先IPアドレスからアドレス空間を特定する。そして、ルーティング部102は、アドレス空間毎に、当該アドレス空間のネットワーク宛にフォワーディングされたパケット数をカウントする。
なお、端末40から受信したパケットのアドレス空間は、例えば、アドレス空間毎のルーティング情報がstaticで定義されたルーティングテーブルを参照することで特定することができる。本実施形態では、容易に定義可能なアドレス空間(サブ空間)の一例として、アドレス空間は、「/8」(すなわち、ネットワーク部がIPアドレスの上位8ビット)で表されるものとする。
情報収集部103は、トラヒック情報をトラヒック情報収集装置20に送信する。トラヒック情報とは、例えば、所定の時間Δの間に、ルーティング部102によりカウントされたパケット数(アドレス空間毎のフォワーディングパケット数)のことである。
≪異常検知用ストレージ装置31≫
次に、本実施形態に係る異常検知用ストレージ装置31の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係る異常検知用ストレージ装置31の機能構成の一例を示す図である。
図4に示すように、本実施形態に係る異常検知用ストレージ装置31は、通信部311と、情報管理部312とを有する。これら各機能部は、異常検知用ストレージ装置31にインストールされた1以上のプログラムが、CPUに実行させる処理により実現される。
また、本実施形態に係る異常検知用ストレージ装置31は、検知アルゴリズム情報記憶部313と、パラメータ情報テーブル記憶部314とを有する。これら各記憶部は、例えば補助記憶装置等を用いて実現可能である。
通信部311は、検知用演算装置33等との間で情報の送受信を行う。例えば、通信部311は、検知アルゴリズム情報やパラメータ情報を検知用演算装置33に送信する。
情報管理部312は、各種記憶部に記憶されている情報を読み出すと共に、各種記憶部に情報を格納する。
検知アルゴリズム情報記憶部313は、異常検知に用いられるアルゴリズム(以下、「検知アルゴリズム」と言う。)を実行するための検知アルゴリズム情報を記憶する。検知アルゴリズムとしては、例えば、ベクトル自己回帰モデル(VAR:Vector Auto Regressive)等が挙げられる。
パラメータ情報テーブル記憶部314は、検知アルゴリズムに用いられるパラメータ情報が格納されたパラメータ情報テーブル314Tを記憶する。ここで、パラメータ情報テーブル314Tについて、図5を参照しながら説明する。図5は、パラメータ情報テーブル314Tの一例を示す図である。
図5に示すように、パラメータ情報テーブル314Tには、1以上のパラメータ情報が格納されている。また、各パラメータ情報には、パラメータ名と、パラメータ値とが含まれる。図5に示す例では、パラメータ名「サンプル数」及びパラメータ値「100」のパラメータ情報が格納されている。これは、後述する特徴量情報テーブル335Tに蓄積(格納)される特徴量情報の数(すなわち、検知アルゴリズムの構築に利用する過去データの数)を定義するパラメータ情報である。
なお、パラメータ情報テーブル314Tに格納されている各パラメータ情報のパラメータ値は、例えば、グリッドサーチ等の手法を用いて予め決定される。
≪特徴量生成装置32≫
次に、本実施形態に係る特徴量生成装置32の機能構成について、図6を参照しながら説明する。図6は、本実施形態に係る特徴量生成装置32の機能構成の一例を示す図である。
図6に示すように、本実施形態に係る特徴量生成装置32は、通信部321と、特徴量演算部322と、特徴量生成部323とを有する。これら各機能部は、特徴量生成装置32にインストールされた1以上のプログラムが、CPUに実行させる処理により実現される。
通信部321は、トラヒック情報収集装置20や検知用演算装置33等との間で情報の送受信を行う。例えば、通信部321は、トラヒック情報収集装置20からトラヒック情報を受信する。また、例えば、通信部321は、特徴量生成部323が生成した特徴量情報を検知用演算装置33に送信する。
特徴量演算部322は、通信部321が受信したトラヒック情報から特徴量を算出する。例えば、特徴量演算部322は、アドレス空間毎に、所定の時間Δの間におけるパケット数の増減率を特徴量として算出する。
特徴量生成部323は、特徴量演算部322が算出した特徴量を時刻と対応付けた特徴量情報を生成する。
≪検知用演算装置33≫
次に、本実施形態に係る検知用演算装置33の機能構成について、図7を参照しながら説明する。図7は、本実施形態に係る検知用演算装置33の機能構成の一例を示す図である。
図7に示すように、本実施形態に係る検知用演算装置33は、通信部331と、情報管理部332と、検知モデル生成部333と、検知演算部334とを有する。これら各機能部は、検知用演算装置33にインストールされた1以上のプログラムが、CPUに実行させる処理により実現される。
また、本実施形態に係る検知用演算装置33は、特徴量情報テーブル記憶部335を有する。当該記憶部は、例えば補助記憶装置等を用いて実現可能である。
通信部331は、異常検知用ストレージ装置31や特徴量生成装置32等との間で情報の送受信を行う。例えば、通信部331は、異常検知用ストレージ装置31から検知アルゴリズム情報及びパラメータ情報を受信する。また、例えば、通信部331は、特徴量生成装置32から特徴量情報を受信する。
情報管理部332は、各種記憶部に記憶されている情報を読み出すと共に、各種記憶部に情報を格納する。
検知モデル生成部333は、通信部331が受信した検知アルゴリズム情報及びパラメータ情報から検知モデルを生成する。検知モデルは、例えば、検知アルゴリズム情報に対して、パラメータ情報に含まれるパラメータ値を設定することで生成される。例えば、検知モデルとしてベクトル自己回帰モデルが用いられる場合、ベクトル自己回帰モデルに用いられるハイパーパラメータに対して、パラメータ情報に含まれるパラメータ値を設定すれば良い。
なお、検知モデル生成部333により生成される検知モデルは、例えばベクトル自己回帰モデル等のような時系列分析に用いられるモデルに限られない。例えば、教師あり学習等の機械学習に用いられるモデル(例えば、SVM(Support Vector Machine)やニューラルネットワーク、隠れマルコフモデル等)が生成されても良い。
検知演算部334は、後述する特徴量情報テーブル335Tに格納されている特徴量情報を、検知モデル生成部333が生成した検知モデルに入力することで、異常の有無を判定する。
特徴量情報テーブル記憶部335は、特徴量情報テーブル335Tを記憶する。ここで、特徴量情報テーブル335Tについて、図8を参照しながら説明する。図8は、特徴量情報テーブル335Tの一例を示す図である。
図8に示すように、特徴量情報テーブル335Tには、1以上の特徴量情報が格納されている。また、各特徴量情報には、時刻と、特徴量とが含まれる。/8のアドレス空間毎の所定の時間Δの間におけるパケット数の増減率を特徴量とした場合、後述するように、当該特徴量は、次元数が256のベクトルで表される。
図8に示す例では、時刻t1と特徴量(2,1.5,3,・・・,0.7)とが対応付けられた特徴量情報が格納されている。当該特徴量は、例えば、アドレス空間「0.0.0.0/8」〜アドレス空間「255.0.0.0/8」それぞれの時刻0〜時刻t0までの間におけるフォワーディングパケット数と、時刻t0〜時刻t1までの間におけるフォワーディングパケット数の増減率を示している。
同様に、図8に示す例では、時刻t2と特徴量(2.2,1,0.4,・・・,0.9)とが対応付けられた特徴量情報が格納されている。当該特徴量は、例えば、アドレス空間「0.0.0.0/8」〜アドレス空間「255.0.0.0/8」それぞれの時刻t0から時刻t1までの間におけるフォワーディングパケット数と、時刻t1〜時刻t2までの間におけるフォワーディングパケット数との増減率を示している。
特徴量情報テーブル335Tには、パラメータ名が「サンプル数」のパラメータ情報のパラメータ値が示す個数(図8に示す例では「100個」)の特徴量情報が格納(蓄積)される。
<処理の詳細>
次に、本実施形態に係るシステムの処理の詳細について説明する。
以降では、パケット転送装置10単位で収集されたトラヒック情報から特徴量を算出することで、感染拡大攻撃等の少ないパケット数で成功する攻撃等を異常として検知する処理について、図9を参照しながら説明する。図9は、本実施形態に係る異常検知処理の一例を示すシーケンス図である。
まず、異常検知用ストレージ装置31の情報管理部312は、検知アルゴリズム情報及びパラメータ情報を取得する(ステップS901)。すなわち、情報管理部312は、検知アルゴリズム情報記憶部313から検知アルゴリズム情報を取得すると共に、パラメータ情報テーブル記憶部314に記憶されているパラメータ情報テーブル314Tからパラメータ情報を取得する。
次に、異常検知用ストレージ装置31の通信部311は、検知アルゴリズム情報及びパラメータ情報を検知用演算装置33に送信する(ステップS902)。
検知用演算装置33の検知モデル生成部333は、通信部331が検知アルゴリズム情報及びパラメータ情報を受信すると、受信した検知アルゴリズム情報及びパラメータ情報から検知モデルを生成する(ステップS903)。これにより、異常検知に用いられる検知モデルが生成される。
続いて、トラヒック情報収集装置20は、トラヒック情報のリクエストをパケット転送装置10に送信する(ステップS904)。
パケット転送装置10のルーティング部102は、通信部101がトラヒック情報のリクエストを受信すると、所定の時間Δの間、アドレス空間毎に、当該アドレス空間のネットワーク宛にフォワーディングされたパケット数をカウントする(ステップS905)。すなわち、ルーティング部102は、所定の時間Δの間、「0.0.0.0/8」〜「255.0.0.0/8」の256個のアドレス空間にそれぞれフォワーディングされたパケット数をカウントする。
次に、パケット転送装置10の情報収集部103は、ルーティング部102によりカウントされたパケット数(アドレス空間毎にフォワーディングされたパケット数)を示すトラヒック情報を、通信部101によりトラヒック情報収集装置20に送信する(ステップS906)。
次に、トラヒック情報収集装置20は、パケット転送装置10からトラヒック情報を受信すると、受信したトラヒック情報を蓄積する(ステップS907)。これにより、所定の時間Δの間におけるアドレス空間毎にフォワーディングされたパケット数を示すトラヒック情報がトラヒック情報収集装置20に蓄積される。すなわち、例えば、トラヒック情報の収集開始時刻をt=t0とした場合、時刻t=t0におけるトラヒック情報(時刻0〜時刻t0までの間におけるアドレス空間毎のフォワーディングパケット数)、時刻t=t1=t0+Δにおけるトラヒック情報(時刻t0〜時刻t1までの間におけるアドレス空間毎のフォワーディングパケット数)、時刻t=t2=t1+Δにおけるトラヒック情報(時刻t1〜時刻t2までの間におけるアドレス空間毎のフォワーディングパケット数)等が順次蓄積される。
次に、トラヒック情報収集装置20は、例えば、時刻tにおけるトラヒック情報(すなわち、上記のステップS907でパケット転送装置10から受信したトラヒック情報)と、時刻t−1におけるトラヒック情報とを特徴量生成装置32に送信する(ステップS908)。なお、時刻t−1のトラヒック情報が特徴量生成装置32で保持されている場合(又は後述するベクトルF(t−1)が保持されている場合)は、トラヒック情報収集装置20は、時刻t−1におけるトラヒック情報を当該特徴量生成装置32に送信しなくても良い。
特徴量生成装置32の特徴量演算部322は、時刻tにおけるトラヒック情報と、時刻t−1におけるトラヒック情報とを通信部321が受信すると、これらのトラヒック情報から、時刻tにおける特徴量を算出する(ステップS909)。
ここで、時刻tにおけるトラヒック情報と、時刻t−1におけるトラヒック情報とから、時刻tにおける特徴量を算出する処理について、図10を参照しながら説明する。図10は、第一の実施形態に係る特徴量の算出処理の一例を示すフローチャートである。
まず、特徴量演算部322は、時刻tにおけるトラヒック情報と、時刻t−1におけるトラヒック情報とにそれぞれ含まれるパケット数をベクトル化して、ベクトルF(t)とベクトルF(t−1)とを作成する(ステップS1001)。なお、ベクトルF(t−1)が保持されている場合は、当該ベクトルF(t−1)を作成しなくても良い。
時刻tにおけるトラヒック情報は、時刻t−1から時刻tまでの間(すなわち、時間Δの間)における「0.0.0.0/8」〜「255.0.0.0/8」の256個のアドレス空間にそれぞれフォワーディングされたパケット数である。したがって、当該時間Δの間にアドレス空間「0.0.0.0/8」にフォワーディングされたパケット数をF1(t)、アドレス空間「1.0.0.0/8」にフォワーディングされたパケット数をF2(t)、・・・、アドレス空間「255.0.0.0/8」にフォワーディングされたパケット数をF256(t)とすれば、ベクトルF(t)=(F1(t),F2(t),・・・,F256(t))が作成される。
次に、特徴量演算部322は、時刻t−1におけるトラヒック情報から作成されたベクトルF(t−1)に対するベクトルF(t)の増減率R(t)を算出して、時刻tにおける特徴量とする(ステップS1002)。なお、特徴量としては、増減率以外にも、例えば、ベクトルF(t)の絶対値や当該絶対値に対して対数をとった値等が用いられても良い。
増減率R(t)=(R1(t),R2(t),・・・,R256(t))は、j=1,2,・・・,256に対して、次の(式1)で定義される。
Rj(t)=Fj(t)/Fj(t−1) ・・・(式1)
ただし、Fj(t−1)=0のとき、Rj(t)=1とする。
これにより、時刻tにおける特徴量を示す増減率R(t)が算出される。なお、R(t=t0)を算出する場合は、F(t−1)=(0,0,・・・,0)として算出すれば良い(すなわち、R(t=t0)=(1,1,・・・,1)とすれば良い。)。
図9に戻る。特徴量生成装置32の特徴量生成部323は、特徴量演算部322が算出した特徴量R(t)を時刻tと対応付けた特徴量情報を生成する(ステップS910)。
次に、特徴量生成装置32の通信部321は、特徴量生成部323が生成した特徴量情報を検知用演算装置33に送信する(ステップS911)。
上記のステップS904〜ステップS911は、所定の時間Δ毎に繰り返し実行される。すなわち、時間Δ毎に、時刻t=t0における特徴量情報、時刻t=t1における特徴量情報、時刻t=t2における特徴量情報等が順に検知用演算装置33に送信される。
検知用演算装置33の情報管理部332は、通信部331が特徴量情報を受信すると、受信した特徴量情報を、特徴量情報テーブル記憶部335に記憶されている特徴量情報テーブル335Tに格納する(ステップS912)。このとき、受信した特徴量情報を特徴量情報テーブル335Tに格納することでサンプル数を超える場合には、情報管理部332は、特徴量情報テーブル335Tに格納されている特徴量情報のうち、最も古い時刻の特徴量情報を削除する。
次に、検知用演算装置33の検知演算部334は、特徴量情報テーブル335Tに格納されている特徴量情報を、上記のステップS903で生成された検知モデルに入力することで、異常の有無を判定する(ステップS913)。例えば、検知モデルがVARである場合、直前の時刻t−1の特徴量から正常状態を構築し、構築した正常状態と現時刻tの特徴量とを比較することが異常を検知することができる。
これにより、パケット転送装置10がアドレス空間単位でカウントしたフォワーディングパケット数から算出された特徴量を用いて、感染拡大攻撃等の少ないパケット数で成功する攻撃を異常として検知することができる。
すなわち、例えば、図11(a)に示すように、時刻t〜時刻t+1において、アドレス空間「0.0.0.0/8」にフォワーディングされたパケット数が「1000」、・・・、アドレス空間「255.0.0.0/8」にフォワーディングされたパケット数が「5」であったとする。このとき、図11(b)に示すように、時刻t+1〜時刻t+2において、異常なトラヒック(例えば、感染拡大攻撃等によるトラヒック)が発生し、アドレス空間「0.0.0.0/8」にフォワーディングされたパケット数が「1005」、・・・、アドレス空間「255.0.0.0/8」にフォワーディングされたパケット数が「10」となったとする。
この場合、アドレス空間「0.0.0.0/8」におけるパケット数の増減率はほぼ変化がないのに対して、アドレス空間「255.0.0.0/8」におけるパケット数の増減率は2倍となる。このため、アドレス空間毎のフォワーディングパケット数の増減率R(t)を特徴量として用いることで、異常なトラヒックの発生を検知することができるようになる。
また、例えば、本実施形態では、パケット転送装置10単位で収集したトラヒック情報を用いて特徴量を算出して、異常検知を行う。このため、例えば、端末40毎のトラヒック情報を用いて異常検知を行う場合と比べて、異常検知における計算量や情報取得時間を削減することができる。
なお、更に、例えば、複数のパケット転送装置10において、ある特定のアドレス空間におけるフォワーディングパケット数が増加したような場合、当該特定のアドレス空間にC2(Command and Control)サーバが存在すると考えられる。したがって、この場合、C2サーバを検知することができる。
≪特徴量の算出の他の例≫
ここで、上記では、/8のアドレス空間毎のパケット数の増減率を特徴量に用いたが、ACKパケット数とSYNパケット数との比率を特徴量に用いることもできる。すなわち、例えば、マルウェア等に感染した端末40がTelnet等のアプリケーションにより宛先ホストに感染拡大攻撃等を行う場合、図12に示すように、宛先ホストとの間にFW(ファイアウォール)等があると、正常なトラヒックと異なり、SYNパケットに対するACKパケットが返ってこないことがある。
したがって、ACKパケット数とSYNパケット数との比率を特徴量に用いることで、異常なトラヒックの発生を検知することができるようになる。
以降では、図9のステップS903における特徴量の算出処理の他の例について、図13を参照しながら説明する。図13は、本実施形態に係る特徴量の算出処理の他の例を示すフローチャートである。
ただし、図13では、時刻tにおけるトラヒック情報は、時刻t−1〜時刻t−1+Δの間におけるSYNパケット数及びACKパケット数であるものとする。したがって、この場合、図9のステップS905では、パケット転送装置10は、時間Δの間におけるSYNパケット数及びACKパケット数をカウントしたものとする。SYNパケット数及びACKパケット数のカウントは、例えば、ホワイトボックススイッチでTCAM(Ternary Content Addressable Memory)を実装すること等により実現することができる。また、図9のステップS908において、トラヒック情報収集装置20は、時刻tにおけるトラヒック情報を特徴量生成装置32に送信すれば良い。
まず、特徴量演算部322は、時刻tにおけるトラヒック情報に含まれるSYNパケット数S(t)及びACKパケット数A(t)を取得する(ステップS1301)。
次に、特徴量演算部322は、SYNパケット数S(t)と、ACKパケット数A(t)との比率APS(t)を算出して、時刻tにおける特徴量とする(ステップS1302)。
比率APS(t)は、次の(式2)で定義される。
APS(t)=A(t)/S(t) ・・・(式2)
これにより、時刻tにおける特徴量を示す比率APS(t)が算出される。
[第二の実施形態]
次に、第二の実施形態について説明する。第一の実施形態では、/8のアドレス空間(すなわち、上位8ビットがネットワーク部であるアドレス空間)毎に、フォワーディングされたパケット数をカウントして、特徴量を算出する場合について説明した。第二の実施形態では、容易に定義可能なアドレス空間(サブ空間)の一例として、/16のアドレス空間(すなわち、上位16ビットがネットワーク部であるアドレス空間)毎に、フォワーディングされたパケット数をカウントして、特徴量を算出する場合について説明する。
/16のアドレス空間では、216個(すなわち、65536個)のアドレス空間がある。そこで、この場合、216個のアドレス空間をクラスタリングして、適切な個数のアドレス空間を定義した上で、このように定義されたアドレス空間に対して、第一の実施形態と同様の方法で異常検知を行うものとする。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、適宜、その説明を省略するものとする。
<機能構成>
以降では、異常検知用ストレージ装置31及び検知用演算装置33の機能構成について説明する。
≪異常検知用ストレージ装置31≫
まず、本実施形態に係る異常検知用ストレージ装置31の機能構成について、図14を参照しながら説明する。図14は、本実施形態に係る異常検知用ストレージ装置31の機能構成の一例を示す図である。
図14に示すように、本実施形態に係る異常検知用ストレージ装置31は、更に、アドレス空間定義情報テーブル記憶部315を有する。当該記憶部は、例えば補助記憶装置等を用いて実現可能である。
アドレス空間定義情報テーブル記憶部315には、/16のアドレス空間がクラスタリングされたアドレス空間(以下、「検知用アドレス空間」と言う。)の定義情報が格納されているアドレス空間定義情報テーブル315Tが記憶されている。ここで、アドレス空間定義情報テーブル315Tについて、図15を参照しながら説明する。図15は、アドレス空間定義情報テーブル315Tの一例を示す図である。
図15に示すように、アドレス空間定義情報テーブル315Tには、1以上のアドレス空間定義情報が格納されている。また、各アドレス空間定義情報には、検知用アドレス空間名と、アドレス空間定義とが含まれる。図15に示す例では、検知用アドレス空間名「検知用アドレス空間S1」と、アドレス空間定義「1.1.0.0/16」、・・・、アドレス空間定義「255.155.0.0/16」とが対応付けられたアドレス空間定義情報が格納されている。これは、検知用アドレス空間S1は、/16のアドレス空間「1.1.0.0/16」、・・・、「255.155.0.0/16」等が1つのクラスタにクラスタリングされたことを示している。
なお、図5に示す例では、/16のアドレス空間が300個の検知用アドレス空間S1〜S300にクラスタリングされた場合を示している。このクラスタ数「300」は、後述するように、例えばパラメータ情報として設定される。
このように、アドレス空間定義情報は、/16のアドレス空間を所定の個数の検知用アドレス空間にクラスタリングした情報である。
ここで、本実施形態では、パラメータ情報テーブル記憶部314に記憶されているパラメータ情報テーブル314Tに格納されるパラメータ情報が第一の実施形態と異なる。そこで、パラメータ情報テーブル314Tについて、図16を参照しながら説明する。図16は、パラメータ情報テーブル314Tの他の例を示す図である。
図16に示すように、パラメータ情報テーブル314Tには、パラメータ名「クラスタ数」のパラメータ情報が格納されている。図16に示す例では、パラメータ名「クラスタ数」及びパラメータ値「300」のパラメータ情報が格納されている。これは、/16のアドレス空間をクラスタリングする際のクラスタ数が「300」であることを示している。
なお、パラメータ名「クラスタ数」のパラメータ情報は、/16のアドレス空間をクラスタリングするアルゴリズムとして、事前にクラスタ数を設定するアルゴリズム(例えば、k−means法等)を用いる場合に、パラメータ情報テーブル314Tに格納される。
また、検知アルゴリズム情報記憶部313には、更に、クラスタリングに用いるアルゴリズムを実行するためのアルゴリズム情報(以下、「クラスタリングアルゴリズム情報」と言う。)が記憶されている。クラスタリングアルゴリズムとしては、例えば、k−means法等が挙げられる。
≪検知用演算装置33≫
次に、本実施形態に係る検知用演算装置33の機能構成について、図17を参照しながら説明する。図17は、本実施形態に係る検知用演算装置33の機能構成の一例を示す図である。
図17に示すように、本実施形態に係る検知用演算装置33は、更に、クラスタリング部336を有する。当該機能部は、検知用演算装置33にインストールされた1以上のプログラムが、CPUに実行させる処理により実現される。
クラスタリング部336は、所定の時間δの間における/16のアドレス空間毎のフォワーディングパケット数を用いて、/16のアドレス空間をクラスタリングする。そして、クラスタリング部336は、同一のクラスタに属する/16のアドレス空間を同一の検知用アドレス空間としたアドレス空間定義情報を生成する。
<処理の詳細>
次に、本実施形態に係るシステムの処理の詳細について説明する。
以降では、パケット転送装置10単位で収集されたトラヒック情報から/16のアドレス空間をクラスタリングした上で、第一の実施形態と同様に、異常検知を行う処理について、図18を参照しながら説明する。図18は、本実施形態に係る異常検知処理の一例を示すシーケンス図である。
まず、トラヒック情報収集装置20は、トラヒック情報のリクエストをパケット転送装置10に送信する(ステップS1801)。
パケット転送装置10のルーティング部102は、通信部101がトラヒック情報のリクエストを受信すると、所定の時間δの間、/16のアドレス空間毎に、当該アドレス空間のネットワーク宛にフォワーディングされたパケット数をカウントする(ステップS1802)。すなわち、ルーティング部102は、所定の時間δの間、「0.0.0.0/16」〜「255.255.0.0/16」の65536個のアドレス空間にそれぞれフォワーディングされたパケット数をカウントする。
次に、パケット転送装置10の情報収集部103は、ルーティング部102によりカウントされたパケット数(/16のアドレス空間毎にフォワーディングされたパケット数)を示すトラヒック情報を、通信部101によりトラヒック情報収集装置20に送信する(ステップS1803)。
次に、トラヒック情報収集装置20は、パケット転送装置10からトラヒック情報を受信すると、受信したトラヒック情報を蓄積する(ステップS1804)。これにより、所定の時間δの間におけるアドレス空間毎にフォワーディングされたパケット数を示すトラヒック情報がトラヒック情報収集装置20に蓄積される。
次に、トラヒック情報収集装置20は、所定の時間δの間におけるアドレス空間毎にフォワーディングされたパケット数を示すトラヒック情報を特徴量生成装置32に送信する(ステップS1805)。
特徴量生成装置32の通信部321は、トラヒック情報収集装置20から受信したトラヒック情報を検知用演算装置33に送信する(ステップS1806)。
検知用演算装置33のクラスタリング部336は、通信部331がトラヒック情報を受信すると、異常検知用ストレージ装置31からクラスタリングアルゴリズム情報及びパラメータ情報を取得する(ステップS1807)。
次に、検知用演算装置33のクラスタリング部336は、トラヒック情報を用いて、/16のアドレス空間をクラスタリングする(ステップS1808)。
ここで、トラヒック情報を用いて、/16のアドレス空間をクラスタリングする処理について、図19を参照しながら説明する。図19は、本実施形態に係るクラスタリング処理の一例を示すフローチャートである。
まず、クラスタリング部336は、トラヒック情報に含まれるパケット数をベクトル化して、ベクトルGを作成する(ステップS1901)。
トラヒック情報は、所定の時間δの間における「0.0.0.0/16」〜「255.255.0.0/16」の65536個のアドレス空間にそれぞれフォワーディングされたパケット数である。したがって、当該時間δの間にアドレス空間「0.0.0.0/16」にフォワーディングされたパケット数をG1、アドレス空間「1.0.0.0/16」にフォワーディングされたパケット数をG2、・・・、アドレス空間「255.255.0.0/16」にフォワーディングされたパケット数をG65536とすれば、ベクトルG=(G1,G2,・・・,G65536)が作成される。
次に、クラスタリング部336は、ベクトルG=(G1,G2,・・・,G65536)の各成分G1,G2,・・・,G65536をクラスタリングすることで、各成分に対応する/16のアドレス空間をクラスタリングする(ステップS1902)。
すなわち、クラスタリング部336は、図18のステップS1807で異常検知用ストレージ装置31から取得したクラスタリングアルゴリズム情報及びパラメータ情報を用いて、G1,G2,・・・,G65536をクラスタリングする。このとき、クラスタリング部336は、G1,G2,・・・,G65536を、パラメータ名「クラスタ数」のパラメータ情報のパラメータ値が示す個数のクラスタにクラスタリングする。そして、クラスタリング部336は、同一のクラスタに属する成分に対応する/16のアドレス空間を、同一のクラスタにクラスタリングする。
これにより、例えば、パラメータ名「クラスタ数」のパラメータ情報のパラメータ値が「300」である場合、/16のアドレス空間が300個のクラスタにクラスタリングされる。言い換えれば、65536個の/16のアドレス空間が、所定の個数(例えば300個)のアドレス空間に分類される。
図18に戻る。検知用演算装置33のクラスタリング部336は、同一のクラスタに属する/16のアドレス空間を同一の検知用アドレス空間としたアドレス空間定義情報を生成する(ステップS1809)。これにより、例えば、パラメータ名「クラスタ数」のパラメータ情報のパラメータ値が「300」である場合、検知用アドレス空間S1のアドレス空間情報、検知用アドレス空間S2のアドレス空間情報、・・・、検知用アドレス空間S300のアドレス空間情報が生成される。
次に、検知用演算装置33の通信部331は、生成したアドレス空間定義情報を異常検知用ストレージ装置31に送信する(ステップS1810)。
異常検知用ストレージ装置31の情報管理部312は、通信部311が受信したアドレス空間定義情報をアドレス空間定義情報テーブル315Tに格納する(ステップS1811)。なお、アドレス空間定義情報テーブル315Tに既にアドレス空間定義情報が格納されている場合は、情報管理部312は、既に格納されているアドレス空間定義情報を削除した上で、受信したアドレス空間定義情報を格納すれば良い。
そして、以降では、第一の実施形態と同様に、図9のステップS901〜ステップS913を行うことで、異常検知が行われる。ただし、本実施形態では、/8のアドレス空間単位ではなく、検知用アドレス空間単位でフォワーディングパケット数をカウントする。すなわち、トラヒック情報は、所定の時間Δの間における検知用アドレス空間毎のフォワーディングパケット数である。
したがって、第二の実施形態では、例えば、時刻t−1〜t−1+Δの間に、検知用アドレス空間Sj(j=1,2,・・・,300)にフォワーディングされたパケット数をHj(t)とすれば、ベクトルH(t)=(H1(t),H2(t),・・・,H300(t))が作成される。そして、Hj(t)に対するHj(t−1)の増減率をRj(t)算出することで、特徴量R(t)=(R1(t),R2(t),・・・,R300(t))が算出される。
このように、第二の実施形態では、パケット転送装置10がフォワーディングするアドレス空間が多数である場合、これらアドレス空間をクラスタリングする。これにより、フォワーディング先のアドレス空間が多数であっても、第一の実施形態と同様に、感染拡大攻撃等の少ないパケット数で成功する攻撃を異常として検知することができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。