(57)【要約】  学習装置（１０）は、サーバへのリクエストに含まれる所定の文字列の構造を抽象化した文字クラス列を生成する。また、学習装置（１０）は、リクエストのうち、学習用のリクエストに含まれる所定の識別情報及び文字クラス列の組み合わせごとの出現頻度をプロファイル（１４）として保存する。また、学習装置（１０）は、リクエストのうち、分析用のリクエストに含まれる所定の識別情報及び文字クラス列の組み合わせをプロファイル（１４）と照合し、異常を検知する。また、学習装置（１０）は、分析用のリクエストの少なくとも一部を選択する。また、学習装置（１０）は、選択されたリクエストを基にプロファイル（１４）を更新する。
2019225251.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される学習方法であって、
サーバへのリクエストに含まれる所定の文字列の構造を抽象化した文字クラス列を生成する生成工程と、
前記リクエストのうち、学習用のリクエストに含まれる所定の識別情報及び前記文字クラス列の組み合わせごとの出現頻度をプロファイルとして保存する保存工程と、
前記リクエストのうち、分析用のリクエストに含まれる前記識別情報及び前記文字クラス列の組み合わせを前記プロファイルと照合し、異常を検知する検知工程と、
前記分析用のリクエストの少なくとも一部を選択する選択工程と、
前記選択工程によって選択されたリクエストを基に前記プロファイルを更新する更新工程と、
を含むことを特徴とする学習方法。
【請求項２】
前記選択工程は、前記検知工程による検知の結果を基に、前記分析用のリクエストのうち異常の度合いが所定値以下であるリクエストを選択することを特徴とする請求項１に記載の学習方法。
【請求項３】
前記選択工程は、前記分析用のリクエストのうち、あらかじめ設定された所定のパターンに合致しないリクエストを選択することを特徴とする請求項１に記載の学習方法。
【請求項４】
前記選択工程は、前記分析用のリクエストのうち、前記識別情報が前記プロファイルに含まれていないリクエストを選択することを特徴とする請求項１に記載の学習方法。
【請求項５】
サーバへのリクエストに含まれる所定の文字列の構造を抽象化した文字クラス列を生成する生成部と、
前記リクエストのうち、学習用のリクエストに含まれる所定の識別情報及び前記文字クラス列の組み合わせごとの出現頻度をプロファイルとして保存する保存部と、
前記リクエストのうち、分析用のリクエストに含まれる前記識別情報及び前記文字クラス列の組み合わせを前記プロファイルと照合し、異常を検知する検知部と、
前記分析用のリクエストの少なくとも一部を選択する選択部と、
前記選択部によって選択されたリクエストを基に前記プロファイルを更新する更新部と、
を有することを特徴とする学習装置。
【請求項６】
コンピュータに、
サーバへのリクエストに含まれる所定の文字列の構造を抽象化した文字クラス列を生成する生成ステップと、
前記リクエストのうち、学習用のリクエストに含まれる所定の識別情報及び前記文字クラス列の組み合わせごとの出現頻度をプロファイルとして保存する保存ステップと、
前記リクエストのうち、分析用のリクエストに含まれる前記識別情報及び前記文字クラス列の組み合わせを前記プロファイルと照合し、異常を検知する検知ステップと、
前記分析用のリクエストの少なくとも一部を選択する選択ステップと、
前記選択ステップによって選択されたリクエストを基に前記プロファイルを更新する更新ステップと、
を実行させることを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習方法、学習装置及び学習プログラムに関する。
【背景技術】
【０００２】
インターネットの普及に伴い、Ｗｅｂサーバに対する攻撃が急増している。攻撃の対策としてＩＤＳ（Intrusion  Detection  System）、ＩＰＳ（Intrusion  Prevention  System）、ＷＡＦ（Web  Application  Firewall）等が知られている。これらの技術では、ブラックリストやシグネチャファイルを用いたパターンで検出を行い、既知の攻撃の検知及び防御を行う。【０００３】
また、未知の攻撃の検出技術として、正常なＷｅｂサーバへのリクエストに含まれる所定の値から抽出した特徴を用いてプロファイルの学習を行い、当該プロファイルを用いて分析対象のリクエストが攻撃によるものであるか否かを判定する技術が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１５／１８６６６２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術には、攻撃を検知するためのプロファイルの学習が不十分になる場合があるという問題がある。例えば、引用文献１に記載の技術では、サーバが提供するＷｅｂアプリケーションにパスやパラメータを追加する変更が行われた場合、変更に追随した学習をすぐに行うことができず、学習が不十分のプロファイルで分析を行うことになる。
【課題を解決するための手段】
【０００６】
本発明の学習方法は、コンピュータによって実行される学習方法であって、サーバへのリクエストに含まれる所定の文字列の構造を抽象化した文字クラス列を生成する生成工程と、前記リクエストのうち、学習用のリクエストに含まれる所定の識別情報及び前記文字クラス列の組み合わせごとの出現頻度をプロファイルとして保存する保存工程と、前記リクエストのうち、分析用のリクエストに含まれる前記識別情報及び前記文字クラス列の組み合わせを前記プロファイルと照合し、異常を検知する検知工程と、前記分析用のリクエストの少なくとも一部を選択する選択工程と、前記選択工程によって選択されたリクエストを基に前記プロファイルを更新する更新工程と、を含むことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、攻撃を検知するためのプロファイルの学習を十分に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態に係る学習装置の構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る学習処理及び検知処理について説明するための図である。
【図３】図３は、第１の実施形態に係る逐次学習処理について説明するための図である。
【図４】図４は、第１の実施形態に係る逐次学習処理について説明するための図である。
【図５】図５は、第１の実施形態に係るプロファイルの一例を示す図である。
【図６】図６は、第１の実施形態に係る文字クラス列を生成する処理について説明するための図である。
【図７】図７は、第１の実施形態に係るプロファイルを更新する処理について説明するための図である。
【図８】図８は、第１の実施形態に係る学習装置の処理の流れを示すフローチャートである。
【図９】図９は、第２の実施形態に係る学習装置の構成の一例を示す図である。
【図１０】図１０は、第２の実施形態に係る逐次学習処理について説明するための図である。
【図１１】図１１は、実施形態に係る学習プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る学習方法、学習装置及び学習プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【００１０】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る学習装置の構成について説明する。図１は、第１の実施形態に係る学習装置の構成の一例を示す図である。学習装置１０は、サーバへのリクエストとの類似度に基づき、当該リクエストが攻撃であるか否かを判定するためのプロファイル１４の学習を行う。また、学習装置１０は、プロファイル１４を用いて攻撃であるリクエストの検知を行う。図１に示すように、学習装置１０は、入力部１１及び制御部１２を有し、検知結果１３及びプロファイル１４を記憶する。
【００１１】
入力部１１は、学習装置１０における学習又は分析のためのデータの入力を受け付ける。入力部１１は、分析対象データ入力部１１１及び学習データ入力部１１２を有する。分析対象データ入力部１１１は、分析対象データ２０１の入力を受け付ける。また、学習データ入力部１１２は、学習データ２０２の入力を受け付ける。
【００１２】
ここで、分析対象データ２０１及び学習データ２０２は、例えば、Ｗｅｂサイトへのアクセスの際に生成されるＨＴＴＰリクエストである。また、学習データ２０２は、攻撃であるか否かがあらかじめ判明しているＨＴＴＰリクエストであってもよい。
【００１３】
制御部１２は、生成部１２１、検知部１２４、保存部１２５及び選択部１２８を有する。また、生成部１２１は、抽出部１２２及び変換部１２３を有する。また、制御部１２は、分析済みデータ１２７及び攻撃パターン情報１２９を有する。
【００１４】
生成部１２１は、サーバへのリクエストに含まれる所定の文字列の構造を抽象化した文字クラス列を生成する。ここで、サーバへのリクエストは、ＨＴＴＰリクエストであるものとする。以降、単にリクエストと記載した場合、ＨＴＴＰリクエストが含まれるものとする。生成部１２１は、抽出部１２２及び変換部１２３の処理によって文字クラス列を生成する。
【００１５】
抽出部１２２は、入力部１１に入力された分析対象データ２０１及び学習データ２０２からパラメータを抽出する。具体的には、抽出部１２２は、各ＨＴＴＰリクエストから、パス、パラメータのキー及びキーに対応するバリューを抽出する。
【００１６】
例えば、学習データ２０２に「http://example.com/index.php?id=03&file=Top001.png」というＵＲＬが含まれている場合、抽出部１２２は、パスとして「/index.php」を抽出し、キーとして「id」及び「file」を抽出し、それぞれのキーに対応するバリューとして、「03」及び「Top001.png」を抽出する。
【００１７】
また、変換部１２３は、抽出部１２２によって抽出されたバリューを文字クラス列に変換する。例えば、変換部１２３は、抽出部１２２によって抽出されたバリューである「03」及び「Top001.png」を文字クラス列に変換する。
【００１８】
変換部１２３は、例えば、バリューの数字で構成される部分を「numeric」、アルファベットで構成される部分を「alpha」、記号で構成される部分を「symbol」に置き換えることで文字クラス列への変換を行う。変換部１２３は、例えば、バリュー「03」を文字クラス列「(numeric)」に変換する。また、変換部１２３は、例えば、バリュー「Top001.png」を文字クラス列「(alpha,  numeric,  symbol,  alpha)」に変換する。
【００１９】
検知部１２４は、リクエストのうち、分析用のリクエストに含まれる所定の識別情報及び文字クラス列の組み合わせをプロファイル１４と照合し、異常を検知する。また、本実施形態において、所定の識別情報は、抽出部１２２によって抽出されたパス及びキーの組み合わせである。
【００２０】
具体的には、検知部１２４は、変換部１２３等から受け取ったパス、キー及び文字クラス列と、プロファイル１４との類似度を計算し、計算した類似度を閾値と比較すること等により攻撃の検知を行う。例えば、検知部１２４は、ある分析対象データ２０１のパス、キー及び文字クラス列と、プロファイル１４との類似度が閾値以下である場合、当該分析対象データ２０１を攻撃として検知する。また、検知部１２４は、検知結果１３を出力する。
【００２１】
保存部１２５は、リクエストのうち、学習用のリクエストに含まれる所定の識別情報及び文字クラス列の組み合わせごとの出現頻度をプロファイル１４として保存する。具体的には、保存部１２５は、変換部１２３から受け取ったパス、キー及び文字クラス列をプロファイル１４として保存する。この時、パス及びキーに対応する文字クラス列が複数ある場合、例えば当該複数の文字クラス列を出現頻度とともにプロファイル１４として保存する。
【００２２】
ここで、図２を用いて、学習装置１０によって行われる学習処理及び検知処理について説明する。図２は、第１の実施形態に係る学習処理及び検知処理について説明するための図である。
【００２３】
まず、学習データ２０２には、ＵＲＬ「http://example.com/index.php?file=Img.jpg」、「http://example.com/index.php?file=Test.png」及び「http://example.com/index.php?file=Top001.png」が含まれているとする。また、分析対象データ２０１には、ＵＲＬ「http://example.com/index.php?file=Test011.jpg」及び「http://example.com/index.php?file=Test_011.jpg' or '1'='1」が含まれているとする。
【００２４】
このとき、抽出部１２２は、学習データ２０２から、バリュー「Img.jpg」、「Test.png」及び「Top001.png」を抽出する。また、抽出部１２２は、分析対象データ２０１から、バリュー「Test011.jpg」及び「Test_011.jpg' or '1'='1」を抽出する。
【００２５】
次に、図２に示すように、変換部１２３は、バリュー「Img.jpg」、「Test.png」及び「Top001.png」をそれぞれ、文字クラス列「(alpha,  symbol,  alpha)」、「(alpha,  symbol,  alpha)」及び「(alpha,  numeric,  symbol,  alpha)」に変換する。
【００２６】
また、変換部１２３は、バリュー「Test011.jpg」及び「Test_011.jpg' or '1'='1」を、それぞれ文字クラス列「(alpha,  numeric,  symbol,  alpha)」及び「(alpha,  symbol,  numeric,  symbol,  alpha,  symbol,  space,  alpha,  space,  symbol,  numeric,  symbol,  numeric)」に変換する。
【００２７】
ここで、alphaは英字全体を、numericは数字全体を、symbolは記号全体を、spaceは空白文字を表す文字クラスであるとする。文字クラスの定義はあらかじめ与えられているものとし、ここで例示したalpha、numeric、symbol、space以外の文字クラスが定義されていてもよい。
【００２８】
次に、検知部１２４は、分析対象データ２０１からの文字クラス列「(alpha,  numeric,  symbol,  alpha)」及び「(alpha,  symbol,  numeric,  symbol,  alpha,  symbol,  space,  alpha,  space,  symbol,  numeric,  symbol,  numeric)」に対応するパスとキーを組み合わせたデータとプロファイル１４との類似度を計算し、攻撃の検知を行う。
【００２９】
また、保存部１２５は、学習データ２０２に含まれるＵＲＬのパス、キー及び文字クラス列の組み合わせを、それぞれの出現頻度とともにプロファイル１４に保存する。例えば、保存部１２５は、(alpha,  symbol,  alpha)  出現頻度２、(alpha,  numeric,  symbol,  alpha)  出現頻度１を、対応するパス及びキーとともにプロファイル１４に保存する。
【００３０】
ここまで、学習処理及び検知処理について説明した。本実施形態において、プロファイル１４は、保存部１２５によって保存された後、さらに更新部１２６によって更新される。このとき、更新部１２６は、検知部１２４による検知に用いられた分析対象データ２０１の少なくとも一部を用いてプロファイル１４の更新を行う。その際、プロファイル１４の更新に用いられる分析対象データ２０１は、選択部１２８によって選択される。なお、以降の説明では、更新部１２６によるプロファイル１４の更新を、逐次学習と呼ぶ場合がある。
【００３１】
選択部１２８は、分析用のリクエストの少なくとも一部を選択する。具体的には、選択部１２８は、検知部１２４による検知に用いられた分析対象データ２０１の全てを選択してもよいし、一部を選択してもよい。また、分析済みデータ１２７は、検知部１２４による検知に用いられた分析対象データ２０１である。また、選択部１２８は、選択した分析済みデータ１２７を学習データ入力部１１２に入力する。
【００３２】
選択部１２８は、任意の方法を用いて分析対象データ２０１を選択することができる。ここでは、例として、検知の結果を用いて選択する方法及び攻撃パターンを用いて選択する方法について説明する。
【００３３】
（検知の結果を用いて選択する方法）
まず、図３を用いて、検知の結果を用いて選択する方法について説明する。図３は、第１の実施形態に係る逐次学習処理について説明するための図である。この場合、選択部１２８は、検知部１２４による検知の結果を基に、分析用のリクエストのうち異常の度合いが所定値以下であるリクエストを選択する。
【００３４】
ここで、検知部１２４は、検知の際に、各リクエストの異常度合いを示すスコアを算出するものとする。スコアは、０．０〜１．０の範囲であり、小さいほどリクエストの異常の度合いが大きいことを示すものとする。検知部１２４は、スコアが０．３以下であったリクエストを、検知結果１３に含めるものとする。つまり、検知結果１３には、異常の度合いが高いとみなされたリクエストが含まれることになる。
【００３５】
図３の例では、検知部１２４は、分析済みデータ１２７のＨＴＴＰリクエスト「GET /index.php?id=%27%201%3D1」のスコアを０．０と算出している。ここで、選択部１２８は、分析済みデータ１２７と検知結果１３とを比較し、一致するものは除外する。つまり、選択部１２８は、分析済みデータ１２７のうち、検知結果１３に含まれていないものを選択する。
【００３６】
なお、選択部１２８は、分析済みデータ１２７のうち、検知結果１３のスコアがある閾値未満のものを除外してもよい。こうすることで、より強く攻撃が疑われるデータのみを逐次学習の対象外とすることができる。
【００３７】
（攻撃パターンを用いて選択する方法）
次に、図４を用いて、攻撃パターンを用いて選択する方法について説明する。図４は、第１の実施形態に係る逐次学習処理について説明するための図である。この場合、選択部１２８は、分析用のリクエストのうち、あらかじめ設定された所定のパターンに合致しないリクエストを選択する。
【００３８】
図４の例では、攻撃パターン情報１２９があらかじめ設定されているものとする。攻撃パターン情報１２９には、既知の攻撃の種類ごとの、リクエストに出現する文字列の正規表現が攻撃パターンとして記憶されている。選択部１２８は、分析済みデータ１２７のリクエストのうち、攻撃パターン情報１２９にマッチするものを除外する。つまり、選択部１２８は、分析済みデータ１２７のうち、攻撃パターン情報１２９にマッチしないものを選択する。
【００３９】
なお、攻撃パターン情報１２９は、Ｗｅｂ上の情報や市販ＷＡＦ（Web  Application  Firewall）のシグネチャを参考として作成した代表的な攻撃例であってもよいし、検知結果１３を基に作成したものであってもよい。
【００４０】
更新部１２６は、選択部１２８によって選択されたリクエストを基にプロファイル１４を更新する。逐次学習におけるプロファイル１４の更新は、プロファイル１４の保存と同様に、リクエストから生成した文字クラス列を用いて行われる。
【００４１】
ここで、図５から７を用いて、プロファイルの更新について説明する。図５は、第１の実施形態に係るプロファイルの一例を示す図である。図６は、第１の実施形態に係る文字クラス列を生成する処理について説明するための図である。図７は、第１の実施形態に係るプロファイルを更新する処理について説明するための図である。
【００４２】
まず、図５に示すように、プロファイル１４には、パス、キー、文字クラス列及び出現頻度が含まれる。ここで、プロファイル１４の各行、すなわちパス、キー、文字クラス列の組み合わせをフィールドと呼ぶこととする。プロファイル１４の出現頻度は、学習処理における、各フィールドの出現頻度である。例えば、図２の学習処理では、パスが「/index.php」、キーが「file」、文字クラス列が「（alpha,  symbol,  alpha）」であるフィールドの出現頻度が増加する。
【００４３】
図６に示すように、生成部１２１は、選択部１２８によって選択され、学習データ入力部１１２に入力された分析済みデータ１２７のＨＴＴＰリクエストをパス、キー、バリューにパースし、バリューから文字クラス列を生成する。
【００４４】
そして、図７に示すように、更新部１２６は、生成部１２１によって生成されたパス、キー、文字クラス列の組み合わせと一致するフィールドの出現頻度を、当該組み合わせの個数の分だけ増加させる。また、更新部１２６は、生成部１２１によって生成されたパス、キー、文字クラス列の組み合わせと一致するフィールドがプロファイル１４に存在しない場合、当該組み合わせを新たなフィールドとしてプロファイル１４に追加する。
【００４５】
［第１の実施形態の処理］
図８を用いて、学習装置１０の処理の流れについて説明する。図８は、第１の実施形態に係る学習装置の処理の流れを示すフローチャートである。図８に示すように、まず、学習装置１０は、分析対象データ２０１から文字クラス列を生成する（ステップＳ１０１）。次に、学習装置１０は、生成した文字クラス列を基に、プロファイル１４を用いて異常の検知を行う（ステップＳ１０２）。
【００４６】
その後、学習装置１０は、検知に用いた分析済みデータ１２７の少なくとも一部を、分析選択する（ステップＳ１０３）。そして、学習装置１０は、選択した分析済みデータ１２７を用いてプロファイル１４を更新する（ステップＳ１０４）。
【００４７】
［第１の実施形態の効果］
学習装置１０は、サーバへのリクエストに含まれる所定の文字列の構造を抽象化した文字クラス列を生成する。また、学習装置１０は、リクエストのうち、学習用のリクエストに含まれる所定の識別情報及び文字クラス列の組み合わせごとの出現頻度をプロファイル１４として保存する。また、学習装置１０は、リクエストのうち、分析用のリクエストに含まれる所定の識別情報及び文字クラス列の組み合わせをプロファイル１４と照合し、異常を検知する。また、学習装置１０は、分析用のリクエストの少なくとも一部を選択する。また、学習装置１０は、選択されたリクエストを基にプロファイル１４を更新する。
【００４８】
このように、分析したデータを使ってプロファイルを更新することで、分析対象サービスの仕様変更等によるパスやパラメータの変更に追随することができる。また、初期学習が不十分であっても、繰り返しプロファイルを更新していくことができるため、運用していく中で分析精度が向上する。このため、本実施形態によれば、攻撃を検知するためのプロファイルの学習を十分に行うことができる。
【００４９】
学習装置１０は、検知の結果を基に、分析用のリクエストのうち異常の度合いが所定値以下であるリクエストを選択することができる。これにより、異常であることが疑われる分析データを逐次学習の対象から除外できるので、異常なデータを正常なものとして学習することを防止できる。
【００５０】
選択部１２８は、分析用のリクエストのうち、あらかじめ設定された所定のパターンに合致しないリクエストを選択することができる。これにより、異常であることが既知の分析データを逐次学習の対象から除外できるので、異常なデータを正常なものとして学習することを防止できる。
【００５１】
［第２の実施形態］
第１の実施形態では、分析済みデータ１２７のパラメータが学習済みであるか否かにかかわらず、学習装置１０は、所定のルールに基づいて分析済みデータ１２７の中から逐次学習の対象となるデータを選択していた。一方で、第２の実施形態では、学習装置１０は、未学習のパラメータを有する分析済みデータ１２７を逐次学習の対象として選択する。
【００５２】
図９は、第２の実施形態に係る学習装置の構成の一例を示す図である。図９に示すように、第２の実施形態において、学習装置１０は、未学習パラメータ情報１３０を有する。なお、第２の実施形態では、第１の実施形態と同様の構成については同一の符号を付して、説明を省略する。
【００５３】
未学習パラメータ情報１３０は、プロファイル１４に含まれていない識別情報であって、例えば検知部１２４において変換後の分析対象データとプロファイルを比較する際に生成される。ここで、識別情報とは、リクエストのパス及びキーの組み合わせである。この場合、検知部１２４は、検知を行う際に、分析対象のリクエストのパス及びキーの組み合わせのうち、プロファイル１４に含まれていない組み合わせを、未学習パラメータ情報１３０に追加していくことができる。このため、選択部１２８は、分析用のリクエストのうち、識別情報がプロファイル１４に含まれていないリクエストを選択することになる。これにより、効率的にプロファイル１４の更新を行うことができる。
【００５４】
選択部１２８は、分析済みデータ１２７のうち、識別情報が未学習パラメータ情報１３０にマッチするものを選択する。図１０は、第２の実施形態に係る逐次学習処理について説明するための図である。図１０の例において、ＨＴＴＰリクエスト「GET /newpath?key1=data1」の識別情報は、「/newpath」及び「key1」である。ここで、「/newpath」及び「key1」の組み合わせは、未学習パラメータ情報１３０に存在するので、選択部１２８は、ＨＴＴＰリクエスト「GET /newpath?key1=data1」を逐次学習の対象として選択する。
【００５５】
なお、選択部１２８は、未学習パラメータ情報１３０に識別情報がマッチするデータをすぐに選択してもよいし、ある一定期間にわたってマッチした回数がある閾値以上となった未学習パラメータ情報１３０を選択の際に参照するようにしてもよい。これにより、例えば、ユーザの入力誤り等で一時的に発生した未学習パラメータを無視することができる。
【００５６】
［その他の実施形態］
なお、実施形態では、プロファイル１４を表形式で表しているが、プロファイル１４のデータの記憶形式としては表形式の他、ＪＳＯＮ（JavaScript（登録商標）  Object  Notation）形式やMySQL、PostgreSQL等のデータベースを用いて記憶してもよい。また、分析対象データ２０１、学習データ２０２、分析済みデータ１２７は、いずれもＨＴＴＰリクエストを複数含むデータであり、例えばＷｅｂサーバのアクセスログやアクセスログをパース又は変換したＪＳＯＮ形式のデータであってもよい。
【００５７】
また、説明した選択部１２８による逐次学習対象のデータの選択方法は、単独で用いられてもよいし、適宜組み合わせて用いられてもよい。例えば、選択部１２８は、異常の度合いが所定値以下、かつ、攻撃パターン情報１２９にマッチしないリクエストを選択することができる。また、例えば、選択部１２８は、攻撃パターン情報１２９にマッチせず、かつ、未学習パラメータ情報１３０にマッチするリクエストを選択することができる。
【００５８】
［プログラム］
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を学習装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００５９】
また、学習装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習に関するサービスを提供する学習サーバ装置として実装することもできる。例えば、学習サーバ装置は、更新前のプロファイル及び分析対象のＨＴＴＰリクエストを入力とし、更新済みのプロファイルを出力とする学習サービスを提供するサーバ装置として実装される。この場合、学習サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００６０】
図１１は、実施形態に係る学習プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００６２】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、学習装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、学習装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００６３】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００６４】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６５】
１０  学習装置
１１  入力部
１２  制御部
１３  検知結果
１４  プロファイル
１１１  分析対象データ入力部
１１２  学習データ入力部
１２１  生成部
１２２  抽出部
１２３  変換部
１２４  検知部
１２５  保存部
１２６  更新部
１２７  分析済みデータ
１２８  選択部
１２９  攻撃パターン情報
１３０  未学習パラメータ情報
２０１  分析対象データ
２０２  学習データ
【図１】
2019225251.tif 000003
【図２】
2019225251.tif 000004
【図３】
2019225251.tif 000005
【図４】
2019225251.tif 000006
【図５】
2019225251.tif 000007
【図６】
2019225251.tif 000008
【図７】
2019225251.tif 000009
【図８】
2019225251.tif 000010
【図９】
2019225251.tif 000011
【図１０】
2019225251.tif 000012
【図１１】
2019225251.tif 000013
【国際調査報告】
2019225251.tif 000014
2019225251.tif 000015