解析プログラム、解析装置および解析方法
【課題】多階層システムにおいて不正アクセスに関する通信シーケンスの特定を効率的に支援すること。
【解決手段】抽出手段1bは、通信履歴記憶手段1aに記憶された情報処理装置2,3,4間の通信履歴に基づいて、各情報処理装置間でなされた不正アクセスに関する通信につきシーケンス候補5を含む複数のシーケンス候補を抽出する。評価手段1cは、通信履歴記憶手段1aに記憶された通信履歴のうち、抽出手段1bが抽出した各シーケンス候補に対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、各シーケンス候補が不正アクセスであることの確度を示す評価値を算出し出力する。
【解決手段】抽出手段1bは、通信履歴記憶手段1aに記憶された情報処理装置2,3,4間の通信履歴に基づいて、各情報処理装置間でなされた不正アクセスに関する通信につきシーケンス候補5を含む複数のシーケンス候補を抽出する。評価手段1cは、通信履歴記憶手段1aに記憶された通信履歴のうち、抽出手段1bが抽出した各シーケンス候補に対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、各シーケンス候補が不正アクセスであることの確度を示す評価値を算出し出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワークを介して通信されるデータを解析する解析プログラム、解析装置および解析方法に関する。
【背景技術】
【0002】
従来、複数のコンピュータが階層的に処理を分担する情報処理システム(多階層システムという)が利用されている。多階層システムとして、例えばシステム利用のためのインタフェースを提供するWebサーバ、システム上の処理を実行するAP(Application)サーバおよびデータを管理するDB(Database)サーバを有する3階層システムが知られている。各サーバは、ユーザからの処理要求に対して連携して処理を実行し、その処理要求に応答する。このように、各コンピュータに処理を分担させることで、システムの信頼性や応答性を向上できる。
【0003】
ところで、情報処理システムでは機密情報(例えば、個人情報や営業秘密)を扱うものも多い。このため、機密情報の不正取得の防止や改ざんの防止など適正な保護対策が望まれる。そこで、保護するサーバが接続されたネットワークに侵入検知システム(IDS:Intrusion Detection System)を設けることが考えられる。IDSは、ネットワークから取得した通信データを、予め登録された不正な(あるいは正常な)情報パターンと照合することで、当該サーバやネットワークに対する不正アクセスを検知する。
【0004】
一方、正規ユーザやなりすましユーザが適正にアクセスした場合、IDSで当該アクセスを不正と検知することはできない。なぜなら、そのようなユーザは適正なIDやパスワードを保有しており、不正な手順を踏まずともシステムへのアクセスが可能だからである。しかし、正規ユーザなどがデータを不正に操作する危険性もある。そこで、データベースに対する操作内容を監視することで不正アクセスを検知する技術がある。
【0005】
ここで、多階層システムでは、複数の階層に別個に設けられたサーバが処理を分担する。このため、データベースに対する不正アクセスを検知した場合、そのアクセス元(例えば、アクセスしたユーザや端末装置)を特定するために、不正アクセスに関係する通信を辿って、その一連の通信(通信シーケンス)を特定することが考えられる。通信シーケンスを特定することで、例えばWebサーバに対するアクセス履歴からアクセス元を特定でき、そのアクセス元に対して適切な対処が可能となる。
【0006】
しかし、多階層システムでは、各階層の機能を実現するために独自に設計された種々のアプリケーションプログラムが導入され得る。この場合、各アプリケーションプログラムは独自の手法で通信データを管理する。このため、データベースに対する不正アクセスを検知したとしても、膨大な通信データの中から、当該不正アクセスに関するものを辿って、その通信シーケンスを特定することは困難であった。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−206564号公報
【特許文献2】特開2006−067279号公報
【特許文献3】特開2006−011683号公報
【特許文献4】特開2006−127409号公報
【非特許文献】
【0008】
【非特許文献1】株式会社ネットワールド、“データベース監視ツール Chakra製品(チャクラ)[ネットワールド]:製品概要”、[online]、[平成22年3月16日検索]インターネット <URL:http://www.networld.co.jp/chakra/chakra.htm>
【発明の概要】
【発明が解決しようとする課題】
【0009】
1つの側面では、本発明は、多階層システムにおいて不正アクセスに関する通信シーケンスの特定を効率的に支援する解析プログラム、解析装置および解析方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
この解析プログラムは、複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された通信履歴に基づいて、複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、記憶手段に記憶された通信履歴のうち、複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、処理をコンピュータに実行させる。
【0011】
また、上記課題を解決するために、上記解析プログラムを実行するコンピュータと同様の機能を有する解析装置が提供される。
また、上記課題を解決するために、上記解析プログラムと同様の処理を行う解析方法が提供される。
【発明の効果】
【0012】
上記解析プログラム、解析装置および解析方法によれば、多階層システムにおいて不正アクセスに関するシーケンスの特定を効率的に支援することができる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態に係る解析装置を示す図である。
【図2】第2の実施の形態に係る業務システムを示す図である。
【図3】サーバ間の通信を示す図である。
【図4】不正アクセス検出装置のハードウェア構成を示す図である。
【図5】不正アクセス検出装置の機能構成を示す図である。
【図6】パケット情報のデータ構造例を示す図である。
【図7】復元メッセージの具体例を示す図である。
【図8】プロトコルログ管理テーブルのデータ構造例を示す図である。
【図9】解析処理を示すフローチャートである。
【図10】サーバ間で送受信されたメッセージの具体例を示す図である。
【図11】処理対象期間特定処理を示すフローチャートである。
【図12】処理対象期間を示す図である。
【図13】不正シーケンス候補生成処理を示すフローチャートである。
【図14】不正シーケンス候補生成処理の具体例を示す第1の図である。
【図15】不正シーケンス候補生成処理の具体例を示す第2の図である。
【図16】正常系候補の具体例を示す図である。
【図17】妥当性評価処理を示す第1のフローチャートである。
【図18】妥当性評価の具体例を示す第1の図である。
【図19】妥当性評価処理を示す第2のフローチャートである。
【図20】妥当性評価処理を示す第3のフローチャートである。
【図21】処理時間およびリクエスト発行時間を示す図である。
【図22】妥当性評価の具体例を示す第2の図である。
【図23】結果出力処理を示すフローチャートである。
【図24】解析結果の表示画面の第1の具体例を示す図である。
【図25】解析結果の表示画面の第2の具体例を示す図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る解析装置を示す図である。解析装置1は、複数の情報処理装置とネットワークを介して接続する。解析装置1は、複数の情報処理装置間で送受信されるデータを取得し、解析する。解析装置1は、通信履歴記憶手段1a、抽出手段1bおよび評価手段1cを有する。
【0015】
通信履歴記憶手段1aは、情報処理装置2,3,4の間で送受信された通信データの履歴である通信履歴を記憶する。ここで、情報処理装置2,3,4は多階層システムを構成し、各情報処理装置は連携して処理を実行する。通信履歴は、情報処理装置2,3,4がネットワークを介して送受信したデータを取得したものである。
【0016】
抽出手段1bは、通信履歴記憶手段1aに記憶された通信履歴に基づいて、情報処理装置2,3,4間でなされた不正アクセスに関する通信手順につき複数のシーケンス候補を抽出する。
【0017】
抽出手段1bは、例えばシーケンス候補5を含む複数のシーケンス候補を抽出する。シーケンス候補5は、通信5a,5b,5c,5d,5e,5fを含む。
通信5aは、所定の端末装置から情報処理装置2へのリクエストである。通信5bは、情報処理装置2から情報処理装置3へのリクエストである。通信5cは、情報処理装置3から情報処理装置4へのリクエストである。通信5dは、情報処理装置4から情報処理装置3へのレスポンスである。通信5eは、情報処理装置3から情報処理装置2へのレスポンスである。通信5fは、情報処理装置2から所定の端末装置へのレスポンスである。
【0018】
ここで、通信履歴は通信5a,5b,5c,5d,5e,5fを特定するための情報を含む。
評価手段1cは、通信履歴記憶手段1aに記憶された通信履歴のうち、抽出手段1bが抽出した複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴に基づいて、複数のシーケンス候補それぞれの確度を示す評価値を算出し出力する。
【0019】
評価手段1cは、例えば通信履歴記憶手段1aに記憶された通信履歴からシーケンス候補5に対応する第1の通信履歴を除いた第2の通信履歴を取得する。この場合、第1の通信履歴は、通信5a,5b,5c,5d,5e,5fを示すものである。すなわち、第2の通信履歴は、通信5a,5b,5c,5d,5e,5fを含まない履歴である。評価手段1cは、当該第2の通信履歴により復元できるトランザクションの正常性に基づいて、シーケンス候補5が不正アクセスであることの確度を示す評価値を算出する。
【0020】
ここで、トランザクションの正常性とは、復元したトランザクションが通常の適正な通信によりなされたと見込まれる度合いである。シーケンス候補5を除いて復元したトランザクションの正常性が高いほど、シーケンス候補5が不正アクセスである確度も高い。一方、シーケンス候補5を除いて復元したトランザクションの正常性が低いほど、シーケンス候補5が不正アクセスである確度も低い。
【0021】
なお、通信履歴によりトランザクションを復元する方法として、例えば特開2006−011683号公報に記載の方法を適用することができる。
評価手段1cは、このようにして各シーケンス候補について確度を示す評価値を算出し、出力する。
【0022】
解析装置1によれば、次の処理が実行される。まず、抽出手段1bにより、通信履歴記憶手段1aに記憶された通信履歴に基づいて、情報処理装置2,3,4間でなされた不正アクセスに関する通信手順につき複数のシーケンス候補が抽出される。そして、評価手段1cにより、通信履歴記憶手段1aに記憶された通信履歴のうち、抽出手段1bが抽出した各シーケンス候補に対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、各シーケンス候補が不正アクセスであることの確度を示す評価値が算出され出力される。
【0023】
このようにして、解析装置1は多階層システムにおいて不正アクセスに関するシーケンスの特定を効率的に支援することができる。具体的には、以下の通りである。
解析装置1は、通信履歴記憶手段1aに記憶された通信履歴を用いてシーケンス候補を抽出し、評価する。すなわち、情報処理装置2,3,4で個々に動作するアプリケーションプログラムに依らずに処理が可能である。よって、各アプリケーションプログラムに手を加える必要がなく、導入が容易である。
【0024】
また、解析装置1は複数のシーケンス候補につき、各シーケンス候補に対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、各シーケンス候補の評価値を算出する。
【0025】
ここで、不正アクセスに関する通信処理では、通常と異なる処理が行われることが一般的である。例えば、データに対する不正な操作を行うために、定型的な業務処理とは異なる処理が行われる。したがって、不正アクセスに関係すると考えられる通信シーケンスは通常の処理とは異なるパターンの通信シーケンスとなると考えられる。よって、第2の通信履歴が不正アクセスに関する異常な通信シーケンスを含む場合、第2の通信履歴により復元されるトランザクションの正常性は低下する。一方、第2の通信履歴が不正アクセスに関する異常な通信シーケンスを含まない場合には、第2の通信履歴により復元されるトランザクションの正常性は高くなる。
【0026】
このような理由により、解析装置1は第2の通信履歴により復元されるトランザクションの正常性に基づいて、不正アクセスに関する各シーケンス候補が不正アクセスであることの確度を適正に評価することができる。
【0027】
解析装置1は、このようにして得た評価値を出力する。システム管理者は、当該出力結果により、不正アクセスに関する通信シーケンスの候補のうち確度のより高いものを容易に特定することができる。
【0028】
以下の実施の形態では、Web3階層システムに解析装置1を適用する場合を例に採り、更に具体的に説明する。
[第2の実施の形態]
図2は、第2の実施の形態に係る業務システムを示す図である。この業務システムは、不正アクセス検出装置100、Webサーバ200、APサーバ300およびDBサーバ400を有する。不正アクセス検出装置100、Webサーバ200、APサーバ300およびDBサーバ400は、スイッチ装置10を介して相互に接続されている。また、スイッチ装置10は、ネットワーク20を介して端末装置21,22,23に接続されている。
【0029】
端末装置21,22,23は、スイッチ装置10およびネットワーク20を介してWebサーバ200にアクセス可能である。端末装置21,22,23のユーザは、Webサーバ200が提供するGUI(Graphical User Interface)を端末装置21,22,23から操作して業務システムを利用できる。ネットワーク20は、例えばイントラネットである。
【0030】
なお、ネットワーク20がインターネットである場合も考えられる。その場合、スイッチ装置10はファイアウォールとして機能させることもできる。また、Webサーバ200の属するネットワークセグメントは、例えばDMZ(Demilitarized Zone)として扱われる。
【0031】
不正アクセス検出装置100は、Webサーバ200、APサーバ300およびDBサーバ400の稼働状況を管理する。不正アクセス検出装置100は、そのための情報をスイッチ装置10から取得することができる。すなわち、スイッチ装置10は、ポートミラーリング機能を有しており、Webサーバ200、APサーバ300およびDBサーバ400の間で送受信されるパケットを不正アクセス検出装置100にも送信する。不正アクセス検出装置100は、スイッチ装置10から送信されるパケットを受信して、記憶する(パケットキャプチャ)。なお、不正アクセス検出装置100で単にパケットキャプチャを行う用途であれば、スイッチ装置10を例えばリピータハブで代用することもできる。
【0032】
なお、業務システムにおいてWebサーバ200、APサーバ300およびDBサーバ400と各層(Web層、App層およびDB層)一台ずつの構成を例示したが、各層にそれぞれ複数台のサーバを設けてもよい。
【0033】
図3は、サーバ間の通信を示す図である。Webサーバ200は、端末装置21,22,23で実行されるWebブラウザから業務システムに対する処理要求(メッセージ)を受け付ける。ここで、Webサーバ200と端末装置21,22,23とのメッセージ交換は、HTTP(HyperText Transfer Protocol)によって行われるものとする。ただし、他のプロトコルが用いられてもよい。
【0034】
以下では、端末装置21,22,23からWebサーバ200へ送信する処理要求をHTTPリクエストと称する。また、それに対する応答をHTTPレスポンスと称する。なお、リクエスト/レスポンスともに通信の内容の例である。
【0035】
Webサーバ200は、端末装置21,22,23から受信したHTTPリクエストに基づいて、静的コンテンツに関しては自装置でHTTPレスポンスを生成し、端末装置21,22,23に送信する。なお、動的コンテンツに関しては、APサーバ300に依頼すべき処理の処理要求(メッセージ)を生成して、APサーバ300に送信する。
【0036】
ここで、Webサーバ200とAPサーバ300とのメッセージ交換は、IIOP(Internet Inter-ORB(Object Request Broker) Protocol)によって行われるものとする。ただし、他のプロトコルが用いられてもよい。
【0037】
以下では、Webサーバ200からAPサーバ300へ送信する処理要求をIIOPリクエストと称する。また、それに対する応答をIIOPレスポンスと称する。
Webサーバ200は、IIOPリクエストに対するIIOPレスポンスを受信すると、その内容に基づいてHTTPレスポンスを生成して、端末装置21,22,23に送信する。
【0038】
APサーバ300は、Webサーバ200から受信したIIOPリクエストに基づいてDBサーバ400に依頼すべき処理のクエリを生成し、DBサーバ400に送信する。
ここで、APサーバ300が生成するクエリは、例えばSQL文によって表記される。以下では、APサーバ300がDBサーバ400に送信するクエリをDBリクエストと称する。また、それに対する応答をDBレスポンスと称する。
【0039】
APサーバ300は、DBリクエストに対するDBレスポンスを受信すると、その内容に基づいてIIOPレスポンスを生成してWebサーバ200に送信する。
DBサーバ400は、APサーバ300から受信したDBリクエストに含まれるSQL文を実行してデータベース410の参照や更新等の処理を実行する。DBサーバ400は、その処理結果に基づいてDBレスポンスを生成し、APサーバ300に送信する。
【0040】
ここで、Webサーバ200は、APサーバ300およびDBサーバ400よりも上位の階層のサーバであるとする。また、APサーバ300は、DBサーバ400よりも上位の階層のサーバであるとする。具体的には、Webサーバ200の階層にレイヤ番号L=1が定義されている。APサーバ300の階層にレイヤ番号L=2が定義されている。DBサーバ400の階層にレイヤ番号L=3が定義されている。レイヤ番号Lの値が小さい程、上位の階層である。これらの階層関係を定義する情報は、不正アクセス検出装置100に予め格納される。
【0041】
なお、以下では各サーバという場合、Webサーバ200、APサーバ300およびDBサーバ400を示すものとする。
図4は、不正アクセス検出装置のハードウェア構成を示す図である。不正アクセス検出装置100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
【0042】
CPU101は、不正アクセス検出装置100全体を制御する。
ROM102は、不正アクセス検出装置100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
【0043】
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
【0044】
HDD104は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD104はCPU101による処理に必要な各種データを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
【0045】
グラフィック処理装置105は、モニタ11と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ11の画面に表示させる。
入力インタフェース106は、キーボード12とマウス13と接続される。入力インタフェース106は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。
【0046】
記録媒体読取装置107は、記録媒体14に記憶されたデータを読み取る読取装置である。例えば、不正アクセス検出装置100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体14に記録して配布することができる。また、スイッチ装置10あるいはネットワーク20に接続されたプログラム配信サーバ(図示せず)にそのプログラムを格納してもよい。この場合、不正アクセス検出装置100は、スイッチ装置10あるいはネットワーク20を介してプログラム配信サーバからプログラムをダウンロードすることができる。
【0047】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0048】
通信インタフェース108は、TP(Twisted Pair)ケーブルや光ケーブル等によってスイッチ装置10と接続される。通信インタフェース108は、スイッチ装置10を介して他の情報処理装置とデータ通信する。また、通信インタフェース108は、各サーバの間で送受信されるパケットをスイッチ装置10から受信する。
【0049】
なお、各サーバおよび端末装置21,22,23も不正アクセス検出装置100と同様のハードウェア構成により実現できる。
図5は、不正アクセス検出装置の機能構成を示す図である。不正アクセス検出装置100は、パケット記憶部110、プロトコルログ記憶部120、パケット受信部130、メッセージ復元部140、不正アクセス検知部150、不正シーケンス候補生成部160、正常系候補生成部170、妥当性評価部180および解析結果出力部190を有する。これらの機能は、所定のプログラムをCPU101が実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0050】
パケット記憶部110は、パケット受信部130がキャプチャしたパケット情報を記憶する。
プロトコルログ記憶部120は、メッセージ復元部140が生成したプロトコルログ情報を記憶する。ここで、プロトコルログ情報とは、パケット情報に基づいて生成されるものであり、業務システムにおける各サーバの通信履歴を表すものである。
【0051】
パケット受信部130は、スイッチ装置10を介して送受信されるパケットをスイッチ装置10から受信する。パケット受信部130は、受信したパケットをパケット情報としてパケット記憶部110に格納する。パケット受信部130は、例えば業務システムが稼働している間、パケットを取得し続ける。
【0052】
メッセージ復元部140は、パケット記憶部110に記憶されたパケット情報に基づいて、パケット情報に含まれるメッセージを復元する。そして、メッセージ復元部140は、復元したメッセージによりプロトコルログを生成し、プロトコルログ記憶部120に格納する。
【0053】
メッセージ復元部140の機能は、例えば特開2006−011683号公報に記載の機能を適用することで実現できる。
不正アクセス検知部150は、パケット記憶部110に記憶されたパケット情報に基づいて、DBサーバ400に対する不正アクセスを検知する。不正アクセス検知部150の機能は、例えば非特許文献1として挙げた“データベース監視ツール”の機能を適用することで実現できる。
【0054】
不正シーケンス候補生成部160は、不正アクセス検知部150により不正アクセスが検知されると、プロトコルログ記憶部120に記憶されたプロトコルログに基づいて、当該不正アクセスに関する複数の不正シーケンス候補を生成する。不正シーケンス候補生成部160は、生成した各不正シーケンス候補を正常系候補生成部170および解析結果出力部190に出力する。
【0055】
正常系候補生成部170は、不正シーケンス候補生成部160から取得した各不正シーケンス候補と、プロトコルログ記憶部120に記憶されたプロトコルログと、に基づいて、プロトコルログに含まれるメッセージのうち、各不正シーケンス候補に関するものを除いた正常系のメッセージ群の候補(以下、正常系候補と称する)を生成する。正常系候補生成部170は、生成した各正常系候補を妥当性評価部180に出力する。
【0056】
妥当性評価部180は、正常系候補生成部170から取得した各正常系候補の正常性を評価し、その指標である評価値を算出する。妥当性評価部180は、算出した評価値を解析結果出力部190に出力する。
【0057】
解析結果出力部190は、不正シーケンス候補生成部160から取得した不正シーケンス候補を、妥当性評価部180から取得した評価値に応じてランク付けし、出力する。解析結果出力部190は、例えばランク付けの結果をモニタ11にリスト表示させる。
【0058】
なお、不正シーケンス候補生成部160は、不正シーケンス候補を1つだけ生成する場合もある。そのような場合には、不正シーケンス候補の評価を行わずとも当該不正シーケンス候補が不正アクセスに関するものであると考えることができる。よって、この場合、解析結果出力部190は当該不正シーケンス候補をそのまま出力すればよい。
【0059】
図6は、パケット情報のデータ構造例を示す図である。パケット保存ファイル111は、パケット受信部130により収集されたパケットを格納したファイルである。パケット保存ファイル111には、パケット受信部130がパケットを受信するたびに新たに受信したパケットの情報が追加される。パケット保存ファイル111は、例えばバイナリ形式のファイルである。
【0060】
パケット保存ファイル111は、受信日時格納部111aおよびパケットデータ格納部111bを有する。
受信日時格納部111aは、パケットデータ格納部111bに格納するパケットを受信した日時を設定する領域である。パケット受信部130は、当該パケットを受信した時のタイムスタンプ(例えば、年月日時分秒)を受信日時格納部111aに格納する。
【0061】
パケットデータ格納部111bは、パケット受信部130が受信したパケットを格納する領域である。
メッセージ復元部140は、パケット記憶部110に記憶されたパケット保存ファイル111に基づいて、各サーバで送受信されたメッセージを復元することができる。メッセージを復元する方法としては、上述したように、例えば特開2006−011683号公報に記載の方法を利用することができる。
【0062】
図7は、復元メッセージの具体例を示す図である。復元メッセージ121は、メッセージ復元部140によりパケット記憶部110に記憶されたパケット保存ファイル111に基づいて生成され、プロトコルログ記憶部120に格納される。復元メッセージ121は、後述するプロトコルログ管理テーブルを生成するためのデータである。なお、復元メッセージ121には、後述の説明に適合する箇所のみを記載しており、それ以外のメッセージに関しては図示を省略している。
【0063】
復元メッセージ121の各行には、日付フィールド121a、時刻フィールド121b、送信元アドレスフィールド121c、送信先アドレスフィールド121d、コマンド種別フィールド121eおよびコマンドフィールド121fが含まれる。
【0064】
日付フィールド121aは、当該メッセージに対応するパケットをキャプチャした日付を示すフィールドである。
時刻フィールド121bは、当該メッセージに対応するパケットをキャプチャした時刻を示すフィールドである。
【0065】
送信元アドレスフィールド121cは、メッセージの送信元のコンピュータのIP(Internet Protocol)アドレスおよびポート番号を示すフィールドである。
送信先アドレスフィールド121dは、メッセージの送信先のコンピュータのIPアドレスおよびポート番号を示すフィールドである。
【0066】
コマンド種別フィールド121eは、コマンドのリクエスト/レスポンス属性やプロトコル(HTTP、IIOPおよびDBクエリ用など)の種別を示すフィールドである。
コマンドフィールド121fは、コマンド種別フィールド121eに示されたリクエストなどのコマンド内容を示すフィールドである。
【0067】
以下、復元メッセージ121に便宜的に付した行番号を示して説明する。
例えば、行番号1のメッセージはHTTPリクエストを示している。
日付フィールド121aには、その行に対応するパケットをキャプチャした日付として、例えば“2010/03/01”が取得される。メッセージ復元部140は、このような日付としてパケット保存ファイル111の受信日時格納部111aに設定された日付を取得できる。
【0068】
また、時刻フィールド121bには、パケットキャプチャした時刻として、例えば“00:00:00.100”が取得される。メッセージ復元部140は、このような時刻としてパケット保存ファイル111の受信日時格納部111aに設定された時刻を取得できる。なお、秒の単位としてはミリ秒を例示するが、更に小さい単位(例えば、マイクロ秒)で取得してもよい。
【0069】
送信元アドレスフィールド121cには、HTTPリクエストを送信した端末装置21のIPアドレスとポート番号として、例えば“194.185.39.24:51272”が取得される。
【0070】
送信先アドレスフィールド121dには、HTTPリクエストの送信先であるWebサーバ200のIPアドレスとポート番号として、例えば、“194.23.6.226:10443”が取得される。
【0071】
コマンド種別フィールド121eには、1行目がHTTPリクエストに関するメッセージであることを示す情報として、例えば“Request HTTP”という情報が取得される。メッセージ復元部140は、例えば外部ネットワークに属する端末装置21からWebサーバ200に対するメッセージをHTTPリクエストと識別することができる。また、メッセージ復元部140は、例えばWebサーバ200からそれよりも下位のAPサーバ300に対するメッセージをIIOPリクエストと識別することができる。メッセージ復元部140は、DBリクエストや各種レスポンスに関しても同様にして識別することができる。
【0072】
コマンドフィールド121fには、HTTPリクエストの内容として、例えば“POST /cgi−bin/・・・”という情報が取得される。
このように、復元メッセージ121を参照することで、何れのサーバに対して、どのようなメッセージが送信されたかを検出することができる。
【0073】
ここで、復元メッセージ121中のその他のIPアドレスと各装置との対応関係は次の通りである。
“194.23.7.168”は、APサーバ300のIPアドレスを示す。“194.23.8.198”は、DBサーバのIPアドレスを示す。“194.185.39.25”は、端末装置22のIPアドレスを示す。
【0074】
すなわち、Webサーバ200と端末装置22との間でのHTTPリクエスト/HTTPレスポンスの送受信を各行に含まれる送信元アドレスフィールド121c、送信先アドレスフィールド121dおよびコマンド種別等によって特定できる。例えば、復元メッセージ121の3行目が当該HTTPリクエストに対応する。
【0075】
また、Webサーバ200とAPサーバ300との間でのIIOPリクエスト/IIOPレスポンスの送受信は、復元メッセージ121の2,7行目に対応する。
また、APサーバ300とDBサーバ400との間でのDBリクエスト/DBレスポンスの送受信は、復元メッセージ121の5,6行目に対応する。
【0076】
更に、メッセージ復元部140は、このようにしてリクエストと、それに対するレスポンスとを対応付けることができる。例えば、1行目は端末装置21からWebサーバ200に対するHTTPリクエストを示している。一方、その後に発生したWebサーバ200から端末装置21に対するHTTPレスポンスが8行目に示されている。よって、メッセージ復元部140は、1行目のHTTPリクエストに対して8行目のHTTPレスポンスにより応答がなされたと特定できる。メッセージ復元部140は、このようにして対応付けたリクエスト/レスポンスにその組合せを識別するための識別情報を付して、プロトコルログ管理情報を生成する。
【0077】
図8は、プロトコルログ管理テーブルのデータ構造例を示す図である。プロトコルログ管理テーブル122は、メッセージ復元部140によって生成され、プロトコルログ記憶部120に格納される。
【0078】
プロトコルログ管理テーブル122には、項番、時刻、識別番号、プロトコルおよびRequest/Responseを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのメッセージに関する情報を示す。
【0079】
項番には、レコードを識別する番号が設定される。時刻には、メッセージに対応するパケットをキャプチャした時刻が設定される。識別番号には、リクエスト/レスポンスの組を特定するための番号が設定される。プロトコルを示す項目には、メッセージが何れのプロトコルによるものかを示す情報が設定される。Request/Responseを示す項目には、そのメッセージがリクエスト/レスポンスの何れのものであるかを示す情報が設定される。
【0080】
プロトコルログ管理テーブル122には、例えば、項番が“1001”、時刻が“00:00:00.100”、識別番号が“101”、プロトコルが“HTTP”、Request/Responseが“Request”という情報が設定される。
【0081】
このレコードは、復元メッセージ121の1行目の内容に対応する。識別番号“101”はリクエスト/レスポンスの組を特定するための番号であり、項番“1014”に設定されたHTTPレスポンスのレコードについても識別番号“101”が設定されている。すなわち、項番“1001”で示されるHTTPリクエストに対する応答が“1014”で示されるHTTPレスポンスであると関連付けることができる。
【0082】
メッセージ復元部140は、パケット記憶部110に記憶されたパケット保存ファイル111を参照して、復元メッセージ121およびプロトコルログ管理テーブル122を逐次生成する。不正シーケンス候補生成部160および正常系候補生成部170は、プロトコルログ管理テーブル122に基づいて、各部の処理を実行することができる。
【0083】
次に、以上のような構成を備える不正アクセス検出装置100の処理手順を詳細に説明する。
図9は、解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0084】
[ステップS11]不正アクセス検知部150は、パケット記憶部110に記憶されたパケット情報を監視して、DBサーバ400に対する不正アクセスが発生したことを検知する。不正アクセス検知部150は、不正アクセスに関するDBリクエストをキャプチャした時間およびDBレスポンスをキャプチャした時間(両者を総じて不正アクセスの発生時間と称する)を不正シーケンス候補生成部160に出力する。
【0085】
[ステップS12]不正シーケンス候補生成部160は、不正アクセスの発生時間に基づいて、不正シーケンスを検出するための処理対象期間Pを特定する。
[ステップS13]不正シーケンス候補生成部160は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122に記録されたメッセージであって、処理対象期間Pに含まれるメッセージに基づいて、不正シーケンス候補を生成する。不正シーケンス候補生成部160は、生成した複数の不正シーケンス候補を正常系候補生成部170および解析結果出力部190に出力する。
【0086】
[ステップS14]正常系候補生成部170は、不正シーケンス候補生成部160から取得した不正シーケンス候補のうちから1つを取得する。
[ステップS15]正常系候補生成部170は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122に記録されたメッセージであって、処理対象期間Pに含まれるメッセージ群を取得する。正常系候補生成部170は、当該メッセージ群から不正シーケンス候補を除く正常系候補を生成する。正常系候補生成部170は、生成した正常系候補を妥当性評価部180に出力する。
【0087】
[ステップS16]妥当性評価部180は、正常系候補生成部170から取得した正常系候補の妥当性を評価し、評価結果に基づいて不正シーケンス候補の確度を示す評価値を算出する。妥当性評価部180は、算出した評価値を解析結果出力部190に出力する。ここで、妥当性の評価方法に関しては、複数の方式が考えられる。当該評価方法の詳細は、後述する。
【0088】
[ステップS17]正常系候補生成部170は、各不正シーケンス候補につき妥当性評価部180による妥当性の評価が終了したか否かを判定する。終了した場合、処理をステップS18に進める。終了していない場合、処理をステップS14に進める。
【0089】
[ステップS18]解析結果出力部190は、不正シーケンス候補生成部160から取得した各不正シーケンス候補と、妥当性評価部180から取得した各不正シーケンス候補の評価値と、に基づいて、各不正シーケンス候補をランク付けしてモニタ11に表示させる。
【0090】
このようにして、不正アクセス検出装置100は各不正シーケンス候補のうち、不正アクセスに関係する可能性の高いものを特定できる。そして、不正アクセス検出装置100は、モニタ11を介して解析結果をシステム管理者に提示することができる。
【0091】
図10は、サーバ間で送受信されたメッセージの具体例を示す図である。図10ではプロトコルログ管理テーブル122に示した各レコードに対応するメッセージを示している。ここで、各メッセージには、その時系列が把握し易いように時刻を併記している。更に、各メッセージに付した符号はリクエスト/レスポンスの対応関係に準じている。すなわち、HTTPリクエスト511aとHTTPレスポンス511bとがセットとなる。また、HTTPリクエスト512aとHTTPレスポンス512bとがセットとなる。また、HTTPリクエスト513aとHTTPレスポンス513bとがセットとなる。IIOPリクエスト521a,522a,523aとIIOPレスポンス521b,522b,523bとの関係も同様である。DBリクエスト531a,532a,533aとDBレスポンス531b,532b,533bとの関係も同様である。
【0092】
ここで、不正アクセス検知部150は、DBリクエスト531aとDBレスポンス531bとの組合せで不正アクセスを検知したとする。すると、不正アクセス検知部150は、当該不正アクセスの発生時間を不正シーケンス候補生成部160に出力する。
【0093】
不正シーケンス候補生成部160は、不正アクセスの発生時間に基づいて処理対象期間Pを特定する。
次に、図9のステップS12で示した処理対象期間特定処理を説明する。
【0094】
図11は、処理対象期間特定処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS21]不正シーケンス候補生成部160は、時間幅初期値Tを取得する。ここで、時間幅初期値Tとは、不正アクセスの発生時間に対して、どの程度の時間幅を処理対象期間とみなすかの初期値を定めるために予めシステム管理者により決定される値である。
【0095】
[ステップS22]不正シーケンス候補生成部160は、不正アクセス検知部150から取得した不正アクセスの発生時間のうち、DBリクエストに対応する時間をリクエスト時間T0として取得する。
【0096】
[ステップS23]不正シーケンス候補生成部160は、不正アクセスの発生時間のうち、DBレスポンスに対応する時間をレスポンス時間T1として取得する。
[ステップS24]不正シーケンス候補生成部160は、WsにT0−Tを代入する。また、不正シーケンス候補生成部160は、WeにT1+Tを代入する。これにより、期間Pが暫定的に定まる。すなわち、期間PはWs〜Weの間の期間となる。ここで、“T0−T”の演算結果は、T0の時点よりも時間Tだけ過去の時間を取得することを示すものとする。また、“T1+T”の演算結果は、T1の時点よりも時間Tだけ未来の時間を示すものとする。
【0097】
[ステップS25]不正シーケンス候補生成部160は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122に基づいて、期間Pに含まれるメッセージを取得する。
【0098】
[ステップS26]不正シーケンス候補生成部160は、取得したメッセージに、対応するリクエストのないレスポンスが存在するか否かを判定する。レスポンスのみのものが存在する場合、処理をステップS27に進める。レスポンスのみのものが存在しない場合、処理をステップS28に進める。例えば、プロトコルログ管理テーブル122に設定された識別番号により、対となるリクエストが存在しないレスポンスを特定することで、本判定を行うことができる。
【0099】
[ステップS27]不正シーケンス候補生成部160は、プロトコルログ管理テーブル122のうち、期間Pに含まれない期間(Wsよりも前の期間)のメッセージを参照して、ステップS26で特定したレスポンスに対応するリクエストを特定する。例えば、プロトコルログ管理テーブル122に設定された識別番号によって対となるリクエストを特定することができる。不正シーケンス候補生成部160は、当該リクエストの発生時間をWsに代入する。そして、処理をステップS25に進める。なお、各メッセージの発生時間は、プロトコルログ管理テーブル122に設定された時刻を参照することで取得できる。
【0100】
[ステップS28]不正シーケンス候補生成部160は、プロトコルログ管理テーブル122に基づいて、期間Pに含まれるメッセージを取得する。
[ステップS29]不正シーケンス候補生成部160は、取得したメッセージに、対応するレスポンスのないリクエストが存在するか否かを判定する。リクエストのみのものが存在する場合、処理をステップS30に進める。リクエストのみのものが存在しない場合、処理をステップS31に進める。例えば、プロトコルログ管理テーブル122に設定された識別番号により、対となるレスポンスが存在しないリクエストを特定することで、本判定を行うことができる。
【0101】
[ステップS30]不正シーケンス候補生成部160は、プロトコルログ管理テーブル122のうち、期間Pに含まれない期間(Weよりも後の期間)のメッセージを参照して、ステップS29で特定したリクエストに対応するレスポンスを特定する。例えば、プロトコルログ管理テーブル122に設定された識別番号によって対となるレスポンスを特定することができる。不正シーケンス候補生成部160は、当該レスポンスの発生時間をWeに代入する。そして、処理をステップS28に進める。
【0102】
[ステップS31]不正シーケンス候補生成部160は、期間Pを決定するパラメータとしてWs,Weを取得する。
このようにして、不正シーケンス候補生成部160は、処理対象期間Pを決定する。期間Pを、対になるリクエストの存在しないレスポンスおよび対になるレスポンスの存在しないリクエストを含まないように決定する。
【0103】
図12は、処理対象期間を示す図である。(A)は、暫定的に定められた期間Pを示している。図12では、HTTPリクエストA1とHTTPレスポンスA2とが組となる。また、HTTPリクエストB1とHTTPレスポンスB2とが組となる。不正アクセスのDBリクエストに対応する時間がT0である。また、不正アクセスのDBレスポンスに対応する時間がT1である。不正シーケンス候補生成部160は、Ws=T0−TからWe=T1−Tの期間Pを得る。
【0104】
不正シーケンス候補生成部160は、HTTPレスポンスA2に対するHTTPリクエストA1が現期間Pに含まれていないことを検知すると、HTTPリクエストA1の発生時間をWsに代入する。これにより、期間Pは、より過去の期間を含むように更新される。更に、不正シーケンス候補生成部160は、HTTPリクエストB1に対応するレスポンスB2が更新後の期間Pに含まれていないことを検知すると、HTTPレスポンスB2の発生時間をWeに代入する。これにより、期間Pは、より未来の期間を含むように更新される。
【0105】
(B)は、このようにして決定された期間Pを示している。上記の処理によって新たに得られたWsからWeの期間が期間Pである。
ここで、対になるリクエストの存在しないレスポンスなどが存在する場合、後段の処理で当該メッセージを用いてシーケンスを生成したとしても、それが誤ったシーケンスであることは明らかである。また、このように誤生成されたシーケンスで評価を行うとすると評価結果の精度を低減させるおそれがある。
【0106】
そこで、シーケンスが誤生成されないように、リクエスト/レスポンスの一方のみのメッセージを含まないように期間を決定することで、後段の処理の精度を向上することができる。
【0107】
次に、図9のステップS13で示した不正シーケンス候補生成処理を説明する。
図13は、不正シーケンス候補生成処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。なお、以下の処理を開始させる前に、不正シーケンス候補生成部160は作業域M,S(L)に格納された情報を全て破棄するものとする。
【0108】
[ステップS41]不正シーケンス候補生成部160は、レイヤ番号Lに不正アクセスを検知した階層のレイヤ番号Laを代入する。具体的には、DBサーバ400のレイヤ番号La=3をLに代入する。すなわち、L=3に初期化される。
【0109】
[ステップS42]不正シーケンス候補生成部160は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122を参照して不正アクセスメッセージに対応するレコードを作業域Mに追加する。具体的には、DBリクエスト531aに対応するレコード(項番“1005”)およびDBレスポンス531bに対応するレコード(項番“1006”)を作業域Mへ追加する。
【0110】
[ステップS43]不正シーケンス候補生成部160は、リクエスト時間Ts(La)=Ts(3)にT0を代入する。また、不正シーケンス候補生成部160は、レスポンス時間Te(La)=Te(3)にT1を代入する。ここで、T0はDBリクエスト531aの発生時間である。また、T1はDBレスポンス531bの発生時間である。不正シーケンス候補生成部160は、T0,T1を不正アクセス検知部から取得した時間としてもよいし、プロトコルログ管理テーブル122から取得してもよい。
【0111】
[ステップS44]不正シーケンス候補生成部160は、Lが1に等しいか否かを判定する。L=1ではない場合、処理をステップS45に進める。L=1である場合、処理をステップS51に進める。
【0112】
[ステップS45]不正シーケンス候補生成部160は、レイヤ番号L−1の階層において期間Pに含まれるメッセージを取得する。不正シーケンス候補生成部160は、例えばプロトコルログ管理テーブル122に設定されたプロトコルを参照して、L−1の階層のメッセージを取得することができる。例えば、L−1=3−1=2である場合、当該階層番号が示す階層はAPサーバ300の階層である。よって、プロトコルログ管理テーブル122に含まれるメッセージのうちプロトコルが“IIOP”のレコードを取得する。また、例えば、L−1=2−1=1である場合、当該階層番号が示す階層はWebサーバ200の階層である。よって、プロトコルログ管理テーブル122に含まれるメッセージのうちプロトコルが“HTTP”のレコードを取得する。
【0113】
[ステップS46]不正シーケンス候補生成部160は、ステップS45で取得したメッセージの組のうち、リクエストの発生時間t0がt0<Ts(L)であり、かつ、レスポンスの発生時間t1がt1>Te(L)である組を特定する。そして、当該メッセージの組に対応する一組のレコードを作業域S(L)に追加する。
【0114】
ここで、t0<Ts(L)は、t0がTs(L)よりも過去の時間帯であることを示す。また、t1>Te(L)は、t1がTe(L)よりも未来の時間帯であることを示す。
[ステップS47]不正シーケンス候補生成部160は、作業域S(L)にメッセージが存在するか否かを判定する。S(L)にメッセージが存在する場合、処理をステップS48に進める。S(L)にメッセージが存在しない場合、処理をステップS54に進める。
【0115】
[ステップS48]不正シーケンス候補生成部160は、作業域S(L)からリクエスト/レスポンスのレコードの組を一組抽出して作業域Mに追加する。なお、追加の際には、レコードに設定された時刻の時系列に従って追加する。不正シーケンス候補生成部160は、抽出した一組のレコードを作業域S(L)から削除する。
【0116】
[ステップS49]不正シーケンス候補生成部160は、リクエスト時間Ts(L−1)に抽出したレコードのうちリクエストの発生時間t0を代入する。また、不正シーケンス候補生成部160は、レスポンス時間Te(L−1)に抽出したレコードのうちレスポンスの発生時間t1を代入する。これらの時間は、当該各レコードに設定された時刻により取得できる。
【0117】
[ステップS50]不正シーケンス候補生成部160は、レイヤ番号LにL−1を代入する。そして、処理をステップS44に進める。
[ステップS51]不正シーケンス候補生成部160は、作業域Mにセットされた各メッセージに対応するレコードを不正シーケンス候補として取得する。
【0118】
[ステップS52]不正シーケンス候補生成部160は、作業域Mにセットされた各メッセージに対応するレコードにつき、最後に追加されたメッセージに対応するレコードを削除する。
【0119】
[ステップS53]不正シーケンス候補生成部160は、レイヤ番号LにL+1を代入する。そして、処理をステップS47に進める。
[ステップS54]不正シーケンス候補生成部160は、レイヤ番号LにL+1を代入する。
【0120】
[ステップS55]不正シーケンス候補生成部160は、レイヤ番号LがLaに等しいか否かを判定する。L=Laである場合、処理を完了する。L=Laでない場合、処理をステップS47に進める。
【0121】
このようにして、不正シーケンス候補生成部160は、処理対象期間Pに含まれるメッセージから不正シーケンス候補を生成する。
不正シーケンス候補生成部160は、予め決定した期間Pに基づいて不正シーケンス候補を生成することで、不正シーケンス候補が無尽蔵に生成されることを防止することができる。例えば、発生時間が大きく隔たったメッセージ同士を関連付けたとしても、それにより得られた不正シーケンス候補の妥当性は低いと考えられる。このため、期間Pを適切に決定して無駄な不正シーケンス候補を生成しないようにする。その結果、以降の処理の無駄を省き、解析処理を効率的に実行することができる。
【0122】
以下、不正シーケンス候補生成処理の具体例を説明する。
図14は、不正シーケンス候補生成処理の具体例を示す第1の図である。不正シーケンス候補生成部160は、期間Pとして、HTTPリクエスト511aの発生時間WsからHTTPレスポンス513bの発生時間Weまでの期間を取得しているものとする。この場合、当該期間Pには図10で示した各メッセージが含まれるとする。なお、各メッセージには、不正シーケンス候補の説明において対になるメッセージを識別し易いように、プロトコルと番号とを付している。例えば、HTTPリクエスト511a(“HTTP1”)とHTTPレスポンス511b(“HTTP1”)とで一組のメッセージである。不正シーケンス候補生成部160は、DBリクエスト531aおよびDBレスポンス531bで不正アクセスが検知された場合、図13の各ステップに従い、次のようにして複数の不正シーケンス候補を生成する。
【0123】
まず、不正シーケンス候補生成部160は、DBリクエスト531aよりも前にリクエストが発生しており、かつ、DBレスポンス531bよりも後にレスポンスが発生している以下のメッセージの組を取得する。
【0124】
(第1組)(HTTPリクエスト511a、HTTPレスポンス511b)の組
(第2組)(HTTPリクエスト512a、HTTPレスポンス512b)の組
(第3組)(IIOPリクエスト521a、IIOPレスポンス521b)の組
(第4組)(IIOPリクエスト522a、IIOPレスポンス522b)の組
そして、不正シーケンス候補生成部160は、取得したメッセージの組を時間的な前後関係を考慮した上で更に組み合わせて、不正シーケンス候補を生成する。
【0125】
図15は、不正シーケンス候補生成処理の具体例を示す第2の図である。不正シーケンス候補生成部160は、上記(第1組)〜(第4組)と不正アクセスに関するDBリクエスト531a、DBレスポンス531bの組(第5組とする)とを組み合わせて次のような不正シーケンス候補を生成する。
【0126】
(A)不正シーケンス候補501は、(第1組)、(第3組)および(第5組)を組み合わせて生成された不正シーケンス候補である。
(B)不正シーケンス候補501aは、(第1組)、(第4組)および(第5組)を組み合わせて生成された不正シーケンス候補である。
【0127】
(C)不正シーケンス候補501bは、(第2組)、(第4組)および(第5組)を組み合わせて生成された不正シーケンス候補である。
なお、(第2組)と(第3組)とは階層間の通信手順の時間的な前後関係が整合しないため、組み合わせることはできない。
【0128】
不正シーケンス候補生成部160は、このようにして生成した不正シーケンス候補を正常系候補生成部170に出力する。
図16は、正常系候補の具体例を示す図である。正常系候補生成部170は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122を参照して、期間Pに含まれるメッセージのうち、不正シーケンス候補を除くメッセージ群を正常系候補として取得する。
【0129】
(A)正常系候補502は、プロトコルログ管理テーブル122から不正シーケンス候補501に対応するメッセージを除いたメッセージ群を示す。
(B)正常系候補502aは、プロトコルログ管理テーブル122から不正シーケンス候補501aに対応するメッセージを除いたメッセージ群を示す。
【0130】
(C)正常系候補502bは、プロトコルログ管理テーブル122から不正シーケンス候補501bに対応するメッセージを除いたメッセージ群を示す。
当該処理は、図9のステップS15の処理に対応する。
【0131】
正常系候補生成部170は、各正常系候補を妥当性評価部180に出力する。
次に、図9のステップS16で示した妥当性評価処理を説明する。ここで、妥当性評価の方式には、複数の方式が考えられる。以下では、トランザクション数に基づく方式、各階層における処理時間に基づく方式および各階層におけるリクエスト発行時間に基づく方式の3パターンを例示する。これらのうちの何れかを用いてもよいし、これらのうちの2以上を組み合わせて用いることもできる。何れのパターンを用いるかは、システム管理者により不正アクセス検出装置100に予め設定される。
【0132】
まず、トランザクション数に基づく妥当性評価処理を説明する。
図17は、妥当性評価処理を示す第1のフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0133】
[ステップS61]妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、当該正常系候補に含まれるメッセージで構成されるトランザクションを復元する。トランザクションを復元する処理には、例えば特開2006−011683号公報に記載の方法を適用することができる。
【0134】
[ステップS62]妥当性評価部180は、復元したトランザクション数を当該正常系候補に対応する不正シーケンス候補の評価値H1として取得する。
このように、妥当性評価部180は復元したトランザクション数に基づき評価値H1を取得する。ここで、復元できたトランザクション数が多いほど、復元に用いた正常系候補の正常性は高いと考えられる。このため、評価値H1の値が大きいほど、正常系候補の生成に用いた不正シーケンス候補の妥当性も高いと考えることができる。
【0135】
図18は、妥当性評価の具体例を示す第1の図である。妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、トランザクションを復元する。具体的には、不正シーケンス候補と同様に時間的な包含関係によって成立し得るメッセージの組合せを特定することで、正常系候補に含まれる複数のトランザクションを復元することができる。
【0136】
(A)トランザクション503,503aは、正常系候補502に基づいて復元されたトランザクションである。この場合、妥当性評価部180は不正シーケンス候補501に対して評価値H1=2を得る。
【0137】
(B)トランザクション503bは、正常系候補502aに基づいて復元されたトランザクションである。この場合、妥当性評価部180は不正シーケンス候補501aに対して評価値H1=1を得る。
【0138】
(C)トランザクション503cは、正常系候補502bに基づいて復元されたトランザクションである。この場合、妥当性評価部180は不正シーケンス候補501bに対して評価値H1=1を得る。
【0139】
この場合、H1が最大となる(A)の不正シーケンス候補501の妥当性が最も高い。
次に、各階層における処理時間に基づく妥当性評価処理を説明する。
図19は、妥当性評価処理を示す第2のフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0140】
[ステップS71]妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、ステップS61と同様に当該正常系候補に含まれるメッセージで構成されるトランザクションを復元する。
【0141】
[ステップS72]妥当性評価部180は、レイヤ番号Lに最上位のレイヤ番号を代入する。すなわち、L=1となる。
[ステップS73]妥当性評価部180は、変動係数合計sum1に“0”を代入する。
【0142】
[ステップS74]妥当性評価部180は、レイヤ番号Lが(最下位のレイヤ番号+1)に等しいか否かを判定する。すなわち、L=3+1=4でない場合、処理をステップS75に進める。L=4である場合、処理をステップS78に進める。
【0143】
[ステップS75]妥当性評価部180は、復元した各トランザクションにつき、レイヤ番号Lで示される階層における処理時間の分散を算出する。妥当性評価部180は、分散に基づいて、変動係数C1(L)を算出する。ここで、変動係数Cは、以下の式によって求めることができる。
【0144】
【数1】
【0145】
ここで、σ2は分散を示す。また、τは処理時間の相加平均を示す。
[ステップS76]妥当性評価部180は、変動係数合計sum1にsum1+C1(L)を代入する。
【0146】
[ステップS77]妥当性評価部180は、レイヤ番号LにL+1を代入する。
[ステップS78]妥当性評価部180は、当該正常系候補に対応する不正シーケンス候補の評価値H2をH2=exp(−sum1)として算出する。
【0147】
このように、妥当性評価部180は各階層における処理時間に基づき評価値H2を取得する。ここで、復元できた各トランザクションについて、各階層における処理時間のばらつきが小さいほど、復元に用いた正常系候補の正常性は高いと考えられる。なぜなら、業務システムでは、定型的な業務処理が行われるのが一般的であり、各処理の処理時間にさほど差異は生じないと考えられるためである。このため、評価値H2の値が大きいほど、正常系候補の生成に用いた不正シーケンス候補の妥当性も高いと考えることができる。
【0148】
次に、各階層におけるリクエスト発行時間に基づく妥当性評価処理を説明する。
図20は、妥当性評価処理を示す第3のフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0149】
[ステップS81]妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、ステップS61と同様に当該正常系候補に含まれるメッセージで構成されるトランザクションを復元する。
【0150】
[ステップS82]妥当性評価部180は、妥当性評価部180は、レイヤ番号Lに最上位のレイヤ番号を代入する。すなわち、L=1となる。
[ステップS83]妥当性評価部180は、妥当性評価部180は、変動係数合計sum2に“0”を代入する。
【0151】
[ステップS84]妥当性評価部180は、妥当性評価部180は、レイヤ番号Lが最下位のレイヤ番号に等しいか否かを判定する。すなわち、L=3でない場合、処理をステップS85に進める。L=3である場合、処理をステップS88に進める。
【0152】
[ステップS85]妥当性評価部180は、復元した各トランザクションにつき、レイヤ番号Lで示される階層におけるリクエスト発行時間の分散を算出する。妥当性評価部180は、分散に基づいて、変動係数C2(L)を算出する。ここで、変動係数Cは、式(1)によって求めることができる。ただし、τをリクエスト発行時間とする。
【0153】
[ステップS86]妥当性評価部180は、変動係数合計sum2にsum2+C2(L)を代入する。
[ステップS87]妥当性評価部180は、レイヤ番号LにL+1を代入する。
【0154】
[ステップS88]妥当性評価部180は、当該正常系候補に対応する不正シーケンス候補の評価値H3をH3=exp(−sum2)として算出する。
このように、妥当性評価部180は各階層におけるリクエスト発行時間に基づき評価値H3を取得する。ここで、復元できた各トランザクションについて、各階層におけるリクエスト発行時間のばらつきが小さいほど、復元に用いた正常系候補の正常性は高いと考えられる。なぜなら、業務システムでは、定型的な業務処理に対するリクエストを受け付けるのが一般的であり、各リクエストに対する処理時間にさほど差異は生じないと考えられるためである。このため、評価値H3の値が大きいほど、正常系候補の生成に用いた不正シーケンス候補の妥当性も高いと考えることができる。
【0155】
なお、上記ステップS84〜S87において、L=3の場合に変動係数を求めない理由は、DBサーバ400が他のサーバにリクエストを発行しないためである。
また、ステップS61,S71,S81で示したトランザクション復元処理は、複数の方式を組み合わせて妥当性評価を行う場合には、何れかの方式で1度実行すればよい。
【0156】
図21は、処理時間およびリクエスト発行時間を示す図である。図21では、トランザクション503について、処理時間およびリクエスト発行時間を例示している。
時間差t31aは、Webサーバ200がHTTPリクエスト512aを受信してからIIOPリクエスト522aを発行するまでの時間差である。時間差t31aは、Webサーバ200におけるリクエスト発行時間である。
【0157】
時間差t31bは、Webサーバ200がIIOPレスポンス522bを受信してからHTTPレスポンス512bを発行するまでの時間差である。
時間差t31a,t31bの合計の時間がWebサーバ200における処理時間である。
【0158】
時間差t32aは、APサーバ300がIIOPリクエスト522aを受信してからDBリクエスト532aを発行するまでの時間差である。時間差t32aは、APサーバ300におけるリクエスト発行時間である。
【0159】
時間差t32bは、APサーバ300がDBレスポンス532bを受信してからIIOPレスポンス522bを発行するまでの時間差である。
時間差t32a,t32bの合計の時間がAPサーバ300における処理時間である。
【0160】
時間差t33は、DBサーバ400がDBリクエスト532aを受信してからDBレスポンス532bを発行するまでの時間差である。時間差t33は、DBサーバ400における処理時間である。
【0161】
妥当性評価部180は、復元した各トランザクションについて、階層ごとに処理時間またはリクエスト発行時間につき分散を算出して、変動係数を求めることができる。
図22は、妥当性評価の具体例を示す第2の図である。
【0162】
(A)頻度分布610は、ある正常系候補において生成された各トランザクションに関する処理時間の分布である。分布611は、Webサーバ200の属する階層(Web層)における処理時間の分布である。分布612は、APサーバ300の属する階層(AP層)における処理時間の分布である。分布613は、DBサーバ400の属する階層(DB層)における処理時間の分布である。
【0163】
妥当性評価部180は、分布611,612,613の各分散に基づいて、変動係数合計sum1を算出し、評価値H2を得ることができる。
(B)頻度分布620は、ある正常系候補において生成された各トランザクションに関するリクエスト発行時間の分布である。分布621は、Web層におけるリクエスト発行時間の分布である。分布622は、AP層におけるリクエスト発行時間の分布である。
【0164】
妥当性評価部180は、分布621,622の各分散に基づいて、変動係数合計sum2を算出し、評価値H3を得ることができる。
妥当性評価部180は、このようにして取得した評価値H1,H2,H3を解析結果出力部190に出力する。解析結果出力部190は、妥当性評価部180から取得した評価値に基づいて、不正シーケンス候補をランク付けしてモニタ11に表示させる。
【0165】
次に、図9のステップS18で示した結果出力処理を説明する。
図23は、結果出力処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0166】
[ステップS91]解析結果出力部190は、トランザクション数に基づく評価値H1、各階層における処理時間に基づく評価値H2および各階層におけるリクエスト発行時間に基づく評価値H3の何れか1つまたは複数の評価値を取得したか否かを判定する。複数の方式につき評価値を取得した場合、処理をステップS92に進める。何れか1つの方式につき評価値を取得した場合、処理をステップS94に進める。
【0167】
[ステップS92]解析結果出力部190は、トランザクション数に基づく評価方式、各階層における処理時間に基づく評価方式および各階層におけるリクエスト発行時間に基づく評価方式に関して、各方式の優先度を取得する。ここで、当該優先度は、不正アクセス検出装置100に予め設定される。例えば、トランザクション数に基づく評価方式が最も優先される。次いで、処理時間に基づく評価方式が優先される。次いで、リクエスト発行時間に基づく評価方式が優先される。
【0168】
[ステップS93]解析結果出力部190は、各方式につき優先度が高く、かつ、評価値の高い不正シーケンス候補をより高ランクにランク付けする。ランクが高いほど、妥当性も高い。解析結果出力部190は、ランク付けの結果をモニタ11に表示させる。そして、処理を完了する。
【0169】
[ステップS94]解析結果出力部190は、評価値の高い不正シーケンス候補をより高ランクにランク付けする。解析結果出力部190は、ランク付けの結果をモニタ11に表示させる。そして、処理を完了する。
【0170】
このようにして、解析結果出力部190は、妥当性評価部180により算出された評価値H1,H2,H3に基づいて、不正シーケンス候補のうち妥当性の高い順にランク付けする。解析結果出力部190は、ランク付けした不正シーケンス候補を例えばモニタ11に表示させる。
【0171】
解析結果出力部190は、複数の方式により求められた評価値に基づいて、不正シーケンス候補をランク付けすることで、より正確なランク付けが可能となる。例えば、複数の正常系候補につき復元されたトランザクション数が同一の場合でも、各正常系候補につき処理時間のばらつきやリクエスト発行時間のばらつきによる評価を行えば、各正常系候補についての優劣を決定することができる。
【0172】
次に、解析結果出力部190により生成される解析結果の表示画面の具体例を説明する。
図24は、解析結果の表示画面の第1の具体例を示す図である。解析結果出力部190は、不正シーケンス表示画面700をモニタ11に表示させる。不正シーケンス表示画面700は、不正シーケンス候補を妥当性の高い順に表示する画面である。解析結果出力部190は、例えばシステム管理者によるキーボード12やマウス13を用いた所定の操作入力を受け付けた際に、不正シーケンス表示画面700を表示させてもよい。
【0173】
不正シーケンス表示画面700は、不正シーケンス候補表示部700a,700b,700cを含む。
不正シーケンス候補表示部700aは、最も妥当性の高い不正シーケンス候補を表示する領域である。図24の例では、不正シーケンス候補表示部700aには不正シーケンス候補501を示す画像が表示されている。
【0174】
不正シーケンス候補表示部700bは、2番目に妥当性の高い不正シーケンス候補を表示する領域である。図24の例では、不正シーケンス候補表示部700bには不正シーケンス候補501aを示す画像が表示されている。
【0175】
不正シーケンス候補表示部700cは、3番目に妥当性の高い不正シーケンス候補を表示する領域である。図24の例では、不正シーケンス候補表示部700cには不正シーケンス候補501bを示す画像が表示されている。
【0176】
なお、4以上の複数の不正シーケンス候補を表示させてもよい。
ここで、不正シーケンス候補表示部700a,700b,700cには、不正シーケンス候補501,501a,501bに含まれるメッセージを示すアイコン711a,711b,712a,712b,721a,721b,722a,722b,730が表示されている。
【0177】
アイコン711aはHTTPリクエスト511aに、アイコン711bはHTTPレスポンス511bに対応する。アイコン712aはHTTPリクエスト512aに、アイコン712bはHTTPレスポンス512bに対応する。アイコン721aはIIOPリクエスト521aに、アイコン721bはIIOPレスポンス521bに対応する。アイコン722aはIIOPリクエスト522aに、アイコン722bはIIOPレスポンス522bに対応する。アイコン730は不正アクセスを検知した一組のメッセージ、すなわち、DBリクエスト531aおよびDBレスポンス531bに対応する。
【0178】
システム管理者は、ポインタR1を操作して、各アイコンをクリック操作することができる。すると、解析結果出力部190は、プロトコルログ記憶部120に記憶された復元メッセージ121を参照して当該アイコンに対応するメッセージ内容を含むログ表示画面800をモニタ11に表示させる。
【0179】
例えば、解析結果出力部190は、アイコン711aに対するポインタR1によるクリック操作を受け付けたとする。アイコン711aはHTTPリクエスト511aに対応するものである。よって、解析結果出力部190は復元メッセージ121のうち当該メッセージの内容を含むログ表示画面800を表示させる。具体的には、図7で示した復元メッセージ121の1行目の内容が対応する。
【0180】
システム管理者は、ログ表示画面800を参照することで、不正アクセスに関するメッセージの情報を取得することができる。システム管理者は、当該出力結果により、不正アクセスに関するシーケンス候補のうち確度のより高いものを容易に特定することができる。ログ表示画面800の例では、HTTPリクエスト511aに含まれるユーザのIDを容易に特定することができる。システム管理者は、当該ユーザIDにより、不正アクセスに対する適切な対応を行うことができる。
【0181】
図25は、解析結果の表示画面の第2の具体例を示す図である。解析結果出力部190は、シーケンス表示画面900をモニタ11に表示させる。シーケンス表示画面900は、各サーバで送受信されたメッセージの一覧を表示する画面である。解析結果出力部190は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122を参照して、シーケンス表示画面900をモニタ11に表示させることができる。解析結果出力部190は、例えばシステム管理者によるキーボード12やマウス13を用いた所定の操作入力を受け付けた際に、シーケンス表示画面900を表示させてもよい。
【0182】
シーケンス表示画面900は、シーケンス表示部901および不正アクセス元表示ボタン902を含む。
シーケンス表示部901は、各サーバで送受信されたメッセージの一覧を時系列に表示する領域である。シーケンス表示部901には各メッセージを示すアイコンが、時系列に、かつ、視覚的に区別可能に表示されている。各アイコンは、例えば色や模様によって区別できる。あるいは、メッセージの内容の一部を示す文字列を各アイコンに併記して区別可能としてもよい。アイコン911a,911b,912a,912b,930は、そのような各アイコンの一部である。
【0183】
アイコン911aはHTTPリクエスト511aに、アイコン911bはHTTPレスポンス511bに対応する。アイコン912aはHTTPリクエスト512aに、アイコン912bはHTTPレスポンス512bに対応する。アイコン930は不正アクセスを検知した一組のメッセージ、すなわち、DBリクエスト531aおよびDBレスポンス531bに対応する。
【0184】
解析結果出力部190は、シーケンス表示部901内に全ての時間帯のメッセージを表示しきれない場合には、シーケンス表示部901に設けられたスクロールバーに対する操作入力を受け付けて、表示させる時間帯を前後にスクロールすることができる。
【0185】
不正アクセス元表示ボタン902は、HTTPリクエスト表示画面910の表示指示を受け付けるためのボタンである。システム管理者は、不正アクセス元表示ボタン902をポインタR1により押下操作することで解析結果出力部190にHTTPリクエスト表示画面910の表示指示を入力することができる。
【0186】
解析結果出力部190は、不正アクセス元表示ボタン902の押下操作を受け付けると、HTTPリクエスト表示画面910をモニタ11に表示させる。
HTTPリクエスト表示画面910は、シーケンス表示部901に表示されたメッセージのうち妥当性の高い(ランクの高い)不正シーケンス候補のHTTPリクエストをリスト表示する画面である。HTTPリクエスト表示画面910の例では、アイコン911,912が表示されている。そして、アイコン911はアイコン912よりも妥当性が高いものとして表示されている。
【0187】
アイコン911は、アイコン911aに対応する。すなわち、不正シーケンス候補501のHTTPリクエスト511aに対応する。アイコン911は、アイコン911aと同一の態様により視覚的に識別できるように表示される。より具体的には、アイコン911aと同一の色や模様が付される。あるいは、アイコン911aに併記された文字列と同一の文字列がアイコン911にも併記される。
【0188】
アイコン912は、アイコン912aに対応する。すなわち、不正シーケンス候補501aのHTTPリクエスト512aに対応する。アイコン912は、シーケンス表示部901中、アイコン912aと同一の態様により視覚的に識別できるように表示される。具体的な態様はアイコン911で説明した通りである。
【0189】
システム管理者は、ポインタR1を操作して、アイコン911,912をクリック操作することができる。すると、解析結果出力部190は、プロトコルログ記憶部120に記憶された復元メッセージ121を参照して当該アイコンに対応するメッセージ内容を含むログ表示画面800をモニタ11に表示させる。
【0190】
ログ表示画面800の表示方法は、図24で説明した方法と同一である。例えば、解析結果出力部190は、アイコン911に対するポインタR1によるクリック操作を受け付けたとする。アイコン911はHTTPリクエスト511aに対応するものである。よって、解析結果出力部190は復元メッセージ121のうち当該メッセージの内容を含むログ表示画面800を表示させる。
【0191】
このように、解析結果出力部190は、シーケンス表示画面900およびHTTPリクエスト表示画面910を用いても、不正シーケンス表示画面700と同等の表示および操作を受け付けることができる。そして、同一の効果を得ることができる。
【0192】
なお、不正アクセス検出装置100は、解析結果出力部190から妥当性の高い不正シーケンス候補に含まれるユーザIDを取得して、これをシステム管理者に所定の方法で通知してもよい。例えば、不正アクセス検出装置100は電子メールにより通知してもよい。また、例えば、不正アクセス検出装置100はネットワーク経由でシステム管理者が操作する他の情報処理装置にメッセージダイアログを表示させてもよい。このようにすれば、システム管理者が不正アクセス検出装置100を直接操作できない場合にも確実に不正アクセスの発生と、そのアクセス元候補とを通知できる。
【0193】
また、不正アクセス検出装置100は、解析結果出力部190から妥当性の高い不正シーケンス候補に含まれるユーザIDを取得して、Webサーバ200に、当該ユーザIDによるその後のアクセスを拒否させてもよい。また、不正アクセス検出装置100は、スイッチ装置10に当該ユーザIDを含むその後の通信を遮断させてもよい。あるいは、不正アクセス検出装置100が当該ユーザIDを含むその後の通信をフィルタして遮断してもよい。このようにすれば、当該ユーザによるその後の不正行為を未然に防止することができる。
【0194】
ここで、多階層システムでは、それぞれ独立に設計されたアプリケーションが各階層のサーバに導入されることが多い。このため、従来では、ある階層で不正アクセスを検知したとしても、各階層間で送受信されたメッセージに当該不正アクセスとの関連性を見出すことが困難であった。
【0195】
これに対し、不正アクセス検出装置100によれば、不正アクセスに関係すると考えられる複数の不正シーケンス候補について、各不正シーケンス候補を除いた正常系候補のメッセージ群で評価する。これにより、各不正シーケンス候補の確度を適正に評価することができる。その結果、不正アクセス検出装置100は、多階層システムにおいて所定の階層で検知された不正アクセスについて、それに関係する複数の不正シーケンス候補を妥当性の高い順に提示することができる。
【0196】
システム管理者は、当該出力結果により、不正アクセスに関する通信シーケンス候補のうち確度のより高いものを容易に特定することができる。
よって、不正アクセス検出装置100は多階層システムにおいて不正アクセスに関する通信シーケンスの特定を効率的に支援することができる。
【0197】
以上、本発明の解析プログラム、解析装置および解析方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0198】
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【0199】
(付記2) 前記記憶手段に記憶された前記通信履歴のうち、前記不正アクセスの発生時間前後の所定の時間幅に含まれる複数の通信につき、各情報処理装置が受信したリクエストと、当該リクエストに対して当該情報処理装置が送信したレスポンスと、の対応付けができるように前記時間幅を決定する処理を更に前記コンピュータに実行させ、
前記記憶手段に記憶された前記通信履歴のうち、前記時間幅の範囲で前記複数のシーケンス候補を抽出し、前記複数のシーケンス候補それぞれの前記評価値を算出する、
ことを特徴とする付記1記載の解析プログラム。
【0200】
(付記3) 前記評価値として、前記第2の通信履歴により復元されたトランザクションの数に基づき第1の評価値を算出することを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0201】
(付記4) 前記評価値として、前記第2の通信履歴により復元された各トランザクションにつき、同一の情報処理装置が所定の処理に要した時間に基づき第2の評価値を算出することを特徴とする付記1乃至3の何れか一項に記載の解析プログラム。
【0202】
(付記5) 前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間であることを特徴とする付記4記載の解析プログラム。
【0203】
(付記6) 前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間と、前記他の情報処理装置から前記第2のリクエストに対する第1のレスポンスを受信してから前記第1のリクエストに対する第2のレスポンスを送信するまでのレスポンス発行時間と、を合計した時間であることを特徴とする付記4記載の解析プログラム。
【0204】
(付記7) 前記第2の評価値を、各情報処理装置が前記所定の処理に要した時間の変動係数を前記トランザクションで合計した変動係数合計に基づいて算出することを特徴とする付記4乃至6の何れか一項に記載の解析プログラム。
【0205】
(付記8) 前記第2の評価値を、変動係数合計x(xは0以上の整数)につきexp(−x)の演算により算出することを特徴とする付記7記載の解析プログラム。
(付記9) 前記各評価値の降順に、前記確度が最高のものから最低のものへ対応付けて、当該評価値に対応する前記シーケンス候補を示す画像を表示手段に表示させることを特徴とする付記3または8の何れか一項に記載の解析プログラム。
【0206】
(付記10) 複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出する抽出手段と、
前記記憶手段に記憶された通信履歴のうち、前記抽出手段が抽出した前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する評価手段と、
を有することを特徴とする解析装置。
【0207】
(付記11) 解析装置の解析方法であって、
前記解析装置が、
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
ことを特徴とする解析方法。
【符号の説明】
【0208】
1 解析装置
1a 通信履歴記憶手段
1b 抽出手段
1c 評価手段
2,3,4 情報処理装置
5 シーケンス候補
5a,5b,5c 通信
【技術分野】
【0001】
本発明はネットワークを介して通信されるデータを解析する解析プログラム、解析装置および解析方法に関する。
【背景技術】
【0002】
従来、複数のコンピュータが階層的に処理を分担する情報処理システム(多階層システムという)が利用されている。多階層システムとして、例えばシステム利用のためのインタフェースを提供するWebサーバ、システム上の処理を実行するAP(Application)サーバおよびデータを管理するDB(Database)サーバを有する3階層システムが知られている。各サーバは、ユーザからの処理要求に対して連携して処理を実行し、その処理要求に応答する。このように、各コンピュータに処理を分担させることで、システムの信頼性や応答性を向上できる。
【0003】
ところで、情報処理システムでは機密情報(例えば、個人情報や営業秘密)を扱うものも多い。このため、機密情報の不正取得の防止や改ざんの防止など適正な保護対策が望まれる。そこで、保護するサーバが接続されたネットワークに侵入検知システム(IDS:Intrusion Detection System)を設けることが考えられる。IDSは、ネットワークから取得した通信データを、予め登録された不正な(あるいは正常な)情報パターンと照合することで、当該サーバやネットワークに対する不正アクセスを検知する。
【0004】
一方、正規ユーザやなりすましユーザが適正にアクセスした場合、IDSで当該アクセスを不正と検知することはできない。なぜなら、そのようなユーザは適正なIDやパスワードを保有しており、不正な手順を踏まずともシステムへのアクセスが可能だからである。しかし、正規ユーザなどがデータを不正に操作する危険性もある。そこで、データベースに対する操作内容を監視することで不正アクセスを検知する技術がある。
【0005】
ここで、多階層システムでは、複数の階層に別個に設けられたサーバが処理を分担する。このため、データベースに対する不正アクセスを検知した場合、そのアクセス元(例えば、アクセスしたユーザや端末装置)を特定するために、不正アクセスに関係する通信を辿って、その一連の通信(通信シーケンス)を特定することが考えられる。通信シーケンスを特定することで、例えばWebサーバに対するアクセス履歴からアクセス元を特定でき、そのアクセス元に対して適切な対処が可能となる。
【0006】
しかし、多階層システムでは、各階層の機能を実現するために独自に設計された種々のアプリケーションプログラムが導入され得る。この場合、各アプリケーションプログラムは独自の手法で通信データを管理する。このため、データベースに対する不正アクセスを検知したとしても、膨大な通信データの中から、当該不正アクセスに関するものを辿って、その通信シーケンスを特定することは困難であった。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−206564号公報
【特許文献2】特開2006−067279号公報
【特許文献3】特開2006−011683号公報
【特許文献4】特開2006−127409号公報
【非特許文献】
【0008】
【非特許文献1】株式会社ネットワールド、“データベース監視ツール Chakra製品(チャクラ)[ネットワールド]:製品概要”、[online]、[平成22年3月16日検索]インターネット <URL:http://www.networld.co.jp/chakra/chakra.htm>
【発明の概要】
【発明が解決しようとする課題】
【0009】
1つの側面では、本発明は、多階層システムにおいて不正アクセスに関する通信シーケンスの特定を効率的に支援する解析プログラム、解析装置および解析方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
この解析プログラムは、複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された通信履歴に基づいて、複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、記憶手段に記憶された通信履歴のうち、複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、処理をコンピュータに実行させる。
【0011】
また、上記課題を解決するために、上記解析プログラムを実行するコンピュータと同様の機能を有する解析装置が提供される。
また、上記課題を解決するために、上記解析プログラムと同様の処理を行う解析方法が提供される。
【発明の効果】
【0012】
上記解析プログラム、解析装置および解析方法によれば、多階層システムにおいて不正アクセスに関するシーケンスの特定を効率的に支援することができる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態に係る解析装置を示す図である。
【図2】第2の実施の形態に係る業務システムを示す図である。
【図3】サーバ間の通信を示す図である。
【図4】不正アクセス検出装置のハードウェア構成を示す図である。
【図5】不正アクセス検出装置の機能構成を示す図である。
【図6】パケット情報のデータ構造例を示す図である。
【図7】復元メッセージの具体例を示す図である。
【図8】プロトコルログ管理テーブルのデータ構造例を示す図である。
【図9】解析処理を示すフローチャートである。
【図10】サーバ間で送受信されたメッセージの具体例を示す図である。
【図11】処理対象期間特定処理を示すフローチャートである。
【図12】処理対象期間を示す図である。
【図13】不正シーケンス候補生成処理を示すフローチャートである。
【図14】不正シーケンス候補生成処理の具体例を示す第1の図である。
【図15】不正シーケンス候補生成処理の具体例を示す第2の図である。
【図16】正常系候補の具体例を示す図である。
【図17】妥当性評価処理を示す第1のフローチャートである。
【図18】妥当性評価の具体例を示す第1の図である。
【図19】妥当性評価処理を示す第2のフローチャートである。
【図20】妥当性評価処理を示す第3のフローチャートである。
【図21】処理時間およびリクエスト発行時間を示す図である。
【図22】妥当性評価の具体例を示す第2の図である。
【図23】結果出力処理を示すフローチャートである。
【図24】解析結果の表示画面の第1の具体例を示す図である。
【図25】解析結果の表示画面の第2の具体例を示す図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る解析装置を示す図である。解析装置1は、複数の情報処理装置とネットワークを介して接続する。解析装置1は、複数の情報処理装置間で送受信されるデータを取得し、解析する。解析装置1は、通信履歴記憶手段1a、抽出手段1bおよび評価手段1cを有する。
【0015】
通信履歴記憶手段1aは、情報処理装置2,3,4の間で送受信された通信データの履歴である通信履歴を記憶する。ここで、情報処理装置2,3,4は多階層システムを構成し、各情報処理装置は連携して処理を実行する。通信履歴は、情報処理装置2,3,4がネットワークを介して送受信したデータを取得したものである。
【0016】
抽出手段1bは、通信履歴記憶手段1aに記憶された通信履歴に基づいて、情報処理装置2,3,4間でなされた不正アクセスに関する通信手順につき複数のシーケンス候補を抽出する。
【0017】
抽出手段1bは、例えばシーケンス候補5を含む複数のシーケンス候補を抽出する。シーケンス候補5は、通信5a,5b,5c,5d,5e,5fを含む。
通信5aは、所定の端末装置から情報処理装置2へのリクエストである。通信5bは、情報処理装置2から情報処理装置3へのリクエストである。通信5cは、情報処理装置3から情報処理装置4へのリクエストである。通信5dは、情報処理装置4から情報処理装置3へのレスポンスである。通信5eは、情報処理装置3から情報処理装置2へのレスポンスである。通信5fは、情報処理装置2から所定の端末装置へのレスポンスである。
【0018】
ここで、通信履歴は通信5a,5b,5c,5d,5e,5fを特定するための情報を含む。
評価手段1cは、通信履歴記憶手段1aに記憶された通信履歴のうち、抽出手段1bが抽出した複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴に基づいて、複数のシーケンス候補それぞれの確度を示す評価値を算出し出力する。
【0019】
評価手段1cは、例えば通信履歴記憶手段1aに記憶された通信履歴からシーケンス候補5に対応する第1の通信履歴を除いた第2の通信履歴を取得する。この場合、第1の通信履歴は、通信5a,5b,5c,5d,5e,5fを示すものである。すなわち、第2の通信履歴は、通信5a,5b,5c,5d,5e,5fを含まない履歴である。評価手段1cは、当該第2の通信履歴により復元できるトランザクションの正常性に基づいて、シーケンス候補5が不正アクセスであることの確度を示す評価値を算出する。
【0020】
ここで、トランザクションの正常性とは、復元したトランザクションが通常の適正な通信によりなされたと見込まれる度合いである。シーケンス候補5を除いて復元したトランザクションの正常性が高いほど、シーケンス候補5が不正アクセスである確度も高い。一方、シーケンス候補5を除いて復元したトランザクションの正常性が低いほど、シーケンス候補5が不正アクセスである確度も低い。
【0021】
なお、通信履歴によりトランザクションを復元する方法として、例えば特開2006−011683号公報に記載の方法を適用することができる。
評価手段1cは、このようにして各シーケンス候補について確度を示す評価値を算出し、出力する。
【0022】
解析装置1によれば、次の処理が実行される。まず、抽出手段1bにより、通信履歴記憶手段1aに記憶された通信履歴に基づいて、情報処理装置2,3,4間でなされた不正アクセスに関する通信手順につき複数のシーケンス候補が抽出される。そして、評価手段1cにより、通信履歴記憶手段1aに記憶された通信履歴のうち、抽出手段1bが抽出した各シーケンス候補に対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、各シーケンス候補が不正アクセスであることの確度を示す評価値が算出され出力される。
【0023】
このようにして、解析装置1は多階層システムにおいて不正アクセスに関するシーケンスの特定を効率的に支援することができる。具体的には、以下の通りである。
解析装置1は、通信履歴記憶手段1aに記憶された通信履歴を用いてシーケンス候補を抽出し、評価する。すなわち、情報処理装置2,3,4で個々に動作するアプリケーションプログラムに依らずに処理が可能である。よって、各アプリケーションプログラムに手を加える必要がなく、導入が容易である。
【0024】
また、解析装置1は複数のシーケンス候補につき、各シーケンス候補に対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、各シーケンス候補の評価値を算出する。
【0025】
ここで、不正アクセスに関する通信処理では、通常と異なる処理が行われることが一般的である。例えば、データに対する不正な操作を行うために、定型的な業務処理とは異なる処理が行われる。したがって、不正アクセスに関係すると考えられる通信シーケンスは通常の処理とは異なるパターンの通信シーケンスとなると考えられる。よって、第2の通信履歴が不正アクセスに関する異常な通信シーケンスを含む場合、第2の通信履歴により復元されるトランザクションの正常性は低下する。一方、第2の通信履歴が不正アクセスに関する異常な通信シーケンスを含まない場合には、第2の通信履歴により復元されるトランザクションの正常性は高くなる。
【0026】
このような理由により、解析装置1は第2の通信履歴により復元されるトランザクションの正常性に基づいて、不正アクセスに関する各シーケンス候補が不正アクセスであることの確度を適正に評価することができる。
【0027】
解析装置1は、このようにして得た評価値を出力する。システム管理者は、当該出力結果により、不正アクセスに関する通信シーケンスの候補のうち確度のより高いものを容易に特定することができる。
【0028】
以下の実施の形態では、Web3階層システムに解析装置1を適用する場合を例に採り、更に具体的に説明する。
[第2の実施の形態]
図2は、第2の実施の形態に係る業務システムを示す図である。この業務システムは、不正アクセス検出装置100、Webサーバ200、APサーバ300およびDBサーバ400を有する。不正アクセス検出装置100、Webサーバ200、APサーバ300およびDBサーバ400は、スイッチ装置10を介して相互に接続されている。また、スイッチ装置10は、ネットワーク20を介して端末装置21,22,23に接続されている。
【0029】
端末装置21,22,23は、スイッチ装置10およびネットワーク20を介してWebサーバ200にアクセス可能である。端末装置21,22,23のユーザは、Webサーバ200が提供するGUI(Graphical User Interface)を端末装置21,22,23から操作して業務システムを利用できる。ネットワーク20は、例えばイントラネットである。
【0030】
なお、ネットワーク20がインターネットである場合も考えられる。その場合、スイッチ装置10はファイアウォールとして機能させることもできる。また、Webサーバ200の属するネットワークセグメントは、例えばDMZ(Demilitarized Zone)として扱われる。
【0031】
不正アクセス検出装置100は、Webサーバ200、APサーバ300およびDBサーバ400の稼働状況を管理する。不正アクセス検出装置100は、そのための情報をスイッチ装置10から取得することができる。すなわち、スイッチ装置10は、ポートミラーリング機能を有しており、Webサーバ200、APサーバ300およびDBサーバ400の間で送受信されるパケットを不正アクセス検出装置100にも送信する。不正アクセス検出装置100は、スイッチ装置10から送信されるパケットを受信して、記憶する(パケットキャプチャ)。なお、不正アクセス検出装置100で単にパケットキャプチャを行う用途であれば、スイッチ装置10を例えばリピータハブで代用することもできる。
【0032】
なお、業務システムにおいてWebサーバ200、APサーバ300およびDBサーバ400と各層(Web層、App層およびDB層)一台ずつの構成を例示したが、各層にそれぞれ複数台のサーバを設けてもよい。
【0033】
図3は、サーバ間の通信を示す図である。Webサーバ200は、端末装置21,22,23で実行されるWebブラウザから業務システムに対する処理要求(メッセージ)を受け付ける。ここで、Webサーバ200と端末装置21,22,23とのメッセージ交換は、HTTP(HyperText Transfer Protocol)によって行われるものとする。ただし、他のプロトコルが用いられてもよい。
【0034】
以下では、端末装置21,22,23からWebサーバ200へ送信する処理要求をHTTPリクエストと称する。また、それに対する応答をHTTPレスポンスと称する。なお、リクエスト/レスポンスともに通信の内容の例である。
【0035】
Webサーバ200は、端末装置21,22,23から受信したHTTPリクエストに基づいて、静的コンテンツに関しては自装置でHTTPレスポンスを生成し、端末装置21,22,23に送信する。なお、動的コンテンツに関しては、APサーバ300に依頼すべき処理の処理要求(メッセージ)を生成して、APサーバ300に送信する。
【0036】
ここで、Webサーバ200とAPサーバ300とのメッセージ交換は、IIOP(Internet Inter-ORB(Object Request Broker) Protocol)によって行われるものとする。ただし、他のプロトコルが用いられてもよい。
【0037】
以下では、Webサーバ200からAPサーバ300へ送信する処理要求をIIOPリクエストと称する。また、それに対する応答をIIOPレスポンスと称する。
Webサーバ200は、IIOPリクエストに対するIIOPレスポンスを受信すると、その内容に基づいてHTTPレスポンスを生成して、端末装置21,22,23に送信する。
【0038】
APサーバ300は、Webサーバ200から受信したIIOPリクエストに基づいてDBサーバ400に依頼すべき処理のクエリを生成し、DBサーバ400に送信する。
ここで、APサーバ300が生成するクエリは、例えばSQL文によって表記される。以下では、APサーバ300がDBサーバ400に送信するクエリをDBリクエストと称する。また、それに対する応答をDBレスポンスと称する。
【0039】
APサーバ300は、DBリクエストに対するDBレスポンスを受信すると、その内容に基づいてIIOPレスポンスを生成してWebサーバ200に送信する。
DBサーバ400は、APサーバ300から受信したDBリクエストに含まれるSQL文を実行してデータベース410の参照や更新等の処理を実行する。DBサーバ400は、その処理結果に基づいてDBレスポンスを生成し、APサーバ300に送信する。
【0040】
ここで、Webサーバ200は、APサーバ300およびDBサーバ400よりも上位の階層のサーバであるとする。また、APサーバ300は、DBサーバ400よりも上位の階層のサーバであるとする。具体的には、Webサーバ200の階層にレイヤ番号L=1が定義されている。APサーバ300の階層にレイヤ番号L=2が定義されている。DBサーバ400の階層にレイヤ番号L=3が定義されている。レイヤ番号Lの値が小さい程、上位の階層である。これらの階層関係を定義する情報は、不正アクセス検出装置100に予め格納される。
【0041】
なお、以下では各サーバという場合、Webサーバ200、APサーバ300およびDBサーバ400を示すものとする。
図4は、不正アクセス検出装置のハードウェア構成を示す図である。不正アクセス検出装置100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
【0042】
CPU101は、不正アクセス検出装置100全体を制御する。
ROM102は、不正アクセス検出装置100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
【0043】
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
【0044】
HDD104は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD104はCPU101による処理に必要な各種データを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
【0045】
グラフィック処理装置105は、モニタ11と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ11の画面に表示させる。
入力インタフェース106は、キーボード12とマウス13と接続される。入力インタフェース106は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。
【0046】
記録媒体読取装置107は、記録媒体14に記憶されたデータを読み取る読取装置である。例えば、不正アクセス検出装置100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体14に記録して配布することができる。また、スイッチ装置10あるいはネットワーク20に接続されたプログラム配信サーバ(図示せず)にそのプログラムを格納してもよい。この場合、不正アクセス検出装置100は、スイッチ装置10あるいはネットワーク20を介してプログラム配信サーバからプログラムをダウンロードすることができる。
【0047】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0048】
通信インタフェース108は、TP(Twisted Pair)ケーブルや光ケーブル等によってスイッチ装置10と接続される。通信インタフェース108は、スイッチ装置10を介して他の情報処理装置とデータ通信する。また、通信インタフェース108は、各サーバの間で送受信されるパケットをスイッチ装置10から受信する。
【0049】
なお、各サーバおよび端末装置21,22,23も不正アクセス検出装置100と同様のハードウェア構成により実現できる。
図5は、不正アクセス検出装置の機能構成を示す図である。不正アクセス検出装置100は、パケット記憶部110、プロトコルログ記憶部120、パケット受信部130、メッセージ復元部140、不正アクセス検知部150、不正シーケンス候補生成部160、正常系候補生成部170、妥当性評価部180および解析結果出力部190を有する。これらの機能は、所定のプログラムをCPU101が実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0050】
パケット記憶部110は、パケット受信部130がキャプチャしたパケット情報を記憶する。
プロトコルログ記憶部120は、メッセージ復元部140が生成したプロトコルログ情報を記憶する。ここで、プロトコルログ情報とは、パケット情報に基づいて生成されるものであり、業務システムにおける各サーバの通信履歴を表すものである。
【0051】
パケット受信部130は、スイッチ装置10を介して送受信されるパケットをスイッチ装置10から受信する。パケット受信部130は、受信したパケットをパケット情報としてパケット記憶部110に格納する。パケット受信部130は、例えば業務システムが稼働している間、パケットを取得し続ける。
【0052】
メッセージ復元部140は、パケット記憶部110に記憶されたパケット情報に基づいて、パケット情報に含まれるメッセージを復元する。そして、メッセージ復元部140は、復元したメッセージによりプロトコルログを生成し、プロトコルログ記憶部120に格納する。
【0053】
メッセージ復元部140の機能は、例えば特開2006−011683号公報に記載の機能を適用することで実現できる。
不正アクセス検知部150は、パケット記憶部110に記憶されたパケット情報に基づいて、DBサーバ400に対する不正アクセスを検知する。不正アクセス検知部150の機能は、例えば非特許文献1として挙げた“データベース監視ツール”の機能を適用することで実現できる。
【0054】
不正シーケンス候補生成部160は、不正アクセス検知部150により不正アクセスが検知されると、プロトコルログ記憶部120に記憶されたプロトコルログに基づいて、当該不正アクセスに関する複数の不正シーケンス候補を生成する。不正シーケンス候補生成部160は、生成した各不正シーケンス候補を正常系候補生成部170および解析結果出力部190に出力する。
【0055】
正常系候補生成部170は、不正シーケンス候補生成部160から取得した各不正シーケンス候補と、プロトコルログ記憶部120に記憶されたプロトコルログと、に基づいて、プロトコルログに含まれるメッセージのうち、各不正シーケンス候補に関するものを除いた正常系のメッセージ群の候補(以下、正常系候補と称する)を生成する。正常系候補生成部170は、生成した各正常系候補を妥当性評価部180に出力する。
【0056】
妥当性評価部180は、正常系候補生成部170から取得した各正常系候補の正常性を評価し、その指標である評価値を算出する。妥当性評価部180は、算出した評価値を解析結果出力部190に出力する。
【0057】
解析結果出力部190は、不正シーケンス候補生成部160から取得した不正シーケンス候補を、妥当性評価部180から取得した評価値に応じてランク付けし、出力する。解析結果出力部190は、例えばランク付けの結果をモニタ11にリスト表示させる。
【0058】
なお、不正シーケンス候補生成部160は、不正シーケンス候補を1つだけ生成する場合もある。そのような場合には、不正シーケンス候補の評価を行わずとも当該不正シーケンス候補が不正アクセスに関するものであると考えることができる。よって、この場合、解析結果出力部190は当該不正シーケンス候補をそのまま出力すればよい。
【0059】
図6は、パケット情報のデータ構造例を示す図である。パケット保存ファイル111は、パケット受信部130により収集されたパケットを格納したファイルである。パケット保存ファイル111には、パケット受信部130がパケットを受信するたびに新たに受信したパケットの情報が追加される。パケット保存ファイル111は、例えばバイナリ形式のファイルである。
【0060】
パケット保存ファイル111は、受信日時格納部111aおよびパケットデータ格納部111bを有する。
受信日時格納部111aは、パケットデータ格納部111bに格納するパケットを受信した日時を設定する領域である。パケット受信部130は、当該パケットを受信した時のタイムスタンプ(例えば、年月日時分秒)を受信日時格納部111aに格納する。
【0061】
パケットデータ格納部111bは、パケット受信部130が受信したパケットを格納する領域である。
メッセージ復元部140は、パケット記憶部110に記憶されたパケット保存ファイル111に基づいて、各サーバで送受信されたメッセージを復元することができる。メッセージを復元する方法としては、上述したように、例えば特開2006−011683号公報に記載の方法を利用することができる。
【0062】
図7は、復元メッセージの具体例を示す図である。復元メッセージ121は、メッセージ復元部140によりパケット記憶部110に記憶されたパケット保存ファイル111に基づいて生成され、プロトコルログ記憶部120に格納される。復元メッセージ121は、後述するプロトコルログ管理テーブルを生成するためのデータである。なお、復元メッセージ121には、後述の説明に適合する箇所のみを記載しており、それ以外のメッセージに関しては図示を省略している。
【0063】
復元メッセージ121の各行には、日付フィールド121a、時刻フィールド121b、送信元アドレスフィールド121c、送信先アドレスフィールド121d、コマンド種別フィールド121eおよびコマンドフィールド121fが含まれる。
【0064】
日付フィールド121aは、当該メッセージに対応するパケットをキャプチャした日付を示すフィールドである。
時刻フィールド121bは、当該メッセージに対応するパケットをキャプチャした時刻を示すフィールドである。
【0065】
送信元アドレスフィールド121cは、メッセージの送信元のコンピュータのIP(Internet Protocol)アドレスおよびポート番号を示すフィールドである。
送信先アドレスフィールド121dは、メッセージの送信先のコンピュータのIPアドレスおよびポート番号を示すフィールドである。
【0066】
コマンド種別フィールド121eは、コマンドのリクエスト/レスポンス属性やプロトコル(HTTP、IIOPおよびDBクエリ用など)の種別を示すフィールドである。
コマンドフィールド121fは、コマンド種別フィールド121eに示されたリクエストなどのコマンド内容を示すフィールドである。
【0067】
以下、復元メッセージ121に便宜的に付した行番号を示して説明する。
例えば、行番号1のメッセージはHTTPリクエストを示している。
日付フィールド121aには、その行に対応するパケットをキャプチャした日付として、例えば“2010/03/01”が取得される。メッセージ復元部140は、このような日付としてパケット保存ファイル111の受信日時格納部111aに設定された日付を取得できる。
【0068】
また、時刻フィールド121bには、パケットキャプチャした時刻として、例えば“00:00:00.100”が取得される。メッセージ復元部140は、このような時刻としてパケット保存ファイル111の受信日時格納部111aに設定された時刻を取得できる。なお、秒の単位としてはミリ秒を例示するが、更に小さい単位(例えば、マイクロ秒)で取得してもよい。
【0069】
送信元アドレスフィールド121cには、HTTPリクエストを送信した端末装置21のIPアドレスとポート番号として、例えば“194.185.39.24:51272”が取得される。
【0070】
送信先アドレスフィールド121dには、HTTPリクエストの送信先であるWebサーバ200のIPアドレスとポート番号として、例えば、“194.23.6.226:10443”が取得される。
【0071】
コマンド種別フィールド121eには、1行目がHTTPリクエストに関するメッセージであることを示す情報として、例えば“Request HTTP”という情報が取得される。メッセージ復元部140は、例えば外部ネットワークに属する端末装置21からWebサーバ200に対するメッセージをHTTPリクエストと識別することができる。また、メッセージ復元部140は、例えばWebサーバ200からそれよりも下位のAPサーバ300に対するメッセージをIIOPリクエストと識別することができる。メッセージ復元部140は、DBリクエストや各種レスポンスに関しても同様にして識別することができる。
【0072】
コマンドフィールド121fには、HTTPリクエストの内容として、例えば“POST /cgi−bin/・・・”という情報が取得される。
このように、復元メッセージ121を参照することで、何れのサーバに対して、どのようなメッセージが送信されたかを検出することができる。
【0073】
ここで、復元メッセージ121中のその他のIPアドレスと各装置との対応関係は次の通りである。
“194.23.7.168”は、APサーバ300のIPアドレスを示す。“194.23.8.198”は、DBサーバのIPアドレスを示す。“194.185.39.25”は、端末装置22のIPアドレスを示す。
【0074】
すなわち、Webサーバ200と端末装置22との間でのHTTPリクエスト/HTTPレスポンスの送受信を各行に含まれる送信元アドレスフィールド121c、送信先アドレスフィールド121dおよびコマンド種別等によって特定できる。例えば、復元メッセージ121の3行目が当該HTTPリクエストに対応する。
【0075】
また、Webサーバ200とAPサーバ300との間でのIIOPリクエスト/IIOPレスポンスの送受信は、復元メッセージ121の2,7行目に対応する。
また、APサーバ300とDBサーバ400との間でのDBリクエスト/DBレスポンスの送受信は、復元メッセージ121の5,6行目に対応する。
【0076】
更に、メッセージ復元部140は、このようにしてリクエストと、それに対するレスポンスとを対応付けることができる。例えば、1行目は端末装置21からWebサーバ200に対するHTTPリクエストを示している。一方、その後に発生したWebサーバ200から端末装置21に対するHTTPレスポンスが8行目に示されている。よって、メッセージ復元部140は、1行目のHTTPリクエストに対して8行目のHTTPレスポンスにより応答がなされたと特定できる。メッセージ復元部140は、このようにして対応付けたリクエスト/レスポンスにその組合せを識別するための識別情報を付して、プロトコルログ管理情報を生成する。
【0077】
図8は、プロトコルログ管理テーブルのデータ構造例を示す図である。プロトコルログ管理テーブル122は、メッセージ復元部140によって生成され、プロトコルログ記憶部120に格納される。
【0078】
プロトコルログ管理テーブル122には、項番、時刻、識別番号、プロトコルおよびRequest/Responseを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのメッセージに関する情報を示す。
【0079】
項番には、レコードを識別する番号が設定される。時刻には、メッセージに対応するパケットをキャプチャした時刻が設定される。識別番号には、リクエスト/レスポンスの組を特定するための番号が設定される。プロトコルを示す項目には、メッセージが何れのプロトコルによるものかを示す情報が設定される。Request/Responseを示す項目には、そのメッセージがリクエスト/レスポンスの何れのものであるかを示す情報が設定される。
【0080】
プロトコルログ管理テーブル122には、例えば、項番が“1001”、時刻が“00:00:00.100”、識別番号が“101”、プロトコルが“HTTP”、Request/Responseが“Request”という情報が設定される。
【0081】
このレコードは、復元メッセージ121の1行目の内容に対応する。識別番号“101”はリクエスト/レスポンスの組を特定するための番号であり、項番“1014”に設定されたHTTPレスポンスのレコードについても識別番号“101”が設定されている。すなわち、項番“1001”で示されるHTTPリクエストに対する応答が“1014”で示されるHTTPレスポンスであると関連付けることができる。
【0082】
メッセージ復元部140は、パケット記憶部110に記憶されたパケット保存ファイル111を参照して、復元メッセージ121およびプロトコルログ管理テーブル122を逐次生成する。不正シーケンス候補生成部160および正常系候補生成部170は、プロトコルログ管理テーブル122に基づいて、各部の処理を実行することができる。
【0083】
次に、以上のような構成を備える不正アクセス検出装置100の処理手順を詳細に説明する。
図9は、解析処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0084】
[ステップS11]不正アクセス検知部150は、パケット記憶部110に記憶されたパケット情報を監視して、DBサーバ400に対する不正アクセスが発生したことを検知する。不正アクセス検知部150は、不正アクセスに関するDBリクエストをキャプチャした時間およびDBレスポンスをキャプチャした時間(両者を総じて不正アクセスの発生時間と称する)を不正シーケンス候補生成部160に出力する。
【0085】
[ステップS12]不正シーケンス候補生成部160は、不正アクセスの発生時間に基づいて、不正シーケンスを検出するための処理対象期間Pを特定する。
[ステップS13]不正シーケンス候補生成部160は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122に記録されたメッセージであって、処理対象期間Pに含まれるメッセージに基づいて、不正シーケンス候補を生成する。不正シーケンス候補生成部160は、生成した複数の不正シーケンス候補を正常系候補生成部170および解析結果出力部190に出力する。
【0086】
[ステップS14]正常系候補生成部170は、不正シーケンス候補生成部160から取得した不正シーケンス候補のうちから1つを取得する。
[ステップS15]正常系候補生成部170は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122に記録されたメッセージであって、処理対象期間Pに含まれるメッセージ群を取得する。正常系候補生成部170は、当該メッセージ群から不正シーケンス候補を除く正常系候補を生成する。正常系候補生成部170は、生成した正常系候補を妥当性評価部180に出力する。
【0087】
[ステップS16]妥当性評価部180は、正常系候補生成部170から取得した正常系候補の妥当性を評価し、評価結果に基づいて不正シーケンス候補の確度を示す評価値を算出する。妥当性評価部180は、算出した評価値を解析結果出力部190に出力する。ここで、妥当性の評価方法に関しては、複数の方式が考えられる。当該評価方法の詳細は、後述する。
【0088】
[ステップS17]正常系候補生成部170は、各不正シーケンス候補につき妥当性評価部180による妥当性の評価が終了したか否かを判定する。終了した場合、処理をステップS18に進める。終了していない場合、処理をステップS14に進める。
【0089】
[ステップS18]解析結果出力部190は、不正シーケンス候補生成部160から取得した各不正シーケンス候補と、妥当性評価部180から取得した各不正シーケンス候補の評価値と、に基づいて、各不正シーケンス候補をランク付けしてモニタ11に表示させる。
【0090】
このようにして、不正アクセス検出装置100は各不正シーケンス候補のうち、不正アクセスに関係する可能性の高いものを特定できる。そして、不正アクセス検出装置100は、モニタ11を介して解析結果をシステム管理者に提示することができる。
【0091】
図10は、サーバ間で送受信されたメッセージの具体例を示す図である。図10ではプロトコルログ管理テーブル122に示した各レコードに対応するメッセージを示している。ここで、各メッセージには、その時系列が把握し易いように時刻を併記している。更に、各メッセージに付した符号はリクエスト/レスポンスの対応関係に準じている。すなわち、HTTPリクエスト511aとHTTPレスポンス511bとがセットとなる。また、HTTPリクエスト512aとHTTPレスポンス512bとがセットとなる。また、HTTPリクエスト513aとHTTPレスポンス513bとがセットとなる。IIOPリクエスト521a,522a,523aとIIOPレスポンス521b,522b,523bとの関係も同様である。DBリクエスト531a,532a,533aとDBレスポンス531b,532b,533bとの関係も同様である。
【0092】
ここで、不正アクセス検知部150は、DBリクエスト531aとDBレスポンス531bとの組合せで不正アクセスを検知したとする。すると、不正アクセス検知部150は、当該不正アクセスの発生時間を不正シーケンス候補生成部160に出力する。
【0093】
不正シーケンス候補生成部160は、不正アクセスの発生時間に基づいて処理対象期間Pを特定する。
次に、図9のステップS12で示した処理対象期間特定処理を説明する。
【0094】
図11は、処理対象期間特定処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS21]不正シーケンス候補生成部160は、時間幅初期値Tを取得する。ここで、時間幅初期値Tとは、不正アクセスの発生時間に対して、どの程度の時間幅を処理対象期間とみなすかの初期値を定めるために予めシステム管理者により決定される値である。
【0095】
[ステップS22]不正シーケンス候補生成部160は、不正アクセス検知部150から取得した不正アクセスの発生時間のうち、DBリクエストに対応する時間をリクエスト時間T0として取得する。
【0096】
[ステップS23]不正シーケンス候補生成部160は、不正アクセスの発生時間のうち、DBレスポンスに対応する時間をレスポンス時間T1として取得する。
[ステップS24]不正シーケンス候補生成部160は、WsにT0−Tを代入する。また、不正シーケンス候補生成部160は、WeにT1+Tを代入する。これにより、期間Pが暫定的に定まる。すなわち、期間PはWs〜Weの間の期間となる。ここで、“T0−T”の演算結果は、T0の時点よりも時間Tだけ過去の時間を取得することを示すものとする。また、“T1+T”の演算結果は、T1の時点よりも時間Tだけ未来の時間を示すものとする。
【0097】
[ステップS25]不正シーケンス候補生成部160は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122に基づいて、期間Pに含まれるメッセージを取得する。
【0098】
[ステップS26]不正シーケンス候補生成部160は、取得したメッセージに、対応するリクエストのないレスポンスが存在するか否かを判定する。レスポンスのみのものが存在する場合、処理をステップS27に進める。レスポンスのみのものが存在しない場合、処理をステップS28に進める。例えば、プロトコルログ管理テーブル122に設定された識別番号により、対となるリクエストが存在しないレスポンスを特定することで、本判定を行うことができる。
【0099】
[ステップS27]不正シーケンス候補生成部160は、プロトコルログ管理テーブル122のうち、期間Pに含まれない期間(Wsよりも前の期間)のメッセージを参照して、ステップS26で特定したレスポンスに対応するリクエストを特定する。例えば、プロトコルログ管理テーブル122に設定された識別番号によって対となるリクエストを特定することができる。不正シーケンス候補生成部160は、当該リクエストの発生時間をWsに代入する。そして、処理をステップS25に進める。なお、各メッセージの発生時間は、プロトコルログ管理テーブル122に設定された時刻を参照することで取得できる。
【0100】
[ステップS28]不正シーケンス候補生成部160は、プロトコルログ管理テーブル122に基づいて、期間Pに含まれるメッセージを取得する。
[ステップS29]不正シーケンス候補生成部160は、取得したメッセージに、対応するレスポンスのないリクエストが存在するか否かを判定する。リクエストのみのものが存在する場合、処理をステップS30に進める。リクエストのみのものが存在しない場合、処理をステップS31に進める。例えば、プロトコルログ管理テーブル122に設定された識別番号により、対となるレスポンスが存在しないリクエストを特定することで、本判定を行うことができる。
【0101】
[ステップS30]不正シーケンス候補生成部160は、プロトコルログ管理テーブル122のうち、期間Pに含まれない期間(Weよりも後の期間)のメッセージを参照して、ステップS29で特定したリクエストに対応するレスポンスを特定する。例えば、プロトコルログ管理テーブル122に設定された識別番号によって対となるレスポンスを特定することができる。不正シーケンス候補生成部160は、当該レスポンスの発生時間をWeに代入する。そして、処理をステップS28に進める。
【0102】
[ステップS31]不正シーケンス候補生成部160は、期間Pを決定するパラメータとしてWs,Weを取得する。
このようにして、不正シーケンス候補生成部160は、処理対象期間Pを決定する。期間Pを、対になるリクエストの存在しないレスポンスおよび対になるレスポンスの存在しないリクエストを含まないように決定する。
【0103】
図12は、処理対象期間を示す図である。(A)は、暫定的に定められた期間Pを示している。図12では、HTTPリクエストA1とHTTPレスポンスA2とが組となる。また、HTTPリクエストB1とHTTPレスポンスB2とが組となる。不正アクセスのDBリクエストに対応する時間がT0である。また、不正アクセスのDBレスポンスに対応する時間がT1である。不正シーケンス候補生成部160は、Ws=T0−TからWe=T1−Tの期間Pを得る。
【0104】
不正シーケンス候補生成部160は、HTTPレスポンスA2に対するHTTPリクエストA1が現期間Pに含まれていないことを検知すると、HTTPリクエストA1の発生時間をWsに代入する。これにより、期間Pは、より過去の期間を含むように更新される。更に、不正シーケンス候補生成部160は、HTTPリクエストB1に対応するレスポンスB2が更新後の期間Pに含まれていないことを検知すると、HTTPレスポンスB2の発生時間をWeに代入する。これにより、期間Pは、より未来の期間を含むように更新される。
【0105】
(B)は、このようにして決定された期間Pを示している。上記の処理によって新たに得られたWsからWeの期間が期間Pである。
ここで、対になるリクエストの存在しないレスポンスなどが存在する場合、後段の処理で当該メッセージを用いてシーケンスを生成したとしても、それが誤ったシーケンスであることは明らかである。また、このように誤生成されたシーケンスで評価を行うとすると評価結果の精度を低減させるおそれがある。
【0106】
そこで、シーケンスが誤生成されないように、リクエスト/レスポンスの一方のみのメッセージを含まないように期間を決定することで、後段の処理の精度を向上することができる。
【0107】
次に、図9のステップS13で示した不正シーケンス候補生成処理を説明する。
図13は、不正シーケンス候補生成処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。なお、以下の処理を開始させる前に、不正シーケンス候補生成部160は作業域M,S(L)に格納された情報を全て破棄するものとする。
【0108】
[ステップS41]不正シーケンス候補生成部160は、レイヤ番号Lに不正アクセスを検知した階層のレイヤ番号Laを代入する。具体的には、DBサーバ400のレイヤ番号La=3をLに代入する。すなわち、L=3に初期化される。
【0109】
[ステップS42]不正シーケンス候補生成部160は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122を参照して不正アクセスメッセージに対応するレコードを作業域Mに追加する。具体的には、DBリクエスト531aに対応するレコード(項番“1005”)およびDBレスポンス531bに対応するレコード(項番“1006”)を作業域Mへ追加する。
【0110】
[ステップS43]不正シーケンス候補生成部160は、リクエスト時間Ts(La)=Ts(3)にT0を代入する。また、不正シーケンス候補生成部160は、レスポンス時間Te(La)=Te(3)にT1を代入する。ここで、T0はDBリクエスト531aの発生時間である。また、T1はDBレスポンス531bの発生時間である。不正シーケンス候補生成部160は、T0,T1を不正アクセス検知部から取得した時間としてもよいし、プロトコルログ管理テーブル122から取得してもよい。
【0111】
[ステップS44]不正シーケンス候補生成部160は、Lが1に等しいか否かを判定する。L=1ではない場合、処理をステップS45に進める。L=1である場合、処理をステップS51に進める。
【0112】
[ステップS45]不正シーケンス候補生成部160は、レイヤ番号L−1の階層において期間Pに含まれるメッセージを取得する。不正シーケンス候補生成部160は、例えばプロトコルログ管理テーブル122に設定されたプロトコルを参照して、L−1の階層のメッセージを取得することができる。例えば、L−1=3−1=2である場合、当該階層番号が示す階層はAPサーバ300の階層である。よって、プロトコルログ管理テーブル122に含まれるメッセージのうちプロトコルが“IIOP”のレコードを取得する。また、例えば、L−1=2−1=1である場合、当該階層番号が示す階層はWebサーバ200の階層である。よって、プロトコルログ管理テーブル122に含まれるメッセージのうちプロトコルが“HTTP”のレコードを取得する。
【0113】
[ステップS46]不正シーケンス候補生成部160は、ステップS45で取得したメッセージの組のうち、リクエストの発生時間t0がt0<Ts(L)であり、かつ、レスポンスの発生時間t1がt1>Te(L)である組を特定する。そして、当該メッセージの組に対応する一組のレコードを作業域S(L)に追加する。
【0114】
ここで、t0<Ts(L)は、t0がTs(L)よりも過去の時間帯であることを示す。また、t1>Te(L)は、t1がTe(L)よりも未来の時間帯であることを示す。
[ステップS47]不正シーケンス候補生成部160は、作業域S(L)にメッセージが存在するか否かを判定する。S(L)にメッセージが存在する場合、処理をステップS48に進める。S(L)にメッセージが存在しない場合、処理をステップS54に進める。
【0115】
[ステップS48]不正シーケンス候補生成部160は、作業域S(L)からリクエスト/レスポンスのレコードの組を一組抽出して作業域Mに追加する。なお、追加の際には、レコードに設定された時刻の時系列に従って追加する。不正シーケンス候補生成部160は、抽出した一組のレコードを作業域S(L)から削除する。
【0116】
[ステップS49]不正シーケンス候補生成部160は、リクエスト時間Ts(L−1)に抽出したレコードのうちリクエストの発生時間t0を代入する。また、不正シーケンス候補生成部160は、レスポンス時間Te(L−1)に抽出したレコードのうちレスポンスの発生時間t1を代入する。これらの時間は、当該各レコードに設定された時刻により取得できる。
【0117】
[ステップS50]不正シーケンス候補生成部160は、レイヤ番号LにL−1を代入する。そして、処理をステップS44に進める。
[ステップS51]不正シーケンス候補生成部160は、作業域Mにセットされた各メッセージに対応するレコードを不正シーケンス候補として取得する。
【0118】
[ステップS52]不正シーケンス候補生成部160は、作業域Mにセットされた各メッセージに対応するレコードにつき、最後に追加されたメッセージに対応するレコードを削除する。
【0119】
[ステップS53]不正シーケンス候補生成部160は、レイヤ番号LにL+1を代入する。そして、処理をステップS47に進める。
[ステップS54]不正シーケンス候補生成部160は、レイヤ番号LにL+1を代入する。
【0120】
[ステップS55]不正シーケンス候補生成部160は、レイヤ番号LがLaに等しいか否かを判定する。L=Laである場合、処理を完了する。L=Laでない場合、処理をステップS47に進める。
【0121】
このようにして、不正シーケンス候補生成部160は、処理対象期間Pに含まれるメッセージから不正シーケンス候補を生成する。
不正シーケンス候補生成部160は、予め決定した期間Pに基づいて不正シーケンス候補を生成することで、不正シーケンス候補が無尽蔵に生成されることを防止することができる。例えば、発生時間が大きく隔たったメッセージ同士を関連付けたとしても、それにより得られた不正シーケンス候補の妥当性は低いと考えられる。このため、期間Pを適切に決定して無駄な不正シーケンス候補を生成しないようにする。その結果、以降の処理の無駄を省き、解析処理を効率的に実行することができる。
【0122】
以下、不正シーケンス候補生成処理の具体例を説明する。
図14は、不正シーケンス候補生成処理の具体例を示す第1の図である。不正シーケンス候補生成部160は、期間Pとして、HTTPリクエスト511aの発生時間WsからHTTPレスポンス513bの発生時間Weまでの期間を取得しているものとする。この場合、当該期間Pには図10で示した各メッセージが含まれるとする。なお、各メッセージには、不正シーケンス候補の説明において対になるメッセージを識別し易いように、プロトコルと番号とを付している。例えば、HTTPリクエスト511a(“HTTP1”)とHTTPレスポンス511b(“HTTP1”)とで一組のメッセージである。不正シーケンス候補生成部160は、DBリクエスト531aおよびDBレスポンス531bで不正アクセスが検知された場合、図13の各ステップに従い、次のようにして複数の不正シーケンス候補を生成する。
【0123】
まず、不正シーケンス候補生成部160は、DBリクエスト531aよりも前にリクエストが発生しており、かつ、DBレスポンス531bよりも後にレスポンスが発生している以下のメッセージの組を取得する。
【0124】
(第1組)(HTTPリクエスト511a、HTTPレスポンス511b)の組
(第2組)(HTTPリクエスト512a、HTTPレスポンス512b)の組
(第3組)(IIOPリクエスト521a、IIOPレスポンス521b)の組
(第4組)(IIOPリクエスト522a、IIOPレスポンス522b)の組
そして、不正シーケンス候補生成部160は、取得したメッセージの組を時間的な前後関係を考慮した上で更に組み合わせて、不正シーケンス候補を生成する。
【0125】
図15は、不正シーケンス候補生成処理の具体例を示す第2の図である。不正シーケンス候補生成部160は、上記(第1組)〜(第4組)と不正アクセスに関するDBリクエスト531a、DBレスポンス531bの組(第5組とする)とを組み合わせて次のような不正シーケンス候補を生成する。
【0126】
(A)不正シーケンス候補501は、(第1組)、(第3組)および(第5組)を組み合わせて生成された不正シーケンス候補である。
(B)不正シーケンス候補501aは、(第1組)、(第4組)および(第5組)を組み合わせて生成された不正シーケンス候補である。
【0127】
(C)不正シーケンス候補501bは、(第2組)、(第4組)および(第5組)を組み合わせて生成された不正シーケンス候補である。
なお、(第2組)と(第3組)とは階層間の通信手順の時間的な前後関係が整合しないため、組み合わせることはできない。
【0128】
不正シーケンス候補生成部160は、このようにして生成した不正シーケンス候補を正常系候補生成部170に出力する。
図16は、正常系候補の具体例を示す図である。正常系候補生成部170は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122を参照して、期間Pに含まれるメッセージのうち、不正シーケンス候補を除くメッセージ群を正常系候補として取得する。
【0129】
(A)正常系候補502は、プロトコルログ管理テーブル122から不正シーケンス候補501に対応するメッセージを除いたメッセージ群を示す。
(B)正常系候補502aは、プロトコルログ管理テーブル122から不正シーケンス候補501aに対応するメッセージを除いたメッセージ群を示す。
【0130】
(C)正常系候補502bは、プロトコルログ管理テーブル122から不正シーケンス候補501bに対応するメッセージを除いたメッセージ群を示す。
当該処理は、図9のステップS15の処理に対応する。
【0131】
正常系候補生成部170は、各正常系候補を妥当性評価部180に出力する。
次に、図9のステップS16で示した妥当性評価処理を説明する。ここで、妥当性評価の方式には、複数の方式が考えられる。以下では、トランザクション数に基づく方式、各階層における処理時間に基づく方式および各階層におけるリクエスト発行時間に基づく方式の3パターンを例示する。これらのうちの何れかを用いてもよいし、これらのうちの2以上を組み合わせて用いることもできる。何れのパターンを用いるかは、システム管理者により不正アクセス検出装置100に予め設定される。
【0132】
まず、トランザクション数に基づく妥当性評価処理を説明する。
図17は、妥当性評価処理を示す第1のフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0133】
[ステップS61]妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、当該正常系候補に含まれるメッセージで構成されるトランザクションを復元する。トランザクションを復元する処理には、例えば特開2006−011683号公報に記載の方法を適用することができる。
【0134】
[ステップS62]妥当性評価部180は、復元したトランザクション数を当該正常系候補に対応する不正シーケンス候補の評価値H1として取得する。
このように、妥当性評価部180は復元したトランザクション数に基づき評価値H1を取得する。ここで、復元できたトランザクション数が多いほど、復元に用いた正常系候補の正常性は高いと考えられる。このため、評価値H1の値が大きいほど、正常系候補の生成に用いた不正シーケンス候補の妥当性も高いと考えることができる。
【0135】
図18は、妥当性評価の具体例を示す第1の図である。妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、トランザクションを復元する。具体的には、不正シーケンス候補と同様に時間的な包含関係によって成立し得るメッセージの組合せを特定することで、正常系候補に含まれる複数のトランザクションを復元することができる。
【0136】
(A)トランザクション503,503aは、正常系候補502に基づいて復元されたトランザクションである。この場合、妥当性評価部180は不正シーケンス候補501に対して評価値H1=2を得る。
【0137】
(B)トランザクション503bは、正常系候補502aに基づいて復元されたトランザクションである。この場合、妥当性評価部180は不正シーケンス候補501aに対して評価値H1=1を得る。
【0138】
(C)トランザクション503cは、正常系候補502bに基づいて復元されたトランザクションである。この場合、妥当性評価部180は不正シーケンス候補501bに対して評価値H1=1を得る。
【0139】
この場合、H1が最大となる(A)の不正シーケンス候補501の妥当性が最も高い。
次に、各階層における処理時間に基づく妥当性評価処理を説明する。
図19は、妥当性評価処理を示す第2のフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0140】
[ステップS71]妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、ステップS61と同様に当該正常系候補に含まれるメッセージで構成されるトランザクションを復元する。
【0141】
[ステップS72]妥当性評価部180は、レイヤ番号Lに最上位のレイヤ番号を代入する。すなわち、L=1となる。
[ステップS73]妥当性評価部180は、変動係数合計sum1に“0”を代入する。
【0142】
[ステップS74]妥当性評価部180は、レイヤ番号Lが(最下位のレイヤ番号+1)に等しいか否かを判定する。すなわち、L=3+1=4でない場合、処理をステップS75に進める。L=4である場合、処理をステップS78に進める。
【0143】
[ステップS75]妥当性評価部180は、復元した各トランザクションにつき、レイヤ番号Lで示される階層における処理時間の分散を算出する。妥当性評価部180は、分散に基づいて、変動係数C1(L)を算出する。ここで、変動係数Cは、以下の式によって求めることができる。
【0144】
【数1】
【0145】
ここで、σ2は分散を示す。また、τは処理時間の相加平均を示す。
[ステップS76]妥当性評価部180は、変動係数合計sum1にsum1+C1(L)を代入する。
【0146】
[ステップS77]妥当性評価部180は、レイヤ番号LにL+1を代入する。
[ステップS78]妥当性評価部180は、当該正常系候補に対応する不正シーケンス候補の評価値H2をH2=exp(−sum1)として算出する。
【0147】
このように、妥当性評価部180は各階層における処理時間に基づき評価値H2を取得する。ここで、復元できた各トランザクションについて、各階層における処理時間のばらつきが小さいほど、復元に用いた正常系候補の正常性は高いと考えられる。なぜなら、業務システムでは、定型的な業務処理が行われるのが一般的であり、各処理の処理時間にさほど差異は生じないと考えられるためである。このため、評価値H2の値が大きいほど、正常系候補の生成に用いた不正シーケンス候補の妥当性も高いと考えることができる。
【0148】
次に、各階層におけるリクエスト発行時間に基づく妥当性評価処理を説明する。
図20は、妥当性評価処理を示す第3のフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0149】
[ステップS81]妥当性評価部180は、正常系候補生成部170から取得した正常系候補に基づいて、ステップS61と同様に当該正常系候補に含まれるメッセージで構成されるトランザクションを復元する。
【0150】
[ステップS82]妥当性評価部180は、妥当性評価部180は、レイヤ番号Lに最上位のレイヤ番号を代入する。すなわち、L=1となる。
[ステップS83]妥当性評価部180は、妥当性評価部180は、変動係数合計sum2に“0”を代入する。
【0151】
[ステップS84]妥当性評価部180は、妥当性評価部180は、レイヤ番号Lが最下位のレイヤ番号に等しいか否かを判定する。すなわち、L=3でない場合、処理をステップS85に進める。L=3である場合、処理をステップS88に進める。
【0152】
[ステップS85]妥当性評価部180は、復元した各トランザクションにつき、レイヤ番号Lで示される階層におけるリクエスト発行時間の分散を算出する。妥当性評価部180は、分散に基づいて、変動係数C2(L)を算出する。ここで、変動係数Cは、式(1)によって求めることができる。ただし、τをリクエスト発行時間とする。
【0153】
[ステップS86]妥当性評価部180は、変動係数合計sum2にsum2+C2(L)を代入する。
[ステップS87]妥当性評価部180は、レイヤ番号LにL+1を代入する。
【0154】
[ステップS88]妥当性評価部180は、当該正常系候補に対応する不正シーケンス候補の評価値H3をH3=exp(−sum2)として算出する。
このように、妥当性評価部180は各階層におけるリクエスト発行時間に基づき評価値H3を取得する。ここで、復元できた各トランザクションについて、各階層におけるリクエスト発行時間のばらつきが小さいほど、復元に用いた正常系候補の正常性は高いと考えられる。なぜなら、業務システムでは、定型的な業務処理に対するリクエストを受け付けるのが一般的であり、各リクエストに対する処理時間にさほど差異は生じないと考えられるためである。このため、評価値H3の値が大きいほど、正常系候補の生成に用いた不正シーケンス候補の妥当性も高いと考えることができる。
【0155】
なお、上記ステップS84〜S87において、L=3の場合に変動係数を求めない理由は、DBサーバ400が他のサーバにリクエストを発行しないためである。
また、ステップS61,S71,S81で示したトランザクション復元処理は、複数の方式を組み合わせて妥当性評価を行う場合には、何れかの方式で1度実行すればよい。
【0156】
図21は、処理時間およびリクエスト発行時間を示す図である。図21では、トランザクション503について、処理時間およびリクエスト発行時間を例示している。
時間差t31aは、Webサーバ200がHTTPリクエスト512aを受信してからIIOPリクエスト522aを発行するまでの時間差である。時間差t31aは、Webサーバ200におけるリクエスト発行時間である。
【0157】
時間差t31bは、Webサーバ200がIIOPレスポンス522bを受信してからHTTPレスポンス512bを発行するまでの時間差である。
時間差t31a,t31bの合計の時間がWebサーバ200における処理時間である。
【0158】
時間差t32aは、APサーバ300がIIOPリクエスト522aを受信してからDBリクエスト532aを発行するまでの時間差である。時間差t32aは、APサーバ300におけるリクエスト発行時間である。
【0159】
時間差t32bは、APサーバ300がDBレスポンス532bを受信してからIIOPレスポンス522bを発行するまでの時間差である。
時間差t32a,t32bの合計の時間がAPサーバ300における処理時間である。
【0160】
時間差t33は、DBサーバ400がDBリクエスト532aを受信してからDBレスポンス532bを発行するまでの時間差である。時間差t33は、DBサーバ400における処理時間である。
【0161】
妥当性評価部180は、復元した各トランザクションについて、階層ごとに処理時間またはリクエスト発行時間につき分散を算出して、変動係数を求めることができる。
図22は、妥当性評価の具体例を示す第2の図である。
【0162】
(A)頻度分布610は、ある正常系候補において生成された各トランザクションに関する処理時間の分布である。分布611は、Webサーバ200の属する階層(Web層)における処理時間の分布である。分布612は、APサーバ300の属する階層(AP層)における処理時間の分布である。分布613は、DBサーバ400の属する階層(DB層)における処理時間の分布である。
【0163】
妥当性評価部180は、分布611,612,613の各分散に基づいて、変動係数合計sum1を算出し、評価値H2を得ることができる。
(B)頻度分布620は、ある正常系候補において生成された各トランザクションに関するリクエスト発行時間の分布である。分布621は、Web層におけるリクエスト発行時間の分布である。分布622は、AP層におけるリクエスト発行時間の分布である。
【0164】
妥当性評価部180は、分布621,622の各分散に基づいて、変動係数合計sum2を算出し、評価値H3を得ることができる。
妥当性評価部180は、このようにして取得した評価値H1,H2,H3を解析結果出力部190に出力する。解析結果出力部190は、妥当性評価部180から取得した評価値に基づいて、不正シーケンス候補をランク付けしてモニタ11に表示させる。
【0165】
次に、図9のステップS18で示した結果出力処理を説明する。
図23は、結果出力処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0166】
[ステップS91]解析結果出力部190は、トランザクション数に基づく評価値H1、各階層における処理時間に基づく評価値H2および各階層におけるリクエスト発行時間に基づく評価値H3の何れか1つまたは複数の評価値を取得したか否かを判定する。複数の方式につき評価値を取得した場合、処理をステップS92に進める。何れか1つの方式につき評価値を取得した場合、処理をステップS94に進める。
【0167】
[ステップS92]解析結果出力部190は、トランザクション数に基づく評価方式、各階層における処理時間に基づく評価方式および各階層におけるリクエスト発行時間に基づく評価方式に関して、各方式の優先度を取得する。ここで、当該優先度は、不正アクセス検出装置100に予め設定される。例えば、トランザクション数に基づく評価方式が最も優先される。次いで、処理時間に基づく評価方式が優先される。次いで、リクエスト発行時間に基づく評価方式が優先される。
【0168】
[ステップS93]解析結果出力部190は、各方式につき優先度が高く、かつ、評価値の高い不正シーケンス候補をより高ランクにランク付けする。ランクが高いほど、妥当性も高い。解析結果出力部190は、ランク付けの結果をモニタ11に表示させる。そして、処理を完了する。
【0169】
[ステップS94]解析結果出力部190は、評価値の高い不正シーケンス候補をより高ランクにランク付けする。解析結果出力部190は、ランク付けの結果をモニタ11に表示させる。そして、処理を完了する。
【0170】
このようにして、解析結果出力部190は、妥当性評価部180により算出された評価値H1,H2,H3に基づいて、不正シーケンス候補のうち妥当性の高い順にランク付けする。解析結果出力部190は、ランク付けした不正シーケンス候補を例えばモニタ11に表示させる。
【0171】
解析結果出力部190は、複数の方式により求められた評価値に基づいて、不正シーケンス候補をランク付けすることで、より正確なランク付けが可能となる。例えば、複数の正常系候補につき復元されたトランザクション数が同一の場合でも、各正常系候補につき処理時間のばらつきやリクエスト発行時間のばらつきによる評価を行えば、各正常系候補についての優劣を決定することができる。
【0172】
次に、解析結果出力部190により生成される解析結果の表示画面の具体例を説明する。
図24は、解析結果の表示画面の第1の具体例を示す図である。解析結果出力部190は、不正シーケンス表示画面700をモニタ11に表示させる。不正シーケンス表示画面700は、不正シーケンス候補を妥当性の高い順に表示する画面である。解析結果出力部190は、例えばシステム管理者によるキーボード12やマウス13を用いた所定の操作入力を受け付けた際に、不正シーケンス表示画面700を表示させてもよい。
【0173】
不正シーケンス表示画面700は、不正シーケンス候補表示部700a,700b,700cを含む。
不正シーケンス候補表示部700aは、最も妥当性の高い不正シーケンス候補を表示する領域である。図24の例では、不正シーケンス候補表示部700aには不正シーケンス候補501を示す画像が表示されている。
【0174】
不正シーケンス候補表示部700bは、2番目に妥当性の高い不正シーケンス候補を表示する領域である。図24の例では、不正シーケンス候補表示部700bには不正シーケンス候補501aを示す画像が表示されている。
【0175】
不正シーケンス候補表示部700cは、3番目に妥当性の高い不正シーケンス候補を表示する領域である。図24の例では、不正シーケンス候補表示部700cには不正シーケンス候補501bを示す画像が表示されている。
【0176】
なお、4以上の複数の不正シーケンス候補を表示させてもよい。
ここで、不正シーケンス候補表示部700a,700b,700cには、不正シーケンス候補501,501a,501bに含まれるメッセージを示すアイコン711a,711b,712a,712b,721a,721b,722a,722b,730が表示されている。
【0177】
アイコン711aはHTTPリクエスト511aに、アイコン711bはHTTPレスポンス511bに対応する。アイコン712aはHTTPリクエスト512aに、アイコン712bはHTTPレスポンス512bに対応する。アイコン721aはIIOPリクエスト521aに、アイコン721bはIIOPレスポンス521bに対応する。アイコン722aはIIOPリクエスト522aに、アイコン722bはIIOPレスポンス522bに対応する。アイコン730は不正アクセスを検知した一組のメッセージ、すなわち、DBリクエスト531aおよびDBレスポンス531bに対応する。
【0178】
システム管理者は、ポインタR1を操作して、各アイコンをクリック操作することができる。すると、解析結果出力部190は、プロトコルログ記憶部120に記憶された復元メッセージ121を参照して当該アイコンに対応するメッセージ内容を含むログ表示画面800をモニタ11に表示させる。
【0179】
例えば、解析結果出力部190は、アイコン711aに対するポインタR1によるクリック操作を受け付けたとする。アイコン711aはHTTPリクエスト511aに対応するものである。よって、解析結果出力部190は復元メッセージ121のうち当該メッセージの内容を含むログ表示画面800を表示させる。具体的には、図7で示した復元メッセージ121の1行目の内容が対応する。
【0180】
システム管理者は、ログ表示画面800を参照することで、不正アクセスに関するメッセージの情報を取得することができる。システム管理者は、当該出力結果により、不正アクセスに関するシーケンス候補のうち確度のより高いものを容易に特定することができる。ログ表示画面800の例では、HTTPリクエスト511aに含まれるユーザのIDを容易に特定することができる。システム管理者は、当該ユーザIDにより、不正アクセスに対する適切な対応を行うことができる。
【0181】
図25は、解析結果の表示画面の第2の具体例を示す図である。解析結果出力部190は、シーケンス表示画面900をモニタ11に表示させる。シーケンス表示画面900は、各サーバで送受信されたメッセージの一覧を表示する画面である。解析結果出力部190は、プロトコルログ記憶部120に記憶されたプロトコルログ管理テーブル122を参照して、シーケンス表示画面900をモニタ11に表示させることができる。解析結果出力部190は、例えばシステム管理者によるキーボード12やマウス13を用いた所定の操作入力を受け付けた際に、シーケンス表示画面900を表示させてもよい。
【0182】
シーケンス表示画面900は、シーケンス表示部901および不正アクセス元表示ボタン902を含む。
シーケンス表示部901は、各サーバで送受信されたメッセージの一覧を時系列に表示する領域である。シーケンス表示部901には各メッセージを示すアイコンが、時系列に、かつ、視覚的に区別可能に表示されている。各アイコンは、例えば色や模様によって区別できる。あるいは、メッセージの内容の一部を示す文字列を各アイコンに併記して区別可能としてもよい。アイコン911a,911b,912a,912b,930は、そのような各アイコンの一部である。
【0183】
アイコン911aはHTTPリクエスト511aに、アイコン911bはHTTPレスポンス511bに対応する。アイコン912aはHTTPリクエスト512aに、アイコン912bはHTTPレスポンス512bに対応する。アイコン930は不正アクセスを検知した一組のメッセージ、すなわち、DBリクエスト531aおよびDBレスポンス531bに対応する。
【0184】
解析結果出力部190は、シーケンス表示部901内に全ての時間帯のメッセージを表示しきれない場合には、シーケンス表示部901に設けられたスクロールバーに対する操作入力を受け付けて、表示させる時間帯を前後にスクロールすることができる。
【0185】
不正アクセス元表示ボタン902は、HTTPリクエスト表示画面910の表示指示を受け付けるためのボタンである。システム管理者は、不正アクセス元表示ボタン902をポインタR1により押下操作することで解析結果出力部190にHTTPリクエスト表示画面910の表示指示を入力することができる。
【0186】
解析結果出力部190は、不正アクセス元表示ボタン902の押下操作を受け付けると、HTTPリクエスト表示画面910をモニタ11に表示させる。
HTTPリクエスト表示画面910は、シーケンス表示部901に表示されたメッセージのうち妥当性の高い(ランクの高い)不正シーケンス候補のHTTPリクエストをリスト表示する画面である。HTTPリクエスト表示画面910の例では、アイコン911,912が表示されている。そして、アイコン911はアイコン912よりも妥当性が高いものとして表示されている。
【0187】
アイコン911は、アイコン911aに対応する。すなわち、不正シーケンス候補501のHTTPリクエスト511aに対応する。アイコン911は、アイコン911aと同一の態様により視覚的に識別できるように表示される。より具体的には、アイコン911aと同一の色や模様が付される。あるいは、アイコン911aに併記された文字列と同一の文字列がアイコン911にも併記される。
【0188】
アイコン912は、アイコン912aに対応する。すなわち、不正シーケンス候補501aのHTTPリクエスト512aに対応する。アイコン912は、シーケンス表示部901中、アイコン912aと同一の態様により視覚的に識別できるように表示される。具体的な態様はアイコン911で説明した通りである。
【0189】
システム管理者は、ポインタR1を操作して、アイコン911,912をクリック操作することができる。すると、解析結果出力部190は、プロトコルログ記憶部120に記憶された復元メッセージ121を参照して当該アイコンに対応するメッセージ内容を含むログ表示画面800をモニタ11に表示させる。
【0190】
ログ表示画面800の表示方法は、図24で説明した方法と同一である。例えば、解析結果出力部190は、アイコン911に対するポインタR1によるクリック操作を受け付けたとする。アイコン911はHTTPリクエスト511aに対応するものである。よって、解析結果出力部190は復元メッセージ121のうち当該メッセージの内容を含むログ表示画面800を表示させる。
【0191】
このように、解析結果出力部190は、シーケンス表示画面900およびHTTPリクエスト表示画面910を用いても、不正シーケンス表示画面700と同等の表示および操作を受け付けることができる。そして、同一の効果を得ることができる。
【0192】
なお、不正アクセス検出装置100は、解析結果出力部190から妥当性の高い不正シーケンス候補に含まれるユーザIDを取得して、これをシステム管理者に所定の方法で通知してもよい。例えば、不正アクセス検出装置100は電子メールにより通知してもよい。また、例えば、不正アクセス検出装置100はネットワーク経由でシステム管理者が操作する他の情報処理装置にメッセージダイアログを表示させてもよい。このようにすれば、システム管理者が不正アクセス検出装置100を直接操作できない場合にも確実に不正アクセスの発生と、そのアクセス元候補とを通知できる。
【0193】
また、不正アクセス検出装置100は、解析結果出力部190から妥当性の高い不正シーケンス候補に含まれるユーザIDを取得して、Webサーバ200に、当該ユーザIDによるその後のアクセスを拒否させてもよい。また、不正アクセス検出装置100は、スイッチ装置10に当該ユーザIDを含むその後の通信を遮断させてもよい。あるいは、不正アクセス検出装置100が当該ユーザIDを含むその後の通信をフィルタして遮断してもよい。このようにすれば、当該ユーザによるその後の不正行為を未然に防止することができる。
【0194】
ここで、多階層システムでは、それぞれ独立に設計されたアプリケーションが各階層のサーバに導入されることが多い。このため、従来では、ある階層で不正アクセスを検知したとしても、各階層間で送受信されたメッセージに当該不正アクセスとの関連性を見出すことが困難であった。
【0195】
これに対し、不正アクセス検出装置100によれば、不正アクセスに関係すると考えられる複数の不正シーケンス候補について、各不正シーケンス候補を除いた正常系候補のメッセージ群で評価する。これにより、各不正シーケンス候補の確度を適正に評価することができる。その結果、不正アクセス検出装置100は、多階層システムにおいて所定の階層で検知された不正アクセスについて、それに関係する複数の不正シーケンス候補を妥当性の高い順に提示することができる。
【0196】
システム管理者は、当該出力結果により、不正アクセスに関する通信シーケンス候補のうち確度のより高いものを容易に特定することができる。
よって、不正アクセス検出装置100は多階層システムにおいて不正アクセスに関する通信シーケンスの特定を効率的に支援することができる。
【0197】
以上、本発明の解析プログラム、解析装置および解析方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0198】
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【0199】
(付記2) 前記記憶手段に記憶された前記通信履歴のうち、前記不正アクセスの発生時間前後の所定の時間幅に含まれる複数の通信につき、各情報処理装置が受信したリクエストと、当該リクエストに対して当該情報処理装置が送信したレスポンスと、の対応付けができるように前記時間幅を決定する処理を更に前記コンピュータに実行させ、
前記記憶手段に記憶された前記通信履歴のうち、前記時間幅の範囲で前記複数のシーケンス候補を抽出し、前記複数のシーケンス候補それぞれの前記評価値を算出する、
ことを特徴とする付記1記載の解析プログラム。
【0200】
(付記3) 前記評価値として、前記第2の通信履歴により復元されたトランザクションの数に基づき第1の評価値を算出することを特徴とする付記1または2の何れか一項に記載の解析プログラム。
【0201】
(付記4) 前記評価値として、前記第2の通信履歴により復元された各トランザクションにつき、同一の情報処理装置が所定の処理に要した時間に基づき第2の評価値を算出することを特徴とする付記1乃至3の何れか一項に記載の解析プログラム。
【0202】
(付記5) 前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間であることを特徴とする付記4記載の解析プログラム。
【0203】
(付記6) 前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間と、前記他の情報処理装置から前記第2のリクエストに対する第1のレスポンスを受信してから前記第1のリクエストに対する第2のレスポンスを送信するまでのレスポンス発行時間と、を合計した時間であることを特徴とする付記4記載の解析プログラム。
【0204】
(付記7) 前記第2の評価値を、各情報処理装置が前記所定の処理に要した時間の変動係数を前記トランザクションで合計した変動係数合計に基づいて算出することを特徴とする付記4乃至6の何れか一項に記載の解析プログラム。
【0205】
(付記8) 前記第2の評価値を、変動係数合計x(xは0以上の整数)につきexp(−x)の演算により算出することを特徴とする付記7記載の解析プログラム。
(付記9) 前記各評価値の降順に、前記確度が最高のものから最低のものへ対応付けて、当該評価値に対応する前記シーケンス候補を示す画像を表示手段に表示させることを特徴とする付記3または8の何れか一項に記載の解析プログラム。
【0206】
(付記10) 複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出する抽出手段と、
前記記憶手段に記憶された通信履歴のうち、前記抽出手段が抽出した前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する評価手段と、
を有することを特徴とする解析装置。
【0207】
(付記11) 解析装置の解析方法であって、
前記解析装置が、
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
ことを特徴とする解析方法。
【符号の説明】
【0208】
1 解析装置
1a 通信履歴記憶手段
1b 抽出手段
1c 評価手段
2,3,4 情報処理装置
5 シーケンス候補
5a,5b,5c 通信
【特許請求の範囲】
【請求項1】
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【請求項2】
前記記憶手段に記憶された前記通信履歴のうち、前記不正アクセスの発生時間前後の所定の時間幅に含まれる複数の通信につき、各情報処理装置が受信したリクエストと、当該リクエストに対して当該情報処理装置が送信したレスポンスと、の対応付けができるように前記時間幅を決定する処理を更に前記コンピュータに実行させ、
前記記憶手段に記憶された前記通信履歴のうち、前記時間幅の範囲で前記複数のシーケンス候補を抽出し、前記複数のシーケンス候補それぞれの前記評価値を算出する、
ことを特徴とする請求項1記載の解析プログラム。
【請求項3】
前記評価値を、前記第2の通信履歴により復元されたトランザクションの数に基づいて算出することを特徴とする請求項1または2の何れか一項に記載の解析プログラム。
【請求項4】
前記評価値を、前記第2の通信履歴により復元された各トランザクションにつき、同一の情報処理装置が所定の処理に要した時間に基づいて算出することを特徴とする請求項1乃至3の何れか一項に記載の解析プログラム。
【請求項5】
前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間であることを特徴とする請求項4記載の解析プログラム。
【請求項6】
前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間と、前記他の情報処理装置から前記第2のリクエストに対する第1のレスポンスを受信してから前記第1のリクエストに対する第2のレスポンスを送信するまでのレスポンス発行時間と、を合計した時間であることを特徴とする請求項4記載の解析プログラム。
【請求項7】
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出する抽出手段と、
前記記憶手段に記憶された通信履歴のうち、前記抽出手段が抽出した前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する評価手段と、
を有することを特徴とする解析装置。
【請求項8】
解析装置の解析方法であって、
前記解析装置が、
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
ことを特徴とする解析方法。
【請求項1】
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
処理をコンピュータに実行させることを特徴とする解析プログラム。
【請求項2】
前記記憶手段に記憶された前記通信履歴のうち、前記不正アクセスの発生時間前後の所定の時間幅に含まれる複数の通信につき、各情報処理装置が受信したリクエストと、当該リクエストに対して当該情報処理装置が送信したレスポンスと、の対応付けができるように前記時間幅を決定する処理を更に前記コンピュータに実行させ、
前記記憶手段に記憶された前記通信履歴のうち、前記時間幅の範囲で前記複数のシーケンス候補を抽出し、前記複数のシーケンス候補それぞれの前記評価値を算出する、
ことを特徴とする請求項1記載の解析プログラム。
【請求項3】
前記評価値を、前記第2の通信履歴により復元されたトランザクションの数に基づいて算出することを特徴とする請求項1または2の何れか一項に記載の解析プログラム。
【請求項4】
前記評価値を、前記第2の通信履歴により復元された各トランザクションにつき、同一の情報処理装置が所定の処理に要した時間に基づいて算出することを特徴とする請求項1乃至3の何れか一項に記載の解析プログラム。
【請求項5】
前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間であることを特徴とする請求項4記載の解析プログラム。
【請求項6】
前記所定の処理に要した時間は、前記情報処理装置が第1のリクエストを受信してから他の情報処理装置に対する第2のリクエストを送信するまでのリクエスト発行時間と、前記他の情報処理装置から前記第2のリクエストに対する第1のレスポンスを受信してから前記第1のリクエストに対する第2のレスポンスを送信するまでのレスポンス発行時間と、を合計した時間であることを特徴とする請求項4記載の解析プログラム。
【請求項7】
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出する抽出手段と、
前記記憶手段に記憶された通信履歴のうち、前記抽出手段が抽出した前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する評価手段と、
を有することを特徴とする解析装置。
【請求項8】
解析装置の解析方法であって、
前記解析装置が、
複数の情報処理装置間の通信履歴を記憶する記憶手段に記憶された前記通信履歴に基づいて、前記複数の情報処理装置間でなされた不正アクセスに関する通信につき複数のシーケンス候補を抽出し、
前記記憶手段に記憶された通信履歴のうち、前記複数のシーケンス候補それぞれに対応する第1の通信履歴を除いた第2の通信履歴により復元できるトランザクションの正常性に基づいて、前記複数のシーケンス候補それぞれが不正アクセスであることの確度を示す評価値を算出し出力する、
ことを特徴とする解析方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2011−253355(P2011−253355A)
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【出願番号】特願2010−126787(P2010−126787)
【出願日】平成22年6月2日(2010.6.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【出願日】平成22年6月2日(2010.6.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]