(57)【要約】【課題】本発明は、未知の攻撃に対して、高い検出率と、低い誤検出率が実現した不正アクセス検出装置、不正アクセス検出方法およびプログラムを提供することを課題とする。【解決手段】未知攻撃防御機能１２は、既知攻撃防御機能１１で検出・防御できなかった未知の攻撃について、検出並びに防御を行う。未知攻撃防御機能１２は、未知の不正アクセスを検出する際、ＵＲＬ文字列からパス名を抽出し、抽出されたパス名のアクセス頻度を評価し、アクセス頻度が稀である場合には、ＵＲＬ文字列についての統計的評価値を参照し、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計的評価値を参照することで、統計的に異常な内容のアクセスデータを不正アクセスに関わるものとして検出する。【選択図】    図１
2005011234.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してアクセスデータを受信するネットワークインタフェースと、
前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列を解析した結果の統計分布を保持するＵＲＬ文字列統計分布保持手段と、
前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を保持するパラメータ文字列統計分布保持手段と、
前記ネットワークインタフェースで受信したアクセスデータを解析するアクセスデータ解析手段と、
前記ネットワークインタフェースで受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価手段と、
前記アクセス頻度評価手段が評価した前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択手段と、
前記アクセスデータ解析手段で解析したアクセスデータの解析結果と、前記統計分布選択手段が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定手段と
を具備したことを特徴とする不正アクセス検出装置。
【請求項２】
ネットワークを介してアクセスデータを受信するネットワークインタフェースと、
前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列を解析した結果の統計分布を保持するＵＲＬ文字列統計分布保持手段と、
前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を保持するパラメータ文字列統計分布保持手段と、
前記ネットワークインタフェースで受信したアクセスデータを解析するアクセスデータ解析手段と、
前記ネットワークインタフェースで受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価手段と、
前記アクセス頻度評価手段が評価した前記パス名へのアクセス頻度に応じて、前記各統計分布を対象に、参照する統計分布に重み付けを行う統計分布重み付け手段と、
前記アクセスデータ解析手段で解析したアクセスデータの解析結果を前記統計分布重み付け手段の重み付けに従う統計分布と比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定手段と
を具備したことを特徴とする不正アクセス検出装置。
【請求項３】
前記統計分布選択手段は、前記抽出したパス名のアクセスデータについて、用意された判定値をもとに、アクセス頻度が稀であるか否かを判定し、アクセス頻度が稀であると判定したとき、前記パラメータ文字列統計分布保持手段に保持されたパラメータ文字列に関する統計分布に代えて前記ＵＲＬ文字列統計分布保持手段に保持されたＵＲＬ文字列全体に関する統計分布を参照することを特徴とする請求項１または２記載の不正アクセス検出装置。
【請求項４】
前記不正アクセス判定手段は、設定された閾値をもとに、前記ネットワークインタフェースで受信したアクセスデータが統計的に正常であるか異常であるかを評価する請求項１または２記載の不正アクセス検出装置。
【請求項５】
前記不正アクセス判定手段が評価を行うための閾値を補正する閾値補正手段を更に具備する請求項４記載の不正アクセス検出装置。
【請求項６】
前記パラメータ文字列統計分布保持手段は、ＵＲＬ文字列のパス名に付されるパラメータ文字列について、前記パス名を含んだパラメータ文字列で構成される第１の文字列区分を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムに与えられる文字列全体で構成される第２の文字列区分を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムの変数で構成される第３の文字列区分を解析した結果の統計分布とを保持し、
前記統計分布選択手段は、前記パラメータ文字列統計分布保持手段に保持された前記各文字列区分の統計分布を対象に、下位の文字列区分の統計分布を優先して選択することを特徴とする請求項１記載の不正アクセス検出装置。
【請求項７】
前記パラメータ文字列統計分布保持手段は、パラメータ文字列の統計分布として、前記文字列区分のそれぞれについて、文字列区分の長さ、メタキャラクタの数、ドット文字、スラッシュ文字、バイナリ文字の少なくともいずれかを含む特定の１又は複数の文字セットについて、その評価値を保持する請求項６記載の不正アクセス検出装置。
【請求項８】
前記ＵＲＬ文字列統計分布保持手段及びパラメータ文字列統計分布保持手段に解析した結果の統計分布を蓄積する学習フェーズと、前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを前記統計分布を用いて監視する未知攻撃検出・防御フェーズと、前記監視をしながら前記統計分布を蓄積するフェーズとを選択的に切り替える切替手段を更に具備し、前記切替手段が切り替えたフェーズに従い、前記アクセスデータ解析手段による文字列を解析した結果の情報が、前記ＵＲＬ文字列統計分布保持手段および前記パラメータ文字列統計分布保持手段への蓄積と、前記不正アクセス判定手段により判定されるアクセスデータの解析内容とに振り分けられる請求項１記載の不正アクセス検出装置。
【請求項９】
Ｗｅｂサーバに対するアクセスデータの内容について、ＵＲＬ文字列の解析結果に関する統計と、パラメータ文字列の解析結果に関する統計とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出する不正アクセス検出方法であって、
前記未知の不正アクセスを検出する際、ＵＲＬ文字列からパス名を抽出し、抽出されたパス名のアクセス頻度を評価し、アクセス頻度が稀である場合には、ＵＲＬ文字列についての統計的評価値を参照し、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計的評価値を参照することにより、統計的に異常な内容のアクセスデータを不正アクセスに関わるものとして検出することを特徴とする不正アクセス検出方法。
【請求項１０】
Ｗｅｂサーバに対するアクセスデータの内容について、ＵＲＬ文字列の解析結果に関する統計分布と、パラメータ文字列の解析結果に関する統計分布とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出する不正アクセス検出方法であって、
受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するステップと、
前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択するステップと、
前記受信したアクセスデータの解析結果と、前記選択された統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定するステップと
を具備したことを特徴とする不正アクセス検出方法。
【請求項１１】
前記統計分布を選択するステップは、前記パラメータ文字列の解析結果に関する統計分布について、前記パス名を含んだパラメータ文字列を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムに与えられる文字列全体を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムの変数を解析した結果の統計分布とのすべて若しくは前記各文字列区分の統計分布のいずれか２つの文字列区分の統計分布を選択対象に、前記判定ステップで参照される統計分布を選択する請求項１０記載の不正アクセス検出方法。
【請求項１２】
前記統計分布を選択するステップは、前記抽出したパス名のアクセスデータについて、所定の判定値をもとにアクセス頻度が著しく低いか否かを判定し、アクセス頻度が著しく低いと判定したとき、前記蓄積された統計分布うち、母集団が小さい統計分布に代えて母集団の大きい統計分布を選択することを特徴とする請求項１１記載の不正アクセス検出方法。
【請求項１３】
不正アクセス検出装置としてコンピュータを機能させるためのプログラムであって、
ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列を解析した結果の統計分布を蓄積するＵＲＬ文字列統計分布蓄積機能と、
前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を蓄積するパラメータ文字列統計分布蓄積機能と、
受信したアクセスデータを解析するアクセスデータ解析機能と、
前記受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価機能と、
前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択機能と、
前記アクセスデータ解析機能で解析したアクセスデータの解析結果と、前記統計分布選択機能が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定機能と
をコンピュータに実現させるためのプログラム。
【請求項１４】
前記統計分布選択機能は、前記抽出したパス名のアクセスデータについて、用意された判定値をもとに、アクセス頻度が稀であるか否かを判定し、アクセス頻度が稀であると判定したとき、前記パラメータ文字列統計分布蓄積機能が蓄積するパラメータ文字列に関する統計分布に代えて前記ＵＲＬ文字列統計分布蓄積機能が蓄積するＵＲＬ文字列全体に関する統計分布を参照する機能を有する請求項１３記載のプログラム。
【請求項１５】
前記不正アクセス判定機能は、設定された閾値をもとに、受信したアクセスデータが統計的に正常であるか異常であるかを評価する機能を有する請求項１４記載のプログラム。
【請求項１６】
前記パラメータ文字列統計分布蓄積機能は、ＵＲＬ文字列のパス名に付されるパラメータ文字列について、前記パス名を含んだパラメータ文字列で構成される第１の文字列区分を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムに与えられる文字列全体で構成される第２の文字列区分を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムの変数で構成される第３の文字列区分を解析した結果の統計分布とをそれぞれ蓄積する機能を有し、
前記統計分布選択機能は、前記パラメータ文字列統計分布蓄積機能が蓄積する前記各文字列区分の統計分布を対象に、下位の文字列区分の統計分布を優先して選択する機能を有する請求項１３記載のプログラム。
【請求項１７】
前記パラメータ文字列統計分布蓄積機能は、パラメータ文字列の統計分布として、前記文字列区分のそれぞれについて、文字列区分の長さ、メタキャラクタの数、ドット文字、スラッシュ文字、バイナリ文字の少なくともいずれかを含む特定の１又は複数の文字セットについて、その評価値を蓄積する機能を有する請求項１６記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットに於いて、ファイアウォールでは防ぐことができない攻撃からＷｅｂサーバ等を防御するための不正アクセス検出装置、不正アクセス検出方法、および不正アクセス検出装置としてコンピュータを機能させるためのプログラムに関する。
【０００２】
【従来の技術】
インターネットに於いて、ファイアウォールで防ぐことができない攻撃は多様であるが、その中で、Ｗｅｂサーバ上のセキュリティホール、すなわちソフトウェアのバグや脆弱性を狙った攻撃は、特にその数が多い。ＨＴＴＰリクエストに特定の文字列が含まれているだけで、それを解釈実行したＷｅｂサーバ上のＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）等のソフトウェアが、バッファオーバーフローや、予期せぬ動作を引き起こすといった不具合である。こうしたＷｅｂサーバ上のソフトウェアの脆弱性を狙った攻撃に対応するために、多くの侵入検知システムは、クライアントからＷｅｂサーバに送信されるＨＴＴＰリクエストをアプリケーション層で中継・解析し、あらかじめ既知の攻撃の特徴を格納したシグネチャ（攻撃パターンファイル）と比較し、マッチした場合にセッション中継を遮断することにより、Ｗｅｂサーバを防御している（例えば、特許文献１参照）。
【０００３】
しかしながら、上記した従来技術においては、シグネチャに格納されていない未知の攻撃からはＷｅｂサーバを防御することができないという問題があった。
【０００４】
【特許文献１】
特開２００２−０６３０８４号公報
【０００５】
【発明が解決しようとする課題】
上述したように、従来では、シグネチャに格納されていない未知の攻撃からＷｅｂサーバを防御する有効なシステムが存在しないという問題があった。
【０００６】
本発明は、シグネチャでは対応できない未知の攻撃からＷｅｂサーバを防御する機能を有する不正アクセス検出装置、不正アクセス検出方法およびプログラムを提供することを目的とする。
【０００７】
また、本発明は、未知の攻撃に対して、高い検出率と、低い誤検出率が実現した不正アクセス検出装置、不正アクセス検出方法およびプログラムを提供することを目的とする。
【０００８】
更に、本発明は、管理者の負担が極力少ないユーザインタフェースを提供することで、未知の攻撃に対する検出精度の向上を図った不正アクセス検出装置、不正アクセス検出方法およびプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、Ｗｅｂサーバに対するアクセスデータの内容について、ＵＲＬ文字列の解析結果に関する統計と、パラメータ文字列の解析結果に関する統計とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出するもので、未知の不正アクセスを検出する際、ＵＲＬ文字列からパス名を抽出し、抽出されたパス名のアクセス頻度を評価し、アクセス頻度が稀である場合には、ＵＲＬ文字列についての統計的評価値を参照し、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計的評価値を参照することにより、統計的に異常な内容のアクセスデータを不正アクセスに関わるものとして検出することを特徴とする。
【００１０】
即ち、本発明は、シグネチャによる既知の攻撃防御機能では対応できない未知の攻撃からＷｅｂサーバを防御する不正アクセス検出装置であって、ネットワークを介してアクセスデータを受信するネットワークインタフェースと、前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列を解析した結果の統計分布を保持するＵＲＬ文字列統計分布保持手段と、前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を保持するパラメータ文字列統計分布保持手段と、前記ネットワークインタフェースで受信したアクセスデータを解析するアクセスデータ解析手段と、前記ネットワークインタフェースで受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価手段と、前記アクセス頻度評価手段が評価した前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択手段と、前記アクセスデータ解析手段で解析したアクセスデータの解析結果と、前記統計分布選択手段が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定手段とを具備したことを特徴とする。
【００１１】
また、本発明は、Ｗｅｂサーバに対するアクセスデータの内容について、ＵＲＬ文字列の解析結果に関する統計分布と、パラメータ文字列の解析結果に関する統計分布とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出する不正アクセス検出方法であって、受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するステップと、前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択するステップと、前記受信したアクセスデータの解析結果と、前記選択された統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定するステップとを具備したことを特徴とする。
【００１２】
また、本発明は、不正アクセス検出装置としてコンピュータを機能させるためのプログラムであって、ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列を解析した結果の統計分布を蓄積するＵＲＬ文字列統計分布蓄積機能と、前記ネットワーク上で扱うアクセスデータについて、ＵＲＬ文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を蓄積するパラメータ文字列統計分布蓄積機能と、受信したアクセスデータを解析するアクセスデータ解析機能と、前記受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価機能と、前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択機能と、前記アクセスデータ解析機能で解析したアクセスデータの解析結果と、前記統計分布選択機能が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定機能とをコンピュータに実現させることを特徴とする。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００１４】
先ず図１及び図２を参照して本発明の概要を説明する。
【００１５】
本発明は、Ｗｅｂサーバとクライアントとの間のネットワークセキュリティ対策に適用される侵入検知システムに於いて、既知攻撃防御機能に加え、未知の攻撃に対する防御機能（未知攻撃防御機能）をもつことを特徴とする。
【００１６】
本発明に係る侵入検知システムの全体の機能構成を図１に示す。
侵入検知システム１は、Ｗｅｂサーバ２とクライアント３との間に置かれる。侵入検知システム１は、ＨＴＴＰのセッションをアプリケーション層で解析・中継する。この際、Ｗｅｂサーバ２とクライアント３は互いにトランスペアレントにみなされる。
【００１７】
侵入検知システム１には、Ｗｅｂサーバ２を外部アクセスによる攻撃から防御するための機能として、既知攻撃防御機能１１と未知攻撃防御機能１２とを具備する。
【００１８】
既知攻撃防御機能１１は、攻撃ターゲットとなるＷｅｂサーバ２への既知の攻撃に対して、シグネチャ（攻撃パターンファイル）やＤＤｏＳ（  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）防御機能により検出並びに防御を行う。
【００１９】
未知攻撃防御機能１２は、既知攻撃防御機能１１で検出・防御できなかった未知の攻撃について、検出並びに防御を行う。この未知攻撃防御機能１２では、未知の不正アクセスを検出する際、ＵＲＬ文字列からパス名を抽出し、抽出されたパス名のアクセス頻度を評価し、アクセス頻度が稀である場合には、ＵＲＬ文字列についての統計的評価値を参照し、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計的評価値を参照することで、統計的に異常な内容のアクセスデータを不正アクセスに関わるものとして検出する。
【００２０】
尚、既知攻撃防御機能１１、未知攻撃防御機能１２のいずれに於いても正常なアクセスであると判定されたセッションについては、そのセッションを通過させる。
【００２１】
また、侵入検知システム１は、管理ＧＵＩ１３より管理者４へ未知攻撃の情報提示を行い、管理ＧＵＩ１３から、未知攻撃に対する検出基準の補正を受け付ける。
【００２２】
上記侵入検知システム１に於ける未知攻撃防御機能１２に係わる処理間の関連を図２に示している。
未知攻撃防御機能１２には、基本フェーズとして学習フェーズ（ＦＬ  ）と、検出・防御フェーズ（ＦＤ  ）とがある。また、実運用時のフェーズとして学習と、検出・防御とを併せて実行するマルチフェーズがある。これらの各フェーズ切替は、プログラム、管理者主導のいずれで行ってもよい。
【００２３】
学習フェーズ（ＦＬ  ）では、ＨＴＴＰリクエストを入力し、ＨＴＴＰリクエストの内容を解析し、解析結果を統計分布として記憶し、解析結果の評価値が、統計的に正常値か異常値かを分ける「閾値」を学習する。学習フェーズ（ＦＬ  ）ではセッションを通過させる。
【００２４】
検出・防御フェーズ（ＦＤ  ）では、ＨＴＴＰリクエストを入力し、ＨＴＴＰリクエストの内容を解析し、解析結果を既に学習済みの統計分布を基準として比較し、統計的に正常か異常かを判定することにより、未知の攻撃を検出する。検出の結果、未知の攻撃についてはセッションを遮断し、正常なアクセスはセッションを通過させる。また、未知の攻撃を検出した場合は、管理ＧＵＩ１３に未知攻撃の情報を提示し、真に攻撃であったか否か管理者４の判断に応じて、未知攻撃の検出基準を補正可能にしている。
【００２５】
学習フェーズ（ＦＬ  ）を繰り返し実行した後の実稼働時に於けるマルチフェーズでは、ＨＴＴＰリクエストが入力される度に、上記した検出・防御フェーズ（ＦＤ  ）と学習フェーズ（ＦＬ  ）とが実行される。
【００２６】
図３は上記図１及び図２に示した侵入検知システム１に於ける未知攻撃防御機能１２を実現した本発明の第１実施形態に於ける不正アクセス検出装置の構成を示すブロック図である。
【００２７】
不正アクセス検出装置１００は、ネットワークインタフェース１０１と、アクセスデータ解析部１１０と、未知の不正アクセス判定部１２０と、統計分布データ記憶部１３０と、閾値算出部１４１と、閾値保持部１４２と、正常アクセス処理部１５１と、不正アクセス処理部１５２とを備える。
【００２８】
ネットワークインタフェース１０１は、ネットワーク１０に接続され、ネットワーク１０の先にあるクライアント−サーバ間でやりとりされるデータを送受信する機能をもつ。
【００２９】
アクセスデータ解析部１１０は、ＵＲＬ文字列解析部１１１と、パス名抽出部１１２と、パラメータ文字列解析部１１３とを備え、ネットワークインタフェース１０１から受信したデータについて、クライアント−サーバ間のアクセスデータを組み立て、組み立てたアクセスデータに対して字句解析や構文解析を行う機能をもつ。
【００３０】
アクセスデータ解析部１１０に於いて、ＵＲＬ文字列解析部１１１は、アクセスデータのＵＲＬ文字列に含まれる文字区分や数値情報などを解析し、パス名抽出部１１２は、ＵＲＬ文字列からパス名を抽出し、パラメータ文字列解析部１１３は、パス名以下のパラメータ文字列に含まれる文字区分や数値情報などを解析する。
【００３１】
これにより、アクセスデータ解析部１１０は、アクセスデータについて、図４に示すような統計的な評価値ｆ（ｘ）を算出する。アクセスデータ解析部１１０は、算出した統計的な評価値ｆ（ｘ）を統計分布データ記憶部１３０に格納する。詳しくは、攻撃防御の対象となるＷｅｂサーバに対してのＵＲＬ文字列に関する統計的な評価値についてはＵＲＬ文字列統計分布１３１として記憶し、パラメータ文字列に関する統計的な評価値についてはパラメータ文字列統計分布１３２として記憶する。更に、パラメータ文字列統計分布１３２として、ＵＲＬ文字列のパス名に付されるパラメータ文字列について、パス名を含んだパラメータ文字列で構成される第１の文字列区分を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムに与えられる文字列全体で構成される第２の文字列区分を解析した結果の統計分布と、Ｗｅｂサーバ上のプログラムの変数で構成される第３の文字列区分を解析した結果の統計分布とをそれぞれ個別に記憶し管理する。尚、この詳細については、図７および図８を参照して、更に、図１０乃至図１２を参照して後述する。従って上記統計的な評価値ｆ（ｘ）は画一的なものではなく、ＵＲＬ文字列統計分布１３１については、例えば攻撃防御の対象となるＷｅｂサーバ、当該Ｗｅｂサーバが接続されるネットワーク環境等によってそれぞれ異なり、また、パラメータ文字列統計分布１３２についても上記各ＵＲＬ文字列統計分布１３１の下で、各々上記した各文字列区分毎に算出される（図７および図８、図１０乃至図１２参照）。
【００３２】
閾値算出部１４１は、上記統計分布データ記憶部１３０に記憶された評価値ｆ（ｘ）から、平均値や分散を求め、統計的に正常な値域ｙ１と統計的に異常な値域ｙ２とを分ける閾値（ｔｈ）を算出する機能をもつ。閾値算出部１４１は、算出した閾値（ｔｈ）を閾値保持部４２に保持する。
【００３３】
未知の不正アクセス判定部１２０は、アクセス頻度評価部１２１と、統計分布データ選択部１２２と、ＵＲＬ文字列統計評価部１２３と、パラメータ文字列統計評価部１２４とを備え、アクセスデータ解析部１１０により算出され統計分布データ記憶部１３０に記憶された評価値ｆ（ｘ）と、閾値保持部１４２から参照される閾値（ｔｈ）とを用いて、ネットワークインタフェース１０１で受信したアクセスデータが未知の不正アクセスであるか否か判定する機能をもつ。
【００３４】
未知の不正アクセス判定部１２０に於いて、アクセス頻度評価部１２１は、パス名抽出部１１２によりＵＲＬ文字列から抽出されたパス名について、統計分布データ記憶部１３０に記憶（蓄積）された統計的な評価値ｆ（ｘ）を参照して当該パス名へのアクセス頻度が希であるか否かをアクセス頻度判定用の設定値（閾値）をもとに評価する。統計分布データ選択部１２２は、上記アクセス頻度が稀である（アクセス頻度判定用の設定値より低い）とき、ＵＲＬ文字列統計評価部１２３を選択し、上記アクセス頻度が稀でない（アクセス頻度判定用の設定値以上である）とき、パラメータ文字列統計評価部１２４を選択する。ＵＲＬ文字列統計評価部１２３は、統計分布データ選択部１２２により選択されると、ネットワークインタフェース１０１に受信されアクセスデータ解析部１１０により解析されたアクセスデータのＵＲＬ文字列全体について、閾値保持部１４２に保持された当該ＵＲＬ文字列に固有の閾値をもとに統計的に正常であるか否かの評価を行う。また、パラメータ文字列統計評価部１２４は、統計分布データ選択部１２２により選択されると、ネットワークインタフェース１０１に受信されアクセスデータ解析部１１０により解析されたアクセスデータのパス名以下のパラメータ文字列について、閾値保持部１４２に保持された当該パラメータ文字列に固有の閾値をもとに統計的に正常であるか否かの評価を行う。このように、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計分布（母集団が小さい詳細部分の統計分布）を参照して統計的に正常であるか否かの評価を行い、アクセス頻度が稀な場合は、母集団が小さいパラメータ文字列に関する統計分布ではなく、母集団の大きいＵＲＬ文字列全体に関する統計分布を参照して統計的に正常であるか否かの評価を行う。これにより、統計的に異常な内容のアクセスデータについて不正アクセスに関わるものとして判定する。
【００３５】
この際の未知の不正アクセス判定部１２０に於いて用いられる、学習フェーズ（ＦＬ  ）に於いて得られた評価値の統計分布を概念図として図４に示す。アクセスデータの解析による統計的な評価値ｆ（ｘ）は、閾値（ｔｈ）を境界に、統計的に正常な値域ｙ１と、統計的に異常な値域ｙ２とに区分される。
【００３６】
この学習フェーズに於いて得られた評価値の統計分布は、未知攻撃の検出・防御フェーズに於いて活用される。すなわち、評価値ｆ（ｘ）が統計的に正常な値域ｙ１に属するものは正常アクセスと判定し、評価値ｆ（ｘ）が統計的に異常な値域ｙ２に属するものは未知攻撃に係わるものと判定する。正常なアクセスデータであると判定された統計的に正常な値域ｙ１に属するアクセスデータは正常アクセス処理部１５１に渡され、不正アクセスに関わるものであると判定された統計的に異常な値域ｙ２に属するアクセスデータは不正アクセス処理部１５２に渡される。
【００３７】
正常アクセス処理部１５１は、使用者の必要に応じてさまざまな処理を適用してよい。例えば不正アクセス検出装置を傍受型として使用するならば、正常なアクセスデータについては特になにもせず、また、不正アクセス検出装置をフィルタ型として使用するならば、正常なアクセスデータについてはネットワークインタフェースから宛先のネットワークへ転送することが可能である。
【００３８】
不正アクセス処理部１５２は、使用者の必要に応じてさまざまな処理を適用してよい。例えば不正アクセス検出装置を傍受型として使用するならば、不正アクセスに関わるものについてはログを残したり警報で通知を行い、また、不正アクセス検出装置をフィルタ型として使用するならば、不正アクセスに関わるものについては遮断したり追跡を行うことが可能である。
【００３９】
以下、本発明の第１実施形態に係る不正アクセスの検出処理について、フローチャートを参照して説明する。
【００４０】
図５は上記第１実施形態に於ける、統計的な学習を行う処理の手順（学習フェーズ（ＦＬ  ）の処理手順）を示すフローチャートである。
【００４１】
不正アクセス検出装置１００は、ネットワークインタフェース１０１にて、ネットワークの先に存在するクライアント−サーバ間でやりとりされるアクセスデータ（ＨＴＴＰリクエスト）を受信する（図５ステップＳ１０１）。
【００４２】
アクセスデータ解析部１１０は、上記受信したデータの内容を解析する。具体的には、ネットワークインタフェース１０１から受信したデータから、クライアント−サーバ間のアクセスデータを組み立て、組み立てたアクセスデータに対して字句解析や構文解析を行い、アクセスデータに含まれる文字区分や数値情報などを抽出するが、詳しくは図６にサブルーチンとして示し、その処理については後述する（図５ステップＳ１０２）。
【００４３】
アクセスデータ解析部１１０は、上記アクセスデータの内容の解析結果として、図４に示すような統計的な評価値ｆ（ｘ）を算出する。
【００４４】
アクセスデータ解析部１１０で算出した統計的な評価値ｆ（ｘ）は、統計分布データ記憶部１３０に記憶され（図５ステップＳ１０３）、上記解析が行われたアクセスデータはネットワーク１０に送出される（図５ステップＳ１０４）。
【００４５】
そして、学習を継続する場合（図５ステップＳ１０５  ＹＥＳ）は、繰り返しネットワークインタフェース１０１にてデータを受信する処理（図５ステップＳ１０１）に戻る。学習を継続しない場合（図５ステップＳ１０５  ＮＯ）は、閾値算出部１４１が、統計分布データ記憶部１３０に記憶された統計的な評価値ｆ（ｘ）から、平均値や分散を求め、上記図４に示した統計的に正常な値域ｙ１と統計的に異常な値域ｙ２とを分ける閾値（ｔｈ）を算出する（図５ステップＳ１０６）。そして、算出された閾値（ｔｈ）を閾値保持部１４２に保持させる（図５ステップＳ１０７）。尚、この際の統計的な評価値ｆ（ｘ）、および閾値（ｔｈ）は、ここでは説明を分かり易くするため、１つの値として扱っているが、上述したように、ＵＲＬ文字列統計分布１３１、およびパラメータ文字列統計分布１３２のそれぞれについて文字列区分毎に存在する。また、学習を継続するか継続しないか（図５ステップＳ１０５）の動作手順の切り替えについては、図示しないが、管理者が、学習を継続するか継続しないかを決定して、その旨を管理端末から不正アクセス検出装置に通知することにより、動作手順の切り替えを行うことができる。
【００４６】
図６は上記統計学習処理に於いて、アクセスデータの内容を解析する処理（図５ステップＳ１０２参照）のサブルーチンを示すフローチャートである。
【００４７】
アクセスデータ解析部１１０に設けられたＵＲＬ文字列解析部１１１は、アクセスデータのＵＲＬ文字列に含まれる文字区分や数値情報など解析し（図６ステップＳ２０１）、ＵＲＬ文字列に関する評価値を算出する（図６ステップＳ２０２）。
【００４８】
アクセスデータ解析部１１０に設けられたパス名抽出部１１２は、上記ＵＲＬ文字列からパス名を抽出する（図６ステップＳ２０３）。
【００４９】
アクセスデータ解析部１１０に設けられたパラメータ文字列解析部１１３は、上記ＵＲＬ文字列から抽出したパス名以降に更にパラメータが抽出される際（図６ステップＳ２０４  ＹＥＳ）、当該パラメータ文字列に含まれる文字区分や数値情報などを解析し（図６ステップＳ２０５）、パラメータ文字列に関する評価値を算出する（図６ステップＳ２０６）。この動作（図６ステップＳ２０４〜Ｓ２０６）は、引き続き、パラメータが抽出される限り繰り返し行われる。そして、これ以上、パラメータが抽出されなければ（図６ステップＳ２０４  ＮＯ）、当該パス名へのアクセス頻度を「１」加算し（図６ステップＳ２０７）、このサブルーチン処理を終了する。
【００５０】
図７は上記第１実施形態に於ける不正アクセス検出装置１００の統計分布データ記憶部１３０に於いて、ＵＲＬ文字列の統計分布を記憶したテーブル（ＵＲＬ文字列統計分布１３１）の一構成例を示す図である。
【００５１】
統計分布データ記憶部１３０に記憶されるＵＲＬ文字列統計分布１３１は、Ｗｅｂサーバ名ごとに、テーブルとして記憶され、詳しくは、ＵＲＬ文字列を解析した結果の統計分布が記憶される。
【００５２】
このテーブルの行は、文字列の構成要素を分類するものであり、文字セットＡ、文字セットＢ、文字セットＣ、…のように分類する。
【００５３】
この文字セットＡ、Ｂ、Ｃ、…は、具体的には、「数値」「メタキャラクタ（プロトコルやスクリプト言語で特殊な意味を持つ文字）」「バイナリ文字」「スラッシュ文字」「ドット文字」などに分類される。この各セルの列は、文字セットに属する文字数または値に関する統計分布を記憶するものであって、アクセスデータを取得する学習段階で、図４に示す統計的な評価分布に基づいて算出した、平均値、分散、および閾値を保持する。この具体例については後述する。
【００５４】
図８は上記第１実施形態に於ける不正アクセス検出装置１００の統計分布データ記憶部１３０に於いて、パラメータ文字列統計分布を記憶したテーブル（パラメータ文字列統計分布１３２）の一構成例を示す図である。
【００５５】
パラメータ文字列統計分布１３２は、Ｗｅｂサーバ名ごとに、テーブルとして記憶される。詳しくは、パス名と、パス名に付随するパラメータ（ｘ１，ｘ２，…）のそれぞれについてのセルからなり、当該セルには、パラメータの値に含まれる文字列を解析した結果の統計分布が記憶される。このテーブルの行は、ＵＲＬ文字列から抽出したパス名を記憶するエリアである。その内容はＷｅｂサーバに依存し、たとえば、ｉｎｄｅｘ．ｐｈｐ、ｉｓａｐｉ／ｇｏｍｅｍｂｅｒｓ．ａｓｐ、ｓｐ３／ｄｏｗｎｌｏａｄ．ａｓｐ、…のように記憶される。
【００５６】
一方、テーブルの列は、ＵＲＬ文字列のパス名以下から抽出した各パラメータと、当該パスへのアクセス頻度を記憶するエリアである。パス名とパラメータ名から参照される個々のセルは、統計分布データを記憶するセルであって、詳しくはパラメータ文字列統計分布を記憶するセルである。つまり、あるパス名以下のパラメータ名に与えられた値の文字列を解析した結果の統計分布が記憶される。このセルの行は、文字列の構成要素を分類するものであり、文字セットＡ、文字セットＢ、文字セットＣ、…のように分類する。この文字セットＡ、Ｂ、Ｃ、…は、具体的には、「数値」「メタキャラクタ（プロトコルやスクリプト言語で特殊な意味を持つ文字）」「バイナリ文字」「スラッシュ文字」「ドット文字」などに分類される。
【００５７】
このセルの列は、文字セットに属する文字数または値に関する統計分布を記憶するものであって、アクセスデータを取得する学習段階で、図４に示す統計的な評価分布に基づいて算出した平均値、分散、および閾値を保持する。
【００５８】
図９は、上記第１実施形態に於ける、未知の不正アクセスを判定する処理の手順を示すフローチャートである。
【００５９】
不正アクセス検出装置１００は、ネットワークインタフェース１０１にて、ネットワーク１０の先に存在するクライアント−サーバ間でやりとりされるデータを受信する（図９ステップＳ３０１）。
【００６０】
アクセスデータ解析部１１０は、上記ネットワークインタフェース１０１が受信したアクセスデータの内容を解析する（図９ステップＳ３０２）。具体的には、既に説明したように、ＵＲＬ文字列解析部１１１によりアクセスデータのＵＲＬ文字列に含まれる文字区分や数値情報など解析し、パス名抽出部１１２によりＵＲＬ文字列からパス名を抽出し、パラメータ文字列解析部１１３によりパス名以下のパラメータ文字列に含まれる文字区分や数値情報などを解析する。
【００６１】
未知の不正アクセス判定部１２０は、上記ＵＲＬ文字列から抽出されたパス名のアクセス頻度を評価する（図９ステップＳ３０３）。
【００６２】
ここで、アクセス頻度が稀である場合は、ＵＲＬ文字列に関する統計分布データ（ＵＲＬ文字列統計分布１３１）を参照する（図９ステップＳ３０４）。
【００６３】
この際は、ＵＲＬ文字列統計評価部１２３に於いて、ＵＲＬ文字列についての統計的評価値と、閾値保持部１４２から参照されるＵＲＬ文字列に関する閾値とを比較し、アクセスデータが未知の不正アクセスであるか否かを判定する（図９ステップＳ３０６）。
【００６４】
ここで、ＵＲＬ文字列に関する統計的評価値が、統計的に異常値であった場合は、アクセスデータを不正アクセスに関わるものとして検出し、当該アクセスデータを不正アクセス処理部１５２に渡す。
【００６５】
ＵＲＬ文字列に関する統計的評価値が、統計的に正常値であった場合は、アクセスデータが正常なアクセスに関わるものとして検出し、当該アクセスデータを正常アクセス処理部１５１に渡す。
【００６６】
また、上記ＵＲＬ文字列から抽出されたパス名のアクセス頻度の評価（図９ステップＳ３０３）に於いて、アクセス頻度が稀でない場合は、パラメータ文字列に関する統計分布データ（パラメータ文字列統計分布１３２）を参照する（図９ステップＳ３０５）。
【００６７】
この際は、パラメータ文字列統計評価部１２４に於いて、パラメータ文字列に関する統計的評価値と、閾値保持部１４２から参照されるパラメータ文字列に関する閾値とを比較し、上記アクセスデータが未知の不正アクセスであるか否かを判定する（図９ステップＳ３０５）。
【００６８】
ここで、パラメータ文字列に関する統計的評価値が、統計的に異常値であった場合は、アクセスデータを不正アクセスに関わるものとして検出し、当該アクセスデータを不正アクセス処理部１５２に渡す。
【００６９】
また、パラメータ文字列に関する統計的評価値が、統計的に正常値であった場合は、アクセスデータが正常なアクセスとして検出し、当該アクセスデータを正常アクセス処理部１５１に渡す。正常アクセス処理部１５１、および不正アクセス処理部１５２の各処理については既に述べているので、ここではその処理を割愛する。
【００７０】
ここで、上記第１実施形態に於ける、解析処理、並びに検出・防御フェーズ（ＦＤ  ）の各処理について、その具体例を図面を参照して説明する。
【００７１】
解析処理では、アプリケーション層データに組み立てられたＨＴＴＰリクエストを対象として、内容の文字列を解析する。具体的には図１０のＨＴＴＰリクエストの解析例に示すように、まずはホスト名・パス名・パラメータ名といった階層的な切り出しを行う。切り出された部分の各々についてはアクセス数をカウントし、統計分布を求めるための学習で利用する。そして、切り出された各該当の階層に属する文字列を、文字列区分として抽出する。
【００７２】
このように抽出するのは、それぞれの文字列区分がＷｅｂサーバ上の何によって実際に処理されるか、にもとづいており、そして、そうした処理の脆弱性が攻撃に関わりうることから、処理対象となる文字列区分を抽出している。たとえば、ホスト名以降のＰＡＴＨ＿ＱＵＥＲＹ部は一般的にＷｅｂサーバ上のＨＴＴＰデーモンによって処理されるものであり、パス名以降のＱＵＥＲＹ＿ＳＴＲＩＮＧはＷｅｂサーバ上のＣＧＩ等のアプリケーションによって処理され、パラメータ名以降のＶＡＲＩＡＢＬＥ部はアプリケーションの内部変数によって処理されることが多い。なお、パラメータ名は、一つのＨＴＴＰリクエスト内に複数含まれる場合もあるが、その場合はすべてのパラメータ名について抽出する。
【００７３】
ここでは、ＵＲＬ文字列のパス名に付されるパラメータ文字列について、パス名を含んだパラメータ文字列（Ｗｅｂサーバ上のプログラムを指定する文字列および当該プログラムに処理させる文字列）で構成される第１の文字列区分と、Ｗｅｂサーバ上のプログラムに与えられる文字列全体で構成される第２の文字列区分と、Ｗｅｂサーバ上のプログラムの変数で構成される第３の文字列区分とについてそれぞれ解析を行う。尚、この例では、第１の文字列区分をＰＡＴＨ＿ＱＵＥＲＹ部、第２の文字列区分をＱＵＥＲＹ＿ＳＴＲＩＮＧ部、第３の文字列区分をＶＡＲＩＡＢＬＥ部として示している。この例では、ＶＡＲＩＡＢＬＥ部が最小文字列構成であり、階層的に最も下位にある。この実施形態に於いては、下位の文字列区分を優先的に未知攻撃の判定に用いる。
【００７４】
上記文字列区分の構成要素の評価について、その具体例を挙げる。
【００７５】
抽出した文字列区分のそれぞれについて、構成要素を評価する。構成要素の評価とは、パターン認識の分野に於ける特徴量にあたるもので、具体的には、ある特定の文字セットに属する文字が構成要素として何バイト含まれているかを評価する。即ち以下に定義するような特定の文字セットに属する文字が、それぞれの文字列区分に、構成要素として、何バイト（何文字）含まれているかを数え、その数を評価値とする。
【００７６】
この際の特定の文字セットとしては、ＬＥＮＧＴＨ（任意の文字の数、即ち文字列区分の長さ）、ＭＥＴＡ（メタキャラクタの数）、ＢＩＮＡＲＹ（ＡＳＣＩＩ文字でない印刷不能なバイナリ文字のバイト数）、ＳＬＡＳＨＤＯＴ（ドット文字・スラッシュ文字の数）等を挙げることができる。これらはＷｅｂサーバへの攻撃手法として知られる数々の攻撃パターンを調査した結果、多くの攻撃パターンに含まれている文字セットとして列挙されたものである。以上の解析処理から、ＨＴＴＰリクエストの評価値は、ＨＴＴＰリクエストの事象をＸ、文字列区分をｍ  、文字セットｎ  としたとき、ｆｍｎ（ｘ）として算出される。ここで評価値ｆｍｎ（ｘ）は、ＨＴＴＰリクエストＸに関し、文字列区分ｍ  において、文字セットｎ  に属する文字のバイト数である。
【００７７】
上記ＰＡＴＨ＿ＱＵＥＲＹ部に関する統計分布データの記憶テーブル構成例を図１１に示している。この記憶テーブルは、ホスト名と、ホスト名のそれぞれについてのセルから成る。このテーブルの行は、ホスト名を記憶するエリアである。ホスト名はＷｅｂサーバ毎に記憶される。
【００７８】
ホスト名から参照される個々のセルは、ＰＡＴＨ＿ＱＵＥＲＹ部の解析結果に関する統計分布が記憶されるセルである。このセルの行は、文字列の構成要素を分類するものであり、ＬＥＮＧＴＨ、ＭＥＴＡ、ＢＩＮＡＲＹ、ＳＬＡＳＨＤＯＴ、という文字セットに分類する。このセルの列は、文字セットに属する文字数または値に関する統計分布を表すものであって、ＰＡＴＨ＿ＱＵＥＲＹ部に関する評価値の統計分布に基づいて算出した平均値、分散、および閾値を保持する。
【００７９】
上記ＶＡＲＩＡＢＬＥ部に関する統計分布データの記憶テーブル構成例を図１２に示している。この記憶テーブルは、ホスト名と、ホスト名のそれぞれについてのセルから成る。このテーブルの行は、ホスト名を記憶するエリアである。ホスト名はＷｅｂサーバ毎に記憶される。ホスト名から参照される個々のセルは、パス名と、パス名に付随するパラメータのそれぞれについてのセルから成るテーブルである。このテーブルの行は、パス名を記憶するエリアである。たとえば、ｉｎｄｅｘ．ｐｈｐ、ｉｓａｐｉ／ｇｏｍｅｍｂｅｒｓ．ａｓｐ、ｓｐ３／ｄｏｗｎｌｏａｄ．ａｓｐ、…のように記憶される。一方、テーブルの列は、ＨＴＴＰリクエストのパス名以下から抽出した各パラメータと、当該パスへのアクセス頻度を記憶するエリアである。
【００８０】
パス名から参照される個々のセルは、ＶＡＲＩＡＢＬＥ部の解析結果に関する統計分布が記憶されるセルである。このセルの行は、文字列の構成要素を分類するものであり、ＬＥＮＧＴＨ、ＭＥＴＡ、ＢＩＮＡＲＹ、ＳＬＡＳＨＤＯＴ、という文字セットに分類する。
【００８１】
このセルの列は、文字セットに属する文字数または値に関する統計分布を表すものであって、ＶＡＲＩＡＢＬＥ部に関する評価値の統計分布に基づいて算出した平均値、分散、および閾値を保持する。
【００８２】
上記した以外に、ＱＵＥＲＹ＿ＳＴＲＩＮＧ部に関する統計分布の記憶テーブルも存在するが、上記図１２に示すＶＡＲＩＡＢＬＥ部に関する統計分布データの記憶テーブル構成とほぼ同様であるので、ここではその説明を省略する。
【００８３】
未知攻撃を検出するための本発明の実施形態に於ける基本的な考え方としては、図４に示したように、学習フェーズに於いて得られた統計的な評価値ｆ（ｘ）の統計分布データを参照し、入力されたＨＴＴＰリクエストについて、評価値ｆ（ｘ）が統計的に正常な値域に属するものは正常アクセスと判定し、評価値が統計的に異常な値域に属するものは未知攻撃に係わるものと判定することである。
【００８４】
一般に不正アクセス検出システムでは、検出率を高くするためにはより多くの情報を用いること、具体的にはシグネチャー数を多くすることが有効であり、誤検出率を低くするためにはより詳細な情報を用いること、具体的には各シグネチャーのルールを詳細化することが有効である。
【００８５】
検出率を高くするためには、より多くの情報を用いること、具体的には多くの文字列区分を未知攻撃の判定に用いることが、有効であると考えられる。また、誤検出率を低くするためには、より詳細な情報を用いること、具体的には下位の文字列区分を優先的に未知攻撃の判定に用いることが、有効である。ただし、学習フェーズに於いてＨＴＴＰリクエストの母集団の大きさが十分でないときは、真に正常なアクセスであっても、特定のパス名や特定のパラメータ名へのアクセス頻度が稀となってしまう状況がある。母集団の大きさが十分でなければ、統計的には正常か異常かを適切に判定することはできない。ただ、アクセス頻度が稀な場合、通常はアクセスされない所にアクセスされたという意味から、未知攻撃に係わるという考え方もできるが、それだけで未知攻撃であると断定すると、誤検出も多く含んでしまう。
【００８６】
一般に、アクセス頻度は、上位の文字列区分である程、高くなり、ホスト名＞パス名＞パラメータ名となる。また、上位の文字列区分ほど、ＨＴＴＰリクエストに含まれる文字の構成要素は、正常アクセスであっても多様となる。よって、母集団の大きさが十分であっても、上位の文字列区分では異常な文字列を明確に検出することが難しくなり、検出率が低くなる傾向にある。
【００８７】
以上のことから、検出率と誤検出率とのトレードオフを解消するために、本発明の実施形態では、上述したように、下位の文字列区分に関する統計分布について、母集団が大きければ優先的に検証し、母集団が十分に大きくなければ、より上位の文字列区分に関する統計分布について検証を行うようにしている。
【００８８】
この際の検出処理に係わる検出・防御フェーズ全体の処理の手順を図１３に示している。
【００８９】
ここでは入力した（即ちネットワークインタフェース１０１が受信した）ＨＴＴＰリクエストについて、その内容を解析する（図１３ステップＳ４０１，Ｓ４０２）。そして、ＨＴＴＰリクエストから抽出されたパラメータ名について、アクセス頻度を評価する（図１３ステップＳ４０３）。
【００９０】
この評価に於いて、当該パラメータ名へのアクセス頻度が稀でない場合は、ＶＡＲＩＡＢＬＥ部に関する統計分布データを参照する（図１３ステップＳ４０５）。そして、ＶＡＲＩＡＢＬＥ部に関する統計的評価値とＶＡＲＩＡＢＬＥ部に関する統計分布データに基づく閾値を比較することにより、ＨＴＴＰリクエストが未知攻撃に係わるか否かを判定する（図１３ステップＳ４０８）。統計的に異常値であった場合は、ＨＴＴＰリクエストを未知攻撃に係わるものと判定し、ＨＴＴＰセッションを遮断する（図１３ステップＳ４１１）。統計的に正常値であった場合は、ＨＴＴＰリクエストを正常なアクセスと判定し、ＨＴＴＰセッションを通過させる（図１３ステップＳ４１２）。
【００９１】
また、上記したＨＴＴＰリクエストから抽出されたパラメータ名についてのアクセス頻度の評価（図１３ステップＳ４０３）に於いて、当該パラメータ名へのアクセス頻度が稀である場合は、上位の文字列区分であるパス名について、アクセス頻度を評価する（図１３ステップＳ４０４）。この評価で
当該パス名へのアクセス頻度が稀でない場合は、ＱＵＥＲＹ＿ＳＴＲＩＮＧ部に関する統計分布データを参照する（図１３ステップＳ４０６）。そして、ＱＵＥＲＹ＿ＳＴＲＩＮＧ部に関する統計的評価値とＱＵＥＲＹ＿ＳＴＲＩＮＧ部に関する統計分布データに基づく閾値を比較することにより、ＨＴＴＰリクエストが未知攻撃に係わるか否かを判定する（図１３ステップＳ４０９）。ここで統計的に異常値であった場合は、ＨＴＴＰリクエストを未知攻撃に係わるものと判定し、ＨＴＴＰセッションを遮断する（図１３ステップＳ４１１）。統計的に正常値であった場合は、ＨＴＴＰリクエストを正常なアクセスと判定し、ＨＴＴＰセッションを通過させる（図１３ステップＳ４１２）。
【００９２】
また、上記した上位の文字列区分であるパス名についてのアクセス頻度の評価（図１３ステップＳ４０４）に於いて、当該パス名へのアクセス頻度が稀である場合は、ＰＡＴＨ＿ＱＵＥＲＹ部に関する統計分布データを参照する（図１３ステップＳ４０７）。そして、ＰＡＴＨ＿ＱＵＥＲＹ部に関する評価値とＰＡＴＨ＿ＱＵＥＲＹ部に関する統計分布データに基づく閾値を比較することにより、ＨＴＴＰリクエストが未知攻撃に係わるか否かを判定する（図１３ステップＳ４１０）。ここで、統計的に異常値であった場合は、ＨＴＴＰリクエストを未知攻撃に係わるものと判定し、ＨＴＴＰセッションを遮断する（図１３ステップＳ４１１）。統計的に正常値であった場合は、ＨＴＴＰリクエストを正常なアクセスと判定し、ＨＴＴＰセッションを通過させる（図１３ステップＳ４１２）。
【００９３】
以上のようにして検出・防御フェーズ（ＦＤ  ）に於ける処理が実行され、未知攻撃に係わるものと判定したＨＴＴＰリクエストのセッションが遮断される。
【００９４】
この際の未知攻撃に係わるものと判定したＨＴＴＰリクエストの具体的なパターン例を図１４乃至図１７に示している。
【００９５】
図１４に示す検出した攻撃例は、ＰＡＴＨ＿ＱＵＥＲＹ部に於いて、文字列の長さが統計的に長すぎること、および指定されたパス名へのアクセス頻度が極めて少ないことを検出して未知攻撃に係わるものと判定した（図１３ステップＳ４１０，Ｓ４１１）例である。
【００９６】
図１５に示す検出した攻撃例は、ＶＡＲＩＡＢＬＥ部に於いて、スラッシユ文字とドット文字の数が統計的に長すぎることを検出して未知攻撃に係わるものと判定した（図１３ステップＳ４０８，Ｓ４１１）例である。
【００９７】
図１６に示す検出した攻撃例は、ＱＵＥＲＹ＿ＳＴＲＩＮＧ部に於いて、文字列の長さが統計的に長すぎること、および指定された変数名へのアクセス頻度が極めて少ないことを検出して未知攻撃に係わるものと判定した（図１３ステップＳ４０９，Ｓ４１１）例である。
【００９８】
図１７に示す検出した攻撃例は、ＱＵＥＲＹ＿ＳＴＲＩＮＧ部に於いて、文字列に含まれるスラッシュ文字の数が統計的に多すぎること、および指定された変数名へのアクセス頻度が極めて少ないことを検出して未知攻撃に係わるものと判定した（図１３ステップＳ４０９，Ｓ４１１）例である。
【００９９】
図１８は本発明の第２の実施の形態に係る不正アクセス検出装置の構成を示すブロック図である。
【０１００】
この第２の実施の形態に係る不正アクセス検出装置１００は、上記図３に示す第１の実施の形態に係る不正アクセス検出装置１００の構成要素に加えて、閾値補正部１６１を備える。閾値補正部１６１は、閾値保持部１４２によって保持される閾値を補正する機能をもつ。更に不正アクセス検出装置１００には閾値補正部１６１に補正の指示を与える管理端末１６２が付加される。閾値補正部１６１は管理端末１６２からの閾値補正入力を受け付ける。
【０１０１】
閾値補正部１６１により、ＵＲＬ文字列統計分布の閾値を補正して、図４に示した統計的に異常な値域ｙ２を大きくする場合の効果だけについて述べると、より多くの未知の不正アクセスを検出が可能になり、検出率を向上させることができるが、正常なアクセスデータを誤って不正アクセスに関わるものとして検出する場合も多くなり、誤検出率を増やしてしまうことになる。
【０１０２】
しかし本発明の第２の実施形態に係る不正アクセス検出装置１００では、未知の不正アクセス判定部１２０にアクセス頻度評価部１２１と統計分布データ選択部１２２を備えたことにより、ＵＲＬ文字列統計分布は、パス名へのアクセス頻度が稀である場合にのみ参照されることと、一般的に不正アクセスは、Ｗｅｂサーバ上に実際には存在しないパス名へのアクセスが試みられることが非常に多いことから、この構成において、閾値補正部１６１により閾値を補正することにより、より一層、未知の不正アクセスの検出率を向上させ、かつ、誤検出を抑制することができる。
【０１０３】
上記第２実施形態に於いて、閾値補正部１６１により閾値を補正する際に適用される管理ＧＵＩ１３による補正画面の構成例を図１９に示している。
【０１０４】
この第２実施形態は、管理ＧＵＩ１３へ未知攻撃の情報提示を行い、管理ＧＵＩ１３から未知攻撃の検出基準の補正を受け付ける機能を実現した。図１９はその管理ＧＵＩ１３による補正画面の一例を示している。
【０１０５】
この補正画面では、ＧＵＩ画面の表題、および未知攻撃防御機能が防御対象のＷｅｂサーバに対する未知攻撃を検知したことを管理者に提示している。このとき、該当するＨＴＴＰセッションは、上述した侵入検知システム１にて遮断されている。
【０１０６】
管理者は、この補正画面を見て、ＨＴＴＰリクエストが真に不正アクセスに係わるものであるか否かを判断する。この補正画面上に於いて、未知攻撃防御機能によって統計的に閾値よりも異常と評価されたＨＴＴＰリクエストそのものの内容全体が表示される。その中で特に統計的に異常と判定された部分については、管理者が見易いように赤色などで色分け表示する。例えば、ＨＴＴＰリクエストの内容において、変数名（ｎｏｎａｍｅ）に含まれるメタキャラクタの数が、統計分布から異常値とみなされたものを検知したと提示している。その根拠として、この例でのＷｅｂサーバは「ｓｔａｔｓ．ｗｗｗ．…………」というホスト名およびパス名をもつことと、このパス名に対するＨＴＴＰリクエストの内容を解析した統計分布データが、画面内に表形式で示される。
【０１０７】
この画面内の表は、未知攻撃防御機能１２の学習フェーズ（ＦＬ  ）に於いて構築されたものであり、図１２に示したＶＡＲＩＡＢＬＥ部に関する統計分布データから当該サーバに関する統計分布データを抜粋したものに相当する。
【０１０８】
この表には、ＨＴＴＰリクエストから抽出された変数名、ＨＴＴＰリクエストにおいてその変数名が出現した頻度、そして、その変数の値の長さ（ＬＥＮＧＴＨ）、含まれるメタキャラクタの数（ＭＥＴＡ）、含まれるバイナリのバイト数（ＢＩＮＡＲＹ）、含まれるスラッシュ文字とドット文字の数（ＳＬＡＨＳＨＤＯＴ）のそれぞれに関して、統計を取得することにより算出された平均（ｍｅａｎ）、標準偏差（ｓｉｇｍａ）、そして、統計的な異常値を判定するために標準偏差に掛ける係数（ｆａｃｔｏｒ）の値が示されている。今回のＨＴＴＰリクエストの内容を解析した結果、ＨＴＴＰリクエスト内の変数に含まれるメタキャラクタの数が、平均で（ｍｅａｎ）では０個であって、標準偏差（ｓｉｇｍａ）は「０．５３」であるのに、今回のＨＴＴＰリクエストの場合は、４個であった。よって、統計的な異常値を判定するために標準偏差に掛ける係数（ｆａｃｔｏｒ）「４」と、標準偏差とを掛けた値、すなわち「２．１２」、これよりも僅かに大きい値であるので、提示したＨＴＴＰリクエストが未知攻撃に係わるものであるという判定を示している。そして、これが真に不正アクセスに係わるものであるか、あるいは誤検出であるかの判断を、管理者に問い合わせている。
【０１０９】
この状態で管理者が、誤検出でないと判定したならば、「Ｔｈｉｓ  ｉｓ  Ａｔｔａｃｋ」ボタンを押下する。これにより、誤検出でないとの判定を受けた侵入検知システム１は、当該ＨＴＴＰリクエストを未知攻撃として、このままＷｅｂサーバの防御を続ける。
【０１１０】
また管理者が、誤検出であると判定したならば、「ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ」ボタンを押下する。これにより、誤検出であるとの判定を受けた侵入検知システムは、次回から誤検知されないように、変数の値に含まれるメタキャラクタの数の「ｆａｃｔｏｒ」の値を、自動調整する。すなわち、統計学習した平均や分散は故意に変更せずに、閾値を決定する係数（ｆａｃｔｏｒ）を逆算し、「９」と算出することにより、次回からは、メタキャラクタの数が４個では統計的に異常とは検出されないように補正する。
【０１１１】
上記したように本発明の各実施形態によれば、パス名へのアクセス頻度に応じて参照する統計を選択する機構を新たに付加したことにより、アクセス頻度が稀な場合には、パラメータ文字列に関する統計分布（母集団が小さい詳細部分の統計分布）ではなく、ＵＲＬ文字列全体に関する統計分布（母集団の大きい全体部分の統計分布）を参照することになるから、統計的判断による未知の不正アクセスの検出率を向上させ、かつ、誤検出を抑制することができる。
【０１１２】
【発明の効果】
以上詳記したように本発明によれば、既知のシグネチャでは対応できない未知の攻撃からＷｅｂサーバを防御する機能を有する不正アクセス検出装置が実現できる。また未知の攻撃に対して、高い検出率と、低い誤検出率が実現できる。更に、管理者の負担が極力少ないユーザインタフェースを提供することで、未知の攻撃に対する検出精度の向上を図った不正アクセス検出装置が実現できる。
【図面の簡単な説明】
【図１】本発明に係る侵入検知システムの全体の機能構成を示すブロック図。
【図２】上記侵入検知システムに於ける未知攻撃防御機能に係わる処理間の関連を示す図。
【図３】本発明の第１実施形態に於ける不正アクセス検出装置の構成を示すブロック図。
【図４】上記第１実施形態に於ける、未知の不正アクセス判定部に用いられる、学習フェーズに於いて得られた評価値の統計分布を示す概念図。
【図５】上記第１実施形態に於ける、統計的な学習を行う処理の手順（学習フェーズの処理手順）を示すフローチャート。
【図６】上記第１実施形態に於ける、学習処理でのアクセスデータの内容を解析する処理手順を示すフローチャート。
【図７】上記第１実施形態に於ける、ＵＲＬ文字列の統計分布を記憶したテーブル（ＵＲＬ文字列統計分布）の一構成例を示す図。
【図８】上記第１実施形態に於ける、パラメータ文字列の統計分布を記憶したテーブル（パラメータ文字列統計分布）の一構成例を示す図。
【図９】上記第１実施形態に於ける、未知の不正アクセスを判定する処理の手順を示すフローチャート。
【図１０】上記第１実施形態に於ける、ＨＴＴＰリクエストの解析例を示す図。
【図１１】上記第１実施形態に於ける、ＰＡＴＨ＿ＱＵＥＲＹ部に関する統計分布データの記憶テーブル構成例を示す図。
【図１２】上記第１実施形態に於ける、ＶＡＲＩＡＢＬＥ部に関する統計分布データの記憶テーブル構成例を示す図。
【図１３】上記第１実施形態に於ける、検出処理に係わる検出・防御フェーズ全体の処理の手順を示すフローチャート。
【図１４】上記第１実施形態に於ける、未知攻撃に係わるものと判定したＨＴＴＰリクエストの具体的なパターン例を示す図。
【図１５】上記第１実施形態に於ける、未知攻撃に係わるものと判定したＨＴＴＰリクエストの具体的なパターン例を示す図。
【図１６】上記第１実施形態に於ける、未知攻撃に係わるものと判定したＨＴＴＰリクエストの具体的なパターン例を示す図。
【図１７】上記第１実施形態に於ける、未知攻撃に係わるものと判定したＨＴＴＰリクエストの具体的なパターン例を示す図。
【図１８】本発明の第２の実施の形態に係る不正アクセス検出装置の構成を示すブロック図。
【図１９】上記第２実施形態に於ける、管理ＧＵＩによる補正画面の構成例を示す図。
【符号の説明】
１…侵入検知システム、２…Ｗｅｂサーバ、３…クライアント、４…管理者、１０…ネットワーク、１１…既知攻撃防御機能、１２…未知攻撃防御機能、１３…管理ＧＵＩ、１００…不正アクセス検出装置、１０１…ネットワークインタフェース、１１０…アクセスデータ解析部、１１１…ＵＲＬ文字列解析部、１１２…パス名抽出部、１１３…パラメータ文字列解析部、１２０…未知の不正アクセス判定部、１２１…アクセス頻度評価部、１２２…統計分布データ選択部、１２３…ＵＲＬ文字列統計評価部、１２４…パラメータ文字列統計評価部、１３０…統計分布データ記憶部、１３１…ＵＲＬ文字列統計分布、１３２…パラメータ文字列統計分布、１４１…閾値算出部、１４２…閾値保持部、１５１…正常アクセス処理部、１５２…不正アクセス処理部、１６１…閾値補正部、１６２…管理端末、ＦＬ  …学習フェーズ、ＦＤ  …検出・防御フェーズ。
【図１】
2005011234.tif 000003
【図２】
2005011234.tif 000004
【図３】
2005011234.tif 000005
【図４】
2005011234.tif 000006
【図５】
2005011234.tif 000007
【図６】
2005011234.tif 000008
【図７】
2005011234.tif 000009
【図８】
2005011234.tif 000010
【図９】
2005011234.tif 000011
【図１０】
2005011234.tif 000012
【図１１】
2005011234.tif 000013
【図１２】
2005011234.tif 000014
【図１３】
2005011234.tif 000015
【図１４】
2005011234.tif 000016
【図１５】
2005011234.tif 000017
【図１６】
2005011234.tif 000018
【図１７】
2005011234.tif 000019
【図１８】
2005011234.tif 000020
【図１９】
2005011234.tif 000021