以下、図面を参照して本発明の実施形態を詳細に説明する。
図1は、本発明に係る情報処理システムのシステム構成の一例を示す図である。
図1に示すように、本実施形態に係る情報処理システムは、プロキシサーバ101、クライアントPC102−1乃至102−3(以後、まとめて「クライアントPC102」とする)、LAN103、広域ネットワーク104、ウェブサーバ105−1乃至105−3(以後、まとめて「ウェブサーバ105」とする)を備えている。
以下、本発明の情報処理システムを構成する各装置について説明する。
プロキシサーバ101は、本発明の情報処理装置として機能する装置であり、クライアントPC102とウェブサーバ105との間のデータ通信を中継する。また、プロキシサーバ101は、クライアントPC102とウェブサーバ105との間でやりとりされるデータに対して、当該データの中継を許可する(中継する)か、または拒否する(中継しない)かといった中継制御ルールに従い、データの通信制御を行う機能を有している。
また、データの通信制御に関するログを記憶する機能を有している。
クライアントPC102は、ウェブサーバ105が提供する各種のサービス(ホームページの閲覧等)を利用するユーザが使用する端末装置である。また、プロキシサーバ101に記憶されたデータ通信制御に関するログを表示する機能を有する。
LAN103は、プロキシサーバ101、クライアントPC102を相互にデータ通信可能に接続するネットワークである。
ウェブサーバ105は、各種のウェブサービスを提供するサービス事業者により設置されるサーバ装置である。ここで提供されるサービスとしては、例えばホームページの閲覧サービスや、商品の販売サービス、航空券やホテル等の予約サービスなどがあるが、これに限定されない。
プロキシサーバ101とウェブサーバ105は、インターネット等の広域ネットワーク104を介して、相互にデータ通信可能に接続されている。
以上が本発明の情報処理システム構成の一例の説明である。
以下、図2を用いて、図1に示したプロキシサーバ101に適用可能な情報処理装置のハードウエア構成の一例について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、入力装置209等からの入力を制御する。206はビデオコントローラで、液晶ディスプレイ等のディスプレイ装置210への表示を制御する。なお、ディスプレイ装置は、液晶ディスプレイに限られず、CRTディスプレイなどであっても良い。これらは必要に応じてクライアントが使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN104)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
ハードウエア上で動作する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
次に図3を用いて、本発明の第1および第2の実施形態においてプロキシサーバ101が行うアクセス制御処理について説明する。
なお、図3のフローチャートで示す処理については、プロキシサーバ101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS301では、プロキシサーバ101のCPU201は、クライアントPC102から送信されたHTTPリクエストデータからアクセス先となるURLを取得する。
ステップS302では、プロキシサーバ101のCPU201は、ステップS301で取得したアクセス先URLがアクセスルールテーブル(図4)に存在するかを判定する。すなわち、当該アクセス先URLについて、いずれかのアクセスルールが適用されるか否かを判定する。
アクセスルールテーブルに存在すると判定された場合(ステップS302:YES)は、処理をステップS303に移行する。
他方、アクセスルールテーブルに存在しないと判定された場合(ステップS302:NO)は、処理をステップS306に移行する。
ステップS303では、プロキシサーバ101のCPU201は、ステップS302で適用されると判定されたアクセスルールについて、その動作がアクセスを禁止(データ中継を許可しない)であるか否かを判定する。
ステップS303においてアクセスを許可すると判定された場合(ステップS303:許可)は、処理をステップS306に移行する。
他方、ステップS303においてアクセスを禁止すると判定された場合(ステップS303:禁止)は、処理をステップS304に移行する。
ステップS304では、プロキシサーバ101のCPU201は、クライアントPCから送信されたURLに対するアクセスが禁止された旨の結果をアクセスログテーブル(図5)に記録する。
この際、アクセスログテーブルには、アクセスが禁止された旨の結果(ルール結果)だけでなく、クライアントPC102からHTTPリクエストデータが送信された時刻(アクセス時刻)、HTTPリクエストデータを送信したクライアントPCを識別する情報(IPアドレス等)(クライアントIPアドレス)、アクセス先URL等についても記録される。
また、クライアントPC102から送信されたHTTPリクエストデータに「RefererURL(参照元URL)」が含まれる場合には、当該RefererURLもあわせて記録される。
ステップS305では、プロキシサーバ101のCPU201は、リクエスト元であるクライアントPC102に対してアクセスが禁止された旨の結果を示すHTTPレスポンスデータを送信する。
そして本フローチャートに示す処理を終了する。
ステップS306以降は、ステップS302においてクライアントPC102から送信されたアクセス先URLがアクセスルールに該当しなかった場合、または、該当するアクセスルールに設定された動作が「禁止」以外であった場合の処理である。
ステップS306では、プロキシサーバ101のCPU201は、ステップS301で取得したアクセス先URLが示すウェブサーバ105にアクセスをする。
ステップS307では、プロキシサーバ101のCPU201は、クライアントPCから送信されたURLに対するアクセスが許可された旨の結果をアクセスログテーブル(図5)に記録する。この際、ステップS304における処理と同様に、アクセスログテーブルに対して、クライアントPC102からHTTPリクエストデータが送信された時刻(アクセス時刻)、HTTPリクエストデータを送信したクライアントPCのIPアドレス(クライアントIPアドレス)、アクセス先URLについても記録される。
また、クライアントPC102から送信されたHTTPリクエストデータに「RefererURL」が含まれる場合には、当該RefererURLもあわせて記録される。
ステップS308では、プロキシサーバ101のCPU201は、ウェブサーバ105からレスポンスデータを取得し、当該レスポンスデータをリクエスト元であるクライアントPC102に送信する。
そして、本フローチャートに示す処理を終了する。
なお、本実施形態では、アクセスルールテーブルに設定されていないURLへのアクセスについては、アクセスを許可するように構成しているが、デフォルト処理としてアクセス禁止として設定をしておき、その設定に従って処理を行うように構成しても良い。
以上の処理により、プロキシサーバ101において実行された、クライアントPC102から送信されたHTTPリクエストデータに対する処理を記録することができる。
次に、図6を用いて、本発明の第1および第2の実施形態におけるクライアントPC102、プロキシサーバ101、ウェブサーバ105それぞれの処理の流れを説明する。
なお、図6では、「複数のURLアクセスからページ全体が構成され、ユーザにより指定されたURL自体はアクセスが許可されるが、そこからリンクされている画像のファイル取得先であるURLについてはアクセスが禁止される場合」の処理について説明する。
ステップS601では、クライアントPC102からプロキシサーバ101に対してHTTPリクエストデータが送信される(図3におけるステップS301に相当)。図6に示す例では、クライアントPC102から送信されたHTTPリクエストデータ(アクセス先URL)は「http://example.com/index.html」であるとする。
そして、ステップS602では、プロキシサーバ101がステップS601で送信されたHTTPリクエストデータを取得し、当該データの中継の可否をアクセスルールテーブルをもとに判定する(図3のステップS302、S303に相当)。
図6に示す例では、クライアントPC102から送信されたアクセス先URLは「http://example.com/index.html」であるため、アクセスルールテーブルにおけるルールID:3(「http://example.com/*」)に該当することになる。したがって、当該ルールの動作は「許可」であるので、ステップS602では、クライアントPC102から送信されたデータの中継は許可される(図3のステップS303:許可に相当)。
ステップS603では、プロキシサーバ101が「http://example.com/index.html」が示すウェブサーバ105へアクセスをする。そして、ステップS604でウェブサーバ105は、ステップS603のアクセスに対するレスポンスデータをプロキシサーバ101に送信し、プロキシサーバ101は当該レスポンスデータを取得する(図3のステップS306に相当)。
ステップS605では、プロキシサーバ101は、「http://example.com/index.html」に対するアクセスが許可された旨をアクセスログテーブルに記録する(図3のステップS307に相当)。なお、ステップS605で記録されるアクセスログは、図5に示すアクセスログテーブルの「ログID:3」に示すログにあたる。
ステップS606では、プロキシサーバ101は、ウェブサーバ105から取得したレスポンスデータをクライアントPC102に対して送信する(図3のステップS308に相当)。
そして、クライアントPC102では、ステップS606でプロキシサーバ101から送信されたレスポンスデータを解析し、ウェブページ内に含まれる画像データの取得先であるURLを取得する。なお、図6に示す例では、レスポンスデータを解析して得られたURLは「http://bbs.example.com/image.png」であるとする。
ステップS607では、クライアントPC102から、取得したURL(http://bbs.example.com/image.png)をアクセス先とするHTTPリクエストデータがプロキシサーバ101に送信される(図3のステップS301に相当)。このとき、HTTPリクエストデータは、RefererURLとしてリンク元のウェブページのURLである「http://example.com/index.html」を有する。
そして、ステップS608では、プロキシサーバ101がステップS607で送信されたHTTPリクエストデータを取得し、当該データの中継の可否をアクセスルールテーブルをもとに判定する(図3のステップS302、S303に相当)。
図6に示す例では、クライアントPC102から送信されたアクセス先URLは「http://bbs.example.com/image.png」であるため、アクセスルールテーブルにおけるルールID:1(「http://bbs.example.com/*」)に該当することになる。したがって、当該ルールの動作は「禁止」であるので、ステップS608では、クライアントPCから送信されたデータの中継は行われない(図3のステップS303:禁止に相当)。
ステップS609では、プロキシサーバ101は、「http://bbs.example.com/image.png」に対するアクセスが禁止された旨をアクセスログテーブルに記録する(図3のステップS30304に相当)。なお、この際、アクセスログテーブルには、RefererURLである「http://example.com/index.html」があわせて記録される。なお、ステップS609で記録されるログは、図5に示すアクセスログテーブルの「ログID:4」に示すログにあたる。
そして、ステップS610において、プロキシサーバ101からクライアントPC102に対して、アクセスが禁止された旨の情報が送信される(図3のステップS305に相当)。
次に、図7を用いて、独立した2つのウェブページへのアクセスが共にアクセス禁止をされるケースについて、クライアントPC102、プロキシサーバ101、ウェブサーバ105それぞれで実行される処理の流れを説明する。
ステップS701では、クライアントPC102からプロキシサーバ101に対してHTTPリクエストデータが送信される(図3におけるステップS301に相当)。図7に示す例では、クライアントPC102から送信されたHTTPリクエストデータ(アクセス先URL)は「http://bbs.example.com/index.html」であるとする。
そして、ステップS702では、プロキシサーバ101がステップS701で送信されたHTTPリクエストデータを取得し、当該データの中継の可否をアクセスルールテーブルをもとに判定する(図3のステップS302、S303に相当)。
図7に示す例では、クライアントPC102から送信されたアクセス先URLは「http://bbs.example.com/index.html」であるため、アクセスルールテーブルにおけるルールID:1(「http://bbs.example.com/*」)に該当することになる。したがって、当該ルールの動作は「禁止」であるので、ステップS702では、クライアントPC102から送信されたデータの中継は行われない(図3のステップS303:禁止に相当)。
ステップS703では、プロキシサーバ101は、「http://bbs.example.com/index.html」に対するアクセスが禁止された旨をアクセスログテーブルに記録する(図3のステップS30304に相当)。なお、ステップS703で記録されるログは、図5に示すアクセスログテーブルの「ログID:1」に示すログにあたる。
そして、ステップS704において、プロキシサーバ101からクライアントPC102に対して、アクセスが禁止された旨の情報が送信される(図3のステップS305に相当)。
ステップS705では、クライアントPC102からプロキシサーバ101に対してHTTPリクエストデータが送信される(図3におけるステップS301に相当)。図7に示す例では、クライアントPC102から送信されたHTTPリクエストデータ(アクセス先URL)は「http://bbs.example.com/main.html」であるとする。
そして、ステップS706では、プロキシサーバ101がステップS705で送信されたHTTPリクエストデータを取得し、当該データの中継の可否をアクセスルールテーブルをもとに判定する(図3のステップS302、S303に相当)。
図7に示す例では、クライアントPC102から送信されたアクセス先URLは「http://bbs.example.com/main.html」であるため、アクセスルールテーブルにおけるルールID:1(「http://bbs.example.com/*」)に該当することになる。したがって、当該ルールの動作は「禁止」であるので、ステップS706では、クライアントPC102から送信されたデータの中継は行われない(図3のステップS303:禁止に相当)。
ステップS707では、プロキシサーバ101は、「http://bbs.example.com/main.html」に対するアクセスが禁止された旨をアクセスログテーブルに記録する(図3のステップS30304に相当)。なお、ステップS707で記録されるログは、図5に示すアクセスログテーブルの「ログID:2」に示すログにあたる。このとき、ステップS705で送信されたHTTPリクエストデータにはRefererURLがないため、アクセスログテーブルにもRefererURLは記録されない。
そして、ステップS708において、プロキシサーバ101からクライアントPC102に対して、アクセスが禁止された旨の情報が送信される(図3のステップS305に相当)。
次に、図8を用いて、本発明の第1の実施形態におけるプロキシサーバ101がアクセスログテーブルに記録されたアクセスログのうち、アクセスが禁止されたログをクライアントPC102に表示する処理について説明する。
なお、図8のフローチャートで示す処理については、プロキシサーバ101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS801では、プロキシサーバ101のCPU201は、ユーザからアクセスログの検索条件の設定を受け付ける。
なお、検索条件の設定については、クライアントPC102に表示される検索条件設定画面(図9)を介して受け付ける。
ここで、図9に一例を示す検索条件設定画面について説明する。
図9に示す画面では、アクセスログを検索する検索条件として、アクセス時刻の時刻条件(期間や時間範囲)や、「自動除外解析」のON/OFFおよび「自動除外解析時間」の設定が可能である。
「自動除外解析」がOFFである場合には、時刻条件により検索されたアクセスログの全てが表示対象となる。
「自動除外解析」がONである場合には、時刻条件により検索されたアクセスログのうち、RefererURLが記録されていないログ、および、RefererURLが記録されているログのうち当該RefererURLへのアクセス時刻から「自動除外解析時間」で設定された時間を経過した後にアクセスされたログが表示対象となる。なお、自動除外解析時間については、ユーザにより任意に設定が可能である。
図9に示す例では、アクセスログテーブルに記録されたアクセス時刻が「2010年10月1日(金)〜2010年10月28日(木)」までの期間であり、「00時00分〜24時00分」まで(終日)のログが検索されることを示している。
また、自動除外解析がONである(チェックボックスにチェックがされている)ため、上述の通り、時刻条件により検索されたアクセスログのうち、RefererURLが記録されていないログ、および、RefererURLが記録されているログのうち当該RefererURLへのアクセス時刻から10秒以上経過した後にアクセスされたログが表示対象となる。
ステップS802では、プロキシサーバ101のCPU201は、ステップS801で設定された条件のうち、自動除外解析がONに設定されているか否か(チェックボックスにチェックが入れられているか否か)を判断する。
OFFに設定されている場合(ステップS802:OFF)は、処理をステップS803に移行する。
ONに設定されている場合(ステップS803:ON)は、処理をステップS804に移行する。
ステップS803では、プロキシサーバ101のCPU201は、ステップS801で設定された時刻条件により検索される禁止アクセスログ(ルール結果が禁止として記録されているアクセスログ)の全てをクライアントPC102に表示するべく、クライアントPC102に送信する。
ステップS804では、プロキシサーバ101のCPU201は、アクセスログテーブルに記録されたアクセスログのうち最初のアクセスログを読み込む。
ステップS805では、プロキシサーバ101のCPU201は、ステップS804で読み込んだアクセスログの「ルール結果」が禁止であるか否かを判断する。
禁止であると判断されると(ステップS805:YES)、処理をステップS806に移行する。
禁止ではないと判断されると(ステップS805:NO)、処理をステップS812に移行する。すなわち、当該アクセスログは表示対象から除外される。
ステップS806では、プロキシサーバ101のCPU201は、ステップS804で読み込んだアクセスログのアクセス時刻が、ステップS801で設定された時刻条件を満たすか否かを判断する。すなわち、図9の例においては、当該アクセスログのアクセス時刻が「2010年10月1日(金)〜2010年10月28日(木)」までの期間であるか否かを判断する。
時刻条件を満たすと判断された場合(ステップS806:YES)は、処理をステップS807に移行する。
時刻条件を満たさないと判断された場合(ステップS806:NO)は、処理をステップS812に移行する。すなわち、当該アクセスログは表示対象から除外される。
ステップS807では、ステップS804で読み込まれたアクセスログのHTTPメソッドがGETメソッドであるか否かを判断する。
GETメソッドであると判断されると(ステップS807:YES)、処理をステップS808に移行する。
GETメソッドではないと判断されると(ステップS807:NO)、処理をステップS811に移行する。すなわち、当該アクセスログを表示対象としてクライアントPC102へ表示する。
ステップS808では、プロキシサーバ101のCPU201は、ステップS804で読み込んだアクセスログにRefererURLが記録されているか否かを判断する。
RefererURLが記録されていると判断された場合(ステップS808:YES)は、処理をステップS809に移行する。
RefererURLが記録されていないと判断された場合(ステップS808:NO)は、処理をステップS811に移行する。すなわち、当該アクセスログを表示対象としてクライアントPC102へ表示する。
ステップS809では、プロキシサーバ101のCPU201は、ステップS804で読み込んだアクセスログに記録されたRefererURLに対するアクセスにかかるアクセスログであり、かつ、ステップS804で読み込んだアクセスログの「クライアントIPアドレス」と同じクライアントIPアドレスが記録されたアクセスログを取得する。
なお、本実施例では、同一性の判断にアクセス元のクライアントPCのIPアドレスを用いたが、これに限られるものではなく、他の基準により同一性を判断しても良い。
ステップS810では、プロキシサーバ101のCPU201は、ステップS804で読み込んだアクセスログのアクセス時刻が、ステップS809で取得したアクセスログのアクセス時刻(RefererURLへのアクセス時刻)からステップS801で設定された自動除外解析時間を経過した時刻であるか否かを判断する。すなわち、ステップS804で読み込んだアクセスログにかかるアクセスが、RefererURLへのアクセスから自動除外解析時間が経過した後のアクセスであるか否かを判断する。
RefererURLへのアクセスから自動除外解析時間を経過した後のアクセスであると判断された場合(ステップS810:YES)は、処理をステップS811に移行する。すなわち、当該アクセスログを表示対象としてクライアントPC102へ表示する。
RefererURLへのアクセスから自動除外解析時間を経過する前のアクセスであると判断された場合(ステップS810:NO)は、処理をステップS812に移行する。すなわち、当該アクセスログは表示対象から除外される。
ステップS811では、プロキシサーバ101のCPU201は、ステップS804で読み込んだアクセスログをクライアントPC102に表示するべく、クライアントPC102に送信する。
ステップS812では、プロキシサーバ101のCPU201は、ステップS804で読み込んだアクセスログがアクセスログテーブルに記録されたアクセスログのうち最後のアクセスログであるか否かを判断する。
最後のアクセスログであると判断されると(ステップS812:YES)、本フローチャートに示す処理を終了する。
最後のアクセスログではないと判断されると(ステップS812:NO)、処理をステップS804に移行し、次のアクセスログを1行読み込む。
以上の処理により、ユーザ(閲覧者)が意図的にアクセスしたログのみを監査者へ通知することが可能なる。これにより、適切なログ管理が可能となる。
具体的には、RefererURLが記録されたリクエストデータにかかるアクセスは、意図的なアクセスではない可能性が高い。ただ、RefererURLが記録されたリクエストデータにかかるアクセスのすべてが意図的ではないアクセスとは言えず、RefererURLが記録されていたとしても意図的なアクセスである可能性はある。そこで、RefererURLへのアクセスからの経過時間を考慮し、RefererURLが記録されたアクセスであっても意図的なアクセスであるか否かを判断する。
すなわち、RefererURLへのアクセスからの経過時間が短い場合には、自動的にブラウザがリクエストをしたログである可能性が高い。他方、RefererURLへのアクセスから一定時間が経過した後のアクセスについては、ユーザによる意図的なアクセス(リンク先をクリックした等)である可能性が高いといえる。そのため、RefererURLへのアクセスからの経過時間を考慮することで、意図的なアクセスであるか否かを適切に判断することが可能となる。
このように、意図的なアクセスであるか否かを判断し、意図的ではないアクセスのログについては通知・表示をしないようにすることで、監査者が大量のログに紛れてしまった有用なログを探し出す手間を低減することが可能となる。その結果、効率的なログ管理が可能となる。
さらに、本実施形態においては、ステップS807においてリクエストが「GETメソッドであるか否か」の判断をして、GETメソッドではない場合には、表示対象ログとしている。これは、GETメソッドではない(例えばPOST等)場合については、RefererURLの有無や、RefererURLへのアクセスからの経過時間に関わらず、意図的なアクセスであることが多いためである。このステップS807における判断処理により、監査に有用なログを表示させることが可能となる。
なお、本発明の目的は、監査に有用ではないアクセスログを表示させないことである。そのため、ステップS807における処理は、本発明の目的を達成するために必須の処理でなく、省略したとしても本発明の目的は達成される。
次に、図10および図11を用いて、図8のフローチャートに示す処理によりクライアントPC102に表示されるアクセスログについて具体的に説明する。
図10に示す画面は、図8のステップS803においてクライアントPC102に表示される画面である。すなわち、アクセスログテーブル(図5)に記録されたアクセスログのうち、ルール結果が禁止であり、かつ、ステップS801で図9に示す検索条件設定画面を介して設定された時刻条件を満たすアクセスログの全てが表示されている。
図10に示す画面では、アクセスログテーブルにおけるログID:1、2、4、5、6、8のアクセスログが表示されている。
図11に示す画面は、図8のステップS811においてクライアントPC102に表示される画面である。
以下、アクセスログテーブル(図5)および図8のフローチャートを用いて、図11に表示されるアクセスログについて詳細に説明する。なお、時刻条件としては、図9に示す条件(「2010年10月1日(金)〜2010年10月28日(木)」までの期間であり、「00時00分〜24時00分」まで)であるとする。
アクセスログテーブルに示す「ログID:1」のアクセスログについては、「ルール結果:禁止」、「時刻条件:満たす」、「HTTPメソッド:GET」、「RefererURL:なし」である。そのため、図8におけるステップS808でNOと判断され、ステップS811にて表示対象とされる。
「ログID:2」のアクセスログについては、「ルール結果:禁止」、「時刻条件:満たす」、「HTTPメソッド:GET」、「RefererURL:なし」であるため、ログID:1のアクセスログと同様に表示対象とされる。
「ログID:3」のアクセスログについては、「ルール結果:許可」であるため、図8のステップS805においてNOと判断され、表示対象から除外される。
「ログID:4」のアクセスログについては、「ルール結果:禁止」、「時刻条件:満たす」、「HTTPメソッド:GET」、「RefererURL:あり」、「RefererURLへのアクセスからの時間差:自動除外解析時間以内」であるため、図8のステップS810でNOと判断され、表示対象から除外される。
なお、RefererURLへのアクセスにかかるアクセスログは、「ログID:3」のログであり、当該アクセスからの時間差は0秒である。そのため、自動除外解析時間(10秒)以内のアクセスであると判断される。
「ログID:5」のアクセスログについては、ログID:4のアクセスログと同様に表示対象から除外される。
なお、RefererURLへのアクセスにかかるアクセスログは、「ログID:3」のログであり、当該アクセスからの時間差は2秒である。そのため、自動除外解析時間(10秒)以内のアクセスであると判断される。
「ログID:6」のアクセスログについては、「ルール結果:禁止」、「時刻条件:満たす」、「HTTPメソッド:GET」、「RefererURL:あり」、「RefererURLへのアクセスからの時間差:自動除外解析時間経過後」、であるため、ステップS810でYESと判断され、ステップS811にて表示対象とされる。
なお、RefererURLへのアクセスにかかるアクセスログは、「ログID:3」のログであり、当該アクセスからの時間差は20秒である。そのため、自動除外解析時間(10秒)を経過した後のアクセスであると判断される。
「ログID:7」のアクセスログについては、「ルール結果:許可」であるため、図8のステップS805でNOと判断され、表示対象から除外される。
「ログID:8」のアクセスログについては、「ルール結果:禁止」、「時刻条件:満たす」、「HTTPメソッド:POST」であるため、図8のステップS807でNOと判断されステップS811で表示対象とされる。
図12は、本発明におけるプロキシサーバ101の機能構成を示すブロック図である。
取得部1201は、クライアントPC102からウェブサーバに対して送信されるデータ取得要求(リクエストデータ)を取得する。
参照元判断手段1202は、取得部1201が取得したリクエストデータに参照元URLが含まれているか否かを判断する。
通知部1203は、第1決定部1205、第2決定部1208により通知すると決定されたアクセスログを監査者に対して通知する。
時間差算出部1204は、取得部1201が取得したリクエストデータがクライアントPC102から送信された時刻と、当該リクエストデータに含まれる参照元URLに対してリクエストデータが送信された時刻との時間差を算出する。
第1決定部1205は、時間差算出部1204により算出された時間差に応じて、監査者に対してアクセスログを通知するか否かを決定する。
時間差設定受付部1206は、第1決定部1205がアクセスログを通知するか否かを決定するための基準となる時間差の設定を受け付ける。
中継制御部1207は、クライアントPC102から送信されるリクエストデータの中継の可否を決定する。
第2決定部1208は、中継制御部1207により決定された中継の可否により、当該リクエストデータにかかるアクセスログを監査者に通知するか否かを決定する。
記憶部1209は、クライアントPC102から送信されたリクエストデータをログとして記憶する。
検索条件受付部1210は、記憶部1209に記憶されたログデータを検索するための条件の設定を監査者等から受け付ける。
抽出部1211は、検索条件受付部1210で受け付けた検索条件に合致するログデータを、記憶部1209に記憶されたログデータから抽出する。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
第1の実施形態においては、自動除外解析がONである場合には、RefererURLへのアクセスからの経過時間を考慮して、アクセスログを表示するか否かを判断した。
これに対して第2の実施形態は、RefererURLへのアクセスからの経過時間については考慮せず、リクエストデータにRefereURLが含まれるか否かによって、アクセスログを表示するか否かを判断する実施形態である。
すなわち、第1の実施形態における条件設定画面(図9)では、自動除外解析時間の設定が可能であったが、第2の実施形態における条件設定画面(不図示)では、当該設定ができない画面となる(自動除外解析をするか否かの設定のみが可能な画面となる)。
図13は、本発明の第2の実施形態において、プロキシサーバ101がアクセスログテーブルに記録されたアクセスログのうち、アクセスが禁止されたログをクライアントPC102に表示処理を示すフローチャートである。すなわち、第1の実施形態における図8に代わるフローチャートである。
なお、図13のフローチャートで示す処理については、プロキシサーバ101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS1301〜ステップS1307に示す処理については、図8におけるステップS801〜S807に示す処理と同じ処理である。そのため、ここでの説明は省略する。
ステップS1308では、プロキシサーバ101のCPU201は、ステップS1304で読み込んだアクセスログにRefererURLが記録されているか否かを判断する。
RefererURLが記録されていると判断された場合(ステップS1308:YES)は、処理をステップS1310へ移行する。
RefererURLが記録されていないと判断された場合(ステップS1308:NO)は、処理をステップS1309へ移行する。
ステップS1309では、プロキシサーバ101のCPU201は、ステップS1304で読み込んだアクセスログをクライアントPC102に表示するべく、クライアントPC102に送信する。
ステップS1310では、プロキシサーバ101のCPU201は、ステップS1304で読み込んだアクセスログが、アクセスログテーブルに記録されたアクセスログのうち最後のアクセスログであるか否かを判断する。
最後のアクセスログであると判断されると(ステップS1310:YES)、本フローチャートに示す処理を終了する。
最後のアクセスログではないと判断されると(ステップS1310:NO)、処理をステップS1304に移行し、次のアクセスログを1行読み込む。
以上のように、第2の実施形態における処理は、第1の実施形態におけるステップS809およびステップS810に示す処理を実行しないものである。これにより、RefererURLへのアクセスからの経過時間にかかわらず、リクエストデータにRefererURLが存在するアクセスログについては表示対象としないことが可能となる。
図14に示す画面は、第2の実施形態における図13のステップS1311の処理によりクライアントPC102に表示される画面である。
アクセスログテーブル(図5)におけるログID:1、2、8のアクセスログが表示されている。
すなわち、設定された時刻条件を満たすログのうち、「アクセスが禁止されたログであり、かつRefererURLが記録されていないログ」および、「アクセスが禁止されたログであり、GETメソッドではないログ」が表示される。
以上の処理により、ユーザ(閲覧者)が意図的にアクセスしたログのみを監査者へ通知することが可能なる。その結果、適切なログ管理が可能となる。
具体的には、RefererURLが記録されたリクエストデータにかかるアクセスは、ユーザによる意図的なアクセス(リンク先をクリックする等)ではなく、ブラウザが自動的にデータを取得した可能性が高いといえる。
このように、RefererURLの有無により、意図的なアクセスであるか否かを判断し、意図的ではないアクセスのログについては通知・表示をしないようにすることで、監査者が大量のログに紛れてしまった有用なログを探し出す手間を低減することが可能となる。それにより、効率的なログ管理が可能となる。
さらに、本実施形態においては、ステップS1307においてリクエストが「GETメソッドであるか否か」の判断をして、GETメソッドではない場合には、表示対象ログとしている。これは、GETメソッドではない(例えばPOST等)場合については、RefererURLの有無に関わらず、意図的なアクセスであることが多いためである。このステップS1307における判断処理により、監査に有用なログを表示させることが可能となる。
なお、本発明の目的は、監査に有用ではないアクセスログを表示させないことであるため、ステップS1307における処理は、本発明の目的を達成するために必須の処理でなく、省略したとしても本発明の目的は達成される。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。
第3の実施形態は、リクエストデータにRefererURLが含まれるか否かにより、当該リクエストに関するアクセスログを残すか否かを判断するものである。
第1および第2の実施形態においては、全てのリクエストに関するアクセスログを残し(図3参照)、当該ログを表示させる際にRefererURLの有無や、RefererURLへのアクセスからの経過時間を考慮して表示させるか否かを判断した(図8、図13参照)。
第3の実施形態では、RefererURLの有無によりアクセスログを残すか否かを決定する構成について説明する。
図15は、本発明の第3の実施形態において、プロキシサーバ101がクライアントPC102から送信されたリクエストデータを受信し、当該リクエストにかかるアクセスログを記録する処理を示すフローチャートである。すなわち、第1および第2の実施形態における図3のフローチャートに代わる図である。
なお、図15のフローチャートで示す処理については、プロキシサーバ101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS1501では、プロキシサーバ101のCPU201は、クライアントPC102から送信されたHTTPリクエストデータを取得し、当該リクエストデータからアクセス先となるURLを取得する。
ステップS1502では、プロキシサーバ101のCPU201は、ステップS1501で取得したアクセス先URLがアクセスルールテーブル(図4)に存在するか否かを判定する。すなわち、当該アクセス先URLについて、いずれかのアクセスルールが適用されるか否かを判定する。
アクセスルールテーブルに存在すると判定された場合(ステップS1502:YES)は、処理をステップS1504へ移行する。
他方、アクセスルールテーブルに存在しないと判断された場合(ステップS1502:NO)は、処理をステップS1503に移行する。
ステップS1503では、プロキシサーバ101のCPU201は、ステップS1502で適用されると判定されたアクセスルールについて、その動作がアクセスを禁止(データ中継を許可しない)であるか否かを判定する。
ステップS1503においてアクセスを許可すると判定された場合(ステップS1503:許可)は、処理をステップS1504に移行する。
他方、ステップS1503においてアクセスを禁止すると判定された場合(ステップS1503:禁止)は、処理をステップS1506に移行する。
ステップS1504では、プロキシサーバ101のCPU201は、プロキシサーバ101のCPU201は、ステップS1501で取得したアクセス先URLが示すウェブサーバ105にアクセスをする。
ステップS1505では、プロキシサーバ101のCPU201は、ウェブサーバ105からレスポンスデータを取得し、当該レスポンスデータをリクエスト元であるクライアントPC102に送信する。
そして、本フローチャートに示す処理を終了する。
ステップS1506では、プロキシサーバ101のCPU201は、ステップS1501で取得したHTTPリクエストデータのメソッドがGETメソッドであるか否かを判断する。
GETメソッドであると判断された場合(ステップS1506:YES)は、処理をステップS1507に移行する。
GETメソッドではないと判断された場合(ステップS1506:NO)は、処理をステップS1508に移行する。
ステップS1507では、プロキシサーバ101のCPU201は、ステップS1501で取得したリクエストデータにRefererURLが記録されているか否かを判断する。
RefererURLが記録されていると判断された場合(ステップS1507:YES)は、処理をステップS1509に移行する。
RefererURLが記録されていないと判断された場合(ステップS1507:NO)は、処理をステップS1508に移行する。
ステップS1508では、プロキシサーバ101のCPU201は、クライアントPCからリクエストされたURLに対するアクセスが禁止された旨の結果をアクセスログテーブル(図18)に記録する。
この際、アクセスログテーブルには、アクセスが禁止された旨の結果(ルール結果)だけでなく、クライアントPC102からHTTPリクエストデータが送信された時刻(アクセス時刻)、HTTPリクエストデータを送信したクライアントPCを識別する情報(IPアドレス等)(クライアントIPアドレス)、アクセス先URL等についても記録される。
ステップS1509では、プロキシサーバ101のCPU201は、リクエスト元であるクライアントPC102に対してアクセスが禁止された旨の結果を示すHTTPレスポンスデータを送信する。
そして、本フローチャートに示す処理を終了する。
なお、本実施形態では、アクセスルールテーブルに設定されていないURLへのアクセスについては、アクセスを許可するように構成しているが、デフォルト処理としてアクセス禁止として設定をしておき、その設定に従って処理を行うように構成しても良い。
以上の処理により、ユーザ(閲覧者)が意図的にアクセスしたログのみを記録することが可能なる。これにより、適切なログ管理が可能となる。
具体的には、RefererURLが記録されたリクエストデータにかかるアクセスは、ユーザによる意図的なアクセス(リンク先をクリックする等)ではなく、ブラウザが自動的にデータを取得した可能性が高いといえる。
このように、RefererURLの有無により、意図的なアクセスであるか否かを判断し、意図的ではないアクセスのログについては記録として残さないようにすることで、監査者が大量のログに紛れてしまった有用なログを探し出す手間を低減することが可能となる。これにより、効率的なログ管理が可能となる。
さらに、本実施形態においては、ステップS1506においてリクエストが「GETメソッドであるか否か」の判断をして、GETメソッドではない場合には、記録としてログを残している。これは、GETメソッドではない(例えばPOST等)については、RefererURLの有無に関わらず、意図的なアクセスであることが多いためである。このステップS1506における判断処理により、監査に有用なログを記録することが可能となる。
なお、本発明の目的は、監査に有用ではないアクセスログについては登録しない(記録として残さない)ことであるため、ステップS1506における処理は、本発明の目的を達成するために必須の処理でなく、省略したとしても本発明の目的は達成される。
また、監査に必要なログと不要なログとをアクセスログを記録する際に判断する構成を採ることで、ログを表示させる際の判断が不要となる。このように、不要なログを記録しないことで、プロキシサーバ等の資源(記憶領域等)を有効に利用することが可能となる。
図22は、本発明の第3の実施形態において、プロキシサーバ101がクライアントPC102にアクセスログを表示するべくクライアントPC102にアクセスログを送信する処理を示すフローチャートである。
なお、図22のフローチャートで示す処理については、プロキシサーバ101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS2201では、プロキシサーバ101のCPU201は、ユーザからアクセスログの検索条件の設定を受け付ける。なお、検索条件の設定については、クライアントPC102に表示される検索条件設定画面(図23)を介して受け付ける。
ここで、図23に一例を示す検索条件設定画面について説明する。
図23に示す画面では、アクセスログを検索する条件として、アクセス時刻の時刻条件(期間や時間範囲)の設定が可能である。
図23に示す例では、アクセスログテーブルに記録されたアクセス時刻が、「2010年10月1日(金)〜2010年10月28日(木)」までの期間であり、「00時00分〜24時00分」まで(終日)のログが検索されることを示している。
ステップS2202では、プロキシサーバ101のCPU201は、ステップS2201で受け付けた検索条件に合致するアクセスログをアクセスログテーブルから抽出する。
ステップS2203では、プロキシサーバ101のCPU201は、ステップS2202で抽出されたアクセスログを、クライアントPC102で表示すべくクライアントPC102に送信する。
以上の処理により送信されたアクセスログをクライアントPC102が受信すると、クライアントPC102には、図14に一例を示す画面が表示される(表示される画面は第2の実施形態と同じである)。
<第4の実施形態>
次に、本発明の第4の実施形態について説明する。
第4の実施形態は、リクエストデータにRefererURLが含まれるか否か、およびRefererURLへのアクセスからの経過時間によって、当該リクエストに関するアクセスログを残すか否かを判断するものである。
すなわち、第3の実施形態においては、RefererURLが含まれるリクエストデータにかかるアクセスログについては全て記録を残さなかった(ログを記憶しなかった)が、第4の実施形態においては、RefererURLが含まれるリクエストデータにかかるアクセスログについても、当該RefererURLへのアクセスからの経過時間によってログを記憶するか否かを決定する。
図16は、本発明の第4の実施形態において、プロキシサーバ101がクライアントPC102から送信されたリクエストデータを受信し、当該リクエストにかかるアクセスログを記録する処理を示すフローチャートである。
なお、図16のフローチャートで示す処理については、プロキシサーバ101のCPU201が所定の制御プログラムを読み出して実行する処理である。
なお、ステップS1601〜S1606の処理については、第3の実施形態における図15のステップS1501〜S1506と同じ処理であるため、ここでの説明は省略する。
ステップS1607では、プロキシサーバ101のCPU201は、ステップS1601で取得したリクエストデータにRefererURLが記録されているか否かを判断する。
RefererURLが記録されていると判断された場合(ステップS1607:YES)は、処理をステップS1608に移行する。
RefererURLが記録されていないと判断された場合(ステップS1607:NO)は、処理をステップS1609に移行する。
ステップS1608では、プロキシサーバ101のCPU201は、ステップS1601で取得したリクエストデータの送信時刻と、ステップS1607で判断されたRefererURLへのアクセス時刻との差が、図20に示す閾値を超えるか否かを判断する。すなわち、RefererURLへのアクセスから閾値を超える時間を経過した後のアクセスであるかを判断する。なお、図20に示す閾値は、図21に示す設定画面を介して監査者等により設定される。
RefererURLへのアクセス時刻から閾値を超える時間が経過していると判断された場合(ステップS1608:YES)は、処理をステップS1609に移行する。
RefererURLへのアクセス時刻からの経過時間が閾値を超えないと判断された場合(ステップS1608:NO)は、処理をステップS1610に移行する。
ステップS1609では、プロキシサーバ101のCPU201は、クライアントPCから送信されたURLに対するアクセスが禁止された旨の結果をアクセスログテーブル(図19)に記録する。
この際、アクセスログテーブルには、アクセスが禁止された旨の結果(ルール結果)だけでなく、クライアントPC102からHTTPリクエストデータが送信された時刻(アクセス時刻)、HTTPリクエストデータを送信したクライアントPCを識別する情報(IPアドレス等)(クライアントIPアドレス)、アクセス先URL等についても記録される。
また、クライアントPC102から送信されたHTTPリクエストデータに「RefererURL(参照元URL)」が含まれる場合には、当該RefererURLもあわせて記録される。
ステップS1610では、プロキシサーバ101のCPU201は、リクエスト元であるクライアントPC102に対してアクセスが禁止された旨の結果を示すHTTPレスポンスデータを送信する。
そして、本フローチャートに示す処理を終了する。
以上の処理により、ユーザ(閲覧者)が意図的にアクセスしたログのみを記録することが可能なる。これにより、適切なログ管理が可能となる。
具体的には、RefererURLが記録されたリクエストデータにかかるアクセスは、ユーザによる意図的なアクセスではなく、ブラウザが自動的にアクセスした可能性が高い。ただ、RefererURLが記録されたリクエストデータにかかるアクセスのすべてが意図的ではないアクセスとは言えず、RefererURLが記録されていたとしても意図的なアクセスである可能性はある。そこで、RefererURLへのアクセスからの経過時間を考慮し、RefererURLが記録されたアクセスであっても意図的なアクセスであるか否かを判断する。
すなわち、RefererURLへのアクセスからの経過時間が短い場合には、自動的にブラウザがリクエストをしたログである可能性が高い。他方、RefererURLへのアクセスから一定時間が経過した後のアクセスについては、ユーザによる意図的なアクセス(リンク先をクリックした等)である可能性が高いといえる。そのため、RefererURLへのアクセスからの経過時間を考慮することで、意図的なアクセスであるか否かを適切に判断することが可能となる。
このように、意図的なアクセスであるか否かを判断し、意図的ではないアクセスのログについては記録として残さないようにすることで、監査者が大量のログに紛れてしまった有用なログを探し出す手間を低減することが可能となる。その結果、効率的なログ管理が可能となる。
さらに、本実施形態においては、ステップS1606においてリクエストが「GETメソッドであるか否か」の判断をして、GETメソッドではない場合には、表示対象ログとしている。これは、GETメソッドではない(例えばPOST等)については、RefererURLの有無や、RefererURLへのアクセスからの経過時間に関わらず、意図的なアクセスであることが多いためである。このステップS1606における判断処理により、監査に有用なログを表示させることが可能となる。
なお、本発明の目的は、監査に有用ではないアクセスログを表示させないことであるため、ステップS1606における処理は、本発明の目的を達成するために必須の処理でなく、省略したとしても本発明の目的は達成される。
また、監査に必要なログと不要なログとをアクセスログを記録する際に判断する構成を採ることで、ログを表示させる際の判断が不要となる。このように、不要なログを記録しないことで、プロキシサーバ等の資源(記憶領域等)を有効に利用することが可能となる。
第4の実施形態において、プロキシサーバ101がクライアントPC102にアクセスログを表示するべく、クライアントPC102にアクセスログを送信する処理については、図22のフローチャートで示す(第3の実施形態と同じ処理である)。
第4の実施形態において、図22の処理により送信されたアクセスログをクライアントPC102が受信した際にクライアントPC102に表示される画面については、図11に示す画面である(第1の実施形態と同じ画面である)。
ここで、図17を参照して、HTTPリクエストデータの構成について説明する。図17に示すようにHTTPデータのリクエスト行1701、1702には、メソッド(図17の例ではGETメソッド)、宛先となるURL情報(リクエストURL)、HTTPのバージョン情報が設定される。
本発明の第1〜第4の実施形態では、このリクエスト行1701、1702に設定されているURL情報をアクセス先URLとして中継制御ルールと照合する。
またReferer1703には、このHTTPデータの送信元となったURL情報(RefererURL(参照元URL))が設定される。本発明の第1〜第4の実施形態では、HTTPデータに、このReferer1703が記録されているか否かを判断する。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
また、本発明におけるプログラムは、図3、図6〜図8の処理方法をコンピュータが実行可能なプログラムである。なお、本発明におけるプログラムは図3、図6〜図8の各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。