JP3790750B2 - 不正アクセス検出装置、不正アクセス検出方法およびプログラム - Google Patents

不正アクセス検出装置、不正アクセス検出方法およびプログラム Download PDF

Info

Publication number
JP3790750B2
JP3790750B2 JP2003176939A JP2003176939A JP3790750B2 JP 3790750 B2 JP3790750 B2 JP 3790750B2 JP 2003176939 A JP2003176939 A JP 2003176939A JP 2003176939 A JP2003176939 A JP 2003176939A JP 3790750 B2 JP3790750 B2 JP 3790750B2
Authority
JP
Japan
Prior art keywords
character string
statistical distribution
access
access data
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003176939A
Other languages
English (en)
Other versions
JP2005011234A (ja
Inventor
徹 今野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003176939A priority Critical patent/JP3790750B2/ja
Publication of JP2005011234A publication Critical patent/JP2005011234A/ja
Application granted granted Critical
Publication of JP3790750B2 publication Critical patent/JP3790750B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、インターネットに於いて、ファイアウォールでは防ぐことができない攻撃からWebサーバ等を防御するための不正アクセス検出装置、不正アクセス検出方法、および不正アクセス検出装置としてコンピュータを機能させるためのプログラムに関する。
【0002】
【従来の技術】
インターネットに於いて、ファイアウォールで防ぐことができない攻撃は多様であるが、その中で、Webサーバ上のセキュリティホール、すなわちソフトウェアのバグや脆弱性を狙った攻撃は、特にその数が多い。HTTPリクエストに特定の文字列が含まれているだけで、それを解釈実行したWebサーバ上のCGI(Common Gateway Interface)等のソフトウェアが、バッファオーバーフローや、予期せぬ動作を引き起こすといった不具合である。こうしたWebサーバ上のソフトウェアの脆弱性を狙った攻撃に対応するために、多くの侵入検知システムは、クライアントからWebサーバに送信されるHTTPリクエストをアプリケーション層で中継・解析し、あらかじめ既知の攻撃の特徴を格納したシグネチャ(攻撃パターンファイル)と比較し、マッチした場合にセッション中継を遮断することにより、Webサーバを防御している(例えば、特許文献1参照)。
【0003】
しかしながら、上記した従来技術においては、シグネチャに格納されていない未知の攻撃からはWebサーバを防御することができないという問題があった。
【0004】
【特許文献1】
特開2002−063084号公報
【0005】
【発明が解決しようとする課題】
上述したように、従来では、シグネチャに格納されていない未知の攻撃からWebサーバを防御する有効なシステムが存在しないという問題があった。
【0006】
本発明は、シグネチャでは対応できない未知の攻撃からWebサーバを防御する機能を有する不正アクセス検出装置、不正アクセス検出方法およびプログラムを提供することを目的とする。
【0007】
また、本発明は、未知の攻撃に対して、高い検出率と、低い誤検出率が実現した不正アクセス検出装置、不正アクセス検出方法およびプログラムを提供することを目的とする。
【0008】
更に、本発明は、管理者の負担が極力少ないユーザインタフェースを提供することで、未知の攻撃に対する検出精度の向上を図った不正アクセス検出装置、不正アクセス検出方法およびプログラムを提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明は、Webサーバに対するアクセスデータの内容について、URL文字列の解析結果に関する統計と、パラメータ文字列の解析結果に関する統計とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出するもので、未知の不正アクセスを検出する際、URL文字列からパス名を抽出し、抽出されたパス名のアクセス頻度を評価し、アクセス頻度が稀である場合には、URL文字列についての統計的評価値を参照し、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計的評価値を参照することにより、統計的に異常な内容のアクセスデータを不正アクセスに関わるものとして検出することを特徴とする。
【0010】
即ち、本発明は、シグネチャによる既知の攻撃防御機能では対応できない未知の攻撃からWebサーバを防御する不正アクセス検出装置であって、ネットワークを介してアクセスデータを受信するネットワークインタフェースと、前記ネットワーク上で扱うアクセスデータについて、URL文字列を解析した結果の統計分布を保持するURL文字列統計分布保持手段と、前記ネットワーク上で扱うアクセスデータについて、URL文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を保持するパラメータ文字列統計分布保持手段と、前記ネットワークインタフェースで受信したアクセスデータを解析するアクセスデータ解析手段と、前記ネットワークインタフェースで受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価手段と、前記アクセス頻度評価手段が評価した前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択手段と、前記アクセスデータ解析手段で解析したアクセスデータの解析結果と、前記統計分布選択手段が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定手段とを具備したことを特徴とする。
【0011】
また、本発明は、Webサーバに対するアクセスデータの内容について、URL文字列の解析結果に関する統計分布と、パラメータ文字列の解析結果に関する統計分布とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出する不正アクセス検出方法であって、受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するステップと、前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択するステップと、前記受信したアクセスデータの解析結果と、前記選択された統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定するステップとを具備したことを特徴とする。
【0012】
また、本発明は、不正アクセス検出装置としてコンピュータを機能させるためのプログラムであって、ネットワーク上で扱うアクセスデータについて、URL文字列を解析した結果の統計分布を蓄積するURL文字列統計分布蓄積機能と、前記ネットワーク上で扱うアクセスデータについて、URL文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を蓄積するパラメータ文字列統計分布蓄積機能と、受信したアクセスデータを解析するアクセスデータ解析機能と、前記受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価機能と、前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択機能と、前記アクセスデータ解析機能で解析したアクセスデータの解析結果と、前記統計分布選択機能が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定機能とをコンピュータに実現させることを特徴とする。
【0013】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【0014】
先ず図1及び図2を参照して本発明の概要を説明する。
【0015】
本発明は、Webサーバとクライアントとの間のネットワークセキュリティ対策に適用される侵入検知システムに於いて、既知攻撃防御機能に加え、未知の攻撃に対する防御機能(未知攻撃防御機能)をもつことを特徴とする。
【0016】
本発明に係る侵入検知システムの全体の機能構成を図1に示す。
侵入検知システム1は、Webサーバ2とクライアント3との間に置かれる。侵入検知システム1は、HTTPのセッションをアプリケーション層で解析・中継する。この際、Webサーバ2とクライアント3は互いにトランスペアレントにみなされる。
【0017】
侵入検知システム1には、Webサーバ2を外部アクセスによる攻撃から防御するための機能として、既知攻撃防御機能11と未知攻撃防御機能12とを具備する。
【0018】
既知攻撃防御機能11は、攻撃ターゲットとなるWebサーバ2への既知の攻撃に対して、シグネチャ(攻撃パターンファイル)やDDoS( Distributed Denial of Service)防御機能により検出並びに防御を行う。
【0019】
未知攻撃防御機能12は、既知攻撃防御機能11で検出・防御できなかった未知の攻撃について、検出並びに防御を行う。この未知攻撃防御機能12では、未知の不正アクセスを検出する際、URL文字列からパス名を抽出し、抽出されたパス名のアクセス頻度を評価し、アクセス頻度が稀である場合には、URL文字列についての統計的評価値を参照し、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計的評価値を参照することで、統計的に異常な内容のアクセスデータを不正アクセスに関わるものとして検出する。
【0020】
尚、既知攻撃防御機能11、未知攻撃防御機能12のいずれに於いても正常なアクセスであると判定されたセッションについては、そのセッションを通過させる。
【0021】
また、侵入検知システム1は、管理GUI13より管理者4へ未知攻撃の情報提示を行い、管理GUI13から、未知攻撃に対する検出基準の補正を受け付ける。
【0022】
上記侵入検知システム1に於ける未知攻撃防御機能12に係わる処理間の関連を図2に示している。
未知攻撃防御機能12には、基本フェーズとして学習フェーズ(FL )と、検出・防御フェーズ(FD )とがある。また、実運用時のフェーズとして学習と、検出・防御とを併せて実行するマルチフェーズがある。これらの各フェーズ切替は、プログラム、管理者主導のいずれで行ってもよい。
【0023】
学習フェーズ(FL )では、HTTPリクエストを入力し、HTTPリクエストの内容を解析し、解析結果を統計分布として記憶し、解析結果の評価値が、統計的に正常値か異常値かを分ける「閾値」を学習する。学習フェーズ(FL )ではセッションを通過させる。
【0024】
検出・防御フェーズ(FD )では、HTTPリクエストを入力し、HTTPリクエストの内容を解析し、解析結果を既に学習済みの統計分布を基準として比較し、統計的に正常か異常かを判定することにより、未知の攻撃を検出する。検出の結果、未知の攻撃についてはセッションを遮断し、正常なアクセスはセッションを通過させる。また、未知の攻撃を検出した場合は、管理GUI13に未知攻撃の情報を提示し、真に攻撃であったか否か管理者4の判断に応じて、未知攻撃の検出基準を補正可能にしている。
【0025】
学習フェーズ(FL )を繰り返し実行した後の実稼働時に於けるマルチフェーズでは、HTTPリクエストが入力される度に、上記した検出・防御フェーズ(FD )と学習フェーズ(FL )とが実行される。
【0026】
図3は上記図1及び図2に示した侵入検知システム1に於ける未知攻撃防御機能12を実現した本発明の第1実施形態に於ける不正アクセス検出装置の構成を示すブロック図である。
【0027】
不正アクセス検出装置100は、ネットワークインタフェース101と、アクセスデータ解析部110と、未知の不正アクセス判定部120と、統計分布データ記憶部130と、閾値算出部141と、閾値保持部142と、正常アクセス処理部151と、不正アクセス処理部152とを備える。
【0028】
ネットワークインタフェース101は、ネットワーク10に接続され、ネットワーク10の先にあるクライアント−サーバ間でやりとりされるデータを送受信する機能をもつ。
【0029】
アクセスデータ解析部110は、URL文字列解析部111と、パス名抽出部112と、パラメータ文字列解析部113とを備え、ネットワークインタフェース101から受信したデータについて、クライアント−サーバ間のアクセスデータを組み立て、組み立てたアクセスデータに対して字句解析や構文解析を行う機能をもつ。
【0030】
アクセスデータ解析部110に於いて、URL文字列解析部111は、アクセスデータのURL文字列に含まれる文字区分や数値情報などを解析し、パス名抽出部112は、URL文字列からパス名を抽出し、パラメータ文字列解析部113は、パス名以下のパラメータ文字列に含まれる文字区分や数値情報などを解析する。
【0031】
これにより、アクセスデータ解析部110は、アクセスデータについて、図4に示すような統計的な評価値f(x)を算出する。アクセスデータ解析部110は、算出した統計的な評価値f(x)を統計分布データ記憶部130に格納する。詳しくは、攻撃防御の対象となるWebサーバに対してのURL文字列に関する統計的な評価値についてはURL文字列統計分布131として記憶し、パラメータ文字列に関する統計的な評価値についてはパラメータ文字列統計分布132として記憶する。更に、パラメータ文字列統計分布132として、URL文字列のパス名に付されるパラメータ文字列について、パス名を含んだパラメータ文字列で構成される第1の文字列区分を解析した結果の統計分布と、Webサーバ上のプログラムに与えられる文字列全体で構成される第2の文字列区分を解析した結果の統計分布と、Webサーバ上のプログラムの変数で構成される第3の文字列区分を解析した結果の統計分布とをそれぞれ個別に記憶し管理する。尚、この詳細については、図7および図8を参照して、更に、図10乃至図12を参照して後述する。従って上記統計的な評価値f(x)は画一的なものではなく、URL文字列統計分布131については、例えば攻撃防御の対象となるWebサーバ、当該Webサーバが接続されるネットワーク環境等によってそれぞれ異なり、また、パラメータ文字列統計分布132についても上記各URL文字列統計分布131の下で、各々上記した各文字列区分毎に算出される(図7および図8、図10乃至図12参照)。
【0032】
閾値算出部141は、上記統計分布データ記憶部130に記憶された評価値f(x)から、平均値や分散を求め、統計的に正常な値域y1と統計的に異常な値域y2とを分ける閾値(th)を算出する機能をもつ。閾値算出部141は、算出した閾値(th)を閾値保持部42に保持する。
【0033】
未知の不正アクセス判定部120は、アクセス頻度評価部121と、統計分布データ選択部122と、URL文字列統計評価部123と、パラメータ文字列統計評価部124とを備え、アクセスデータ解析部110により算出され統計分布データ記憶部130に記憶された評価値f(x)と、閾値保持部142から参照される閾値(th)とを用いて、ネットワークインタフェース101で受信したアクセスデータが未知の不正アクセスであるか否か判定する機能をもつ。
【0034】
未知の不正アクセス判定部120に於いて、アクセス頻度評価部121は、パス名抽出部112によりURL文字列から抽出されたパス名について、統計分布データ記憶部130に記憶(蓄積)された統計的な評価値f(x)を参照して当該パス名へのアクセス頻度が希であるか否かをアクセス頻度判定用の設定値(閾値)をもとに評価する。統計分布データ選択部122は、上記アクセス頻度が稀である(アクセス頻度判定用の設定値より低い)とき、URL文字列統計評価部123を選択し、上記アクセス頻度が稀でない(アクセス頻度判定用の設定値以上である)とき、パラメータ文字列統計評価部124を選択する。URL文字列統計評価部123は、統計分布データ選択部122により選択されると、ネットワークインタフェース101に受信されアクセスデータ解析部110により解析されたアクセスデータのURL文字列全体について、閾値保持部142に保持された当該URL文字列に固有の閾値をもとに統計的に正常であるか否かの評価を行う。また、パラメータ文字列統計評価部124は、統計分布データ選択部122により選択されると、ネットワークインタフェース101に受信されアクセスデータ解析部110により解析されたアクセスデータのパス名以下のパラメータ文字列について、閾値保持部142に保持された当該パラメータ文字列に固有の閾値をもとに統計的に正常であるか否かの評価を行う。このように、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計分布(母集団が小さい詳細部分の統計分布)を参照して統計的に正常であるか否かの評価を行い、アクセス頻度が稀な場合は、母集団が小さいパラメータ文字列に関する統計分布ではなく、母集団の大きいURL文字列全体に関する統計分布を参照して統計的に正常であるか否かの評価を行う。これにより、統計的に異常な内容のアクセスデータについて不正アクセスに関わるものとして判定する。
【0035】
この際の未知の不正アクセス判定部120に於いて用いられる、学習フェーズ(FL )に於いて得られた評価値の統計分布を概念図として図4に示す。アクセスデータの解析による統計的な評価値f(x)は、閾値(th)を境界に、統計的に正常な値域y1と、統計的に異常な値域y2とに区分される。
【0036】
この学習フェーズに於いて得られた評価値の統計分布は、未知攻撃の検出・防御フェーズに於いて活用される。すなわち、評価値f(x)が統計的に正常な値域y1に属するものは正常アクセスと判定し、評価値f(x)が統計的に異常な値域y2に属するものは未知攻撃に係わるものと判定する。正常なアクセスデータであると判定された統計的に正常な値域y1に属するアクセスデータは正常アクセス処理部151に渡され、不正アクセスに関わるものであると判定された統計的に異常な値域y2に属するアクセスデータは不正アクセス処理部152に渡される。
【0037】
正常アクセス処理部151は、使用者の必要に応じてさまざまな処理を適用してよい。例えば不正アクセス検出装置を傍受型として使用するならば、正常なアクセスデータについては特になにもせず、また、不正アクセス検出装置をフィルタ型として使用するならば、正常なアクセスデータについてはネットワークインタフェースから宛先のネットワークへ転送することが可能である。
【0038】
不正アクセス処理部152は、使用者の必要に応じてさまざまな処理を適用してよい。例えば不正アクセス検出装置を傍受型として使用するならば、不正アクセスに関わるものについてはログを残したり警報で通知を行い、また、不正アクセス検出装置をフィルタ型として使用するならば、不正アクセスに関わるものについては遮断したり追跡を行うことが可能である。
【0039】
以下、本発明の第1実施形態に係る不正アクセスの検出処理について、フローチャートを参照して説明する。
【0040】
図5は上記第1実施形態に於ける、統計的な学習を行う処理の手順(学習フェーズ(FL )の処理手順)を示すフローチャートである。
【0041】
不正アクセス検出装置100は、ネットワークインタフェース101にて、ネットワークの先に存在するクライアント−サーバ間でやりとりされるアクセスデータ(HTTPリクエスト)を受信する(図5ステップS101)。
【0042】
アクセスデータ解析部110は、上記受信したデータの内容を解析する。具体的には、ネットワークインタフェース101から受信したデータから、クライアント−サーバ間のアクセスデータを組み立て、組み立てたアクセスデータに対して字句解析や構文解析を行い、アクセスデータに含まれる文字区分や数値情報などを抽出するが、詳しくは図6にサブルーチンとして示し、その処理については後述する(図5ステップS102)。
【0043】
アクセスデータ解析部110は、上記アクセスデータの内容の解析結果として、図4に示すような統計的な評価値f(x)を算出する。
【0044】
アクセスデータ解析部110で算出した統計的な評価値f(x)は、統計分布データ記憶部130に記憶され(図5ステップS103)、上記解析が行われたアクセスデータはネットワーク10に送出される(図5ステップS104)。
【0045】
そして、学習を継続する場合(図5ステップS105 YES)は、繰り返しネットワークインタフェース101にてデータを受信する処理(図5ステップS101)に戻る。学習を継続しない場合(図5ステップS105 NO)は、閾値算出部141が、統計分布データ記憶部130に記憶された統計的な評価値f(x)から、平均値や分散を求め、上記図4に示した統計的に正常な値域y1と統計的に異常な値域y2とを分ける閾値(th)を算出する(図5ステップS106)。そして、算出された閾値(th)を閾値保持部142に保持させる(図5ステップS107)。尚、この際の統計的な評価値f(x)、および閾値(th)は、ここでは説明を分かり易くするため、1つの値として扱っているが、上述したように、URL文字列統計分布131、およびパラメータ文字列統計分布132のそれぞれについて文字列区分毎に存在する。また、学習を継続するか継続しないか(図5ステップS105)の動作手順の切り替えについては、図示しないが、管理者が、学習を継続するか継続しないかを決定して、その旨を管理端末から不正アクセス検出装置に通知することにより、動作手順の切り替えを行うことができる。
【0046】
図6は上記統計学習処理に於いて、アクセスデータの内容を解析する処理(図5ステップS102参照)のサブルーチンを示すフローチャートである。
【0047】
アクセスデータ解析部110に設けられたURL文字列解析部111は、アクセスデータのURL文字列に含まれる文字区分や数値情報など解析し(図6ステップS201)、URL文字列に関する評価値を算出する(図6ステップS202)。
【0048】
アクセスデータ解析部110に設けられたパス名抽出部112は、上記URL文字列からパス名を抽出する(図6ステップS203)。
【0049】
アクセスデータ解析部110に設けられたパラメータ文字列解析部113は、上記URL文字列から抽出したパス名以降に更にパラメータが抽出される際(図6ステップS204 YES)、当該パラメータ文字列に含まれる文字区分や数値情報などを解析し(図6ステップS205)、パラメータ文字列に関する評価値を算出する(図6ステップS206)。この動作(図6ステップS204〜S206)は、引き続き、パラメータが抽出される限り繰り返し行われる。そして、これ以上、パラメータが抽出されなければ(図6ステップS204 NO)、当該パス名へのアクセス頻度を「1」加算し(図6ステップS207)、このサブルーチン処理を終了する。
【0050】
図7は上記第1実施形態に於ける不正アクセス検出装置100の統計分布データ記憶部130に於いて、URL文字列の統計分布を記憶したテーブル(URL文字列統計分布131)の一構成例を示す図である。
【0051】
統計分布データ記憶部130に記憶されるURL文字列統計分布131は、Webサーバ名ごとに、テーブルとして記憶され、詳しくは、URL文字列を解析した結果の統計分布が記憶される。
【0052】
このテーブルの行は、文字列の構成要素を分類するものであり、文字セットA、文字セットB、文字セットC、…のように分類する。
【0053】
この文字セットA、B、C、…は、具体的には、「数値」「メタキャラクタ(プロトコルやスクリプト言語で特殊な意味を持つ文字)」「バイナリ文字」「スラッシュ文字」「ドット文字」などに分類される。この各セルの列は、文字セットに属する文字数または値に関する統計分布を記憶するものであって、アクセスデータを取得する学習段階で、図4に示す統計的な評価分布に基づいて算出した、平均値、分散、および閾値を保持する。この具体例については後述する。
【0054】
図8は上記第1実施形態に於ける不正アクセス検出装置100の統計分布データ記憶部130に於いて、パラメータ文字列統計分布を記憶したテーブル(パラメータ文字列統計分布132)の一構成例を示す図である。
【0055】
パラメータ文字列統計分布132は、Webサーバ名ごとに、テーブルとして記憶される。詳しくは、パス名と、パス名に付随するパラメータ(x1,x2,…)のそれぞれについてのセルからなり、当該セルには、パラメータの値に含まれる文字列を解析した結果の統計分布が記憶される。このテーブルの行は、URL文字列から抽出したパス名を記憶するエリアである。その内容はWebサーバに依存し、たとえば、index.php、isapi/gomembers.asp、sp3/download.asp、…のように記憶される。
【0056】
一方、テーブルの列は、URL文字列のパス名以下から抽出した各パラメータと、当該パスへのアクセス頻度を記憶するエリアである。パス名とパラメータ名から参照される個々のセルは、統計分布データを記憶するセルであって、詳しくはパラメータ文字列統計分布を記憶するセルである。つまり、あるパス名以下のパラメータ名に与えられた値の文字列を解析した結果の統計分布が記憶される。このセルの行は、文字列の構成要素を分類するものであり、文字セットA、文字セットB、文字セットC、…のように分類する。この文字セットA、B、C、…は、具体的には、「数値」「メタキャラクタ(プロトコルやスクリプト言語で特殊な意味を持つ文字)」「バイナリ文字」「スラッシュ文字」「ドット文字」などに分類される。
【0057】
このセルの列は、文字セットに属する文字数または値に関する統計分布を記憶するものであって、アクセスデータを取得する学習段階で、図4に示す統計的な評価分布に基づいて算出した平均値、分散、および閾値を保持する。
【0058】
図9は、上記第1実施形態に於ける、未知の不正アクセスを判定する処理の手順を示すフローチャートである。
【0059】
不正アクセス検出装置100は、ネットワークインタフェース101にて、ネットワーク10の先に存在するクライアント−サーバ間でやりとりされるデータを受信する(図9ステップS301)。
【0060】
アクセスデータ解析部110は、上記ネットワークインタフェース101が受信したアクセスデータの内容を解析する(図9ステップS302)。具体的には、既に説明したように、URL文字列解析部111によりアクセスデータのURL文字列に含まれる文字区分や数値情報など解析し、パス名抽出部112によりURL文字列からパス名を抽出し、パラメータ文字列解析部113によりパス名以下のパラメータ文字列に含まれる文字区分や数値情報などを解析する。
【0061】
未知の不正アクセス判定部120は、上記URL文字列から抽出されたパス名のアクセス頻度を評価する(図9ステップS303)。
【0062】
ここで、アクセス頻度が稀である場合は、URL文字列に関する統計分布データ(URL文字列統計分布131)を参照する(図9ステップS304)。
【0063】
この際は、URL文字列統計評価部123に於いて、URL文字列についての統計的評価値と、閾値保持部142から参照されるURL文字列に関する閾値とを比較し、アクセスデータが未知の不正アクセスであるか否かを判定する(図9ステップS306)。
【0064】
ここで、URL文字列に関する統計的評価値が、統計的に異常値であった場合は、アクセスデータを不正アクセスに関わるものとして検出し、当該アクセスデータを不正アクセス処理部152に渡す。
【0065】
URL文字列に関する統計的評価値が、統計的に正常値であった場合は、アクセスデータが正常なアクセスに関わるものとして検出し、当該アクセスデータを正常アクセス処理部151に渡す。
【0066】
また、上記URL文字列から抽出されたパス名のアクセス頻度の評価(図9ステップS303)に於いて、アクセス頻度が稀でない場合は、パラメータ文字列に関する統計分布データ(パラメータ文字列統計分布132)を参照する(図9ステップS305)。
【0067】
この際は、パラメータ文字列統計評価部124に於いて、パラメータ文字列に関する統計的評価値と、閾値保持部142から参照されるパラメータ文字列に関する閾値とを比較し、上記アクセスデータが未知の不正アクセスであるか否かを判定する(図9ステップS305)。
【0068】
ここで、パラメータ文字列に関する統計的評価値が、統計的に異常値であった場合は、アクセスデータを不正アクセスに関わるものとして検出し、当該アクセスデータを不正アクセス処理部152に渡す。
【0069】
また、パラメータ文字列に関する統計的評価値が、統計的に正常値であった場合は、アクセスデータが正常なアクセスとして検出し、当該アクセスデータを正常アクセス処理部151に渡す。正常アクセス処理部151、および不正アクセス処理部152の各処理については既に述べているので、ここではその処理を割愛する。
【0070】
ここで、上記第1実施形態に於ける、解析処理、並びに検出・防御フェーズ(FD )の各処理について、その具体例を図面を参照して説明する。
【0071】
解析処理では、アプリケーション層データに組み立てられたHTTPリクエストを対象として、内容の文字列を解析する。具体的には図10のHTTPリクエストの解析例に示すように、まずはホスト名・パス名・パラメータ名といった階層的な切り出しを行う。切り出された部分の各々についてはアクセス数をカウントし、統計分布を求めるための学習で利用する。そして、切り出された各該当の階層に属する文字列を、文字列区分として抽出する。
【0072】
このように抽出するのは、それぞれの文字列区分がWebサーバ上の何によって実際に処理されるか、にもとづいており、そして、そうした処理の脆弱性が攻撃に関わりうることから、処理対象となる文字列区分を抽出している。たとえば、ホスト名以降のPATH_QUERY部は一般的にWebサーバ上のHTTPデーモンによって処理されるものであり、パス名以降のQUERY_STRINGはWebサーバ上のCGI等のアプリケーションによって処理され、パラメータ名以降のVARIABLE部はアプリケーションの内部変数によって処理されることが多い。なお、パラメータ名は、一つのHTTPリクエスト内に複数含まれる場合もあるが、その場合はすべてのパラメータ名について抽出する。
【0073】
ここでは、URL文字列のパス名に付されるパラメータ文字列について、パス名を含んだパラメータ文字列(Webサーバ上のプログラムを指定する文字列および当該プログラムに処理させる文字列)で構成される第1の文字列区分と、Webサーバ上のプログラムに与えられる文字列全体で構成される第2の文字列区分と、Webサーバ上のプログラムの変数で構成される第3の文字列区分とについてそれぞれ解析を行う。尚、この例では、第1の文字列区分をPATH_QUERY部、第2の文字列区分をQUERY_STRING部、第3の文字列区分をVARIABLE部として示している。この例では、VARIABLE部が最小文字列構成であり、階層的に最も下位にある。この実施形態に於いては、下位の文字列区分を優先的に未知攻撃の判定に用いる。
【0074】
上記文字列区分の構成要素の評価について、その具体例を挙げる。
【0075】
抽出した文字列区分のそれぞれについて、構成要素を評価する。構成要素の評価とは、パターン認識の分野に於ける特徴量にあたるもので、具体的には、ある特定の文字セットに属する文字が構成要素として何バイト含まれているかを評価する。即ち以下に定義するような特定の文字セットに属する文字が、それぞれの文字列区分に、構成要素として、何バイト(何文字)含まれているかを数え、その数を評価値とする。
【0076】
この際の特定の文字セットとしては、LENGTH(任意の文字の数、即ち文字列区分の長さ)、META(メタキャラクタの数)、BINARY(ASCII文字でない印刷不能なバイナリ文字のバイト数)、SLASHDOT(ドット文字・スラッシュ文字の数)等を挙げることができる。これらはWebサーバへの攻撃手法として知られる数々の攻撃パターンを調査した結果、多くの攻撃パターンに含まれている文字セットとして列挙されたものである。以上の解析処理から、HTTPリクエストの評価値は、HTTPリクエストの事象をX、文字列区分をm 、文字セットn としたとき、fmn(x)として算出される。ここで評価値fmn(x)は、HTTPリクエストXに関し、文字列区分m において、文字セットn に属する文字のバイト数である。
【0077】
上記PATH_QUERY部に関する統計分布データの記憶テーブル構成例を図11に示している。この記憶テーブルは、ホスト名と、ホスト名のそれぞれについてのセルから成る。このテーブルの行は、ホスト名を記憶するエリアである。ホスト名はWebサーバ毎に記憶される。
【0078】
ホスト名から参照される個々のセルは、PATH_QUERY部の解析結果に関する統計分布が記憶されるセルである。このセルの行は、文字列の構成要素を分類するものであり、LENGTH、META、BINARY、SLASHDOT、という文字セットに分類する。このセルの列は、文字セットに属する文字数または値に関する統計分布を表すものであって、PATH_QUERY部に関する評価値の統計分布に基づいて算出した平均値、分散、および閾値を保持する。
【0079】
上記VARIABLE部に関する統計分布データの記憶テーブル構成例を図12に示している。この記憶テーブルは、ホスト名と、ホスト名のそれぞれについてのセルから成る。このテーブルの行は、ホスト名を記憶するエリアである。ホスト名はWebサーバ毎に記憶される。ホスト名から参照される個々のセルは、パス名と、パス名に付随するパラメータのそれぞれについてのセルから成るテーブルである。このテーブルの行は、パス名を記憶するエリアである。たとえば、index.php、isapi/gomembers.asp、sp3/download.asp、…のように記憶される。一方、テーブルの列は、HTTPリクエストのパス名以下から抽出した各パラメータと、当該パスへのアクセス頻度を記憶するエリアである。
【0080】
パス名から参照される個々のセルは、VARIABLE部の解析結果に関する統計分布が記憶されるセルである。このセルの行は、文字列の構成要素を分類するものであり、LENGTH、META、BINARY、SLASHDOT、という文字セットに分類する。
【0081】
このセルの列は、文字セットに属する文字数または値に関する統計分布を表すものであって、VARIABLE部に関する評価値の統計分布に基づいて算出した平均値、分散、および閾値を保持する。
【0082】
上記した以外に、QUERY_STRING部に関する統計分布の記憶テーブルも存在するが、上記図12に示すVARIABLE部に関する統計分布データの記憶テーブル構成とほぼ同様であるので、ここではその説明を省略する。
【0083】
未知攻撃を検出するための本発明の実施形態に於ける基本的な考え方としては、図4に示したように、学習フェーズに於いて得られた統計的な評価値f(x)の統計分布データを参照し、入力されたHTTPリクエストについて、評価値f(x)が統計的に正常な値域に属するものは正常アクセスと判定し、評価値が統計的に異常な値域に属するものは未知攻撃に係わるものと判定することである。
【0084】
一般に不正アクセス検出システムでは、検出率を高くするためにはより多くの情報を用いること、具体的にはシグネチャー数を多くすることが有効であり、誤検出率を低くするためにはより詳細な情報を用いること、具体的には各シグネチャーのルールを詳細化することが有効である。
【0085】
検出率を高くするためには、より多くの情報を用いること、具体的には多くの文字列区分を未知攻撃の判定に用いることが、有効であると考えられる。また、誤検出率を低くするためには、より詳細な情報を用いること、具体的には下位の文字列区分を優先的に未知攻撃の判定に用いることが、有効である。ただし、学習フェーズに於いてHTTPリクエストの母集団の大きさが十分でないときは、真に正常なアクセスであっても、特定のパス名や特定のパラメータ名へのアクセス頻度が稀となってしまう状況がある。母集団の大きさが十分でなければ、統計的には正常か異常かを適切に判定することはできない。ただ、アクセス頻度が稀な場合、通常はアクセスされない所にアクセスされたという意味から、未知攻撃に係わるという考え方もできるが、それだけで未知攻撃であると断定すると、誤検出も多く含んでしまう。
【0086】
一般に、アクセス頻度は、上位の文字列区分である程、高くなり、ホスト名>パス名>パラメータ名となる。また、上位の文字列区分ほど、HTTPリクエストに含まれる文字の構成要素は、正常アクセスであっても多様となる。よって、母集団の大きさが十分であっても、上位の文字列区分では異常な文字列を明確に検出することが難しくなり、検出率が低くなる傾向にある。
【0087】
以上のことから、検出率と誤検出率とのトレードオフを解消するために、本発明の実施形態では、上述したように、下位の文字列区分に関する統計分布について、母集団が大きければ優先的に検証し、母集団が十分に大きくなければ、より上位の文字列区分に関する統計分布について検証を行うようにしている。
【0088】
この際の検出処理に係わる検出・防御フェーズ全体の処理の手順を図13に示している。
【0089】
ここでは入力した(即ちネットワークインタフェース101が受信した)HTTPリクエストについて、その内容を解析する(図13ステップS401,S402)。そして、HTTPリクエストから抽出されたパラメータ名について、アクセス頻度を評価する(図13ステップS403)。
【0090】
この評価に於いて、当該パラメータ名へのアクセス頻度が稀でない場合は、VARIABLE部に関する統計分布データを参照する(図13ステップS405)。そして、VARIABLE部に関する統計的評価値とVARIABLE部に関する統計分布データに基づく閾値を比較することにより、HTTPリクエストが未知攻撃に係わるか否かを判定する(図13ステップS408)。統計的に異常値であった場合は、HTTPリクエストを未知攻撃に係わるものと判定し、HTTPセッションを遮断する(図13ステップS411)。統計的に正常値であった場合は、HTTPリクエストを正常なアクセスと判定し、HTTPセッションを通過させる(図13ステップS412)。
【0091】
また、上記したHTTPリクエストから抽出されたパラメータ名についてのアクセス頻度の評価(図13ステップS403)に於いて、当該パラメータ名へのアクセス頻度が稀である場合は、上位の文字列区分であるパス名について、アクセス頻度を評価する(図13ステップS404)。この評価で
当該パス名へのアクセス頻度が稀でない場合は、QUERY_STRING部に関する統計分布データを参照する(図13ステップS406)。そして、QUERY_STRING部に関する統計的評価値とQUERY_STRING部に関する統計分布データに基づく閾値を比較することにより、HTTPリクエストが未知攻撃に係わるか否かを判定する(図13ステップS409)。ここで統計的に異常値であった場合は、HTTPリクエストを未知攻撃に係わるものと判定し、HTTPセッションを遮断する(図13ステップS411)。統計的に正常値であった場合は、HTTPリクエストを正常なアクセスと判定し、HTTPセッションを通過させる(図13ステップS412)。
【0092】
また、上記した上位の文字列区分であるパス名についてのアクセス頻度の評価(図13ステップS404)に於いて、当該パス名へのアクセス頻度が稀である場合は、PATH_QUERY部に関する統計分布データを参照する(図13ステップS407)。そして、PATH_QUERY部に関する評価値とPATH_QUERY部に関する統計分布データに基づく閾値を比較することにより、HTTPリクエストが未知攻撃に係わるか否かを判定する(図13ステップS410)。ここで、統計的に異常値であった場合は、HTTPリクエストを未知攻撃に係わるものと判定し、HTTPセッションを遮断する(図13ステップS411)。統計的に正常値であった場合は、HTTPリクエストを正常なアクセスと判定し、HTTPセッションを通過させる(図13ステップS412)。
【0093】
以上のようにして検出・防御フェーズ(FD )に於ける処理が実行され、未知攻撃に係わるものと判定したHTTPリクエストのセッションが遮断される。
【0094】
この際の未知攻撃に係わるものと判定したHTTPリクエストの具体的なパターン例を図14乃至図17に示している。
【0095】
図14に示す検出した攻撃例は、PATH_QUERY部に於いて、文字列の長さが統計的に長すぎること、および指定されたパス名へのアクセス頻度が極めて少ないことを検出して未知攻撃に係わるものと判定した(図13ステップS410,S411)例である。
【0096】
図15に示す検出した攻撃例は、VARIABLE部に於いて、スラッシユ文字とドット文字の数が統計的に長すぎることを検出して未知攻撃に係わるものと判定した(図13ステップS408,S411)例である。
【0097】
図16に示す検出した攻撃例は、QUERY_STRING部に於いて、文字列の長さが統計的に長すぎること、および指定された変数名へのアクセス頻度が極めて少ないことを検出して未知攻撃に係わるものと判定した(図13ステップS409,S411)例である。
【0098】
図17に示す検出した攻撃例は、QUERY_STRING部に於いて、文字列に含まれるスラッシュ文字の数が統計的に多すぎること、および指定された変数名へのアクセス頻度が極めて少ないことを検出して未知攻撃に係わるものと判定した(図13ステップS409,S411)例である。
【0099】
図18は本発明の第2の実施の形態に係る不正アクセス検出装置の構成を示すブロック図である。
【0100】
この第2の実施の形態に係る不正アクセス検出装置100は、上記図3に示す第1の実施の形態に係る不正アクセス検出装置100の構成要素に加えて、閾値補正部161を備える。閾値補正部161は、閾値保持部142によって保持される閾値を補正する機能をもつ。更に不正アクセス検出装置100には閾値補正部161に補正の指示を与える管理端末162が付加される。閾値補正部161は管理端末162からの閾値補正入力を受け付ける。
【0101】
閾値補正部161により、URL文字列統計分布の閾値を補正して、図4に示した統計的に異常な値域y2を大きくする場合の効果だけについて述べると、より多くの未知の不正アクセスを検出が可能になり、検出率を向上させることができるが、正常なアクセスデータを誤って不正アクセスに関わるものとして検出する場合も多くなり、誤検出率を増やしてしまうことになる。
【0102】
しかし本発明の第2の実施形態に係る不正アクセス検出装置100では、未知の不正アクセス判定部120にアクセス頻度評価部121と統計分布データ選択部122を備えたことにより、URL文字列統計分布は、パス名へのアクセス頻度が稀である場合にのみ参照されることと、一般的に不正アクセスは、Webサーバ上に実際には存在しないパス名へのアクセスが試みられることが非常に多いことから、この構成において、閾値補正部161により閾値を補正することにより、より一層、未知の不正アクセスの検出率を向上させ、かつ、誤検出を抑制することができる。
【0103】
上記第2実施形態に於いて、閾値補正部161により閾値を補正する際に適用される管理GUI13による補正画面の構成例を図19に示している。
【0104】
この第2実施形態は、管理GUI13へ未知攻撃の情報提示を行い、管理GUI13から未知攻撃の検出基準の補正を受け付ける機能を実現した。図19はその管理GUI13による補正画面の一例を示している。
【0105】
この補正画面では、GUI画面の表題、および未知攻撃防御機能が防御対象のWebサーバに対する未知攻撃を検知したことを管理者に提示している。このとき、該当するHTTPセッションは、上述した侵入検知システム1にて遮断されている。
【0106】
管理者は、この補正画面を見て、HTTPリクエストが真に不正アクセスに係わるものであるか否かを判断する。この補正画面上に於いて、未知攻撃防御機能によって統計的に閾値よりも異常と評価されたHTTPリクエストそのものの内容全体が表示される。その中で特に統計的に異常と判定された部分については、管理者が見易いように赤色などで色分け表示する。例えば、HTTPリクエストの内容において、変数名(noname)に含まれるメタキャラクタの数が、統計分布から異常値とみなされたものを検知したと提示している。その根拠として、この例でのWebサーバは「stats.www.…………」というホスト名およびパス名をもつことと、このパス名に対するHTTPリクエストの内容を解析した統計分布データが、画面内に表形式で示される。
【0107】
この画面内の表は、未知攻撃防御機能12の学習フェーズ(FL )に於いて構築されたものであり、図12に示したVARIABLE部に関する統計分布データから当該サーバに関する統計分布データを抜粋したものに相当する。
【0108】
この表には、HTTPリクエストから抽出された変数名、HTTPリクエストにおいてその変数名が出現した頻度、そして、その変数の値の長さ(LENGTH)、含まれるメタキャラクタの数(META)、含まれるバイナリのバイト数(BINARY)、含まれるスラッシュ文字とドット文字の数(SLAHSHDOT)のそれぞれに関して、統計を取得することにより算出された平均(mean)、標準偏差(sigma)、そして、統計的な異常値を判定するために標準偏差に掛ける係数(factor)の値が示されている。今回のHTTPリクエストの内容を解析した結果、HTTPリクエスト内の変数に含まれるメタキャラクタの数が、平均で(mean)では0個であって、標準偏差(sigma)は「0.53」であるのに、今回のHTTPリクエストの場合は、4個であった。よって、統計的な異常値を判定するために標準偏差に掛ける係数(factor)「4」と、標準偏差とを掛けた値、すなわち「2.12」、これよりも僅かに大きい値であるので、提示したHTTPリクエストが未知攻撃に係わるものであるという判定を示している。そして、これが真に不正アクセスに係わるものであるか、あるいは誤検出であるかの判断を、管理者に問い合わせている。
【0109】
この状態で管理者が、誤検出でないと判定したならば、「This is Attack」ボタンを押下する。これにより、誤検出でないとの判定を受けた侵入検知システム1は、当該HTTPリクエストを未知攻撃として、このままWebサーバの防御を続ける。
【0110】
また管理者が、誤検出であると判定したならば、「false positive」ボタンを押下する。これにより、誤検出であるとの判定を受けた侵入検知システムは、次回から誤検知されないように、変数の値に含まれるメタキャラクタの数の「factor」の値を、自動調整する。すなわち、統計学習した平均や分散は故意に変更せずに、閾値を決定する係数(factor)を逆算し、「9」と算出することにより、次回からは、メタキャラクタの数が4個では統計的に異常とは検出されないように補正する。
【0111】
上記したように本発明の各実施形態によれば、パス名へのアクセス頻度に応じて参照する統計を選択する機構を新たに付加したことにより、アクセス頻度が稀な場合には、パラメータ文字列に関する統計分布(母集団が小さい詳細部分の統計分布)ではなく、URL文字列全体に関する統計分布(母集団の大きい全体部分の統計分布)を参照することになるから、統計的判断による未知の不正アクセスの検出率を向上させ、かつ、誤検出を抑制することができる。
【0112】
【発明の効果】
以上詳記したように本発明によれば、既知のシグネチャでは対応できない未知の攻撃からWebサーバを防御する機能を有する不正アクセス検出装置が実現できる。また未知の攻撃に対して、高い検出率と、低い誤検出率が実現できる。更に、管理者の負担が極力少ないユーザインタフェースを提供することで、未知の攻撃に対する検出精度の向上を図った不正アクセス検出装置が実現できる。
【図面の簡単な説明】
【図1】本発明に係る侵入検知システムの全体の機能構成を示すブロック図。
【図2】上記侵入検知システムに於ける未知攻撃防御機能に係わる処理間の関連を示す図。
【図3】本発明の第1実施形態に於ける不正アクセス検出装置の構成を示すブロック図。
【図4】上記第1実施形態に於ける、未知の不正アクセス判定部に用いられる、学習フェーズに於いて得られた評価値の統計分布を示す概念図。
【図5】上記第1実施形態に於ける、統計的な学習を行う処理の手順(学習フェーズの処理手順)を示すフローチャート。
【図6】上記第1実施形態に於ける、学習処理でのアクセスデータの内容を解析する処理手順を示すフローチャート。
【図7】上記第1実施形態に於ける、URL文字列の統計分布を記憶したテーブル(URL文字列統計分布)の一構成例を示す図。
【図8】上記第1実施形態に於ける、パラメータ文字列の統計分布を記憶したテーブル(パラメータ文字列統計分布)の一構成例を示す図。
【図9】上記第1実施形態に於ける、未知の不正アクセスを判定する処理の手順を示すフローチャート。
【図10】上記第1実施形態に於ける、HTTPリクエストの解析例を示す図。
【図11】上記第1実施形態に於ける、PATH_QUERY部に関する統計分布データの記憶テーブル構成例を示す図。
【図12】上記第1実施形態に於ける、VARIABLE部に関する統計分布データの記憶テーブル構成例を示す図。
【図13】上記第1実施形態に於ける、検出処理に係わる検出・防御フェーズ全体の処理の手順を示すフローチャート。
【図14】上記第1実施形態に於ける、未知攻撃に係わるものと判定したHTTPリクエストの具体的なパターン例を示す図。
【図15】上記第1実施形態に於ける、未知攻撃に係わるものと判定したHTTPリクエストの具体的なパターン例を示す図。
【図16】上記第1実施形態に於ける、未知攻撃に係わるものと判定したHTTPリクエストの具体的なパターン例を示す図。
【図17】上記第1実施形態に於ける、未知攻撃に係わるものと判定したHTTPリクエストの具体的なパターン例を示す図。
【図18】本発明の第2の実施の形態に係る不正アクセス検出装置の構成を示すブロック図。
【図19】上記第2実施形態に於ける、管理GUIによる補正画面の構成例を示す図。
【符号の説明】
1…侵入検知システム、2…Webサーバ、3…クライアント、4…管理者、10…ネットワーク、11…既知攻撃防御機能、12…未知攻撃防御機能、13…管理GUI、100…不正アクセス検出装置、101…ネットワークインタフェース、110…アクセスデータ解析部、111…URL文字列解析部、112…パス名抽出部、113…パラメータ文字列解析部、120…未知の不正アクセス判定部、121…アクセス頻度評価部、122…統計分布データ選択部、123…URL文字列統計評価部、124…パラメータ文字列統計評価部、130…統計分布データ記憶部、131…URL文字列統計分布、132…パラメータ文字列統計分布、141…閾値算出部、142…閾値保持部、151…正常アクセス処理部、152…不正アクセス処理部、161…閾値補正部、162…管理端末、FL …学習フェーズ、FD …検出・防御フェーズ。

Claims (17)

  1. ネットワークを介してアクセスデータを受信するネットワークインタフェースと、
    前記ネットワーク上で扱うアクセスデータについて、URL文字列を解析した結果の統計分布を保持するURL文字列統計分布保持手段と、
    前記ネットワーク上で扱うアクセスデータについて、URL文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を保持するパラメータ文字列統計分布保持手段と、
    前記ネットワークインタフェースで受信したアクセスデータを解析するアクセスデータ解析手段と、
    前記ネットワークインタフェースで受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価手段と、
    前記アクセス頻度評価手段が評価した前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択手段と、
    前記アクセスデータ解析手段で解析したアクセスデータの解析結果と、前記統計分布選択手段が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定手段と
    を具備したことを特徴とする不正アクセス検出装置。
  2. ネットワークを介してアクセスデータを受信するネットワークインタフェースと、
    前記ネットワーク上で扱うアクセスデータについて、URL文字列を解析した結果の統計分布を保持するURL文字列統計分布保持手段と、
    前記ネットワーク上で扱うアクセスデータについて、URL文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を保持するパラメータ文字列統計分布保持手段と、
    前記ネットワークインタフェースで受信したアクセスデータを解析するアクセスデータ解析手段と、
    前記ネットワークインタフェースで受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価手段と、
    前記アクセス頻度評価手段が評価した前記パス名へのアクセス頻度に応じて、前記各統計分布を対象に、参照する統計分布に重み付けを行う統計分布重み付け手段と、
    前記アクセスデータ解析手段で解析したアクセスデータの解析結果を前記統計分布重み付け手段の重み付けに従う統計分布と比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定手段と
    を具備したことを特徴とする不正アクセス検出装置。
  3. 前記統計分布選択手段は、前記抽出したパス名のアクセスデータについて、用意された判定値をもとに、アクセス頻度が稀であるか否かを判定し、アクセス頻度が稀であると判定したとき、前記パラメータ文字列統計分布保持手段に保持されたパラメータ文字列に関する統計分布に代えて前記URL文字列統計分布保持手段に保持されたURL文字列全体に関する統計分布を参照することを特徴とする請求項1または2記載の不正アクセス検出装置。
  4. 前記不正アクセス判定手段は、設定された閾値をもとに、前記ネットワークインタフェースで受信したアクセスデータが統計的に正常であるか異常であるかを評価する請求項1または2記載の不正アクセス検出装置。
  5. 前記不正アクセス判定手段が評価を行うための閾値を補正する閾値補正手段を更に具備する請求項4記載の不正アクセス検出装置。
  6. 前記パラメータ文字列統計分布保持手段は、URL文字列のパス名に付されるパラメータ文字列について、前記パス名を含んだパラメータ文字列で構成される第1の文字列区分を解析した結果の統計分布と、Webサーバ上のプログラムに与えられる文字列全体で構成される第2の文字列区分を解析した結果の統計分布と、Webサーバ上のプログラムの変数で構成される第3の文字列区分を解析した結果の統計分布とを保持し、
    前記統計分布選択手段は、前記パラメータ文字列統計分布保持手段に保持された前記各文字列区分の統計分布を対象に、下位の文字列区分の統計分布を優先して選択することを特徴とする請求項1記載の不正アクセス検出装置。
  7. 前記パラメータ文字列統計分布保持手段は、パラメータ文字列の統計分布として、前記文字列区分のそれぞれについて、文字列区分の長さ、メタキャラクタの数、ドット文字、スラッシュ文字、バイナリ文字の少なくともいずれかを含む特定の1又は複数の文字セットについて、その評価値を保持する請求項6記載の不正アクセス検出装置。
  8. 前記URL文字列統計分布保持手段及びパラメータ文字列統計分布保持手段に解析した結果の統計分布を蓄積する学習フェーズと、前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを前記統計分布を用いて監視する未知攻撃検出・防御フェーズと、前記監視をしながら前記統計分布を蓄積するフェーズとを選択的に切り替える切替手段を更に具備し、前記切替手段が切り替えたフェーズに従い、前記アクセスデータ解析手段による文字列を解析した結果の情報が、前記URL文字列統計分布保持手段および前記パラメータ文字列統計分布保持手段への蓄積と、前記不正アクセス判定手段により判定されるアクセスデータの解析内容とに振り分けられる請求項1記載の不正アクセス検出装置。
  9. Webサーバに対するアクセスデータの内容について、URL文字列の解析結果に関する統計と、パラメータ文字列の解析結果に関する統計とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出する不正アクセス検出方法であって、
    前記未知の不正アクセスを検出する際、URL文字列からパス名を抽出し、抽出されたパス名のアクセス頻度を評価し、アクセス頻度が稀である場合には、URL文字列についての統計的評価値を参照し、アクセス頻度が稀でない場合には、パラメータ文字列に関する統計的評価値を参照することにより、統計的に異常な内容のアクセスデータを不正アクセスに関わるものとして検出することを特徴とする不正アクセス検出方法。
  10. Webサーバに対するアクセスデータの内容について、URL文字列の解析結果に関する統計分布と、パラメータ文字列の解析結果に関する統計分布とを蓄積し、統計的に正常か異常かを評価することにより、未知の不正アクセスを検出する不正アクセス検出方法であって、
    受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するステップと、
    前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択するステップと、
    前記受信したアクセスデータの解析結果と、前記選択された統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記ネットワークインタフェースで受信したアクセスデータが不正アクセスに関わるものであるか否かを判定するステップと
    を具備したことを特徴とする不正アクセス検出方法。
  11. 前記統計分布を選択するステップは、前記パラメータ文字列の解析結果に関する統計分布について、前記パス名を含んだパラメータ文字列を解析した結果の統計分布と、Webサーバ上のプログラムに与えられる文字列全体を解析した結果の統計分布と、Webサーバ上のプログラムの変数を解析した結果の統計分布とのすべて若しくは前記各文字列区分の統計分布のいずれか2つの文字列区分の統計分布を選択対象に、前記判定ステップで参照される統計分布を選択する請求項10記載の不正アクセス検出方法。
  12. 前記統計分布を選択するステップは、前記抽出したパス名のアクセスデータについて、所定の判定値をもとにアクセス頻度が著しく低いか否かを判定し、アクセス頻度が著しく低いと判定したとき、前記蓄積された統計分布うち、母集団が小さい統計分布に代えて母集団の大きい統計分布を選択することを特徴とする請求項11記載の不正アクセス検出方法。
  13. 不正アクセス検出装置としてコンピュータを機能させるためのプログラムであって、
    ネットワーク上で扱うアクセスデータについて、URL文字列を解析した結果の統計分布を蓄積するURL文字列統計分布蓄積機能と、
    前記ネットワーク上で扱うアクセスデータについて、URL文字列のパス名に付されるパラメータ文字列を解析した結果の統計分布を蓄積するパラメータ文字列統計分布蓄積機能と、
    受信したアクセスデータを解析するアクセスデータ解析機能と、
    前記受信したアクセスデータからパス名を抽出し、当該パス名へのアクセス頻度を評価するアクセス頻度評価機能と、
    前記パス名へのアクセス頻度に応じて、前記各統計分布から、参照対象となる統計分布を選択する統計分布選択機能と、
    前記アクセスデータ解析機能で解析したアクセスデータの解析結果と、前記統計分布選択機能が参照対象として選択した統計分布とを比較して、統計的に正常であるか異常であるかを評価し、当該評価にもとづいて前記受信したアクセスデータが不正アクセスに関わるものであるか否かを判定する不正アクセス判定機能と
    をコンピュータに実現させるためのプログラム。
  14. 前記統計分布選択機能は、前記抽出したパス名のアクセスデータについて、用意された判定値をもとに、アクセス頻度が稀であるか否かを判定し、アクセス頻度が稀であると判定したとき、前記パラメータ文字列統計分布蓄積機能が蓄積するパラメータ文字列に関する統計分布に代えて前記URL文字列統計分布蓄積機能が蓄積するURL文字列全体に関する統計分布を参照する機能を有する請求項13記載のプログラム。
  15. 前記不正アクセス判定機能は、設定された閾値をもとに、受信したアクセスデータが統計的に正常であるか異常であるかを評価する機能を有する請求項14記載のプログラム。
  16. 前記パラメータ文字列統計分布蓄積機能は、URL文字列のパス名に付されるパラメータ文字列について、前記パス名を含んだパラメータ文字列で構成される第1の文字列区分を解析した結果の統計分布と、Webサーバ上のプログラムに与えられる文字列全体で構成される第2の文字列区分を解析した結果の統計分布と、Webサーバ上のプログラムの変数で構成される第3の文字列区分を解析した結果の統計分布とをそれぞれ蓄積する機能を有し、
    前記統計分布選択機能は、前記パラメータ文字列統計分布蓄積機能が蓄積する前記各文字列区分の統計分布を対象に、下位の文字列区分の統計分布を優先して選択する機能を有する請求項13記載のプログラム。
  17. 前記パラメータ文字列統計分布蓄積機能は、パラメータ文字列の統計分布として、前記文字列区分のそれぞれについて、文字列区分の長さ、メタキャラクタの数、ドット文字、スラッシュ文字、バイナリ文字の少なくともいずれかを含む特定の1又は複数の文字セットについて、その評価値を蓄積する機能を有する請求項16記載のプログラム。
JP2003176939A 2003-06-20 2003-06-20 不正アクセス検出装置、不正アクセス検出方法およびプログラム Expired - Fee Related JP3790750B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003176939A JP3790750B2 (ja) 2003-06-20 2003-06-20 不正アクセス検出装置、不正アクセス検出方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003176939A JP3790750B2 (ja) 2003-06-20 2003-06-20 不正アクセス検出装置、不正アクセス検出方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2005011234A JP2005011234A (ja) 2005-01-13
JP3790750B2 true JP3790750B2 (ja) 2006-06-28

Family

ID=34099673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003176939A Expired - Fee Related JP3790750B2 (ja) 2003-06-20 2003-06-20 不正アクセス検出装置、不正アクセス検出方法およびプログラム

Country Status (1)

Country Link
JP (1) JP3790750B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4635757B2 (ja) * 2005-07-14 2011-02-23 日本電気株式会社 リンク先へのアクセス制限方法、装置及びプログラム
JP4918805B2 (ja) * 2006-03-31 2012-04-18 富士通株式会社 システム分析プログラム、システム分析方法およびシステム分析装置
JP4905395B2 (ja) * 2008-03-21 2012-03-28 富士通株式会社 通信監視装置、通信監視プログラム、および通信監視方法
JP4992780B2 (ja) * 2008-03-21 2012-08-08 富士通株式会社 通信監視装置、通信監視プログラム、および通信監視方法
JP5655191B2 (ja) * 2011-06-28 2015-01-21 日本電信電話株式会社 特徴情報抽出装置、特徴情報抽出方法および特徴情報抽出プログラム
JP5531064B2 (ja) * 2012-08-10 2014-06-25 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信装置、通信システム、通信方法、および、通信プログラム
JP6033021B2 (ja) * 2012-09-24 2016-11-30 三菱スペース・ソフトウエア株式会社 不正通信検出装置及びサイバー攻撃検出システム及びコンピュータプログラム及び不正通信検出方法
CN103929440B (zh) * 2014-05-09 2017-10-17 国家电网公司 基于web服务器缓存匹配的网页防篡改装置及其方法
WO2018233891A1 (en) * 2017-06-23 2018-12-27 Robert Bosch Gmbh GRAPHIC USER INTERFACE TOOL FOR CONFIGURING AN INTRUSION DETECTION SYSTEM OF A VEHICLE
RU2676021C1 (ru) * 2017-07-17 2018-12-25 Акционерное общество "Лаборатория Касперского" Система и способ определения DDoS-атак
JP6998099B1 (ja) * 2021-08-03 2022-01-18 サイバーマトリックス株式会社 アクセスリクエストの不正を検知する方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342279A (ja) * 2001-03-13 2002-11-29 Fujitsu Ltd フィルタリング装置、フィルタリング方法およびこの方法をコンピュータに実行させるプログラム
JP2002342276A (ja) * 2001-05-17 2002-11-29 Ntt Data Corp ネットワーク侵入検知システムおよびその方法

Also Published As

Publication number Publication date
JP2005011234A (ja) 2005-01-13

Similar Documents

Publication Publication Date Title
US11044264B2 (en) Graph-based detection of lateral movement
CN109951500B (zh) 网络攻击检测方法及装置
JP6703613B2 (ja) データストリームにおける異常検出
US11444969B2 (en) Scoring the performance of security products
US7084760B2 (en) System, method, and program product for managing an intrusion detection system
US8650646B2 (en) System and method for optimization of security traffic monitoring
KR101010302B1 (ko) Irc 및 http 봇넷 보안 관제를 위한 관리 시스템 및 그 방법
JP6201614B2 (ja) ログ分析装置、方法およびプログラム
EP2619958B1 (en) Ip prioritization and scoring method and system for ddos detection and mitigation
KR100910761B1 (ko) 프로세스 행위 예측 기법을 이용한 비정형 악성코드 탐지방법 및 그 시스템
JP2018533897A5 (ja)
US20030084319A1 (en) Node, method and computer readable medium for inserting an intrusion prevention system into a network stack
EP2612481B1 (en) Method and system for classifying traffic
US20030101260A1 (en) Method, computer program element and system for processing alarms triggered by a monitoring system
WO2004021637A1 (en) Threat assessment orchestrator system and method
JP3790750B2 (ja) 不正アクセス検出装置、不正アクセス検出方法およびプログラム
CN111970300A (zh) 一种基于行为检查的网络入侵防御系统
Chyssler et al. Alarm reduction and correlation in intrusion detection systems
Hnamte et al. An extensive survey on intrusion detection systems: Datasets and challenges for modern scenario
Baykara et al. A novel hybrid approach for detection of web-based attacks in intrusion detection systems
KR20020072618A (ko) 네트워크 기반 침입탐지 시스템
KR101078851B1 (ko) 네트워크 기반의 그룹 행위 매트릭스를 사용한 봇넷 그룹 탐지 시스템과 네트워크 기반의 그룹 행위 매트릭스를 사용한 봇넷 그룹 탐지 방법
US20230105021A1 (en) Systems and Methods for Adaptive Network Security Based on Unsupervised Behavioral Modeling
Alampalayam et al. Predictive security model using data mining
JP3822588B2 (ja) 不正アクセス検出装置、不正アクセス検出方法、および管理端末

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060403

R151 Written notification of patent or utility model registration

Ref document number: 3790750

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130407

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140407

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees