(57)【要約】【課題】  統計情報が利用できないアクセスデータに対しても、正常なアクセスデータであるか否かを判定する異常データ検出装置、異常データ検出プログラム及び異常データ検出方法を提供する。【解決手段】  アクセスデータのＣＧＩ変数名毎に特徴量を算出するデータ解析手段と、特徴量の平均値、標準偏差を含む統計情報をＣＧＩ名毎に蓄積して記憶する統計情報記憶手段と、統計情報を生成し、統計情報記憶手段に記憶された統計情報を更新する統計処理実行手段と、ＣＧＩ名が統計情報記憶手段に記憶されているか否かを判定するアクセス判定手段と特徴量と統計情報とを比較して、アクセスデータが正常であるか否かを判定する統計的異常判定手段と入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名と統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して、アクセスデータが正常であるか否かを判定するディレクトリ名判定手段を備える。【選択図】      図１
2006277414.tif 000002
【特許請求の範囲】
【請求項１】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析手段と、
前記データ解析手段で算出された特徴量の平均値、標準偏差を含む統計情報を前記入力されたアクセスデータに含まれるＣＧＩ名毎に蓄積して記憶する統計情報記憶手段と、
前記特徴量の平均値と標準偏差を含む統計情報を生成し、前記統計情報記憶手段に記憶された統計情報を更新する統計処理実行手段と、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が前記統計情報記憶手段に記憶されているか否かを判定するアクセス判定手段と、
前記アクセス判定手段で前記ＣＧＩ名が前記統計情報記憶手段に記憶されていると判定された場合、前記データ解析手段で算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定手段と、
前記アクセス判定手段で前記ＣＧＩ名が前記統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、このディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して、前記入力されたアクセスデータが正常であるか否かを判定するディレクトリ名判定手段と、
を備えることを特徴とする異常データ検出装置。
【請求項２】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析手段と、
前記データ解析手段で算出された特徴量の平均値、標準偏差、アクセス回数を含む統計情報をＣＧＩ名毎に蓄積して記憶する統計情報記憶手段と、
前記特徴量の平均値と標準偏差とアクセス回数を含む統計情報を生成し、前記統計情報記憶手段に記憶された統計情報を更新する統計処理実行手段と、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が前記統計情報記憶手段に記憶されているか否かを判定するアクセス判定手段と、
前記アクセス判定手段で前記ＣＧＩ名が前記統計情報記憶手段に記憶されていると判定された場合、前記データ解析手段で算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定手段と、
前記アクセス判定手段で前記ＣＧＩ名が前記統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、このディレクトリ名と同一のディレクトリ名を含むＣＧＩ名が前記統計情報記憶手段に記憶され、かつ、前記同一のディレクトリ名を含むＣＧＩ名に関連付けられるアクセス回数が所定の数以上である場合、前記入力されたアクセスデータが正常であると判定するディレクトリ名判定手段と、
を備えることを特徴とする異常データ検出装置。
【請求項３】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析手段と、
前記データ解析手段で算出された特徴量の平均値、標準偏差を含む統計情報を前記入力されたアクセスデータに含まれるＣＧＩ名毎に蓄積して記憶する統計情報記憶手段と、
前記特徴量の平均値と標準偏差とを含む統計情報を生成し、前記統計情報記憶手段に記憶された統計情報を更新する統計処理実行手段と、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が統計情報記憶手段に存在するか否かを判定するアクセス判定手段と、
前記アクセス判定手段で前記ＣＧＩ名が統計情報記憶手段に記憶されていると判定された場合、データ解析手段で算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定手段と、
前記アクセス判定手段で前記ＣＧＩ名が統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、この抽出されたディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して前方一致する場合、前記入力されたアクセスデータが正常であるか否かを判定するディレクトリ名判定手段と、
を備えることを特徴とする異常データ検出装置。
【請求項４】
前記ディレクトリ名判定手段は、前記ＣＧＩ名から最右のディレクトリ区切り文字より左をディレクトリ名として抽出することを特徴とする請求項１乃至３のいずれか１に記載の異常データ検出装置。
【請求項５】
前記ディレクトリ名判定手段は、前記ＣＧＩ名から最右のディレクトリ区切り文字より左をディレクトリ名として抽出し、前記抽出されたディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とが同一でない場合、ディレクトリ名について文字列毎に区間を設定し、前記抽出されたディレクトリ名から最右の文字列の区間から順に除いた文字列と同一のディレクトリ名を有するＣＧＩ名が統計情報に存在する場合に前方一致すると判定することを特徴とする請求項３に記載の異常データ検出装置。
【請求項６】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析ステップと、
特徴量の平均値と標準偏差を含む統計情報を生成し、前記データ解析ステップで算出された特徴量の平均値、標準偏差を含む統計情報を前記入力されたアクセスデータに含まれるＣＧＩ名毎に統計情報記憶手段に更新して記憶させる統計処理実行ステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が記憶されているか否かを判定するアクセス判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていると判定された場合、前記データ解析ステップで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、このディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して、前記入力されたアクセスデータが正常であるか否かを判定するディレクトリ名判定ステップと、
をコンピュータに実行させることを特徴とする異常データ検出プログラム。
【請求項７】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析ステップと、
前記特徴量の平均値と標準偏差とアクセス回数を含む統計情報を生成し、前記データ解析手段で算出された特徴量の平均値、標準偏差、アクセス回数を含む統計情報をＣＧＩ名毎に統計情報記憶手段に更新して記憶させる統計処理実行ステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が記憶されているか否かを判定するアクセス判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていると判定された場合、前記データ解析ステップで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、このディレクトリ名と同一のディレクトリ名を含むＣＧＩ名が前記統計情報記憶手段に記憶され、かつ、前記同一のディレクトリ名を含むＣＧＩ名に関連付けられるアクセス回数が所定の数以上である場合、前記入力されたアクセスデータが正常であると判定するディレクトリ名判定ステップと、
をコンピュータに実行させることを特徴とする異常データ検出プログラム。
【請求項８】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析ステップと、
前記特徴量の平均値と標準偏差とを含む統計情報を生成し、前記データ解析ステップで算出された特徴量の平均値、標準偏差を含む統計情報を前記入力されたアクセスデータに含まれるＣＧＩ名毎に統計情報記憶手段に更新して記憶させる統計処理実行ステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が存在するか否かを判定するアクセス判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていると判定された場合、データ解析ステップで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、この抽出されたディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して前方一致する場合、前記入力されたアクセスデータが正常であるか否かを判定するディレクトリ名判定ステップと、
をコンピュータに実行させることを特徴とする異常データ検出プログラム。
【請求項９】
前記ディレクトリ名判定ステップは、前記ＣＧＩ名から最右のディレクトリ区切り文字より左をディレクトリ名として抽出することを特徴とする請求項６乃至８のいずれか１に記載の異常データ検出プログラム。
【請求項１０】
前記ディレクトリ名判定ステップは、前記ＣＧＩ名から最右のディレクトリ区切り文字より左をディレクトリ名として抽出し、前記抽出されたディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とが同一でない場合、ディレクトリ名について文字列毎に区間を設定し、前記抽出されたディレクトリ名から最右の文字列の区間を順に除いた文字列と同一のディレクトリ名を有するＣＧＩ名が統計情報に存在する場合に前方一致すると判定することを特徴とする請求項８に記載の異常データ検出プログラム。
【請求項１１】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析ステップと、
特徴量の平均値と標準偏差を含む統計情報を生成し、前記データ解析ステップで算出された特徴量の平均値、標準偏差を含む統計情報を前記入力されたアクセスデータに含まれるＣＧＩ名毎に統計情報記憶手段に更新して記憶させる統計処理実行ステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が記憶されているか否かを判定するアクセス判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていると判定された場合、前記データ解析ステップで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が前記統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、このディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して、前記入力されたアクセスデータが正常であるか否かを判定するディレクトリ名判定ステップと、
を有することを特徴とする異常データ検出方法。
【請求項１２】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析ステップと、
前記特徴量の平均値と標準偏差とアクセス回数を含む統計情報を生成し、前記データ解析手段で算出された特徴量の平均値、標準偏差、アクセス回数を含む統計情報をＣＧＩ名毎に統計情報記憶手段に記憶された統計情報を更新する統計処理実行ステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が統計情報記憶手段に記憶されているか否かを判定するアクセス判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が統計情報記憶手段に記憶されていると判定された場合、前記データ解析ステップで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、このディレクトリ名と同一のディレクトリ名を含むＣＧＩ名が前記統計情報記憶手段に記憶され、かつ、前記同一のディレクトリ名を含むＣＧＩ名に関連付けられるアクセス回数が所定の数以上である場合、前記入力されたアクセスデータが正常であると判定するディレクトリ名判定ステップと、
を有することを特徴とする異常データ検出方法。
【請求項１３】
ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、前記入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析ステップと、
前記特徴量の平均値と標準偏差とを含む統計情報を生成し、前記データ解析ステップで算出された特徴量の平均値、標準偏差を含む統計情報を前記入力されたアクセスデータに含まれるＣＧＩ名毎に統計情報記憶手段に更新して記憶させる統計処理実行ステップと、
前記統計情報記憶手段を参照して前記入力されたアクセスデータに含まれるＣＧＩ名が存在するか否かを判定するアクセス判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が統計情報記憶手段に記憶されていると判定された場合、データ解析ステップで算出された特徴量と前記統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定ステップと、
前記アクセス判定ステップで前記ＣＧＩ名が統計情報記憶手段に記憶されていないと判定された場合、前記入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、この抽出されたディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して前方一致する場合、前記入力されたアクセスデータが正常であるか否かを判定するディレクトリ名判定ステップと、
を有することを特徴とする異常データ検出方法。
【請求項１４】
前記ディレクトリ名判定ステップは、前記ＣＧＩ名から最右のディレクトリ区切り文字より左をディレクトリ名として抽出することを特徴とする請求項１１乃至１３のいずれか１に記載の異常データ検出方法。
【請求項１５】
前記ディレクトリ名判定ステップは、前記ＣＧＩ名から最右のディレクトリ区切り文字より左をディレクトリ名として抽出し、前記抽出されたディレクトリ名と前記統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とが同一でない場合、ディレクトリ名について文字列毎に区間を設定し、前記抽出されたディレクトリ名から最右の文字列の区間を順に除いた文字列と同一のディレクトリ名を有するＣＧＩ名が統計情報に存在する場合に前方一致すると判定することを特徴とする請求項１３に記載の異常データ検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常データ検出装置、異常データ検出プログラム及び異常データ検出方法に関する。
【背景技術】
【０００２】
インターネット等の通信ネットワークにおける異常データの検出として、ファイアウォール等を介して所定のＩＰアドレス及びポート番号から受信したパケットについては通過させない方法が一般的である。しかし、このファイアウォールで防ぐことのできない攻撃は多様であるが、その中で、ウェブサーバ上のセキュリティーホール、即ちオペレーティングシステムやブラウザなどのソフトウェアのバグや脆弱性を狙った攻撃も多い。例えば、ＨＴＴＰリクエストに特定の文字列が含まれていると、そのＨＴＴＰリクエストが解読され実行されることにより、ウェブサーバ上で稼働しているＣＧＩ（Common gateway Interface）等のソフトウェアが、バッファオーバーフローなどにより予期せぬ動作を引き起こすといったことが挙げられる。この様なウェブサーバ上のソフトウェアの脆弱性を狙った攻撃に対応するために、クライアントからウェブサーバに送信されるＨＴＴＰリクエストをアプリケーション層で中継及び解析し、予め既知の攻撃の特徴を格納した攻撃パターンファイルと比較し、マッチした場合にセッション中継を遮断することにより、ウェブサーバを防御する方法がある（例えば、特許文献１）。
【０００３】
このような方法だけでは、攻撃パターンファイルに格納されていない未知の攻撃からはウェブサーバを防御することができないので、これを補うため、統計的な判定により異常データを検知する技術が開発された（例えば、非特許文献１）。これによると、ウェブサーバなどインターネットに接続された装置に送信されたアクセスデータについて、アクセスデータに含まれる値の範囲や文字種別などを分析し、その平均値や分散を求め、統計的に異常とされる閾値を計算する。更にその閾値に基づいて、あるアクセスデータが統計的に正常であるか異常であるかを判定することにより、そのアクセスデータが異常データに関わるものであるか否かを検出する。この技術は、予め与えられた既知の異常パターン或いは正常パターンからだけでは検出できない、未知の異常データを検出できることが期待されている。
【特許文献１】特開２００２−０６３０８４号公報
【非特許文献１】ＩＳＳＮ  ０９１９−６０７２  情報処理学会研究報告  情処研報  Ｖｏｌ．２００３，Ｎｏ．７４  ２００３年７月１７日〜１８日発行  発行人  社団法人  情報処理学会  ｐ．９１〜９６  「ＨＴＴＰリクエスト解析による未知攻撃防御システム」  今野  徹、楯岡  正道
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記した技術では、値の範囲や文字種別などは、統計処理を行う時点でアクセスされたことのあるＣＧＩの変数に関して計算された閾値にもとづき判定するのであって、未記憶すなわち初めて現れたＣＧＩの変数については統計的な判定をすることが出来ない。この様なアクセスについても適切に判定しないと、未知の不正アクセスに関する検出率や誤検出率を改善させることは出来ない。
【０００５】
従って本発明の目的は、予め統計情報が利用できないアクセスデータに対しても、正常なアクセスデータであるか否かを判定することができる異常データ検出装置、異常データ検出プログラム及び異常データ検出方法を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の特徴に係る異常データ検出装置によれば、ＣＧＩ名とＣＧＩ変数名とを含むアクセスデータが入力されると、入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数名毎に異常データの特徴を示す特徴量を算出するデータ解析手段と、データ解析手段で算出された特徴量の平均値、標準偏差を含む統計情報を入力されたアクセスデータに含まれるＣＧＩ名毎に蓄積して記憶する統計情報記憶手段と、特徴量の平均値と標準偏差を含む統計情報を生成し、統計情報記憶手段に記憶された統計情報を更新する統計処理実行手段と、統計情報記憶手段を参照して入力されたアクセスデータに含まれるＣＧＩ名が統計情報記憶手段に記憶されているか否かを判定するアクセス判定手段と、アクセス判定手段で前記ＣＧＩ名が統計情報記憶手段に記憶されていると判定された場合、データ解析手段で算出された特徴量と統計情報記憶手段に記憶される統計情報とを比較して、前記入力されたアクセスデータが正常であるか否かを判定する統計的異常判定手段と、アクセス判定手段でＣＧＩ名が統計情報記憶手段に記憶されていないと判定された場合、入力されたＣＧＩ名からＣＧＩが位置するディレクトリ名を抽出し、このディレクトリ名と統計情報記憶手段に記憶されるＣＧＩ名に含まれるディレクトリ名とを比較して、入力されたアクセスデータが正常であるか否かを判定するディレクトリ名判定手段を有することを特徴とする。
【０００７】
上記構成による本発明によれば、予め統計情報が利用できないアクセスデータに対しても、正常なアクセスデータであるか否かを判定することができる。
【発明の効果】
【０００８】
本発明によれば、予め統計情報が利用できないアクセスデータに対しても、正常なアクセスデータであるか否かを判定することができる異常データ検出装置、異常データ検出プログラム及び異常データ検出方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、本発明の実施の形態を説明する。
【００１０】
＜第１の実施の形態＞
図１を参照して、本発明の第１の実施の形態に係る異常データ検出装置を説明する。本発明の第１の実施の形態に係る異常データ検出装置は、接続されるネットワークを介して入力されるアクセスデータに関して、未知の異常データを検出する。
【００１１】
異常データ検出装置１は、図１に示すように、データ解析部１１、アクセス判定部１２、統計的異常判定部１３、ディレクトリ名判定部１４、統計処理実行部１５及び統計情報テーブル１６を有している。
【００１２】
具体的には、異常データ検出装置１は、インターネットやイントラネットなどの第１のネットワークセグメント２から入力した図示しない第１のネットワークセグメント２に接続されたクライアントコンピュータから出力された第２のネットワークセグメント３に接続された図示しないサーバ（Ｗｅｂサーバ）に対するアクセスデータが正常なアクセスデータである場合、入力したアクセスデータを第２のネットワークセグメント３に通過させる。
【００１３】
一方、異常データ検出装置１は、第１のネットワークセグメント２から入力したアクセスデータが異常なアクセスデータである場合、アクセスデータを第２のネットワークセグメント３に通過させることなく破棄するか、アクセスデータに異常なアクセスデータである可能性がある旨の付加情報を添付し、第２のネットワークセグメント３へ通過させる。
【００１４】
ここで、アクセスデータは、例えばＨＴＴＰリクエスト、ＳＭＴＰリクエストなどの通信プロトコルに基づく情報である。異常データ検出装置１は、例えば一般的なコンピュータに異常データ検出プログラムなどのソフトウェアプログラムがインストールされ、そのソフトウェアプログラムが中央処理制御装置において実行されることにより実現される。
【００１５】
図２に示すように、本発明の第１の実施の形態に係る異常データ検出装置１は、中央処理制御装置１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３及び入出力インタフェース１０９が、バス１１０を介して接続されている。入出力インタフェース１０９には、入力装置１０４、表示装置１０５、通信制御装置１０６、記憶装置１０７及びリムーバブルディスク１０８が接続されている。
【００１６】
中央処理制御装置１０１は、入力装置１０４からの入力信号に基づいてＲＯＭ１０２から異常データ検出装置１を起動するためのブートプログラムを読み出して実行し、更に記憶装置１０７に記憶されたオペレーティングシステムを読み出す。更に中央処理制御装置１０１は、入力装置１０４や通信制御装置１０６などの入力信号に基づいて、各種装置の制御を行い、ＲＡＭ１０３や記憶装置１０７などに記憶されたプログラム及びデータを読み出してＲＡＭ１０３にロードするとともに、ＲＡＭ１０３から読み出されたプログラムのコマンドに基づいて、データの計算又は加工など、後述する一連の処理を実現する処理装置である。
【００１７】
入力装置１０４は、操作者が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を作成し、入出力インタフェース１０９及びバス１１１を介して中央処理制御装置１０１に送信される。表示装置１０５は、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどであり、中央処理制御装置１０１からバス１１０及び入出力インタフェース１０９を介して表示装置１０５において表示させる出力信号を受信し、例えば中央処理制御装置１０１の処理結果などを表示する装置である。通信制御装置１０６は、ＬＡＮカードやモデムなどの装置であり、異常データ検出装置を１インターネットやＬＡＮなどの通信ネットワークに接続する装置である。通信制御装置１０６を介して通信ネットワークと送受信したデータは入力信号又は出力信号として、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００１８】
記憶装置１０７は磁気ディスク装置であって、中央処理制御装置１０１で実行されるプログラムやデータが記憶されている。リムーバブルディスク１０８は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００１９】
本発明の第１の実施の形態に係る異常データ検出装置１の記憶装置１０７には、異常データ検出プログラムが記憶されるとともに、統計情報テーブル１６が記憶される。また、異常データ検出プログラムが異常データ検出装置１の中央処理制御装置１０１に読み込まれ実行されることによって、データ解析部１１、アクセス判定部１２、統計的異常判定部１３、ディレクトリ名判定部１４及び統計処理実行部１５が異常データ検出装置１に実装される。
【００２０】
データ解析部１１は、接続される第１のネットワークセグメント２からアクセスデータが入力されると、入力されたアクセスデータに含まれるパラメータ値に基づいて、ＣＧＩ変数毎に異常データの特徴を示す特徴量を算出する。また、データ解析部１１は、算出した特徴量をアクセスデータとともにアクセス判定部１２に出力する。
【００２１】
図３は、第１のネットワークセグメントから異常データ検出装置１に入力されるアクセスデータの一例である。例えばデータ解析部１１は、図３に示すようなＨＴＴＰリクエストのアクセスデータを解析してパラメータ値の特徴量を算出する。図３に示すアクセスデータを入力して解析する場合、データ解析部１１は、ＣＧＩ変数名１である変数「Ｐ」のパラメータ値１として数値である「１２３」を切り出す。また、ＣＧＩ変数名２である変数「Ｑ」のパラメータ値２としてＡＳＣＩＩ文字である「ｕｓｅｒ」、ＣＧＩ変数名３である変数「Ｒ」のパラメータ値３として数値である「４５６」を切り出す。各ＣＧＩ変数名の値を切り出すと、データ解析部１１は、切り出した値に基づいて特徴量を算出する。特徴量については、図７及び図８を用いて後述する。
【００２２】
アクセス判定部１２は、統計情報テーブル１６を読み出して、入力されたアクセスデータに含まれるＣＧＩ名が統計情報テーブル１６に存在するか否かを判定する。
【００２３】
また、アクセス判定部１２で統計情報テーブル１６を参照した結果、該当するＣＧＩ名が統計情報テーブル１６に存在すると判定された場合、アクセス判定部１２は、アクセスデータと特徴量を統計的異常判定部１３に対して出力する。一方、アクセス判定部１２で統計情報テーブル１６を参照した結果、該当するＣＧＩ名が統計情報テーブル１６に存在しないと判定された場合、アクセス判定部１２は、アクセスデータをディレクトリ名判定部１４に対して出力する。
【００２４】
統計的異常判定部１３は、アクセス判定部１２からアクセスデータと特徴量を入力すると、入力した特徴量と統計情報テーブル１６に記憶される統計情報とを比較することにより、入力されたアクセスデータが正常であるか否かを判定する。また、統計的異常判定部１３は、判定結果に基づいて、アクセスデータを第２のネットワークセグメント３に送信する。さらに、統計的異常判定部１３は、判定結果に基づいて、特徴量を統計処理実行部１５に出力する。
【００２５】
具体的には、アクセスデータの特徴量に基づいた統計分布が算出された統計的に異常とみなしうる閾値を利用してアクセスデータが正常であるか否かを判定する。たとえば、パラメータ値について求められた特徴量が式１のｆ（ｘ）の範囲内の場合、このパラメータ値を正常であると判定し、範囲外のときにパラメータ値を異常であると判定する。
【００２６】
μmn−Ａmn×σmn≦ｆ（ｘ）mn≦μmn＋Ａmn×σmn  ・・・（式１）
式１における平均値μと標準偏差σは、アクセスデータの特徴量の統計を取ることにより、図４に示すように決定される。この閾値係数Ａは、本発明の第１の実施の形態に係る異常データ検出装置１では、「数値」、「メタキャラクタ」及び「バイナリコード」に対して、それぞれのパラメータ値に応じて定められる値である。具体的には、２〜１１程度の値とするのが実用上好ましいが、これに限られず、最良の値が設定される。
【００２７】
アクセスデータに含まれる全てのパラメータ値について正常と判定されると、統計的異常判定部１３は、アクセスデータを正常なアクセスデータであると判定する。また、異常であると判定されたパラメータ値が含まれていた場合、アクセスデータは異常なアクセスデータであると判定する。
【００２８】
ディレクトリ名判定部１４は、アクセス判定部１２からアクセスデータを入力すると、入力したアクセスデータのＣＧＩ名からディレクトリ名と実ＣＧＩ名とを抽出し、抽出した実ＣＧＩ名に基づいて入力されたアクセスデータが正常であるか否かを判定する。また、ディレクトリ名判定部１４は、判定結果に基づいて、アクセスデータを第２のネットワークセグメント３に送信する。さらに、ディレクトリ名判定部１４は、アクセスデータに含まれるＣＧＩ名を統計情報テーブル１６に蓄積して記憶させてもよい。
【００２９】
なお、ここでいう実ＣＧＩ名とは、ＣＧＩがファイルとして実装されるように通常のファイル名を示す文字列であって、ＣＧＩ名における最右のディレクトリ区切り文字（一般的に「／」、「＼」や「￥」等の文字）より右側の文字列をいう。すなわち、最右のディレクトリ区切り文字とは、すなわちＣＧＩ名における最も後の区切り文字であり、最右の区切り文字よりも右側の文字列とは、最右の区切り文字よりも後側の文字列である。
【００３０】
また、ここでいうディレクトリ名とは、ＣＧＩのファイルを格納する場所を表すディレクトリ名を示す文字列であって、ＣＧＩ名における最右のディレクトリ区切り文字より左側の文字列をいう。すなわち、最後のディレクトリ区切り文字より前の文字列がディレクトリ名である。
【００３１】
具体的には、統計情報テーブル１６を参照し、同一のディレクトリ名が存在する場合、ディレクトリ名判定部１４は、入力されたアクセスデータは正常であると判定する。これは、学習期間の制約上、あらかじめ記憶出来ないＣＧＩであっても、同一ディレクトリに他のＣＧＩが存在することを根拠にして、誤検知を排除するものである。
【００３２】
一方、統計情報テーブル１６を参照し、同一のディレクトリ名が存在しない場合、入力されたアクセスデータは異常であると判定する。これは、現実的に正当なアクセスであるディレクトリには複数の正当なＣＧＩが含まれているという傾向と、攻撃のアクセスで使用されるディレクトリ名は正当なものとは大きく異なっているという傾向とを利用したものである。
【００３３】
図５は、アクセスデータからディレクトリ名と実ＣＧＩ名とを抽出する一例を説明する図である。図５に示すアクセスデータが入力されると、ディレクトリ名判定部１４は、最右のディレクトリ区切り文字よりも右側の文字列である「cgi-bin/users/bob」をディレクトリ名としてＣＧＩ名から抽出し、また、最右のディレクトリ区切り文字よりも左側の文字列である「search.cgi」を実ＣＧＩ名として抽出する。
【００３４】
こうして得られたディレクトリ名について、ディレクトリ名判定部１４は、統計情報テーブル１６に記憶される各ＣＧＩ名を参照し、同一のディレクトリ名が存在するか否かを検索する。
【００３５】
なお、正常と判定されたディレクトリ名を含むＣＧＩ名を統計情報テーブル１６に記憶させた場合、その後、さらに同じＣＧＩ名を含むアクセスデータが入力され、統計情報テーブル１６に蓄積して記憶して十分なアクセス回数のデータが得られた後は、このＣＧＩ名を含むアクセスデータが入力された場合、統計的異常判定をすることが出来るようになる。
【００３６】
統計情報テーブル１６は、特徴量の平均値、標準偏差及びアクセス回数を含む統計情報を記憶している。例えば図６に示すように、各ＣＧＩ名とＣＧＩ変数名の組み合わせについて統計情報を記憶する。図６（ａ）に示す例では、統計情報テーブル１６は、ＣＧＩ名とＣＧＩ変数名の組み合わせについて統計情報に対応するポインタ変数が記述されている。
【００３７】
たとえば、ＣＧＩ名ｂ及びＣＧＩ変数名２と関連付けられる統計情報２ｂとして記憶されるポインタ変数は、図６（ｂ）に示す統計情報２ｂと関連付けられている。図６（ｂ）に示す統計情報２ｂは、「数値」、「メタキャラクタ」及び「バイナリコード」に対して、特徴量に基づいて求められた「平均値」及び「標準偏差」を記憶している。また、統計情報２ｂは、このＣＧＩ名とＣＧＩ変数名の組み合わせに対する「アクセス回数」を記憶している。
【００３８】
統計処理実行部１５は、データ解析部１１において算出された特徴量のうちアクセスデータとして正常と判定されたアクセスデータについて、平均値と標準偏差とアクセス回数とを含む統計情報を生成する。そして、生成された統計情報を統計情報テーブル１６に記憶させる。
【００３９】
特徴量の計算にあっては、Ｗｅｂサーバに対するアクセスデータとして入力されたパケットデータに含まれているＣＧＩ変数名の値（パラメータ）から求められた特徴量をＣＧＩ変数名に対する特徴量として扱う。
【００４０】
例えばアクセスデータとして図７に示す第１〜第４のパケットデータが入力された場合は、ＣＧＩ変数の「数値」、「メタキャラクタ」及び「バイナリコード」について求められた特徴量は、図８に示すような数値データとして表現される。「メタキャラクタ」とは、ＨＴＴＰ等の通信プロトコルにおいて特殊な意味を持つ文字のことである。
【００４１】
図７（ａ）は、第１のパケットデータであり、ＣＧＩ変数名２の「Ｑ」の値は数値「１２３４５」である。また、図７（ｂ）は、第２のパケットデータであり、ＣＧＩ変数名２の「Ｑ」の値はＡＳＣＩＩ文字「ａｂｃｄｅ」である。さらに、図７（ｃ）は、第３のパケットデータであり、ＣＧＩ変数名２の「Ｑ」の値はメタキャラクタ「”‘；」である。さらに、図７（ｄ）は、第４のパケットデータであり、ＣＧＩ変数名２の「Ｑ」値はバイナリコード「△△△△」である。なお、この「△」はバイナリコードを仮想的に図示している。また、ここで「cgi-bin/users/bob/search.cgi」は「ＣＧＩ名ｂ」である。
【００４２】
このように、第１〜第４のパケットデータに含まれるＣＧＩ変数名２である「Ｑ」の値について、パラメータ値における「数値」、「メタキャラクタ」及び「バイナリコード」の総数を特徴量として扱う。
【００４３】
図８は、図７で示したアクセスデータを例にして生成された特徴量データの一例である。第１のパケットデータの「Ｑ」のパラメータ値に「数値」が含まれる数は「５」であり、「メタキャラクタ」及び「バイナリコード」は含まれていない。そのため、第１のパケットデータの特徴量は、それぞれ「５、０、０」となる。また、第２のパケットデータの「Ｑ」のパラメータ値には「数値」、「メタキャラクタ」及び「バイナリコード」のいずれも含まれていないため、第２のパケットデータの特徴量は、それぞれ「０、０、０」となる。同様に第３のパケットデータでは「メタキャラクタ」が３つ含まれているから特徴量は「０、３、０」となり、第４のパケットデータでは「バイナリコード」が４つ含まれているから特徴量は「０、０、４」となる。
【００４４】
なお、図６（ｂ）に示した統計情報２ｂは、この図８に示した特徴量に基づいて生成されたものであって、統計処理実行部１５により計算される。例えば、「数値」の「平均値」は、第１〜第４のパケットデータの「数値」の特徴量の合計である「５」をアクセス回数「４」で割ることにより求めている。また、「メタキャラクタ」と「バイナリコード」に対する「平均値」も第１から第４のパケットデータの「メタキャラクタ」と「バイナリコード」の特徴量の合計をアクセス回数「４」で割ることにより求めている。また、「標準偏差」は、第１から第４のパケットデータの特徴量及び平均値を利用して求める。
【００４５】
（異常データ検出処理）
次に、図９に示すフローチャートを参照して、本発明の第１の実施の形態に係る異常データ検出装置１における異常データ検出処理を説明する。
【００４６】
異常データ検出装置１のデータ解析部１１に、異常データ検出装置１と接続される第１のネットワークセグメント２を介してアクセスデータが入力されると（Ｓ００１でＹＥＳ）、データ解析部１１は、アクセスデータを解析して特徴量を算出し、入力したアクセスデータと共に出力する（Ｓ００２）。
【００４７】
アクセスデータは図３に示したようなＨＴＴＰリクエストのアクセスデータである。特徴量の算出は、図８に示したようにデータの「数値」、「メタキャラクタ」及び「バイナリコード」の各文字種類についての数を求めることにより、算出される。
【００４８】
アクセス判定部１２は、アクセスデータと特徴量を入力すると、入力されたアクセスデータのＣＧＩ名が統計情報テーブル１６に存在するか否かを判定する（Ｓ００３）。
【００４９】
ステップＳ００３の判定でアクセスデータのＣＧＩ名が統計情報テーブルに存在する場合（Ｓ００３でＹＥＳ）、アクセス判定部１２は、入力されたアクセスデータに含まれるＣＧＩ変数について正常／異常の判定処理を実行し、アクセスデータ及び特徴量とともに統計的異常判定部１３に出力する（Ｓ００４）。正常／異常の判定処理としては具体的に、ステップＳ００２で算出された特徴量が規定の範囲内である場合、ＣＧＩ変数に対する値を正常と判定する。また、特徴量が規定の範囲外である場合、ＣＧＩ変数に対する値を異常と判定する。
【００５０】
統計的異常判定部１３は、アクセス判定部からアクセスデータ及び特徴量を入力すると、アクセスデータに含まれている全てのＣＧＩ変数のパラメータ値が正常であるか否かを判定する。例えば、図３に示したアクセスデータの場合、ＣＧＩ名変数１〜３のパラメータ値の全てが「正常」であるか否かを判定する（Ｓ００５）。
【００５１】
アクセスデータに含まれていた全てのＣＧＩ変数が「正常」である場合（Ｓ００５でＹＥＳ）、統計的異常判定部１３は、アクセスデータを「正常」であると判定する（Ｓ００６）。一方、アクセスデータに「異常」と判定されたＣＧＩ変数が一つでも含まれていた場合（Ｓ００５でＮＯ）、統計的異常判定部１３は、アクセスデータを「異常」と判定する（Ｓ００７）。
【００５２】
ステップＳ００７において、入力されたアクセスデータを「正常」であると判定すると、統計的異常判定部１３は、算出された特徴量を統計処理実行部１５に出力する（Ｓ００８）。
【００５３】
統計処理実行部１５は、得られた特徴量から統計情報を再計算するとともに、算出した統計情報について統計情報テーブル１６を更新して記憶させる（Ｓ００９）。
【００５４】
その後、統計的異常判定部１３は、判定結果に基づいてアクセスデータを第２のネットワークセグメント３に送出する（Ｓ０１０）。
【００５５】
ステップＳ００３において、アクセスデータのＣＧＩ名が統計情報テーブル１６に存在しないと判定された場合（Ｓ００３でＮＯ）、アクセス判定部１２は、算出された特徴量及びアクセスデータをディレクトリ名判定部１４に出力し、ディレクトリ名判定部１４は、ディレクトリ名判定処理を実行する（Ｓ０１１）。このステップＳ０１１におけるディレクトリ名判定処理については、後に詳述する。
【００５６】
（ディレクトリ名判定処理）
続いて、図１０に示すフローチャートを用いて、ステップＳ０１１のディレクトリ名判定処理について説明する。
【００５７】
ディレクトリ名判定部１４は、アクセスデータからディレクトリ名を抽出する（Ｓ２０１）。ディレクトリ名の抽出は、図５を用いて上述したように、最右のディレクトリ区切り文字を利用して行う。続いて、ディレクトリ名判定部１４は、当該ディレクトリ名と同一のディレクトリ名を持つＣＧＩ名が統計情報テーブル１６に存在するか否かを判定する（Ｓ２０２）。
【００５８】
ステップＳ２０２において、当該ディレクトリ名が統計情報テーブル１６に存在することが判定された場合（Ｓ２０２でＹＥＳ）、ディレクトリ名判定部１４は、入力されたアクセスデータを「正常」であると判定し（Ｓ２０３）、アクセスデータのＣＧＩ名を統計情報テーブル１６を更新して記憶させる（Ｓ２０４）。
【００５９】
一方、ステップＳ２０２において、当該ディレクトリ名が統計情報テーブル１６に存在しないことが判定された場合（Ｓ２０２でＮＯ）、ディレクトリ名判定部１４は、入力されたアクセスデータを「異常」と判定する（Ｓ２０５）。
【００６０】
その後、ディレクトリ名判定部１４は、判定結果に基づいて、第１のネットワークセグメント２から入力したアクセスデータを第２のネットワークセグメント３に送出する（Ｓ２０６）。具体的には上述したように、アクセスデータが正常なアクセスデータである場合、入力したアクセスデータを第２のネットワークセグメント３に通過させる。一方、アクセスデータが異常なアクセスデータである場合、アクセスデータを第２のネットワークセグメント３に通過させることなく破棄するか、アクセスデータに異常なアクセスデータである可能性がある旨の付加情報を添付し、第２のネットワークセグメント３へ通過させる。
【００６１】
上述したように、本発明の第１の実施の形態によれば、本来正常なアクセスを誤って攻撃と判定される誤検知が削減される。また、統計的な判定が出来ない場合でも、あらかじめ記憶していないＣＧＩ名であっても、同一ディレクトリに他のＣＧＩ名が存在するかどうかを根拠にし、未知の攻撃の検知率を維持することが出来る。
【００６２】
＜第２の実施の形態＞
図１１を参照して、本発明の第２の実施の形態に係る異常データ検出装置１ａを説明する。
【００６３】
本発明の第２の実施の形態に係る異常データ検出装置１ａは、第１の実施の形態に係る異常データ検出装置１と比較して、ディレクトリ名判定部１４ａに、アクセス数参照手段１４１を有する点で異なる。他の構成については、上述した実施の形態１に係る異常データ検出装置１と同一であるため、説明を省略する。
【００６４】
アクセス数参照手段１４１は、アクセスデータが正常か異常を判定するため、統計情報テーブル１６を参照し、同一のディレクトリ名をもつＣＧＩ名を検索する際、検索されたＣＧＩ名のアクセス回数を参照する。
【００６５】
参照したアクセス数が予め定められる所定数以上のアクセス数である場合、ディレクトリ名判定部１４ａは、入力されたアクセスデータを「正常」と判定し、アクセス数が所定数以上のアクセス数でない場合、入力されたアクセスデータを「異常」と判定する。また、ディレクトリ名判定部１４ｂは、判定結果に基づいて、アクセスデータを第２のネットワークセグメント３に送出する。
【００６６】
ここで、ＣＧＩ名ごとのアクセス数を保持するために、本発明の第２の実施の形態に係る異常データ検出装置１ａの統計情報テーブル１６ａは、図１２に示す様に、アクセス回数を記憶している。
【００６７】
図１２（ａ）の統計情報テーブル１６ａにおいては、各ＣＧＩ名毎にアクセス回数を記憶するようになっている。このアクセス回数は、当該ＣＧＩ名における各々のＣＧＩ変数のアクセス回数（すなわち図１２（ｂ）におけるアクセス回数）の合計として計算される。
【００６８】
図１３を用いて、異常データ検出装置１ａに入力されたアクセスデータについて、ディレクトリ名判定部１４ａにおけるディレクトリ名の抽出処理を説明する。図１３（ａ）は、異常データ検出装置１ａに入力されるアクセスデータでの一例であり、図１３（ｂ）は、過去に正常と判定されたアクセスデータの一例である。
【００６９】
図１４に示すフローチャートを用いて、本発明の第２の実施の形態に係る異常データ検出装置１ａにおけるディレクトリ名判定部１４ａの処理を説明する。なお、異常データ検出装置１ａにおける他の処理は、上述した異常データ検出装置１の処理と同一であるため、説明を省略する。
【００７０】
ディレクトリ名判定部１４ａは、アクセスデータからディレクトリ名を抽出する（Ｓ３０１）。その後、ディレクトリ名判定部１４ａは、抽出されたディレクトリ名と同一のディレクトリ名を含むＣＧＩ名を統計情報テーブル１６ａで記憶される全てのＣＧＩ名について検索する（Ｓ３０２，Ｓ３０３）。
【００７１】
ＣＧＩ名が統計情報テーブル１６ａから検索された場合（Ｓ３０３でＮＯ）、アクセス数参照手段１４１は、統計情報テーブル１６ａから対象としているＣＧＩ名のアクセス回数を参照し、そのアクセス数が所定数より多いか否かを判定する（Ｓ３０４）。
【００７２】
ステップＳ３０４における判定の結果、所定数以上である場合（Ｓ３０４でＹＥＳ）、ディレクトリ名判定部１４ａは、入力されたアクセスデータを「正常」と判定し（Ｓ３０５）、アクセスデータのＣＧＩ名を統計情報テーブル１６ａに追加して記憶する（Ｓ３０６）。
【００７３】
ここで、その一例として、図１２及び図１３を用いて具体的に説明する。なお、図１３（ｂ）に示すＣＧＩ名ｄが統計情報テーブル１６ａに含まれて記憶され、そのアクセス回数が「２５００」であるとする。
【００７４】
例えば、ディレクトリ名判定部１４ａが、図１３（ａ）に示すアクセスデータを入力した場合、そのアクセスデータからディレクトリ名として「/cgi-bin/users/bob」を抽出する。また、同一のディレクトリ名である「/cgi-bin/users/bob」を含むＣＧＩ名として、統計情報テーブル１６ａからＣＧＩ名ｄが検索されたとする。ここで、所定数として「２００」が定められていた場合、ＣＧＩ名ｄのアクセス数は「２５００」であるため、ディレクトリ名判定部１４ａは入力されたアクセスデータを「正常」と判定する。
【００７５】
一方、ステップＳ３０４における判定の結果、所定数以上でない場合（Ｓ３０４でＮＯ）、ステップＳ３０２に戻り、ディレクトリ名判定部１４ａは、他の同一のディレクトリ名を含むＣＧＩ名を統計情報テーブル１６ａから検索する（Ｓ３０４）。ステップＳ３０２で統計情報テーブル１６ａにアクセスデータに含まれるディレクトリ名を含むＣＧＩ名が存在しないことが判定された場合（Ｓ３０３でＹＥＳ）、ディレクトリ名判定部１４ａは、入力されたアクセスデータを「異常」と判定する（Ｓ３０７）。
【００７６】
その後、ディレクトリ名判定部１４ａは、判定結果に基づいて、第１のネットワークセグメント２から受信したアクセスデータを第２のネットワークセグメントに送信する（Ｓ３０８）。
【００７７】
上述したように、本発明の第２の実施の形態の係る異常データ検出装置１ａでは、ディレクトリ名判定部１４ａにアクセス数参照手段１４１を備えることにより、同一ディレクトリ名を含む他のＣＧＩ名についてそのアクセス数が一定数に満たないものを排除する。これにより、正当性のより高いＣＧＩのみを根拠として誤検出を排除することができる。
【００７８】
＜第３の実施の形態＞
図１５を参照して、本発明の第３の実施の形態に係る異常データ検出装置１ｂを説明する。
【００７９】
本発明の第３の実施の形態に係る異常データ検出装置１ｂは、第１の実施の形態に係る異常データ検出装置１と比較して、ディレクトリ名判定部１４ｂに前方一致判定手段１４２を有している点で異なる。他の構成については、上述した実施の形態１に係る異常データ検出装置１と同一であるため、説明を省略する。
【００８０】
前方一致判定手段１４２は、統計情報テーブル１６に記憶されるＣＧＩ名に含まれるディレクトリ名について文字列ごとに区間を設定し、入力されたアクセスデータに含まれるディレクトリ名と前方一致するか否かを判定する。具体的には、アクセスデータに含まれるＣＧＩ名から最右の文字列の区間から順に除いた文字列と同一のディレクトリ名を有するＣＧＩ名が統計情報テーブル１６に存在するか否かを判定する。
【００８１】
前方一致判定手段１４２で前方一致すると判定された場合、ディレクトリ名判定部１４ｂは入力されたアクセスデータをアクセスデータについては「正常」と判定し、前方一致しないと判定された場合、「異常」と判定する。また、ディレクトリ名判定部１４は、第２のネットワークセグメント３にアクセスデータを送出する。
【００８２】
図１６を用いて、異常データ検出装置１ｂに入力されたアクセスデータについて、前方一致判定手段１４２における前方一致の判定処理について説明する。この前方一致の判定処理の結果はディレクトリ名判定部１４ｂにおける、ディレクトリ名判定処理において利用される。ここで、ディレクトリ名が他のディレクトリ名と前方一致するとは、ディレクトリ区切り文字で区切られる区間について、ディレクトリ名の最左からみて連続的に、文字列として少なくとも一つ以上、一致する区間が存在することをいう。
【００８３】
具体的には、本発明の第３の実施の形態にかかる異常データ検出装置１ｂにおいては、前方一致する区間数のレベルを、対象とするＣＧＩ名のディレクトリ名がどの程度アクセスデータから抽出されたディレクトリ名を含んでいるかという観点で定義し、基点から左方向を正のレベル（もとのディレクトリ名が深い）とし、基点から右方向を負のレベル（もとのディレクトリ名が浅い）とする。
【００８４】
図１６（ａ）は、入力された正常であるか否かを判定するアクセスデータの一例であり、図１６（ｂ）〜図１６（ｅ）は、統計情報テーブル１６ｂに記憶されるＣＧＩ名が含まれる過去に受信したアクセスデータの一例である。
【００８５】
図１６（ａ）に示す入力されたアクセスデータからは、まず、ＣＧＩ名における最右のディレクトリ区切り文字が抽出され、それより右を「ディレクトリ名」として抽出し、それより左を「実ＣＧＩ名」として抽出する。また、この最右のディレクトリ名区切り文字を前方一致の基点とし、それより左を正のレベルとし、それより右を負のレベルとする。
【００８６】
図１６（ｂ）に示すＣＧＩ名は、判定の対象となるアクセスデータに含まれるディレクトリ名に「/cgi-bin/users/bob」に対して、ディレクトリ名「/cgi-bin/users」が前方一致する。ここで、入力されたアクセスデータに含まれるディレクトリ名のうち、正のレベルに１区間のみ異なるため、そのレベルは＋１であると定義する。
【００８７】
図１６（ｃ）に示すＣＧＩ名は、判定の対象となるアクセスデータに含まれるディレクトリ名に対して、ディレクトリ名「/cgi-bin」が前方一致する。ここで、入力されたアクセスデータに含まれるディレクトリ名のうち、正のレベルに２区間のみ異なるため、そのレベルは＋２であると定義する。
【００８８】
図１６（ｄ）に示すＣＧＩ名は、判定の対象となるアクセスデータに含まれるディレクトリ名に対して、一致するディレクトリ名が全く含まれておらず、ディレクトリ名が前方一致せず、また、レベルも定義されない。なお、実ＣＧＩ名はたまたま一致している例を示しているが、実ＣＧＩ名は前方一致に関係はない。
【００８９】
図１６（ｄ）に示すＣＧＩ名は、判定の対象となるアクセスデデータに含まれるディレクトリ名に対して、ディレクトリ名「/cgi-bin/users/bob」に加えて「/local」が逆に含まれており、更に負のレベルに前方一致している。なお、図１６（ｄ）に示す例では、レベルは−１であると定義する。
【００９０】
前方一致判定手段１４２は、このように前方一致を判定しており、この前方一致を利用して、前方一致のレベルが一定値以上である場合、入力されたアクセスデータが正常であると判定する。例えば、前方一致のレベルが＋１以上である場合を正常と判定することが好ましい。
【００９１】
これは、実際のＷｅｂサーバを鑑みたとき、ディレクトリ構成は既存の状態から時系列的に順に深く掘り下げられていくことが多く、あるアクセスデータのＣＧＩ名が既存のＣＧＩ名に対してより大きいレベル（正のレベル）で前方一致するということは、そのＣＧＩ名は既存のディレクトリ構成において深く掘り下げられたものであるということができ、それゆえ、正当なディレクトリ名であるという根拠になりうるためである。
【００９２】
図１６に示す例において、前方一致判定手段１４２がアクセスデータが正常であるか否かを判定する際、前方一致のレベル＋１以上であることをもって正常と判定している場合を考えると、統計情報テーブルにおいて図１６（ｂ）または図１６（ｃ）のようにレベル＋１以上で前方一致するＣＧＩ名が存在するときはアクセスデータは正常と判定される一方で、統計情報テーブルにおいて図１６（ｂ）または図１６（ｃ）のようなＣＧＩ名が存在せず図１６（ｄ）または図１６（ｅ）のように前方一致しないか若しくは負のレベルで前方一致するようなＣＧＩ名しか存在しないときはアクセスデータは異常と判定される。
【００９３】
上述したように、第３の実施の形態に係る異常データ検出装置１ｂでは、前方一致を判定することによって、完全一致するディレクトリ名を記憶していない場合であっても、誤検出を削減することができるという効果がある。
【００９４】
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなる。
【００９５】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明に記載した事項と自明な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００９６】
【図１】本発明の第１の実施の形態に係る異常データ検出装置のブロック図である。
【図２】本発明の第１の実施の形態に係る異常データ検出装置のハードウェア構成図である。
【図３】本発明の第１の実施の形態に係る異常データ検出装置に入力されるアクセスデータを説明する図である。
【図４】本発明の第１の実施の形態に係る異常データ検出装置で異常の判定に用いられる特徴量の一例である。
【図５】本発明の第１の実施の形態に係る異常データ検出装置のディレクトリ名判定部において、ＣＧＩ名からディレクトリ名と実ＣＧＩ名を抽出する方法を説明する図である。
【図６】本発明の第１の実施の形態に係る異常データ検出装置で記憶される統計情報テーブルの一例である。
【図７】本発明の第１の実施の形態に係る異常データ検出装置に入力されるアクセスデータを説明する図である。
【図８】本発明の第１の実施の形態に係る異常データ検出装置で求められる特徴量データの一例である。
【図９】本発明の第１の実施の形態に係る異常データ検出装置の処理を説明するフローチャートである。
【００９７】
【図１０】本発明の第１の実施の形態に係る異常データ検出装置のディレクトリ名判定部におけるディレクトリ名判定処理を説明するフローチャートである。
【図１１】本発明の第２の実施の形態に係る異常データ検出装置のブロック図である。
【図１２】本発明の第２の実施の形態に係る異常データ検出装置で記憶される統計情報テーブルの一例である。
【図１３】本発明の第２の実施の形態に係る異常データ検出装置に入力されるアクセスデータの一例を説明する図である。
【図１４】本発明の第２の実施の形態に係る異常データ検出装置のディレクトリ名判定部におけるディレクトリ名判定処理を説明するフローチャートである。
【図１５】本発明の第３の実施の形態に係る異常データ検出装置のブロック図である。
【図１６】本発明の第３の実施の形態に係る異常データ検出装置に入力されるアクセスデータの一例を説明する図である。
【符号の説明】
【００９８】
１，１ａ，１ｂ…異常データ検出装置
２…第１のネットワークセグメント
３…第２のネットワークセグメント
１１…データ解析部
１２…アクセス判定部
１３…統計的異常判定部
１４…ディレクトリ名判定部
１４ａ…アクセス数参照手段
１４ａ…ディレクトリ名判定部
１４ｂ…ディレクトリ名判定部
１５…統計処理実行部
１６，１６ａ…統計情報テーブル
１０１…中央処理制御装置
１０２…ＲＯＭ
１０３…ＲＡＭ
１０４…入力装置
１０５…表示装置
１０６…通信制御装置
１０７…記憶装置
１０８…リムーバブルディスク
１０９…入出力インタフェース
１１０…バス
１４１…アクセス数参照手段
１４１…ディレクトリ名判定手段
１４２…前方一致判定手段
【図１】
2006277414.tif 000003
【図２】
2006277414.tif 000004
【図３】
2006277414.tif 000005
【図４】
2006277414.tif 000006
【図５】
2006277414.tif 000007
【図６】
2006277414.tif 000008
【図７】
2006277414.tif 000009
【図８】
2006277414.tif 000010
【図９】
2006277414.tif 000011
【図１０】
2006277414.tif 000012
【図１１】
2006277414.tif 000013
【図１２】
2006277414.tif 000014
【図１３】
2006277414.tif 000015
【図１４】
2006277414.tif 000016
【図１５】
2006277414.tif 000017
【図１６】
2006277414.tif 000018