説明

異常データ検出装置、異常データ検出方法及び異常データ検出プログラム

【課題】
予め記憶されていないアクセスデータに対しても、正常なアクセスデータであるか否かを判断する異常データ検出装置及び異常データ検出プログラムを提供する。
【解決手段】
アクセスデータに含まれるパラメータ値に基づいて異常データの特徴を示す特徴量を算出するデータ解析手段11と、算出された特徴量を蓄積して記憶する特徴量蓄積手段16と、特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段15と、特徴量蓄積手段16に記憶された特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、統計情報記憶手段15に記憶された前記統計情報を更新する統計処理実行手段14と、入力されたアクセスデータに関する過去のアクセス回数を判定するアクセス判定手段12と、判定された結果に基づいて、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定手段13とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークから入力するアクセスデータにおいて、異常データを検知する異常データ検出装置、異常データ検出方法及び異常データ検出プログラムに関する。
【背景技術】
【0002】
一般的に、インターネット等の通信ネットワークにおける異常データの検出として、ファイアウォール等を介して所定のIPアドレス及びポート番号から受信したパケットについては通過させない方法が一般的である。しかし、このファイアウォールで防ぐことのできない攻撃は多様であるが、その中で、ウェブサーバ上のセキュリティーホール、即ちオペレーティングシステムやブラウザなどのソフトウェアのバグや脆弱性を狙った攻撃も多い。例えば、HTTPリクエストに特定の文字列が含まれていると、そのHTTPリクエストが解読され実行されることにより、ウェブサーバ上で稼働しているCGI(Common gateway Interface)等のソフトウェアが、バッファオーバーフローなどにより予期せぬ動作を引き起こすといったことが挙げられる。この様なウェブサーバ上のソフトウェアの脆弱性を狙った攻撃に対応するために、クライアントからウェブサーバに送信されるHTTPリクエストをアプリケーション層で中継及び解析し、予め既知の攻撃の特徴を格納した攻撃パターンファイルと比較し、マッチした場合にセッション中継を遮断することにより、ウェブサーバを防御する方法がある(例えば、特許文献1)。
【0003】
しかし上述した方法においては、攻撃パターンファイルに格納されていない未知の攻撃からはウェブサーバを防御することができない問題点があった。
【0004】
そこで、ウェブサーバなどインターネットに接続された装置送信されたアクセスデータにおいて、異常データを検知する技術分野において、アクセスデータに含まれる値の範囲や文字種別などを分析し、その平均値や分散を求め、統計的に異常とされる閾値を計算する。更にその閾値に基づいて、あるアクセスデータが統計的に正常であるか異常であるかを判断することにより、そのアクセスデータが異常データに関わるものであるか否かを検出する技術を確立することが求められている。この技術は、予め与えられた既知の異常パターン或いは正常パターンからだけでは検出できない、未知の異常データを検出できることが期待されている(例えば、非特許文献1)。
【0005】
しかし上述した技術においては、単純に統計的に計算された閾値のみに依存する場合、未知の異常データが真に異常データであるか否かの判断能力が必ずしも十分ではない。例えば、特に閾値の近傍に評価されるアクセスデータについては、判断の正確性が弱くなる傾向があり、その閾値の設定が適切でないと、具体的には、正常であるものを異常として検出してしまう後検出、又は異常なものを検出できない不検出を引き起こす一員となる。
【0006】
未知の異常データの誤検出と不検出を削除するためには、管理者や専門家の知識に基づく判断によって、管理端末において正常であるか異常であるかの閾値を補正することが考えられ得る。しかしこの方法においては、インターネットに接続された機器に対するアクセスは膨大かつ多様であり、管理端末へ出力される警報ログの量が多すぎると、管理者の手に負えず、結局放置されてしまう問題が生じる。
【0007】
これを解決するため、発明者らは管理端末において運用中に閾値を適切に補正する方法を発明した(例えば、特許文献2)。特許文献2に記載の方法においては、閾値よりわずかに異常と評価される、閾値外の予め定められた閾値近傍に属するアクセスデータについては誤検出の可能性があるものとして、誤検出補正管理部へ受け渡し、閾値よりわずかに正常とされる、閾値内の予め定めた閾値近傍に属するアクセスデータについては不検出の可能性があるものとして、不検出補正管理部へ受け渡す。
【特許文献1】特開2002−063084号公報
【特許文献2】特願2003−318796号公報
【非特許文献1】ISSN 0919−6072 情報処理学会研究報告 情処研報 Vol.2003,No.74 2003年7月17日〜18日発行 発行人 社団法人 情報処理学会 p.91〜96 「HTTPリクエスト解析による未知攻撃防御システム」 今野 徹、楯岡 正道
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかし、特許文献2に記載の方法においては、管理者の存在を前提として、管理端末により補正されるので、管理者に負担が強いられる問題がある。更に、運用中にデータの異常性の判断基準、例えば閾値を変更するための手段がなかった。従って、運用時間が長期に及ぶ場合、アクセスデータの傾向の変化に対し、適切に追随するためには管理端末に置いて常に監視をするなどの対策を採る必要があり、負担やコストがかかる問題があった。
【0009】
従って本発明の目的は、予め記憶されていないアクセスデータに対しても、正常なアクセスデータであるか否かを判断することができる異常データ検出装置及び異常データ検出プログラムを提供することである。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明の第1の特徴は、接続されるネットワークセグメントから入力されるアクセスデータに含まれるパラメータ値に基づいて異常データの特徴を示す特徴量を算出するデータ解析手段と、データ解析手段で算出された特徴量を蓄積して記憶する特徴量蓄積手段と、特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段と、特徴量蓄積手段に記憶された特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、統計情報記憶手段に記憶された統計情報を更新する統計処理実行手段と、統計情報記憶手段を参照して前記入力されたアクセスデータに関する過去のアクセス回数を判定するアクセス判定手段と、アクセス判定手段で判定された結果に基づいて、データ解析手段とで算出された特徴量と統計情報記憶手段に記憶される統計情報とを比較して、入力されたアクセスデータが正常であるか否かを判定する統計的異常判定手段とを備える異常データ検出装置である。
【0011】
この様な本発明によれば、予め記憶されていないアクセスデータに対しても、正常なアクセスデータであるか否かを判断することができる。
【発明の効果】
【0012】
本発明によれば、予め記憶されていないアクセスデータに対しても、正常なアクセスデータであるか否かを判断する異常データ検出装置及び異常データ検出プログラムを提供することができる。
【発明を実施するための最良の形態】
【0013】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0014】
[第1の実施の形態]
[異常データ検出装置]
図1を参照して、本発明の第1の実施の形態に係る異常データ検出装置1を説明する。
【0015】
本発明の第1の実施の形態に係る異常データ検出装置1は、接続されるネットワークを介して入力される既知の異常データを検出するとともに、未知の異常データを検出する。異常データ検出装置1は、図1に示すように、データ解析部11、アクセス判定部12、統計的異常判定部13、統計処理実行部14、統計情報テーブル15および特徴量蓄積テーブル16を有している。
【0016】
具体的には、異常データ検出装置1は、インターネットやイントラネットなどの第1のネットワークセグメント2から入力した図示しない第1のネットワークセグメント2に接続されたクライアントコンピュータから出力された第2のネットワークセグメント3に接続された図示しないサーバ(Webサーバ)に対するアクセスデータが正常なアクセスデータである場合、入力したアクセスデータを第2のネットワークセグメント3に通過させる。一方、異常データ検出装置1は、入力したアクセスデータが異常なアクセスデータである場合、アクセスデータを第2のネットワークセグメント3に通過させることなく破棄するか、アクセスデータに異常なアクセスデータである可能性がある旨の付加情報を添付し、第2のネットワークセグメント3へ通過させる。
【0017】
ここで、アクセスデータは、例えばHTTPリクエスト、SMTPリクエストなどの通信プロトコルに基づく情報である。異常データ検出装置1は、例えば一般的なコンピュータに異常データ検出プログラムなどのソフトウェアプログラムがインストールされ、そのソフトウェアプログラムが中央処理制御装置において実行されることにより実現される。
【0018】
図2に示すように、本発明の第1の実施の形態に係る異常データ検出装置1は、中央処理制御装置101、ROM(Read Only Memory)102、RAM(Random Access Memory)103及び入出力インタフェース109が、バス110を介して接続されている。入出力インタフェース109には、入力装置104、表示装置105、通信制御装置106、記憶装置107及びリムーバブルディスク108が接続されている。
【0019】
中央処理制御装置101は、入力装置104からの入力信号に基づいてROM102から異常データ検出装置1を起動するためのブートプログラムを読み出して実行し、更に記憶装置107に記憶されたオペレーティングシステムを読み出す。更に中央処理制御装置101は、入力装置104や通信制御装置106などの入力信号に基づいて、各種装置の制御を行ったり、RAM103や記憶装置107などに記憶されたプログラム及びデータを読み出してRAM103にロードするとともに、RAM103から読み出されたプログラムのコマンドに基づいて、データの計算又は加工など、後述する一連の処理を実現する処理装置である。
【0020】
入力装置104は、操作者が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を作成し、入出力インタフェース109及びバス110を介して中央処理制御装置101に送信される。表示装置105は、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどであり、中央処理制御装置101からバス110及び入出力インタフェース109を介して表示装置105において表示させる出力信号を受信し、例えば中央処理制御装置101の処理結果などを表示する装置である。通信制御装置106は、LANカードやモデムなどの装置であり、異常データ検出装置1をインターネットやLANなどの通信ネットワークに接続する装置である。通信制御装置106を介して通信ネットワークと送受信したデータは入力信号又は出力信号として、入出力インタフェース及びバス110を介して中央処理制御装置101に送受信される。
【0021】
記憶装置107は磁気ディスク装置であって、中央処理制御装置101で実行されるプログラムやデータが記憶されている。リムーバブルディスク108は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース109及びバス110を介して中央処理制御装置101に送受信される。
【0022】
本発明の第1の実施の形態に係る異常データ検出装置1の記憶装置107には、異常データ検出プログラムが記憶されるとともに、統計情報テーブル15および特徴量蓄積テーブル16が記憶される。また、異常データ検出プログラムが異常データ検出装置1の中央処理制御装置101に読み込まれ実行されることによって、データ解析部11、アクセス判定部12、統計的異常判定部13および統計処理実行部14が異常データ検出装置1に実装される。
【0023】
データ解析部11は、接続される第1のネットワークセグメント2からアクセスデータが入力されると、入力されたアクセスデータに含まれるパラメータ値に基づいて、パラメータの識別子毎に、異常データの特徴を示す特徴量を算出する。また、データ解析部11は算出した特徴量をアクセスデータとともに出力する。
【0024】
例えばデータ解析部11は、図3に示すようなHTTPリクエストのアクセスデータを解析してパラメータ値の特徴量を算出する。図3に示すアクセスデータを入力して解析する場合、データ解析部11は、CGI変数名1である変数「P」のパラメータ値として数値である「123」を切り出す。また、CGI変数名2である変数「Q」のパラメータ値としてASCII文字である「user」、CGI変数名3である変数「R」のパラメータ値として数値である「456」を切り出す。
【0025】
各CGI変数名の値を切り出すと、データ解析部11は、切り出した値に基づいて特徴量を算出する。
【0026】
アクセス判定部12は、統計情報テーブル15を読み出して、入力されたアクセスデータに含まれるパラメータの識別子と関連付けられる過去のアクセス回数を判定する。
【0027】
ここでは、CGI名とCGI変数名との組み合わせをパラメータの識別子とする。アクセス判定部12は、具体的には、データ解析部11から出力されたアクセスデータ及び特徴量を入力すると、統計情報テーブル15に判定の対象とするアクセスデータに含まれるパラメータの識別子であるCGI変数及びCGI名の組み合わせに関連付けられる統計情報のアクセス回数を参照し、過去にこのパラメータ識別子に対してアクセスが存在するか否かを判定する。また、アクセス判定部12は、アクセスが存在するか否かの判定結果をアクセスデータ及び特徴量とともに出力する。
【0028】
統計的異常判定部13は、アクセス判定部12で判定された結果に基づいて、データ解析部11で算出された特徴量と統計情報テーブル15に記憶される統計情報とを比較して、入力されたアクセスデータが正常であるか否かを判定する。
【0029】
まず、統計異常判定部13は、アクセス判定部12からアクセスデータ、特徴量及び判定結果を入力すると、アクセス判定部12で過去にこのパラメータ識別子に対してアクセスが存在すると判定されたとき、データ解析部11で算出された特徴量が「0」である場合にこのパラメータ値を正常と判断し、特徴量が「0」でない場合にこのパラメータ値を異常と判断する。
【0030】
また、アクセス判定部12で過去にこのパラメータの識別子に対してアクセスが存在しないと判定されたとき、アクセスデータの特徴量に基づいた統計分布が算出された統計的に異常とみなしうる閾値を利用してアクセスデータが正常であるか否かを判定する。たとえば、パラメータ値について求められた特徴量が式1のf(x)の範囲内の場合、このパラメータ値を正常であると判定し、範囲外のときにパラメータ値であると判定する。

μmn−Amn×σmn≦f(x)mn≦μmn+Amn×σmn ・・・(式1)
【0031】
式1における平均値μと標準偏差σは、アクセスデータの特徴量の統計を取ることにより、図7に示すように決定される。閾値係数Aは、統計処理実行部14によって設定される値である。この閾値係数Aは、本発明の実施例1に係る異常データ検出装置1では、「数値」、「メタキャラクタ」及び「バイナリコード」に対して、それぞれのパラメータ値に応じて定められる値である。具体的には、2〜11程度の値とするのが実用上好ましいが、これに限られず、最良の値が設定される。
【0032】
アクセスデータに含まれる全てのパラメータ値について正常と判定されると、統計的異常判定部13は、アクセスデータを正常なアクセスデータであると判定する。また、異常なパラメータ値が含まれるアクセスデータは異常なアクセスデータであると判定する。
【0033】
統計処理実行部14は、データ解析部11において算出された特徴量が特徴量蓄積テーブル16に記憶されると、特徴量蓄積テーブル16に記憶された特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成する。また、統計処理実行部14は、生成された統計情報を 用いてパラメータの識別子毎に統計情報テーブル15に記憶されている統計情報を再計算して更新する。
【0034】
統計情報テーブル15は、パラメータの識別子をキーとして、特徴量の平均値、標準偏差及びアクセス回数を含む統計情報を記憶している。また、統計情報テーブル15は、新しいアクセスが特徴量蓄積テーブル16に追加される度に統計処理実行部14の制御により更新される。
【0035】
統計情報テーブル15は、例えば図4に示すように、各CGI名とCGI変数名の組み合わせであるパラメータの識別子について統計情報を記憶する。図4(a)に示す例では、統計情報テーブル15は、CGI名とCGI変数名の組み合わせについて統計情報に対応するポインタ変数が記述されている。
【0036】
たとえば、CGI名b及びCGI変数名2と関連付けられる統計情報2bとして記憶されるポインタ変数は、図4(b)に示す統計情報2bと関連付けられている。図4(b)に示す統計情報2bは、「数値」、「メタキャラクタ」及び「バイナリコード」に対して、特徴量に基づいて求められた「平均値」及び「標準偏差」を記憶している。また、統計情報2bは、このCGI名とCGI変数名の組み合わせであるパラメータの識別子に対する「アクセス回数」を記憶している。なお、統計情報は、特徴量蓄積テーブル16に新たに特徴量が蓄積される度に、統計処理実行部14により、更新される。
【0037】
特徴量蓄積テーブル16は、パラメータの識別子をキーとして、データ解析部11で算出された特徴量を蓄積して記憶している。
【0038】
具体的には図5にその一例を示すように特徴量蓄積テーブル16はWebサーバに対するアクセスデータとして入力されたパケットデータに含まれているCGI変数名の値(パラメータ)から求められた特徴量をCGI変数名に対する特徴量として記憶している。図5は、アクセスデータとして、図6に示す第1〜第4のパケットデータが入力された場合に、CGI変数の「数値」、「メタキャラクタ」及び「バイナリコード」について求められた特徴量である。「メタキャラクタ」とは、HTTP等の通信プロトコルにおいて特殊な意味を持つ文字のことである。
【0039】
図6(a)は、第1のパケットデータであり、CGI変数名2の「Q」の値は数値「12345」である。また、図6(b)は、第2のパケットデータであり、CGI変数名2の「Q」の値はASCII文字「abcde」である。さらに、図6(c)は、第3のパケットデータであり、CGI変数名2の「Q」の値はメタキャラクタ「”‘;」である。さらに、図6(d)は、第4のパケットデータであり、CGI変数名2の「Q」値はバイナリコード「△△△△」である。なお、この「△」はバイナリコードを仮想的に図示している。また、ここで「cgi−bin/phf」は「CGI名b」である。
【0040】
このように、第1〜第4のパケットデータに含まれるCGI変数名2である「Q」の値を利用して、パラメータ値における「数値」、「メタキャラクタ」及び「バイナリコード」の総数を特徴量として特徴量蓄積テーブル16に記憶する。
【0041】
例えば、第1のパケットデータの「Q」のパラメータ値に「数値」が含まれる数は「5」であり、「メタキャラクタ」及び「バイナリコード」は含まれていない。そのため、第1のパケットデータの特徴量は、それぞれ「5、0、0」となる。また、第2のパケットデータの「Q」のパラメータ値には「数値」、「メタキャラクタ」及び「バイナリコード」のいずれも含まれていないため、第2のパケットデータの特徴量は、それぞれ「0、0、0」となる。同様に第3のパケットデータでは「メタキャラクタ」が3つ含まれているから特徴量は「0、3、0」となり、第4のパケットデータでは「バイナリコード」が4つ含まれているから特徴量は「0、0、4」となり、図5に示すように特徴量蓄積テーブル16に蓄積されている。
【0042】
なお、図4(b)に示した統計情報2bは、この図5に示した特徴量蓄積テーブル16に蓄積されている特徴量に基づいて生成されたものである。例えば、「数値」の「平均値」は、第1〜第4のパケットデータの「数値」の特徴量の合計である「5」をアクセス回数「4」で割ることにより求めている。また、「メタキャラクタ」と「バイナリコード」に対する「平均値」も第1から第4のパケットデータの「メタキャラクタ」と「バイナリコード」の特徴量の合計をアクセス回数「4」で割ることにより求めている。また、「標準偏差」は、第1から第4のパケットデータの特徴量および平均値を利用して求める。
【0043】
[異常データ検出処理]
次に、図8に示すフローチャートを参照して、本発明の第1の実施の形態に係る異常データ検出装置1における異常データ検出処理を説明する。
【0044】
異常データ検出装置1のデータ解析部11に、異常データ検出装置1と接続されるネットワークセグメント2を介してアクセスデータが入力されると(S001)、データ解析部11は、アクセスデータを解析して特徴量を算出し、入力したアクセスデータと共に出力する(S002)。
【0045】
アクセスデータは図3に示したようなHTTPリクエストのアクセスデータである。特徴量の算出は、図6に示したようにデータの「数値」、「メタキャラクタ」及び「バイナリコード」の各文字種類についての数を求めることにより、算出される。
【0046】
アクセス判定部12は、データ解析部11からアクセスデータとともにアクセスデータに基づいて算出された特徴量を入力すると(S003)、アクセス判定部12は、データ解析部11から特徴量とともに入力したアクセスデータについて、アクセスデータに含まれるCGI名及びCGI変数名について、統計情報テーブル15のアクセス回数を参照して過去にアクセスされたか否か判定し、判定結果としてアクセスの有無をアクセスデータ及び特徴量とともに出力する(S004)。このステップS004における判定処理については後に詳述する。
【0047】
統計的異常判定部13は、アクセス判定部12からアクセスの有無の判定結果及びアクセスデータを入力すると、アクセスデータに含まれている全てのCGI変数のパラメータ値が正常であるか否かを判断する(S005)。例えば、図3に示したアクセスデータの場合、CGI名変数1〜3のパラメータ値の全てが「正常」であるか否かを判断する。
【0048】
アクセスデータに含まれていた全てのCGI変数が「正常」である場合、統計的異常判定部13は、アクセスデータを「正常」であると判定する(S006)。一方、アクセスデータに「異常」と判定されたCGI変数が一つでも含まれていた場合、統計的異常判定部13は、アクセスデータを「異常」と判断する(S007)。
【0049】
ステップS006において、統計的異常判定部13が入力されたアクセスデータを「正常」であると判断すると、統計的異常判定部13は、ステップS002で算出された特徴量を記憶させて特徴量蓄積テーブル16を更新する。(S008)。
【0050】
ステップS008において特徴量蓄積テーブル16が更新されると、統計処理実行部14は特徴量蓄積テーブル16を読み出して統計情報を再計算するとともに、算出した統計情報を統計情報テーブル15に記憶させる(S109)。
【0051】
[判定処理]
次に、図9に示すフローチャートを用いて、ステップS004における判定処理について説明する。
【0052】
アクセス判定部12は、データ解析部11からアクセスデータおよび特徴量を入力すると、アクセスデータに含まれる1つのCGI変数名を選択する(S101)。
【0053】
続いて、アクセス判定部12は、選択されたCGI名とCGI変数名との組み合わせであるパラメータの識別子で識別される統計情報について統計情報テーブル15のアクセス回数を参照し、過去にアクセスがされたか否かを判定する(S102)。
【0054】
ステップS102で、選択されたCGI名とCGI変数名との組み合わせについて過去にアクセスがされていた場合(S102でYES)、統計的異常判定部13は、図8に示したステップS002で算出された特徴量が「0」であるか否かを判定する(S103)。上述した例では、「数値」、「メタキャラクタ」及び「バイナリコード」について特徴量を算出しているが、このように複数の文字種類について特徴量を算出した場合、その全ての特徴量が「0」の場合、その特徴量を「0」とする。
【0055】
ステップS002で算出された特徴量が「0」である場合、統計的異常判定部13は、対象としているCGI変数名のパラメータ値について「正常」であると判定する(S104)。一方、特徴量が「0」でない場合、統計的異常判定部13は、CGI変数名のパラメータ値について「異常」であると判定する(S105)。
【0056】
具体的には、図5では、第1のパケットデータは「数値」のパラメータ値の特徴量が「0」でないため、パラメータ値は「異常」と判定される。また、第2のパケットデータについては「数値」、「メタキャラクタ」及び「バイナリコード」のパラメータ値についての特徴量が全て「0」であるため、パラメータ値は「正常」と判定される。さらに、第3及び第4のパケットデータのパラメータ値は「異常」と判定される。
【0057】
また、ステップS102で選択されたCGI名とCGI変数名との組み合わせについて過去にアクセスがされていない場合(S102でNO)、統計的異常判定部13は、ステップS002で算出された特徴量が規定の範囲内であるか否かを判定する(S106)。具体的にはステップS002で算出された特徴量について求められた標準偏差が、図7で示す閾値の範囲内である場合、統計的異常判定部13は、規定の範囲内であると判定する。
【0058】
統計的異常判定部13は、算出された特徴量が規定の範囲内であると判定された場合、CGI変数名の値について「正常」と判定し(S107)、規定の範囲内でないと判定された場合、CGI変数名の値について「異常」と判定する(S108)。
【0059】
全てのCGI変数について「正常」または「異常」の判定がされていない場合、ステップS101に戻り(S109でNO)、全てのCGI変数名の値について判定処理がされた場合(S109でYES)、判定処理を終了する(S110)。
【0060】
上述した第1の実施の形態に係る異常データ検出装置1は、初めて現れたCGI名及びCGI変数名を含むアクセスデータについて、このCGI名及びCGI変数名を識別子とする値に基づいて特徴量を算出し、算出された特徴量に基づいて正常または異常の判定をする。このように予め記憶されないアクセスデータを検出することにより、未知の攻撃を検知することができる。
【0061】
[第2の実施の形態]
次に、本発明の第2の実施の形態に係る異常データ検出装置1aについて説明する。
【0062】
図10に示すように、第2の実施の形態に係る異常データ検出装置1aは、第1の実施の形態に係る異常データ検出装置1と比較して、アクセス判定部12に替えてアクセス判定部17を有している点で異なる。なお、第1の実施の形態に係る異常データ検出装置1と同一の構成については同一の番号を付して説明を省略する。
【0063】
アクセス判定部17は、CGI判定部17a及びCGI変数判定部17bを有している。
【0064】
CGI判定部17aは、入力されたアクセスデータに含まれるCGI名及びCGI変数と対応する統計情報が統計情報テーブル15に存在しているか否かを判定する。
【0065】
CGI変数判定部17bは、CGI判定部17aで統計情報が存在していることを判定した場合、統計情報テーブル15を読み出して入力されたアクセスデータに含まれるCGI名及びCGI変数と関連付けられる過去のアクセス回数を判定する。
【0066】
なお、CGI判定部17aで該当するパラメータ識別子の統計情報が存在していないと判定された場合、統計的異常判定部13は、このパラメータ値を含むアクセスデータを異常と判定する。
【0067】
なお、異常データ検出装置1aは、実際の運用が開始されるまで、学習モードとして、統計情報テーブル15に統計情報を蓄積する。そのため、たとえば、異常データ検出装置1aは運用初期には異常データの検出は実行せず、学習モードにおいて一定のアクセス回数があり統計情報テーブル15に一定の統計情報が蓄積されるまで、あるいは、所定の時間が経過して学習モードにおいて統計情報テーブル15に統計情報が蓄積されるまでは、企業内等の限られた範囲で使用され、異常データ検出は行わずに統計情報の蓄積のみを行うのが好ましい。これは、運用初期においては、統計情報テーブル15が構成されておらず、入力されるアクセスデータの異常を適切に検出することができず、誤検出がされる可能性が高いためである。異常データ検出装置1aは、たとえば、一定の数のアクセスデータが入力されることにより、あるいは、所定時間が経過することにより、統計情報テーブル15にアクセスデータの異常を検出するために十分な統計情報を蓄積したと判断すると、学習モードを終了する。また、異常データ検出装置1aは学習モードを終了すると、入力されるアクセスデータの異常の検出の実行を開始する。
【0068】
図11に示すのは、第2の実施の形態に係る異常データ検出装置1aにおける異常データ検出処理を説明するフローチャートである。なお、図8に示したフローチャートと同一の処理をするステップについては同一の番号を付して説明を省略する。
【0069】
図11において、図8に示したフローチャートと異なる点は、ステップS002においてデータ解析部11で算出された特徴量を、CGI判定部17aがアクセスデータとともに入力すると(S201)、CGI判定部17aがアクセスデータに含まれているパラメータの識別子であるCGI名とCGI変数名との組み合わせが統計情報テーブル15に含まれているか否かを判定する(S202)点である。
【0070】
CGI判定部17aが、データ解析部11から入力されたアクセスデータに含まれるパラメータの識別子が統計情報テーブル15に存在すると判定した場合(S202でYES)、ステップS004の処理に進み、このパラメータの識別子に対するパラメータ値が「正常」であるか又は「異常」であるかの判定処理がされる。このステップS004における処理は図9に示す処理である。
【0071】
一方、CGI判定部17aが、データ解析部11から入力されたアクセスデータに含まれるパラメータの識別子が統計情報テーブル15に存在しないと判定された場合(S202でYES)、ステップS007の処理に進み、統計的異常判定部13は、入力されたアクセスデータを「異常」と判定する。
【0072】
上述した第2の実施の形態に係る異常データ検出装置1aは、統計情報テーブルの内容を追加して更新することで、WebサーバにおけるCGI名の追加に追従することができる。また、統計情報テーブルに予め記憶されているCGI名を含むアクセスデータのみを判断の対象とすることで、処理速度を向上させることが可能となる。さらに、誤検知率の増大を抑制し、異常なアクセスデータの検知率を向上させることができる。
【0073】
なお、上記各実施形態において、CGI変数名のパラメータとして「数値」、「メタキャラクタ」、「バイナリコード」の3つについて統計情報を作成したが、「ASCII文字」を追加しても良い。
【0074】
上記のように、本発明の第1および第2の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなる。
【0075】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【0076】
【図1】本発明の第1の実施の形態に係る異常データ検出装置のブロック構成図である。
【図2】本発明の第1の実施の形態に係る異常データ検出装置の構成図である。
【図3】本発明の第1の実施の形態に係る異常データ検出装置が入力するアクセスデータの一例である。
【図4】本発明の第1の実施の形態に係る異常データ検出装置で記憶される統計情報テーブルの一例である。
【図5】本発明の第1の実施の形態に係る異常データ検出装置で記憶される特徴量蓄積データの一例である。
【図6】本発明の第1の実施の形態に係る異常データ検出装置が入力するアクセスデータの一例である。
【図7】本発明の第1の実施の形態に係る異常データで異常の判定に用いられる特徴量の一例である。
【図8】本発明の第1の実施の形態に係る異常データ検出装置における異常データ検出処理を説明するフローチャートである。
【図9】本発明の第1の実施の形態に係る異常データ検出装置における判定処理を説明するフローチャートである。
【図10】本発明の第2の実施の形態に係る異常データ検出装置のブロック構成図である。
【図11】本発明の第2の実施の形態に係る異常データ検出装置における異常データ検出処理を説明するフローチャートである。
【符号の説明】
【0077】
1,1a…異常データ検出装置
2…第1のネットワークセグメント
3…第2のネットワークセグメント
11…データ解析部
12…アクセス判定部
13…統計的異常判定部
14…統計処理実行部
15…統計情報テーブル
16…特徴量蓄積テーブル
101…中央処理制御装置
102…ROM
103…RAM
104…入力装置
105…表示装置
106…通信制御装置
107…記憶装置
108…リムーバブルディスク
109…入出力インタフェース
110…バス

【特許請求の範囲】
【請求項1】
接続されるネットワークセグメントから入力されるアクセスデータに含まれるパラメータ値に基づいて異常データの特徴を示す特徴量を算出するデータ解析手段と、
前記データ解析手段で算出された特徴量を蓄積して記憶する特徴量蓄積手段と、
前記特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段と、
前記特徴量蓄積手段に記憶された前記特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、前記統計情報記憶手段に記憶された前記統計情報を更新する統計処理実行手段と、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに関する過去のアクセス回数を判定するアクセス判定手段と、
前記アクセス判定手段で判定された結果に基づいて、データ解析手段とで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定手段と、
を備えることを特徴とする異常データ検出装置。
【請求項2】
接続されるネットワークセグメントからアクセスデータが入力されると、前記アクセスデータに含まれるパラメータ値に基づいて、CGI変数名毎に異常データの特徴を示す特徴量を算出するデータ解析手段と、
前記データ解析手段で算出された特徴量を蓄積して記憶する特徴量蓄積手段と、
前記特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段と、
前記特徴量蓄積手段に記憶された前記特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、前記統計情報記憶手段に記憶された前記統計情報を更新する統計処理実行手段と、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに関する過去のアクセス回数を判定するアクセス判定手段と、
前記アクセス判定手段で判定された結果に基づいて、前記データ解析手段とで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、アクセスデータが正常であるか否かを判定する統計的異常判定手段部と、
を備えることを特徴とする異常データ検出装置。
【請求項3】
前記アクセス判定手段は、入力されたアクセスデータに含まれる前記CGI変数と対応する統計情報が前記統計情報記憶手段に存在するか否かを判定するCGI判定手段と、前記CGI判定手段で統計情報が存在していることを判定した場合、前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれる前記CGI名及び前記CGI変数と関連付けられる過去のアクセス回数を判定するCGI変数判定手段とを有し、
前記統計的異常判定手段は、前記CGI判定手段で統計情報が存在しないと判断した場合、アクセスデータを異常と判定する
ことを特徴とする請求項2記載の異常データ検出装置。
【請求項4】
接続されるネットワークセグメントから入力されるアクセスデータに含まれるパラメータ値に基づいて異常データの特徴を示す特徴量を算出し、
算出された特徴量を蓄積して記憶する特徴量蓄積手段に記憶された前記特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、前記特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段に記憶された前記統計情報を更新し、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに関する過去のアクセス回数を判定し、
判定された結果に基づいて、算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する
ことを特徴とする異常データ検出方法。
【請求項5】
接続されるネットワークセグメントからアクセスデータが入力されると、前記アクセスデータに含まれるパラメータ値に基づいて、CGI変数名毎に異常データの特徴を示す特徴量を算出し、
前記データ解析手段で算出された特徴量を蓄積して記憶する特徴量蓄積手段に記憶された前記特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、前記特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段に記憶された前記統計情報を更新し、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに関する過去のアクセス回数を判定し、
判定された結果に基づいて、算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、アクセスデータが正常であるか否かを判定する
ことを特徴とする異常データ検出方法。
【請求項6】
入力されたアクセスデータに含まれる前記CGI変数と対応する統計情報が前記統計情報記憶手段に存在するか否かを判定し、統計情報が存在していることを判定した場合、前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれる前記CGI名及び前記CGI変数と関連付けられる過去のアクセス回数を判定し、
統計情報が存在しないと判断した場合、アクセスデータを異常と判定する
ことを特徴とする請求項5記載の異常データ検出方法。
【請求項7】
接続されるネットワークセグメントから入力されるアクセスデータに含まれるパラメータ値に基づいて異常データの特徴を示す特徴量を算出するステップと、
算出された特徴量を蓄積して記憶する特徴量蓄積手段に記憶された前記特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、前記特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段に記憶された前記統計情報を更新するステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに関する過去のアクセス回数を判定するステップと、
前記アクセス判定手段で判定された結果に基づいて、データ解析手段とで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定するステップと、
をコンピュータに実行させることを特徴とする異常データ検出プログラム。
【請求項8】
接続されるネットワークセグメントからアクセスデータが入力されると、前記アクセスデータに含まれるパラメータ値に基づいて、CGI変数名毎に異常データの特徴を示す特徴量を算出するステップと、
前記データ解析手段で算出された特徴量を蓄積して記憶する特徴量蓄積手段に記憶された前記特徴量の平均値と標準偏差とアクセス回数とを含む統計情報を生成し、前記特徴量の平均値、標準偏差、アクセス回数を含む統計情報を記憶する統計情報記憶手段に記憶された前記統計情報を更新するステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに関する過去のアクセス回数を判定するステップと、
判定された結果に基づいて、算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、アクセスデータが正常であるか否かを判定するステップと、
をコンピュータに実行させることを特徴とする異常データ検出プログラム。
【請求項9】
入力されたアクセスデータに含まれる前記CGI変数と対応する統計情報が前記統計情報記憶手段に存在するか否かを判定し、統計情報が存在していることを判定した場合、前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれる前記CGI名及び前記CGI変数と関連付けられる過去のアクセス回数を判定し、
統計情報が存在しないと判断した場合、アクセスデータを異常と判定する
ことを特徴とする請求項8記載の異常データ検出プログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2006−133992(P2006−133992A)
【公開日】平成18年5月25日(2006.5.25)
【国際特許分類】
【出願番号】特願2004−321078(P2004−321078)
【出願日】平成16年11月4日(2004.11.4)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】