(57)【要約】  不正アクセス検知装置（５０）の検知部（５１）は、リクエスト取得部（３１）が取得した、ユーザによって操作される端末からサービスを提供するサービスサーバ（１０）へ送信されるリクエストに関する情報と、クエリ取得部（４１）が取得した、サービスサーバ（１０）からサービスに関する情報を蓄積するＤＢ（２０）へ送信されるクエリに関する情報と、の関連が正常パターンと異なる場合に、クエリをＤＢ（２０）に対する不正アクセスとして検知する。
2016006520.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第１の要求に関する第１の要求情報を取得する第１の取得部と、
前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第２の要求に関する第２の要求情報を取得する第２の取得部と、
前記第１の要求情報と前記第２の要求情報との関連が正常パターンと異なる場合に、前記第２の要求を前記蓄積装置に対する不正アクセスとして検知する検知部と
を備えることを特徴とする検知装置。
【請求項２】
前記第１の取得部は、前記第１の要求情報として、前記第１の要求が前記サービスサーバに受信された第１の受信時刻を取得し、
前記第２の取得部は、前記第２の要求情報として、前記第２の要求が前記蓄積装置に受信された第２の受信時刻を取得し、
前記検知部は、前記第１の受信時刻と前記第２の受信時刻とを比較し、当該第２の受信時刻から所定時間前までの間に当該第１の受信時刻が含まれなければ、前記正常パターンと異なるものとして、当該第２の受信時刻に対応する前記第２の要求を前記不正アクセスとして検知することを特徴とする請求項１に記載の検知装置。
【請求項３】
前記検知部は、所定期間に受信された前記第１の要求の数と前記第２の要求の数とをそれぞれ計数し、前記第１の要求の数に対する前記第２の要求の数の比率が所定の閾値を超えていれば、前記正常パターンと異なるものとして、当該第２の要求を前記不正アクセスとして検知することを特徴とする請求項１に記載の検知装置。
【請求項４】
前記第１の要求の本文のパターンと、当該第１の要求が前記サービスサーバに受信された場合に送信される前記第２の要求の本文のパターンとが対応づけられた情報を記憶する記憶部を更に備え、
前記第１の取得部は、前記第１の受信時刻を取得するとともに、前記第１の要求の本文を取得し、
前記第２の取得部は、前記第２の受信時刻を取得するとともに、前記第２の要求の本文を取得し、
前記検知部は、前記記憶部を参照し、前記第２の取得部によって取得された第２の要求の本文のパターンに対応する本文のパターンの第１の要求が、当該第２の要求の受信時刻から所定時間前までの間に受信されていなければ、前記正常パターンと異なるものとして、当該第２の要求を前記不正アクセスとして検知することを特徴とする請求項２に記載の検知装置。
【請求項５】
前記第１の要求の本文のパターンと、当該第１の要求が前記サービスサーバに受信された場合に送信される前記第２の要求の本文のパターンと、閾値とが対応づけられた情報を記憶する記憶部を更に備え、
前記第１の取得部は、前記第１の受信時刻を取得するとともに、前記第１の要求の本文を取得し、
前記第２の取得部は、前記第２の受信時刻を取得するとともに、前記第２の要求の本文を取得し、
前記検知部は、前記記憶部を参照し、所定期間に受信された所定の本文のパターンの第２の要求の数と、当該所定期間に受信された当該所定の本文のパターンに対応する第１の要求の数とをそれぞれ計数し、当該第１の要求の数に対する当該第２の要求の数の比率が当該所定の本文のパターンに対応する閾値を超えていれば、前記正常パターンと異なるものとして、当該第２の要求を前記不正アクセスとして検知することを特徴とする請求項３に記載の検知装置。
【請求項６】
前記第１の取得部は、前記第１の受信時刻を取得するとともに、前記第１の要求の本文を取得し、
前記第２の取得部は、前記第２の受信時刻を取得するとともに、前記第２の要求の本文を取得し、
前記検知部は、前記サービスサーバに接続している前記端末を識別する接続情報を前記第２の要求に含まれる前記ユーザの情報から特定し、特定した接続情報を含む第１の要求が、当該第２の要求の受信時刻から所定時間前までの間に受信されていなければ、前記正常パターンと異なるものとして、当該第２の要求を前記不正アクセスとして検知することを特徴とする請求項２に記載の検知装置。
【請求項７】
検知装置によって実行される検知方法であって、
ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第１の要求に関する第１の要求情報を取得する第１の取得工程と、
前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第２の要求に関する第２の要求情報を取得する第２の取得工程と、
前記第１の要求情報と前記第２の要求情報との関連が正常パターンと異なる場合に、前記第２の要求を前記蓄積装置に対する不正アクセスとして検知する検知工程と
を含んだことを特徴とする検知方法。
【請求項８】
ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第１の要求に関する第１の要求情報を取得する第１の取得ステップと、
前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第２の要求に関する第２の要求情報を取得する第２の取得ステップと、
前記第１の要求情報と前記第２の要求情報との関連が正常パターンと異なる場合に、前記第２の要求を前記蓄積装置に対する不正アクセスとして検知する検知ステップと
をコンピュータに実行させることを特徴とする検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知装置、検知方法及び検知プログラムに関する。
【背景技術】
【０００２】
従来、ウェブアプリケーションの脆弱性を悪用した攻撃からウェブアプリケーションを保護するセキュリティ対策の一つとして、ＷＡＦ（Web  Application  Firewall）が導入されている。ＷＡＦは、クライアントとサーバの間に配置され、既知の不正アクセスのシグネチャを保持する。そして、ＷＡＦは、クライアントから送信されるリクエストをサーバに中継する際に、シグネチャにマッチするリクエストを遮断することで、サーバに対する攻撃を防ぐ。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｉｒｅｗａｌｌ（ＷＡＦ）読本」、［平成２６年６月２４日検索］、インターネット＜URL:http://www.ipa.go.jp/security/vuln/waf.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、サーバへの未知なる不正アクセスを検知することができないという問題があった。例えば、上記のＷＡＦでは、既知の不正アクセスのシグネチャを保持する必要があるため、まだ世に知られていない脆弱性を突く攻撃（ゼロデイ攻撃）に対応できなかった。このような攻撃が行われると、サーバが攻撃者に乗っ取られ、遠隔操作されることがある。サーバはデータベースへのアクセス権を持つため、攻撃者がサーバを遠隔操作し、データベースにアクセスすることで、データベースのデータが漏えい、改ざんされる恐れがあった。【０００５】
そこで、この発明は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、開示の検知装置は、ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第１の要求に関する第１の要求情報を取得する第１の取得部と、前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第２の要求に関する第２の要求情報を取得する第２の取得部と、前記第１の要求情報と前記第２の要求情報との関連が正常パターンと異なる場合に、前記第２の要求を前記蓄積装置に対する不正アクセスとして検知する検知部とを備えることを特徴とする。
【発明の効果】
【０００７】
本願に開示する実施形態によれば、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。
【図２】図２は、第１の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【図３】図３は、第１の実施形態に係る不正アクセス検知装置による効果を説明するための図である。
【図４】図４は、第２の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【図５】図５は、第３の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。
【図６】図６は、第３の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。
【図７】図７は、第３の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【図８】図８は、第４の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。
【図９】図９は、第４の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【図１０】図１０は、第５の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。
【図１１】図１１は、第５の実施形態に係るセッション情報ＤＢに記憶される情報の一例を示す図である。
【図１２】図１２は、第５の実施形態に係るクエリパターン記憶部に記憶される情報の一例を示す図である。
【図１３】図１３は、第５の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【図１４】図１４は、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。
【図１５Ａ】図１５Ａは、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。
【図１５Ｂ】図１５Ｂは、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。
【図１６】図１６は、検知プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る検知装置、検知方法及び検知プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る検知装置、検知方法及び検知プログラムが限定されるものではない。
【００１０】
［第１の実施形態］
以下、第１の実施形態では、実施形態に係る不正アクセス検知装置の構成及び処理の流れを順に説明し、その後、不正アクセス検知装置による効果を説明する。
【００１１】
まず、図１を用いて、不正アクセス検知装置の構成を説明する。図１は、第１の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。図１に示すように、このシステムは、サービスサーバ１０、ＤＢ（Database）２０、ログ取得装置３０，４０、及び不正アクセス検知装置５０を備える。以下に、これらの各部の処理を説明する。
【００１２】
サービスサーバ１０は、例えば、各種のネットワークサービス（以下、単にサービスとも表記する）を提供するウェブ・アプリケーションサーバである。例えば、サービスサーバ１０は、ユーザによって操作される端末（図示せず）からインターネット５を経由してリクエストを受信する。このリクエストは、例えば、ＨＴＴＰ（Hypertext  Transfer  Protocol）リクエストやＨＴＴＰＳ（Hypertext  Transfer  Protocol  Secure）リクエストである。サービスサーバ１０は、受信したリクエストに応じて情報処理を行い、端末へ応答する。
【００１３】
また、サービスサーバ１０は、端末へ応答する際に、必要に応じて、データの検索や更新、削除等を要求するためのクエリを発行し、ＤＢ２０へ送信する。そして、サービスサーバ１０は、クエリの実行結果をＤＢ２０から受信して、端末へ応答する。
【００１４】
ＤＢ２０は、サービスサーバ１０によって提供されるサービスに関する情報を蓄積する。例えば、ＤＢ２０は、サービスサーバ１０からクエリを受信して、クエリに記述された処理を実行する。そして、ＤＢ２０は、クエリの実行結果をサービスサーバ１０へ送信する。なお、ＤＢ２０に保持される情報は、ＳＱＬ形式に限らず、ＫＶＳ（Key-Value  Store）形式で管理されても良い。この場合、サービスサーバ１０からＤＢ２０へ送信される要求は、クエリではなくＫＶＳ形式で記述される。また、ＤＢ２０は、蓄積装置の一例である。
【００１５】
ログ取得装置３０，４０は、通信に関するログを取得し、記録する。例えば、ログ取得装置３０は、サービスサーバ１０がインターネット５を経由してやり取りされる通信のログを取得し、記録する。また、ログ取得装置４０は、サービスサーバ１０とＤＢ２０との間でやり取りされる通信のログを取得し、記録する。なお、ログ取得装置３０，４０は、例えば、ＮＴＰ（Network  Time  Protocol）等によって時刻の同期が行われている。また、リクエストとしてＨＴＴＰＳリクエストが用いられる場合には、リクエストの本文が暗号化されることになるが、ログ取得装置３０をサービスサーバ１０のリバースプロキシとすることで、ログ取得装置３０側でリクエストを復号化することができるので、リクエスト情報を不正アクセス検知装置５０に送信可能となる。
【００１６】
また、ログ取得装置３０は、リクエスト取得部３１を備え、ログ取得装置４０は、クエリ取得部４１を備える。
【００１７】
リクエスト取得部３１は、端末からサービスサーバ１０へ送信されるリクエストに関する情報であるリクエスト情報を取得する。そして、リクエスト取得部３１は、取得したリクエスト情報を不正アクセス検知装置５０へ送信する。不正アクセス検知装置５０へ送信されたリクエスト情報は、不正アクセス検知装置５０内部の所定の記憶部（図示せず）に記録される。なお、リクエスト取得部３１は、第１の取得部の一例である。
【００１８】
例えば、リクエスト取得部３１は、リクエスト情報として、少なくとも、リクエストがサービスサーバ１０に受信された受信時刻を取得する。そして、リクエスト取得部３１は、受信時刻を取得するごとに、取得した受信時刻を不正アクセス検知装置５０へ送信し、記憶部に記録させる。なお、リクエスト取得部３１は、リクエストの受信時刻に限らず、リクエストの本文や送信元ユーザのＩＰ（Internet  Protocol）アドレスを取得し、不正アクセス検知装置５０へ送信しても良い。
【００１９】
クエリ取得部４１は、サービスサーバ１０からＤＢ２０へ送信されるクエリに関する情報であるクエリ情報を取得する。そして、クエリ取得部４１は、取得したクエリ情報を不正アクセス検知装置５０へ送信する。不正アクセス検知装置５０へ送信されたクエリ情報は、不正アクセス検知装置５０内部の所定の記憶部（図示せず）に記録される。なお、クエリ取得部４１は、第２の取得部の一例である。
【００２０】
例えば、クエリ取得部４１は、クエリ情報として、少なくとも、クエリがＤＢ２０に受信された受信時刻を取得する。そして、クエリ取得部４１は、受信時刻を取得するごとに、取得した受信時刻を不正アクセス検知装置５０へ送信し、記憶部に記録させる。なお、クエリ取得部４１は、クエリの受信時刻に限らず、クエリの本文や送信元サーバのＩＰアドレスを取得し、不正アクセス検知装置５０へ送信しても良い。
【００２１】
不正アクセス検知装置５０は、不正アクセスを検知する。例えば、不正アクセス検知装置５０は、インターネット５からＤＢ２０までの間でやり取りされる情報を監視して、ＤＢ２０に対する不正アクセスを検知する。不正アクセス検知装置５０は、検知部５１を備える。
【００２２】
検知部５１は、リクエスト情報とクエリ情報との関連が正常パターンと異なる場合に、そのクエリをＤＢ２０に対する不正アクセスとして検知する。例えば、検知部５１は、リクエストの受信時刻とクエリの受信時刻とを比較し、クエリの受信時刻から所定時間前までの間にリクエストが受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
【００２３】
ここで、上記のように不正アクセスを検知するのは、リクエスト情報とクエリ情報との関連として、サービスサーバ１０によってクエリが発行される前にリクエストがサービスサーバ１０に受信されているという正常パターンがあるからである。言い換えると、このリクエストが受信されていないにもかかわらず、クエリがＤＢ２０に受信されている場合には、そのクエリは不正アクセスと考えられる。例えば、リクエスト受信からクエリ送信までの平均時間が０．１秒であるサービスサーバ１０であれば、クエリの受信時刻の１秒前からクエリの受信時刻までの１秒間にリクエストが受信されているのが正常パターンである。この場合、検知部５１は、クエリの受信時刻から１秒前までの間にリクエストが受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。なお、ここでは所定時間が１秒である場合を説明したが、この値は、サービスサーバ１０等の性能（若しくはＤＢ２０の負荷状況、ネットワークの輻輳状況等）に応じて不正アクセス検知装置５０の管理者が任意に設定可能である。
【００２４】
次に、図２を用いて、不正アクセス検知装置５０における処理の流れを説明する。図２は、第１の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【００２５】
図２に示すように、不正アクセス検知装置５０の検知部５１は、処理タイミングになると（ステップＳ１０１Ｙｅｓ）、処理を開始する。例えば、検知部５１は、ログ取得装置４０からクエリを取得したことを契機として、処理を開始する。なお、処理タイミングになるまで（ステップＳ１０１Ｎｏ）、検知部５１は、待機状態である。
【００２６】
続いて、検知部５１は、クエリの受信時刻から所定時間前までの間にリクエストが受信されたか否かを判定する（ステップＳ１０２）。例えば、検知部５１は、ＤＢ２０に受信されたクエリの受信時刻が８時２２分１０秒であれば、８時２２分９秒から１０秒までの間に、サービスサーバ１０にリクエストが受信されていたか否かを判定する。ここで、クエリの受信時刻から所定時間前までの間にリクエストが受信されていた場合には（ステップＳ１０２Ｙｅｓ）、検知部５１は、そのクエリが不正アクセスではないと判定する（ステップＳ１０３）。
【００２７】
一方、クエリの受信時刻から所定時間前までの間にリクエストが受信されていなかった場合には（ステップＳ１０２Ｎｏ）、検知部５１は、そのクエリが不正アクセスであると判定する（ステップＳ１０４）。
【００２８】
なお、図２の例は一例に過ぎない。例えば、検知部５１は、所定の間隔（例えば、１秒間隔）で図２の処理を開始しても良い。この場合、前回の処理終了後から現在（今回の処理開始時点）までに取得した全てのクエリについて、上記の処理（ステップＳ１０２〜Ｓ１０４）が実行される。
【００２９】
第１の実施形態に係る不正アクセス検知装置５０は、端末からサービスサーバ１０へ送信されるリクエストに関するリクエスト情報を取得する。そして、不正アクセス検知装置５０は、サービスサーバ１０からＤＢ２０へ送信されるクエリに関するクエリ情報を取得する。そして、不正アクセス検知装置５０は、リクエスト情報とクエリ情報との関連が、クエリが発行されるリクエストの正常パターンと異なる場合に、そのクエリをＤＢ２０に対する不正アクセスとして検知する。このため、不正アクセス検知装置５０は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができる。
【００３０】
図３は、第１の実施形態に係る不正アクセス検知装置による効果を説明するための図である。図３に示すように、ゼロデイ攻撃によりサーバの遠隔操作に成功した攻撃者は、サービスサーバ１０を遠隔操作して（１）、ＤＢ２０へクエリを発行させることで（２）、ＤＢ２０に記憶されている情報を収集・改ざんする。ここで、通常であれば、ユーザは、サービスサーバ１０に対してリクエストを送信し（３）、ＤＢ２０へクエリが発行されることで（４）、ＤＢ２０に記憶されている情報にアクセスする。第１の実施形態に係る不正アクセス検知装置５０は、この通常時のリクエストとクエリとの関連、すなわち正常パターンに基づいて、そのクエリが正常なものか否かを判定する。このため、不正アクセス検知装置５０は、ゼロデイ攻撃に対しても対処することが可能となる。例えば、ＷＡＦを通過した攻撃者がサービスサーバ１０に不正なクエリを発行させたとしても、そのクエリがユーザからのリクエストに基づかないものであれば、不正アクセスとして検知することができる。また、検知時刻周辺のアクセスログを公知の手段で自動的／手動的に調査することにより、攻撃者を特定することも可能となる。
【００３１】
また、例えば、第１の実施形態に係る不正アクセス検知装置５０は、リクエスト情報及びクエリ情報を、サービスサーバ１０とは異なる個別のログ取得装置３０，４０から取得する。これによれば、仮にサービスサーバ１０が未知の攻撃者によって乗っ取られた場合にも、リクエスト情報及びクエリ情報を取得できるので、不正アクセスを検知することが可能となる。
【００３２】
［第２の実施形態］
上記の第１の実施形態では、クエリの受信時刻から所定時間前までの間にリクエストが受信されているという正常パターンに基づいて、不正アクセスを検知する場合を説明したが、実施形態はこれに限定されるものではない。例えば、不正アクセス検知装置５０が適用されるシステムによっては、所定期間におけるリクエストの数に対するクエリの数の比率がほぼ一定であるというパターンを有する場合がある。このようなシステムに不正アクセス検知装置５０が適用される場合には、不正アクセス検知装置５０は、このパターンを正常パターンとして、不正アクセスを検知しても良い。そこで、第２の実施形態では、不正アクセス検知装置５０が、所定期間におけるリクエストの数に対するクエリの数の比率が閾値を超えていれば、それらのクエリを不正アクセスとして検知する場合を説明する。
【００３３】
第２の実施形態に係る不正アクセス検知装置５０は、図１に示した不正アクセス検知装置５０と同様の構成を備えるが、検知部５１における処理の一部が相違する。なお、第２の実施形態では、第１の実施形態と相違する点を中心に説明することとし、第１の実施形態において説明した構成と同様の機能を有する点については、説明を省略する。
【００３４】
第２の実施形態に係る検知部５１は、所定期間に受信されたリクエストの数とクエリの数とをそれぞれ計数し、リクエストの数に対するクエリの数の比率が所定の閾値を超えていれば、正常パターンと異なるものとして、それらのクエリを不正アクセスとして検知する。
【００３５】
ここで、上記のように不正アクセスを検知するのは、システムによっては、リクエスト情報とクエリ情報との関連として、所定期間におけるリクエストの数に対するクエリの数の比率（以下、クエリ発行率とも表記する）がほぼ一定であるという正常パターンがあるからである。言い換えると、同一の期間におけるリクエストの数に対してクエリの数が多すぎる場合には、それらのクエリの中に不正アクセスが含まれると考えられる。例えば、クエリ発行率が０．１程度（１０個のリクエストに対して１個のクエリが発行される）であるサービスサーバ１０において、クエリ発行率が０．３程度に増加した期間があれば、検知部５１は、正常パターンと異なるものとして、その期間に発行されたクエリの中に不正アクセスによるものが存在したと検知する。なお、ここでは閾値が０．３である場合を説明したが、この値は、不正アクセス検知装置５０の管理者が任意に設定可能である。
【００３６】
次に、図４を用いて、第２の実施形態に係る不正アクセス検知装置５０における処理の流れを説明する。図４は、第２の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【００３７】
図４に示すように、不正アクセス検知装置５０の検知部５１は、処理タイミングになると（ステップＳ２０１Ｙｅｓ）、処理を開始する。例えば、検知部５１は、所定の間隔（例えば、１秒間隔）で処理を開始する。なお、処理タイミングになるまで（ステップＳ２０１Ｎｏ）、検知部５１は、待機状態である。
【００３８】
続いて、検知部５１は、所定期間に受信されたリクエストの数とクエリの数とをそれぞれ計数する（ステップＳ２０２）。例えば、検知部５１は、直前の１秒間に、サービスサーバ１０が受信したリクエストの数と、同じ時間にＤＢ２０が受信したクエリの数とをそれぞれ計数する。
【００３９】
そして、検知部５１は、所定期間におけるクエリ発行率が閾値未満か否かを判定する（ステップＳ２０３）。例えば、ステップＳ２０２において計数したリクエストの数が「１００」であり、クエリの数が「５０」であれば、検知部５１は、クエリ発行率は「０．５」であると算出する。そして、検知部５１は、算出したクエリ発行率「０．５」が閾値未満か否かを判定する。ここで、所定期間におけるクエリ発行率が閾値未満である場合には（ステップＳ２０３Ｙｅｓ）、検知部５１は、その期間のクエリは不正アクセスではないと判定する（ステップＳ２０４）。
【００４０】
一方、所定期間におけるクエリ発行率が閾値以上である場合には（ステップＳ２０３Ｎｏ）、検知部５１は、その期間のクエリが不正アクセスであると判定する（ステップＳ２０５）。
【００４１】
なお、図４の例は一例に過ぎない。例えば、処理を開始する間隔や、リクエスト及びクエリを計数する期間、閾値は、不正アクセス検知装置５０の管理者によって適宜変更されて良い。
【００４２】
第２の実施形態に係る不正アクセス検知装置５０は、所定期間に受信されたリクエストの数とクエリの数とをそれぞれ計数し、リクエストの数に対するクエリの数の比率が所定の閾値を超えていれば、正常パターンと異なるものとして、それらのクエリの中に不正アクセスによるものが存在したと検知する。このため、不正アクセス検知装置５０は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができる。例えば、不正アクセス検知装置５０は、秒間１００リクエストを受信するような大規模なシステムにおいても、不正なクエリを検知することができる。
【００４３】
［第３の実施形態］
また、例えば、不正アクセス検知装置５０は、リクエストの本文のパターンに対応する本文のパターンのクエリが発行されるという正常パターンに基づいて、不正アクセスを検知しても良い。
【００４４】
図５は、第３の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。第３の実施形態に係る不正アクセス検知装置５０は、図１に示した不正アクセス検知装置５０と基本的に同様の構成を備えるが、リクエスト取得部３１、クエリ取得部４１、及び検知部５１における処理の一部と、本文パターン記憶部５２を有する点とが相違する。なお、第３の実施形態では、第１の実施形態と相違する点を中心に説明することとし、第１の実施形態において説明した構成と同様の機能を有する点については、図５の各構成要素に図１と同一の符号を付し、説明を省略する。
【００４５】
第３の実施形態に係るリクエスト取得部３１は、リクエスト情報として、少なくとも、リクエストの受信時刻と、リクエストの本文とを取得し、不正アクセス検知装置５０へ送信する。
【００４６】
第３の実施形態に係るクエリ取得部４１は、クエリ情報として、少なくとも、クエリの受信時刻と、クエリの本文とを取得し、不正アクセス検知装置５０へ送信する。
【００４７】
第３の実施形態に係る本文パターン記憶部５２は、リクエストの本文のパターンと、クエリの本文のパターンとが対応づけられた情報を記憶する。ここで、リクエストの本文のパターンは、リクエストの文字列のうち、ログイン用のリクエストやデータ登録用のリクエスト等、リクエストの種類に応じて予め決められた部分の文字列がパターン化されたものである。また、クエリの本文のパターンは、対応するリクエストがサービスサーバ１０に受信された場合に、サービスサーバ１０からＤＢ２０に送信されるクエリの文字列のうち、リクエストの種類に応じて予め決められた部分の文字列がパターン化されたものである。なお、本文パターン記憶部５２に記憶される情報は、不正アクセス検知装置５０の管理者によって予め登録されるものとする。
【００４８】
図６は、第３の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。図６に示すように、本文パターン記憶部５２は、例えば、クエリの本文のパターン「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ｕｓｅｒ  ＷＨＥＲＥ  ｉｄ  =  ？  ＡＮＤ  ｐａｓｓ  ＝  ？」と、リクエストの本文のパターン「ＵＲＬ＝“ｈｔｔｐ：／／ｗｗｗ．ｘｘｘ．ｃｏ．ｊｐ／ｌｏｇｉｎ．ｊｓｐ”」とが対応づけられた情報を記憶する。なお、図６において、「？」は、任意の文字列である。
【００４９】
第３の実施形態に係る検知部５１は、本文パターン記憶部５２を参照し、クエリ取得部４１によって取得されたクエリの本文のパターンに対応する本文のパターンのリクエストが、そのクエリの受信時刻から所定時間前までの間に受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
【００５０】
ここで、上記のように不正アクセスを検知するのは、例えば、ログイン用のリクエストが受信されればログイン認証用のクエリが発行されるように、リクエスト情報とクエリ情報との関連として、リクエストの本文のパターンに対応する本文のパターンのクエリが発行されるという正常パターンがあるからである。言い換えると、ＤＢ２０へ送信されたクエリの本文のパターンに対応する本文のパターンのリクエストがサービスサーバ１０に受信されていなければ、そのクエリは不正アクセスと考えられる。例えば、クエリの受信時刻から１秒前までの間にリクエストが受信されていたとしても、それらの本文のパターンが対応していない場合には、検知部５１は、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
【００５１】
次に、図７を用いて、第３の実施形態に係る不正アクセス検知装置５０における処理の流れを説明する。図７は、第３の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【００５２】
図７に示すように、不正アクセス検知装置５０の検知部５１は、処理タイミングになると（ステップＳ３０１Ｙｅｓ）、処理を開始する。例えば、検知部５１は、ログ取得装置４０からクエリを取得したことを契機として、処理を開始する。なお、処理タイミングになるまで（ステップＳ３０１Ｎｏ）、検知部５１は、待機状態である。
【００５３】
続いて、検知部５１は、取得したクエリの本文のパターンに対応する本文のパターンのリクエストが、クエリの受信時刻から所定時間前までの間に受信されていたか否かを判定する（ステップＳ３０２）。例えば、検知部５１は、ログイン認証用のクエリが８時２２分１０秒に受信されていれば、８時２２分９秒から１０秒までの間に、ログイン用のリクエストがサービスサーバ１０に受信されていたか否かを判定する。ここで、該当のリクエストが受信されていた場合には（ステップＳ３０２Ｙｅｓ）、検知部５１は、取得したクエリが不正アクセスではないと判定する（ステップＳ３０３）。
【００５４】
一方、該当のリクエストが受信されていなかった場合には（ステップＳ３０２Ｎｏ）、検知部５１は、取得したクエリが不正アクセスであると判定する（ステップＳ３０４）。
【００５５】
なお、図７の例は一例に過ぎない。例えば、検知部５１は、所定の間隔（例えば、１秒間隔）で図７の処理を開始しても良い。この場合、前回の処理終了後から現在（今回の処理開始時点）までに取得した全てのクエリについて、上記の処理（ステップＳ３０２〜Ｓ３０４）が実行される。
【００５６】
第３の実施形態に係る不正アクセス検知装置５０は、クエリ取得部４１によって取得されたクエリの本文のパターンに対応する本文のパターンのリクエストが、そのクエリの受信時刻から所定時間前までの間に受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。このため、不正アクセス検知装置５０は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができる。
【００５７】
例えば、不正アクセス検知装置５０は、クエリの受信時刻から１秒前までの間にリクエストが受信されていたとしても、それらの本文のパターンが対応していない場合には、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。このため、不正アクセス検知装置５０は、不正アクセスを正確に検知することができる。
【００５８】
［第４の実施形態］
上記の第２の実施形態では、所定期間におけるリクエストの数に対するクエリの数の比率が閾値を超えていれば、それらのクエリの中に不正アクセスによるものが存在したと検知する場合を説明したが、実施形態はこれに限定されるものではない。例えば、不正アクセス検知装置５０は、更に、リクエスト及びクエリの本文のパターンを用いて不正アクセスを検知しても良い。
【００５９】
第４の実施形態に係る不正アクセス検知装置５０は、図５に示した不正アクセス検知装置５０と同様の構成を備えるが、本文パターン記憶部５２に記憶される情報の一部と、検知部５１における処理の一部とが相違する。なお、第４の実施形態では、第３の実施形態と相違する点を中心に説明することとし、第３の実施形態において説明した構成と同様の機能を有する点については、説明を省略する。
【００６０】
第４の実施形態に係る本文パターン記憶部５２は、リクエストの本文のパターンと、クエリの本文のパターンと、閾値とが対応づけられた情報を記憶する。閾値は、例えば、クエリ発行率に基づいて決定される値である。
【００６１】
図８は、第４の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。図８に示すように、本文パターン記憶部５２は、例えば、クエリの本文のパターン「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ｕｓｅｒ  ＷＨＥＲＥ  ｉｄ  =  ？  ＡＮＤ  ｐａｓｓ  ＝  ？」と、リクエストの本文のパターン「ＵＲＬ＝“ｈｔｔｐ：／／ｗｗｗ．ｘｘｘ．ｃｏ．ｊｐ／ｌｏｇｉｎ．ｊｓｐ”」と、クエリ発行率の閾値「０．２」とが対応づけられた情報を記憶する。なお、図８において、「？」は、任意の文字列である。
【００６２】
第４の実施形態に係る検知部５１は、本文パターン記憶部５２を参照し、所定期間に受信された所定の本文のパターンのクエリの数と、同じ期間に受信された所定の本文のパターンに対応するリクエストの数とをそれぞれ計数する。そして、検知部５１は、リクエストの数に対するクエリの数の比率（クエリ発行率）が所定の本文のパターンに対応する閾値を超えていれば、正常パターンと異なるものとして、その期間に含まれるクエリを不正アクセスとして検知する。
【００６３】
ここで、上記のように不正アクセスを検知するのは、所定期間におけるクエリ発行率が正常パターンに該当する場合であっても、それらの期間のクエリが不正アクセスでないとは限らないからである。例えば、不正アクセスが行われていたとしても、その期間にクエリ発行を伴わないリクエストが増加していれば、見かけのクエリ発行率には顕著な変化が見られないと考えられる。このため、第４の実施形態では、クエリ発行率の正常パターンに加えて、リクエスト及びクエリの本文のパターンにおける正常パターンについても考慮することで、不正アクセスを正確に検知することを可能にする。なお、第２の実施形態で説明したように、クエリ発行率の閾値は、不正アクセス検知装置５０の管理者が任意に設定可能である。
【００６４】
次に、図９を用いて、第４の実施形態に係る不正アクセス検知装置５０における処理の流れを説明する。図９は、第４の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
【００６５】
図９に示すように、不正アクセス検知装置５０の検知部５１は、処理タイミングになると（ステップＳ４０１Ｙｅｓ）、処理を開始する。例えば、検知部５１は、所定の間隔（例えば、１秒間隔）で処理を開始する。なお、処理タイミングになるまで（ステップＳ４０１Ｎｏ）、検知部５１は、待機状態である。
【００６６】
続いて、検知部５１は、所定期間に受信された各本文のパターンのリクエストの数と、所定期間に受信された各本文のパターンのクエリの数とをそれぞれ計数する（ステップＳ４０２）。例えば、検知部５１は、直前の１秒間に、サービスサーバ１０が受信したログイン用のリクエストの数と、同じ時間にＤＢ２０が受信したログイン認証用のクエリの数とをそれぞれ計数する。
【００６７】
そして、検知部５１は、所定期間における各本文のパターンのクエリ発行率が閾値未満か否かを判定する（ステップＳ４０３）。例えば、ステップＳ４０２において計数したリクエストの数が「１０」であり、クエリの数が「５」であれば、検知部５１は、クエリ発行率は「０．５」であると算出する。そして、検知部５１は、算出したクエリ発行率「０．５」が閾値未満か否かを判定する。ここで、所定期間における各本文のパターンのクエリ発行率が閾値未満である場合には（ステップＳ４０３Ｙｅｓ）、検知部５１は、その期間のクエリは不正アクセスではないと判定する（ステップＳ４０４）。
【００６８】
一方、所定期間における各本文のパターンのクエリ発行率が閾値以上である場合には（ステップＳ４０３Ｎｏ）、検知部５１は、その期間におけるその本文のパターンのクエリが不正アクセスであると判定する（ステップＳ４０５）。
【００６９】
なお、図９の例は一例に過ぎない。例えば、処理を開始する間隔や、リクエスト及びクエリを計数する期間、閾値は、不正アクセス検知装置５０の管理者によって適宜変更されて良い。
【００７０】
第４の実施形態に係る不正アクセス検知装置５０は、本文パターン記憶部５２を参照し、所定期間に受信された所定の本文のパターンのクエリの数と、同じ期間に受信された所定の本文のパターンに対応するリクエストの数とをそれぞれ計数する。そして、検知部５１は、リクエストの数に対するクエリの数の比率（クエリ発行率）が所定の本文のパターンに対応する閾値を超えていれば、正常パターンと異なるものとして、その期間に含まれるクエリを不正アクセスとして検知する。このため、不正アクセス検知装置５０は、ＤＢ２０への未知なる不正アクセスを検知することができる。例えば、不正アクセス検知装置５０は、秒間１００リクエストを受信するような大規模なシステムにおいても、不正なクエリを正確に検知することができる。
【００７１】
［第５の実施形態］
第５の実施形態では、実際にサービスサーバ１０に接続しているユーザの端末の情報を用いて、不正アクセスを検知する場合を説明する。
【００７２】
図１０は、第５の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。第５の実施形態に係る不正アクセス検知装置５０が適用されるシステムは、図１に示した不正アクセス検知装置５０と基本的に同様の構成を備えるが、リクエスト取得部３１、クエリ取得部４１、及び検知部５１における処理の一部と、クエリパターン記憶部５３及びセッション情報ＤＢ６０を備える点とが相違する。なお、第５の実施形態では、第１の実施形態と相違する点を中心に説明することとし、第１の実施形態において説明した構成と同様の機能を有する点については、図１０の各構成要素に図１と同一の符号を付し、説明を省略する。
【００７３】
第５の実施形態に係るリクエスト取得部３１は、リクエスト情報として、少なくとも、リクエストの受信時刻と、リクエストの本文とを取得し、不正アクセス検知装置５０へ送信する。
【００７４】
第５の実施形態に係るクエリ取得部４１は、クエリ情報として、少なくとも、クエリの受信時刻と、クエリの本文とを取得し、不正アクセス検知装置５０へ送信する。
【００７５】
第５の実施形態に係るセッション情報ＤＢ６０は、サービスサーバ１０に接続しているユーザの端末に関する情報を記憶する。例えば、セッション情報ＤＢ６０は、セッションＩＤと、ユーザＩＤとが対応づけられた情報を記憶する。セッションＩＤは、サービスサーバ１０に接続している端末を識別するための情報である。また、ユーザＩＤは、サービスサーバ１０によって提供されるサービスを利用するユーザを識別するための情報である。
【００７６】
図１１は、第５の実施形態に係るセッション情報ＤＢに記憶される情報の一例を示す図である。図１１に示すように、セッション情報ＤＢ６０は、例えば、セッションＩＤ「３１ａ９ｅａｂ９８ｄ３３ｂｂ２４ｃ」と、ユーザＩＤ「ｓｕｚｕｋｉ＿ｔａｒｏ」とが対応づけられた情報を記憶する。なお、セッション情報ＤＢ６０に記憶される情報は、例えば、ユーザの端末とサービスサーバ１０との間でセッションが確立される際に、サービスサーバ１０によって登録される。
【００７７】
第５の実施形態に係るクエリパターン記憶部５３は、クエリの本文のパターンと、ユーザＩＤを記憶する変数名とが対応づけられた情報を記憶する。ユーザＩＤを記憶する変数名は、対応する本文のパターンのクエリにおいて、ユーザＩＤが記述されている箇所を示す情報である。
【００７８】
図１２は、第５の実施形態に係るクエリパターン記憶部に記憶される情報の一例を示す図である。図１２に示すように、クエリパターン記憶部５３は、例えば、クエリの本文のパターン「ＳＥＬＥＣＴ  ？  ＦＲＯＭ  ｕｓｅｒ  ＷＨＥＲＥ  ｉｄ＝？」と、ユーザＩＤを記憶する変数名「ｉｄ」とが対応づけられた情報を記憶する。なお、クエリパターン記憶部５３に記憶される情報は、例えば、不正アクセス検知装置５０の管理者によって予め登録される。また、図１２において、「？」は、任意の文字列である。
【００７９】
第５の実施形態に係る検知部５１は、クエリに含まれるユーザＩＤからセッションＩＤを特定し、特定したセッションＩＤを含むリクエストが、そのクエリの受信時刻から所定時間前までの間に受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
【００８０】
ここで、上記のように不正アクセスを検知するのは、リクエスト情報とクエリ情報との関連として、クエリから特定されるユーザのセッションＩＤは、そのクエリを発行するために送信されたリクエストに含まれるセッションＩＤと一致するという正常パターンがあるからである。これにより、検知部５１は、より確実に、不正アクセスを検知することができる。なお、通常、セッションＩＤは、ＨＴＴＰリクエストの本文において、クッキーあるいはＵＲＬ（Uniform  Resource  Locator）部に記載されている。
【００８１】
次に、図１３を用いて、第５の実施形態に係る不正アクセス検知装置５０における処理の流れを説明する。図１３は、第５の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。なお、図１３の例では、取得したクエリの本文が、「ＳＥＬＥＣＴ  ｃｒｅｄｉｔｃａｒｄ  ＦＲＯＭ  ｕｓｅｒ  ＷＨＥＲＥ  ｉｄ＝  ｓｕｚｕｋｉ＿ｔａｒｏ」である場合を説明する。
【００８２】
図１３に示すように、不正アクセス検知装置５０の検知部５１は、処理タイミングになると（ステップＳ５０１Ｙｅｓ）、処理を開始する。例えば、検知部５１は、所定の間隔（例えば、１秒間隔）で処理を開始する。なお、処理タイミングになるまで（ステップＳ５０１Ｎｏ）、検知部５１は、待機状態である。
【００８３】
続いて、検知部５１は、クエリパターン記憶部５３を参照し、取得したクエリからユーザＩＤを抽出する（ステップＳ５０２）。例えば、検知部５１は、クエリパターン記憶部５３を参照し、取得したクエリの本文に対応する本文のパターンを特定する。ここでは、受信したクエリの本文が「ＳＥＬＥＣＴ  ｃｒｅｄｉｔｃａｒｄ  ＦＲＯＭ  ｕｓｅｒ  ＷＨＥＲＥ  ｉｄ＝  ｓｕｚｕｋｉ＿ｔａｒｏ」であるので、検知部５１は、クエリの本文のパターンとして「ＳＥＬＥＣＴ  ？  ＦＲＯＭ  ｕｓｅｒ  ＷＨＥＲＥ  ｉｄ＝？」を特定する。続いて、検知部５１は、特定した本文のパターンに対応するユーザＩＤを記憶する変数名を取得する。図１２に示す例では、クエリの本文のパターン「ＳＥＬＥＣＴ  ？  ＦＲＯＭ  ｕｓｅｒ  ＷＨＥＲＥ  ｉｄ＝？」に対応するユーザＩＤを記憶する変数名は「ｉｄ」であるので、検知部５１は、「ｉｄ」を取得する。そして、検知部５１は、取得したユーザＩＤを記憶する変数名を用いて、クエリの本文からユーザＩＤを抽出する。クエリの本文において、「ｉｄ」に記述されているのは「ｓｕｚｕｋｉ＿ｔａｒｏ」であるので、検知部５１は、クエリの本文から「ｓｕｚｕｋｉ＿ｔａｒｏ」をユーザＩＤとして抽出する。
【００８４】
続いて、検知部５１は、セッション情報ＤＢを参照し、ユーザＩＤに対応するセッションＩＤを取得する（ステップＳ５０３）。例えば、検知部５１は、セッション情報ＤＢ６０を参照し、ステップＳ５０２において抽出したユーザＩＤ「ｓｕｚｕｋｉ＿ｔａｒｏ」に対応するセッションＩＤ「３１ａ９ｅａｂ９８ｄ３３ｂｂ２４ｃ」を取得する。
【００８５】
そして、検知部５１は、セッションＩＤを含むリクエストがクエリの受信時刻から所定時間前までの間に受信されていたか否かを判定する（ステップＳ５０４）。例えば、検知部５１は、ＤＢ２０に受信されたクエリの受信時刻が８時２２分１０秒であれば、８時２２分９秒から１０秒までの間に、セッションＩＤ「３１ａ９ｅａｂ９８ｄ３３ｂｂ２４ｃ」を含むリクエストがサービスサーバ１０に受信されていたか否かを判定する。ここで、該当のリクエストが、クエリの受信時刻から所定時間前までの間に受信されていた場合には（ステップＳ５０４Ｙｅｓ）、検知部５１は、そのクエリが不正アクセスではないと判定する（ステップＳ５０５）。
【００８６】
一方、該当のリクエストが、クエリの受信時刻から所定時間前までの間に受信されていない場合には（ステップＳ５０４Ｎｏ）、検知部５１は、そのクエリが不正アクセスであると判定する（ステップＳ５０６）。
【００８７】
なお、図１３の例は一例に過ぎない。例えば、検知部５１は、ログ取得装置４０からクエリを取得したことを契機として、図１３の処理を開始しても良い。
【００８８】
第５の実施形態に係る不正アクセス検知装置５０は、実際にサービスサーバ１０に接続しているユーザの端末の情報を用いて、不正アクセスを検知する。このため、不正アクセス検知装置５０は、より確実に、不正アクセスを検知することができる。例えば、仮に、秒間１０００リクエストのような大規模なシステムであっても、不正アクセス検知装置５０は、高精度に不正アクセスを検知することができる。
【００８９】
［その他の実施形態］
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、種々の異なる形態にて実施されて良いものである。
【００９０】
［負荷分散装置への適用］
例えば、上述した第１〜第５の実施形態では、サービスサーバ１０が単独で機能する場合を説明したが、複数のサービスサーバ１０が配置され、負荷分散している場合であっても適用可能である。
【００９１】
図１４は、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。図１４に示すように、このシステムでは、サービスを提供するために、３つのサービスサーバ１０Ａ，１０Ｂ，１０Ｃを備える。
【００９２】
この場合、ログ取得装置３０は、ＬＢ（Load  Balancer）として機能する。例えば、ログ取得装置３０は、ユーザの端末から送信されたリクエストをサービスサーバ１０Ａ，１０Ｂ，１０Ｃのいずれかに転送する場合に、各サービスサーバ１０Ａ，１０Ｂ，１０Ｃの負荷状況を参照した上で、負荷の少ないところへ転送する。また、リクエスト取得部３１は、リクエスト情報として、更に、リクエストの送信先のサービスサーバのアドレスを取得し、不正アクセス検知装置５０へ送信する。また、クエリ取得部４１は、クエリ情報として、更に、クエリの送信元のサービスサーバのアドレスを取得し、不正アクセス検知装置５０へ送信する。
【００９３】
そして、検知部５１は、取得したリクエスト及びクエリのアドレスごとに、不正アクセスを検知する処理を行う。例えば、検知部５１は、取得したクエリの送信元がサービスサーバ１０Ａであれば、送信先のアドレスがサービスサーバ１０Ａであるリクエストが、そのクエリの受信時刻から所定時間前までの間に含まれるか否かを判定する。言い換えると、検知部５１は、取得したクエリの送信元がサービスサーバ１０Ａであれば、送信先のアドレスがサービスサーバ１０Ｂ，１０Ｃであるリクエストについては処理対象とはせずに、不正アクセスの検知処理を行う。このため、不正アクセス検知装置５０は、未知なる不正アクセスをより正確に検知することが可能となる。
【００９４】
このように、サービスサーバ１０が複数存在する場合に、ＤＢ２０へのクエリとリクエストの対応を経由サーバ毎に分類することで、検出力を向上させることが可能となる。例えば、上述した第１，３，５の実施形態に適用する場合には、ログ取得装置３０がリクエストを振り分けたサービスサーバと、クエリを発行したサービスサーバとが異なる場合に、不正アクセスを検知可能となる。また、第２，４の実施形態に適用する場合には、ログ取得装置３０が振り分けたあるサービスサーバへのＨＴＴＰリクエストの数と、そのサービスサーバからのクエリの発行数の割合が、サービスサーバ毎に大きく異なることで、不正アクセスを検知可能となる。特に、その割合が一部のサービスサーバにおいて突出している場合、そのサービスサーバが乗っ取られ、不正なクエリが発行されている可能性が高いということを検知することが可能となる。
【００９５】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９６】
図１５Ａ及び図１５Ｂは、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。例えば、図１５Ａに示すように、不正アクセス検知装置５０は、検知部５１に加えて、リクエスト取得部３１及びクエリ取得部４１を備えていても良い。この場合、リクエスト取得部３１は、サービスサーバ１０からリクエスト情報を取得し、クエリ取得部４１は、ＤＢ２０からクエリ情報を取得する。
【００９７】
また、例えば、図１５Ｂに示すように、不正アクセス検知装置５０は、サービスサーバ１０とインターネット５との間、及び、サービスサーバ１０とＤＢ２０との間の通信を中継するように構成されても良い。言い換えると、サービスサーバ１０及びＤＢ２０は、不正アクセス検知装置５０を介してインターネット５に接続される。
【００９８】
なお、図１５Ａ及び図１５Ｂの例は一例に過ぎない。例えば、リクエスト取得部３１、クエリ取得部４１、及び検知部５１が一つの装置に備えられていなくても良く、いずれかが別装置として分離して構成されても良い。一例としては、リクエスト取得部３１が、不正アクセス検知装置５０とは別装置として（例えば、図１のログ取得装置３０として）、サービスサーバ１０とインターネット５との間の通信を中継するように構成されても良い。この場合、不正アクセス検知装置５０は、クエリ取得部４１及び検知部５１を備える。このように、リクエスト取得部３１、クエリ取得部４１、及び検知部５１は、任意に組み合わせて構成されても良い。
【００９９】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１００】
［プログラム］
また、上記実施形態において説明した検知装置が実行する処理について、コンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る検知装置が実行する処理について、コンピュータが実行可能な言語で記述した検知プログラムを作成することもできる。この場合、コンピュータが検知プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる検知プログラムをコンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録された検知プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図１に示した検知装置と同様の機能を実現する検知プログラムを実行するコンピュータの一例を説明する。
【０１０１】
図１６は、検知プログラムを実行するコンピュータを示す図である。図１６に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【０１０２】
メモリ１０１０は、図１６に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１６に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１６に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。
【０１０３】
ここで、図１６に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の検知プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【０１０４】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、各手順を実行する。
【０１０５】
なお、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１０６】
これらの実施形態やその変形は、本願が開示する技術に含まれると同様に、請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１０７】
５      インターネット
１０      サービスサーバ
２０      ＤＢ
３０，４０      ログ取得装置
３１      リクエスト取得部
４１      クエリ取得部
５０      不正アクセス検知装置
５１      検知部
【図１】
2016006520.tif 000003
【図２】
2016006520.tif 000004
【図３】
2016006520.tif 000005
【図４】
2016006520.tif 000006
【図５】
2016006520.tif 000007
【図６】
2016006520.tif 000008
【図７】
2016006520.tif 000009
【図８】
2016006520.tif 000010
【図９】
2016006520.tif 000011
【図１０】
2016006520.tif 000012
【図１１】
2016006520.tif 000013
【図１２】
2016006520.tif 000014
【図１３】
2016006520.tif 000015
【図１４】
2016006520.tif 000016
【図１５Ａ】
2016006520.tif 000017
【図１５Ｂ】
2016006520.tif 000018
【図１６】
2016006520.tif 000019
【手続補正書】
【提出日】平成28年12月28日(2016.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第１の要求が前記サービスサーバに受信された第１の受信時刻を取得する第１の取得部と、
前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第２の要求が前記蓄積装置に受信された第２の受信時刻を取得する第２の取得部と、
前記第２の受信時刻との差が所定時間以内である前記第１の受信時刻が存在しない場合に、前記第２の要求を前記蓄積装置に対する不正アクセスとして検知する検知部と
を備えることを特徴とする検知装置。
【請求項２】
前記検知部は、更に、所定期間に受信された前記第１の要求の数と前記第２の要求の数とをそれぞれ計数し、前記第１の要求の数に対する前記第２の要求の数の比率が所定の閾値を超えていれば、当該第２の要求を前記不正アクセスとして検知することを特徴とする請求項１に記載の検知装置。
【請求項３】
前記第１の要求の本文のパターンと、当該第１の要求が前記サービスサーバに受信された場合に送信される前記第２の要求の本文のパターンとが対応づけられた情報を記憶する記憶部を更に備え、
前記第１の取得部は、前記第１の受信時刻を取得するとともに、前記第１の要求の本文を取得し、
前記第２の取得部は、前記第２の受信時刻を取得するとともに、前記第２の要求の本文を取得し、
前記検知部は、前記記憶部を参照し、前記第２の取得部によって取得された第２の要求の本文のパターンに対応する本文のパターンの第１の要求の前記第１の受信時刻であって、前記第２の受信時刻との差が所定時間以内である前記第１の受信時刻が存在しない場合に、前記第２の要求を前記不正アクセスとして検知することを特徴とする請求項１に記載の検知装置。
【請求項４】
前記第１の要求の本文のパターンと、当該第１の要求が前記サービスサーバに受信された場合に送信される前記第２の要求の本文のパターンと、閾値とが対応づけられた情報を記憶する記憶部を更に備え、
前記第１の取得部は、前記第１の受信時刻を取得するとともに、前記第１の要求の本文を取得し、
前記第２の取得部は、前記第２の受信時刻を取得するとともに、前記第２の要求の本文を取得し、
前記検知部は、前記記憶部を参照し、所定期間に受信された所定の本文のパターンの第２の要求の数と、当該所定期間に受信された当該所定の本文のパターンに対応する第１の要求の数とをそれぞれ計数し、当該第１の要求の数に対する当該第２の要求の数の比率が当該所定の本文のパターンに対応する閾値を超えていれば、当該第２の要求を前記不正アクセスとして検知することを特徴とする請求項２に記載の検知装置。
【請求項５】
前記第１の取得部は、前記第１の受信時刻を取得するとともに、前記第１の要求の本文を取得し、
前記第２の取得部は、前記第２の受信時刻を取得するとともに、前記第２の要求の本文を取得し、
前記検知部は、前記サービスサーバに接続している前記端末を識別する接続情報を前記第２の要求に含まれる前記ユーザの情報から特定し、特定した接続情報を含む第１の要求の前記第１の受信時刻であって、前記第２の受信時刻との差が所定時間以内である前記第１の受信時刻が存在しない場合に、前記第２の要求を前記不正アクセスとして検知することを特徴とする請求項１に記載の検知装置。
【請求項６】
検知装置によって実行される検知方法であって、
ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第１の要求が前記サービスサーバに受信された第１の受信時刻を取得する第１の取得工程と、
前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第２の要求が前記蓄積装置に受信された第２の受信時刻を取得する第２の取得工程と、
前記第２の受信時刻との差が所定時間以内である前記第１の受信時刻が存在しない場合に、前記第２の要求を前記蓄積装置に対する不正アクセスとして検知する検知工程と
を含んだことを特徴とする検知方法。
【請求項７】
ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第１の要求が前記サービスサーバに受信された第１の受信時刻を取得する第１の取得ステップと、
前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第２の要求が前記蓄積装置に受信された第２の受信時刻を取得する第２の取得ステップと、
前記第２の受信時刻との差が所定時間以内である前記第１の受信時刻が存在しない場合に、前記第２の要求を前記蓄積装置に対する不正アクセスとして検知する検知ステップと
をコンピュータに実行させることを特徴とする検知プログラム。
【国際調査報告】
2016006520.tif 000020
2016006520.tif 000021
2016006520.tif 000022
2016006520.tif 000023