説明

監視装置、制御方法及び制御プログラム

【課題】本発明の課題は、仮想サーバを実行する物理サーバのアクセスが異常なアクセスを行っているかを検出することができる監視装置を提供することである。
【解決手段】課題を解決するために、複数の記憶領域を備えたストレージ装置と、それぞれ、前記複数の記憶領域のうちのいずれかの記憶領域がアクセス可能な記憶領域として割り当てられた複数の仮想サーバを実行するサーバ装置とを有する情報処理システムを監視する監視装置は、前記ストレージ装置と前記サーバ装置との間で送受信されるパケットの解析結果に基づいて、前記サーバ装置から前記ストレージ装置に対してなされるアクセスのアクセス先を検出し、検出したアクセス先の記憶領域が前記複数の記憶領域間で所定の基準を超えて分散している場合に、前記サーバ装置から前記ストレージ装置に対して異常アクセスが行われていると判定する判定部を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視装置、制御方法及び制御プログラムに関する。
【背景技術】
【0002】
物理サーバとストレージ装置とをネットワーク接続する技術がある。この技術は、iSCSI(Internet Small Computer System Interface)等、物理サーバとストレージ装置との間をIPネットワークで接続したものがある。このIPネットワークで接続された物理サーバとストレージ装置は、各々が搭載するネットワーク機器に応じてIPアドレスなどネットワークアドレスが付与され、該ネットワークアドレスを使用して通信を行っている。
【0003】
近年、この物理サーバにて、複数の仮想マシン(VM:Virtual Machine)を稼働させ、該VMからネットワーク上のストレージ装置へのアクセスを行うことが可能となっている。
【0004】
上記したように、通信に用いるネットワークアドレスは、ネットワーク機器単位での付与となるため、物理サーバでは、搭載されるネットワーク機器単位で付与となる。即ち、ネットワークアドレスは、物理サーバで稼働するVM単位では付与されない。このため、物理サーバで稼働するVMからストレージ装置へのアクセスは、全て物理サーバに搭載されるネットワーク機器に割り当てられたネットワークアドレスを使用することになる。即ち、物理サーバで稼働する複数のVMが同じネットワークアドレスを使用してストレージ装置へのアクセスを行う場合がある。
【0005】
ところで、ネットワークを使用したストレージ装置へのアクセスは、複数のサーバからのアクセスが行われるため、セキュリティの観点から、サーバ単位でストレージ装置内のアクセス可能領域を制限することがある。しかしながら、障害や悪意のあるソフトウエアなどにより、いずれかのサーバが、予め設定されているアクセス可能領域を逸脱してアクセスを行ってしまう場合がある(このようなアクセスを以下不正なアクセスと呼ぶ)。この様な、不正なアクセスを監視は、ネットワーク上のパケットをキャプチャする事により行われることがある。詳しくは、ネットワーク内にパケットキャプチャ装置を設置し、該装置によりキャプチャしたパケットに含まれるネットワークアドレスから送信元のサーバを特定し、該パケットに含まれるストレージ装置のアクセス可能領域外のアクセスが無いかを監視する。
【0006】
しかしながら、上記したように、送信元IPアドレスは、物理サーバに搭載したネットワーク機器単位で割り振られているため、VMを搭載したサーバでは、たとえパケットを取得しても、該物理サーバ内で稼働している複数のVMのいずれから送信されたパケットかまでは識別できない。
【0007】
このため、個々のVMからのアクセスが、その割り当てられた領域範囲外に対してアクセスを行っているのか、その割り当てられた領域範囲内に対してアクセスを行っているのかまでは送信元のネットワークアドレスを持って特定することができない。
【0008】
即ち、送信元IPアドレスによる識別では、仮想サーバを実行する物理サーバのアクセスがストレージ装置に対し、不正なアクセスを行っているか正常なアクセスを行っているのか判定できない。
【0009】
なお、先行技術文献としては、下記のものがある。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2005−269486号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
本技術の開示での課題は、仮想サーバを実行する物理サーバのアクセスが異常なアクセスを行っているかを検出することができる監視装置を提供することである。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本技術では、複数の記憶領域を備えたストレージ装置と、それぞれ、前記複数の記憶領域のうちのいずれかの記憶領域がアクセス可能な記憶領域として割り当てられた複数の仮想サーバを実行するサーバ装置とを有する情報処理システムを監視する監視装置は、前記ストレージ装置と前記サーバ装置との間で送受信されるパケットの解析結果に基づいて、前記サーバ装置から前記ストレージ装置に対してなされるアクセスのアクセス先を検出し、検出したアクセス先の記憶領域が前記複数の記憶領域間で所定の基準を超えて分散している場合に、前記サーバ装置から前記ストレージ装置に対して異常アクセスが行われていると判定する判定部を有する。
【発明の効果】
【0013】
本開示の技術の一側面によれば、仮想サーバを実行する物理サーバのアクセスが異常なアクセスを行っているかを検出することができる。
【図面の簡単な説明】
【0014】
【図1】情報処理システムを示す図である。
【図2】サーバ装置の構成を示すブロック図である。
【図3】監視装置の構成を示すブロック図である。
【図4】本実施形態における情報処理システムを示す図である。
【図5】仮想ストレージが仮想サーバに割り当てられる場合の構成の一例を示す図である。
【図6】iSCSIにてデータを読み込む場合に使用するiSCSIコマンドフォーマットを示す図である。
【図7】CDB中のフォーマットを示す図である。
【図8】特定領域情報テーブルを示す図(その1)である。
【図9】アクセス判定情報テーブルを示す図である。
【図10】実施形態1における情報処理システムを示す図である。
【図11】実施形態1における監視装置の処理を示すフローチャートである。
【図12】実施形態2における情報処理システムを示す図である。
【図13】実施形態2における監視装置の処理を示すフローチャートである。
【図14】実施形態3における情報処理システムを示す図である。
【図15】実施形態3における監視装置の処理を示すフローチャートである。
【図16】実施形態4における情報処理システムを示す図である。
【図17】特定領域情報テーブルを示す図(その2)である。
【図18】実施形態4における監視装置の処理を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本実施形態における情報処理システムについて説明する。
【0016】
(実施形態1)
図1は、本実施形態における情報処理システムを示す図である。情報処理システムは、複数のサーバ100、ネットワーク200、監視装置300及び複数のストレージ装置400を有する。複数のサーバ100、監視装置300及び複数のストレージ装置400は、ネットワーク200によって互いに接続される。サーバ100は、VM(Virtual Machine)を実行する。監視装置300は、サーバ100及びストレージ装置400の監視を行う。ストレージ装置400は、複数のディスクを有し、データを格納する。なお、サーバ100とストレージ装置400とからなる構成を当該情報処理システムの最小構成としても良い。
【0017】
図2を用いて、本実施形態におけるサーバ100について説明する。サーバ100は、CPU201、主記憶装置202、システムコントローラ203、バス204、ネットワークコントローラ207、電源209、ディスクコントローラ212及びハードディスク213を有する。サーバ100は、CPU(Central Processing Unit)201によって制御されている。
【0018】
CPU201及び主記憶装置202には、システムコントローラ203が接続されている。システムコントローラ203は、CPU201と主記憶装置202との間のデータ転送や、CPU201とバス204との間のデータ転送を制御する。さらに、システムコントローラ203には、バス204を介して、ネットワークコントローラ207及びディスクコントローラ212が接続されている。
【0019】
主記憶装置202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置202には、CPU201による処理に必要な各種データが格納される。主記憶装置202には、例えば、RAM(Random Access Memory)が用いられる。
【0020】
ディスクコントローラ212には、ハードディスク213が接続されている。ディスクコントローラ212は、ハードディスク213を制御する。
【0021】
ハードディスク213は、CPU201が主記憶装置202上でVMを実行するためのアプリケーションプログラム3000、CPU201に当該アプリケーションプログラム3000の呼び出しなどの制御を行わせる制御プログラム2000及び各種データを格納する。
【0022】
ネットワークコントローラ207は、図1に示したサーバ100及びストレージ装置400と接続されており、サーバ100及びストレージ装置400との間で、データの送受信を行う。
【0023】
電源209は、不図示の電源線を介してサーバ100内の各ハードウェアに対して電力を供給する。
【0024】
このようなハードウェアによって、サーバ100の処理機能を実現することができる。
【0025】
図3を用いて、本実施形態における監視装置300について説明する。監視装置300は、CPU221、主記憶装置222、システムコントローラ223、バス224、ネットワークコントローラ227、電源229、ディスクコントローラ232及びハードディスク233を有する。監視装置300は、CPU221によって制御されている。
【0026】
CPU221及び主記憶装置222には、システムコントローラ223が接続されている。システムコントローラ223は、CPU221と主記憶装置222との間のデータ転送や、CPU221とバス224との間のデータ転送を制御する。さらに、システムコントローラ223には、バス224を介して、ネットワークコントローラ227及びディスクコントローラ232が接続されている。
【0027】
主記憶装置222には、CPU221に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置222には、CPU221による処理に必要な各種データが格納される。主記憶装置222には、例えば、RAMが用いられる。
【0028】
ディスクコントローラ232には、ハードディスク233が接続されている。ディスクコントローラ232は、ハードディスク233を制御する。
【0029】
ハードディスク233は、CPU221が主記憶装置222上で実行するアプリケーションプログラム1000、CPU221に当該アプリケーションプログラム1000の呼び出しなどの制御を行わせる制御プログラム4000及び各種データを格納する。また、ハードディスク233は、特定領域情報テーブル510等を格納する。なお、特定領域情報テーブル510等については後述する。
【0030】
ネットワークコントローラ227は、図1に示したサーバ100及びストレージ装置400と接続されており、サーバ100及びストレージ装置400との間で、データの送受信を行う。
【0031】
電源229は、不図示の電源線を介して監視装置300内の各ハードウェアに対して電力を供給する。
【0032】
このようなハードウェアによって、監視装置300の処理機能を実現することができる。
【0033】
図4に図1において示した本実施形態における情報処理システムを示す。サーバ100のCPU201が、主記憶装置202にてアプリケーションプログラム3000を実行することで、サーバ100にて、VMが実行される。サーバ100それぞれにおいて、「VMA」110及び「VMB」120、「VMC」130及び「VMD」140が実行される。また、サーバ100はハイパーバイザ150を有する。ハイパーバイザ150は、VMの管理を行ったり、入出力の制御を行ったりする。
【0034】
ストレージ装置400は、「ディスク0」410、「ディスク1」420、「ディスク2」430及び「ディスク3」440を有する。「ディスク0」410乃至「ディスク3」440はデータを記憶する。「ディスク0」410は「VMA」110に、「ディスク1」420は「VMB」120に、「ディスク2」430は「VMC」130に、「ディスク3」440は「VMD」140に、それぞれ対応付けられている。
【0035】
監視装置300のCPU221が、主記憶装置222にてアプリケーションプログラム1000を実行することで、監視装置300にて、パケットキャプチャ310及びロジック実行部320が実行される。ハードディスク233は仮想システム構成情報540を格納する。仮想システム構成情報540は、VMと当該VMに対応付けられたディスクを示している。パケットキャプチャ310は、ネットワーク200を介してサーバ100とストレージ装置400との間で送受信されるパケットを取得する。なお、パケットキャプチャ310は、例えば、スイッチのミラー機能やタップ装置を介してパケットを取得すれば良い。ロジック実行部320は、パケットに含まれるIPアドレスを参照することにより、種々の処理を行い、ストレージ装置400への不正アクセスを検出する。
【0036】
図5に、ストレージ装置400がiSCSIを利用して、各物理サーバ100、各仮想サーバ(VM110〜140)に割り当てられる場合の一例を示す。
【0037】
ストレージ装置400内には、物理ディスク410(ここでは、説明の都合上、1つの物理ディスク410を示しているが、実際は、複数の物理ディスクで構成される)が搭載されている。
【0038】
また、各物理サーバ100には、物理ディスク410と一意に対応付けた仮想的なディスクを備える。即ち、各物理サーバ100には、各々同じ構成の仮想ディスク160が配置される。
【0039】
各VM(VMA1110,VMB120,VMC130,VMD140)には、各々論理的ディスク1〜4・111〜141が割り当てられている。この論理的ディスク1〜4・111〜141は、各々搭載する物理サーバの仮想ディスク160内の、お互いのVM同士が同じ領域へのアクセスができない排他的な領域をアクセスできる領域を割り当てている。
【0040】
図6に、iSCSIにてデータを読み込む場合に使用するiSCSIコマンドフォーマット610を示す。
【0041】
図7に、実際にiSCSIを利用することによるサーバ100とストレージ装置400との通信において、データの読み込みが行われる場合の、Command DescrIPtion Block(CDB)中のフォーマット620を示す。
【0042】
図8に、特定領域情報テーブル510を示す。特定領域情報テーブル510は、仮想ストレージの全体のディスクの中で、ある特定の領域を示す情報を記録する。特定領域情報テーブル510は、項番511、変数512及び説明513を有する。項番「1」の変数「IP(initiator)」はInitiatorのIPアドレスを示す。InitiatorのIPアドレスは、物理サーバのIPアドレスである。項番「2」の変数「IP(target)」はTargetのIPアドレスを示す。TargetのIPアドレスはストレージ装置400のIPアドレスを示す。項番「3」の変数「LUN(Logical Unit Number)」はLUNの値を示す。LUNは、ストレージ装置を所定領域に分割した論理的な単位を特定する番号である。項番「4」の「LBA(Logical Block Address)」はLBAの開始値を示す。LBAは、当該所定領域をさらに分割した論理ブロックを特定するアドレス番号であり、LBAの開始値は、ある領域の先頭のLBAを示す。項番「5」の変数「LBA範囲」はLBAのOffsetを示す。LBAのOffsetは、当該領域に含まれる論理ブロックの数を示す。なお、LBAのOffsetは任意の値に設定可能である。例えば、LBAのOffsetを「10」と設定した場合、特定単位領域には10個の論理ブロックが含まれることになる。
【0043】
図9に、アクセス判定情報テーブル520を示す。アクセス判定情報テーブル520は、ある特定の領域へのアクセス情報を記録する。アクセス判定情報テーブル520は、どの物理サーバからストレージ装置のどの領域にアクセスしたかを示すものであり、各物理サーバに対応付けられて生成される。アクセス判定情報テーブル520は、項番521、変数522及び説明523を有する。項番「1」の変数「IP(target)」はTargetのIPアドレスを示す。項番「2」の変数「時刻」は、ある物理サーバからストレージ装置の領域にアクセスがあった時点のアクセス時刻を示す。ロジック実行部320は、当該時刻から所定時間経過後、異常アクセス判定を行う。項番「3」の変数「LUN」は、アクセスした領域のLUNの値を示す。項番「4」の「LBA」は、アクセスした領域のLBAの開始値を示す。項番「5」の変数「LBA範囲」は、アクセスした領域の範囲となるLBAのOffsetを示す。項番「6」の変数「アクセス回数」はLBAへアクセスした回数を示す。
【0044】
図10に本実施形態における情報処理システムを示す。上述したものについては同一番号を付し、その説明を省略する。本実施形態では、「VMB」120のように、ストレージ装置400内の「VMB」120に割り当てられた領域以外の領域も含めて全体的にアクセスした場合を異常と判定する。なお、「VMD」140のように、ストレージ装置400内の「VMD」140に割り当てられた領域の一部領域をアクセスしている場合は正常と判定する。
【0045】
サーバ100はそれぞれ、「VMA」110及び「VMB」120、「VMC」130及び「VMD」140を実行する。「VMA」110は、仮想ディスク160から論理的ディスク111を割り当てる。「VMB」120は、仮想ディスク160から論理的ディスク121を割り当てる。「VMC」130は、仮想ディスク160から論理的ディスク131を割り当てる。「VMD」140は、仮想ディスク160から論理的ディスク141を割り当てる。iSCSI180はストレージ装置400とサーバ100とを接続するためのストレージ用インタフェースである。
【0046】
ストレージ装置400は、iSCSI180、論理ブロック「L0」411、論理ブロック「L1」412、論理ブロック「L2」413、論理ブロック「L3」421、論理ブロック「L4」422、論理ブロック「L5」423、論理ブロック「L6」431、論理ブロック「L7」432、論理ブロック「L8」433、論理ブロック「L9」441、論理ブロック「L10」442及び論理ブロック「L11」443を有する。論理ブロック「L0」411乃至論理ブロック「L2」413は「VMA」110に割り当てられている。論理ブロック「L3」421乃至論理ブロック「L5」423は「VMB」120に割り当てられている。論理ブロック「L6」431乃至論理ブロック「L8」433は「VMC」130に割り当てられている。論理ブロック「L9」441乃至論理ブロック「L11」443は「VMD」140に割り当てられている。iSCSI180はサーバ100とストレージ装置400とを接続するためのシトレージ用インタフェースである。ロジック実行部320は、パケットキャプチャ310が解析したパケットに含まれるInitiatorのIPアドレス、TargetのIPアドレス、LUN、LBA及びLBA範囲を参照することで、各論理ブロックの番号と当該論理ブロックへのアクセス回数とを対応付けて、図9に示したアクセス判定情報テーブル520に記録する。
【0047】
図11を用いて実施形態1における監視装置300の処理を説明する。
【0048】
ステップS101において、ロジック実行部320は、現在時刻を取得する。ロジック実行部320は、処理をステップS102へ移行する。
【0049】
ステップS102において、ロジック実行部320は、ステップS101にて取得した時刻と前回ステップS102を実行した時刻との差分とから所定時間が経過したか否かを判定する。所定時間が経過した場合、ロジック実行部320は、処理をステップS105へ移行する。一方、所定時間が経過していない場合、ロジック実行部320は、処理をステップS103へ移行する。
【0050】
ステップS103において、パケットキャプチャ310は、ネットワーク200を介してサーバ100とストレージ装置400との間で送受信されるパケットを取得する。ロジック実行部320は、処理をステップS104へ移行する。
【0051】
ステップS104において、ロジック実行部320は、パケットキャプチャ310が取得したパケットのInitiatorのIPアドレスやTargetのIPアドレス、LUN等に基づいて、パケットの送信元の物理サーバに対応するアクセス判定情報テーブル520の特定領域単位での各キーのアクセス回数を更新する。ここで、キーとは、LUN、LBA及びLBA範囲の3つの項目から特定される領域である。その後、ロジック実行部320は、処理をステップS102へ戻す。
【0052】
ステップS105において、ロジック実行部320は、アクセス判定情報テーブル520を参照して、特定領域単位で各キーへのアクセス回数を取得する。本実施形態では、ロジック実行部320は、特定領域単位の一例として、各論理ブロックを用い、当該論理ブロックでの各キーへのアクセス回数を取得する。ロジック実行部320は、処理をステップS106へ移行する。
【0053】
ステップS106において、ロジック実行部320は、全キーへのアクセス回数が0よりも大きいか否かを判定する。全キーへのアクセス回数が0よりも大きい場合、ロジック実行部320は、処理をステップS107へ移行する。一方、全キーへのアクセス回数が0よりも大きくない場合、ロジック実行部320は、処理をステップS108へ移行する。
【0054】
ステップS107において、ロジック実行部320は、VMからストレージ装置へのアクセスは正常と判定する。ロジック実行部320は、処理をステップS109へ移行する。
【0055】
ステップS108において、ロジック実行部320は、VMからストレージ装置へのアクセスは異常と判定する。ロジック実行部320は、処理をステップS109へ移行する。
【0056】
ステップS109において、ロジック実行部320は、全キーへのアクセス回数をクリアする。具体的には、ロジック実行部320は、アクセス判定情報テーブル520のアクセス回数を0にする。ロジック実行部320は、処理をステップS101へ戻す。
【0057】
本実施形態によれば、単位時間あたりに特定領域の全体にアクセスしている場合は異常と判定し、単位時間あたりに特定領域の一部にアクセスしている場合は正常と判定することができる。通常のVMは、単位時間内に、特定のディスク領域にしかアクセスしない可能性が高く、一方、悪意あるVMは、単位時間内に、ディスク全体の領域にアクセスする可能性が高いことに着目している。これによれば、単位時間あたりに特定領域の全体にアクセスしている物理サーバの中には、不正アクセスを行っているVMが存在すると判定することができる。
【0058】
なお、ステップS107において異常と判定された場合、ロジック実行部320は、例えば、異常アクセスが発生したことを管理者にメールなどで通知するようにしても良い。また、ステップS107において異常と判定された場合、ロジック実行部320は、例えば、異常アクセスを示すログを出力するようにしても良い。
【0059】
(実施形態2)
図12に本実施形態における情報処理システムを示す。上述したものについては同一番号を付し、その説明を省略する。本実施形態では、「VMB」120のように、ストレージ装置400内の「VMB」120に割り当てられた領域以外の領域も含めて、Lx(411〜443)で示すLBAとOffsetで示すそれぞれの領域に、シーケンシャルにアクセスした場合を異常と判定する。なお、「VMD」140のように、ストレージ装置400内の「VMD」140に割り当てられた領域の一部にアクセスしている場合は正常と判定する。
【0060】
図13を用いて実施形態2における監視装置300の処理を説明する。
【0061】
ステップS201において、ロジック実行部320は、現在時刻を取得する。ロジック実行部320は、処理をステップS202へ移行する。
【0062】
ステップS202において、ロジック実行部320は、ステップS201にて取得した時刻と前回ステップS202を実行した時刻との差分から所定時間が経過したか否かを判定する。所定時間が経過した場合、ロジック実行部320は、処理をステップS205へ移行する。一方、所定時間が経過していない場合、ロジック実行部320は、処理をステップS203へ移行する。
【0063】
ステップS203において、パケットキャプチャ310は、ネットワーク200を介してサーバ100とストレージ装置400との間で送受信されるパケットを取得する。ロジック実行部320は、処理をステップS204へ移行する。
【0064】
ステップS204において、ロジック実行部320は、パケットキャプチャ310が取得したパケットのInitiatorのIPアドレスやTargetのIPアドレス、LUN等に基づいて、パケットの送信元の物理サーバに対応するアクセス判定情報テーブル520のアクセス回数を更新する。その後、ロジック実行部320は、処理をステップS202へ戻す。
【0065】
ステップS205において、ロジック実行部320は、アクセス判定情報テーブル520を参照して、特定領域単位で各キーへのアクセス回数を取得する。本実施形態では、ロジック実行部320は、特定領域単位の一例として、各論理ブロックへのアクセス回数を取得する。ロジック実行部320は、処理をステップS206へ移行する。
【0066】
ステップS206において、ロジック実行部320は、アクセスしたキーの直前のキーが0であるか否かを判定する。具体的には、ロジック実行部320は、アクセス判定情報テーブル520を参照して、1つ前の論理ブロックにアクセスがあったか否かを判定する。アクセスしたキーの直前のキーが0である場合、ロジック実行部320は、処理をステップS207へ移行する。一方、アクセスしたキーの直前のキーが0でない場合、ロジック実行部320は、処理をステップS208へ移行する。
【0067】
ステップS207において、ロジック実行部320は、VMからストレージ装置へのアクセスは正常と判定する。ロジック実行部320は、処理をステップS209へ移行する。
【0068】
ステップS208において、ロジック実行部320は、VMからストレージ装置へのアクセスは異常と判定する。ロジック実行部320は、処理をステップS209へ移行する。
【0069】
ステップS209において、ロジック実行部320は、全キーへのアクセス回数を0に初期化することでクリアする。その後、ロジック実行部320は、処理をステップS201へ戻す。
【0070】
本実施形態によれば、特定領域の全体に、論理ブロック「L0」から論理ブロック「L5」の順にシーケンシャルにアクセスしている場合は異常と判定し、単位時間あたりに特定領域の一部にアクセスしている場合は正常と判定することができる。正常時でも、確率的には、ディスクの特定領域の全体にアクセスする可能性はある。ただし、ランダムに、かつ、重複してアクセスされる可能性が高い。一方、悪意あるVMが特定領域の全体にアクセスする場合、効率的にデータを収集するために、特定領域をシーケンシャルにアクセスする可能性が高いことに着目している。
【0071】
(実施形態3)
図14に本実施形態における情報処理システムを示す。上述したものについては同一番号を付し、その説明を省略する。論理ブロック「L0」411乃至論理ブロック「L11」443内に付した番号は所定時間内にサーバ100からアクセスされた回数を示す。本実施形態では、論理ブロック「L0」411乃至論理ブロック「L5」423のように、特定領域の全体にランダムであるが重複なくアクセスしている場合を異常と判定する。なお、論理ブロック「L6」431乃至論理ブロック「L11」443のように、特定領域の全体に重複してアクセスしている場合を正常と判定する。
【0072】
図15を用いて実施形態3における監視装置300の処理を説明する。
【0073】
ステップS301において、ロジック実行部320は、現在時刻を取得する。ロジック実行部320は、処理をステップS302へ移行する。
【0074】
ステップS302において、ロジック実行部320は、ステップS301にて取得した時刻と前回ステップS302を実行した時刻との差分から所定時間が経過したか否かを判定する。所定時間が経過した場合、ロジック実行部320は、処理をステップS305へ移行する。一方、所定時間が経過していない場合、ロジック実行部320は、処理をステップS303へ移行する。
【0075】
ステップS303において、パケットキャプチャ310は、ネットワーク200を介してサーバ100とストレージ装置400との間で送受信されるパケットを取得する。ロジック実行部320は、処理をステップS304へ移行する。
【0076】
ステップS304において、ロジック実行部320は、パケットキャプチャ310が取得したパケットのInitiatorのIPアドレスやTargetのIPアドレス、LUN等に基づいて、パケットの送信元の物理サーバに対応するアクセス判定情報テーブル520のアクセス回数を更新する。その後、ロジック実行部320は、処理をステップS302へ戻す。
【0077】
ステップS305において、ロジック実行部320は、アクセス判定情報テーブル520を参照して、特定領域単位で各キーへのアクセス回数を取得する。本実施形態では、ロジック実行部320は、特定領域単位の一例として、各論理ブロックへのアクセス回数を取得する。ロジック実行部320は、処理をステップS306へ移行する。
【0078】
ステップS306において、ロジック実行部320は、全キーへのアクセス回数がnよりも大きく、かつmよりも小さいか否かを判定する。この判定を満たす場合、ロジック実行部320は、処理をステップS307へ移行する。一方、この判定を満たさない場合、ロジック実行部320は、処理をステップS308へ移行する。
【0079】
ステップS307において、ロジック実行部320は、VMからストレージ装置へのアクセスは異常と判定する。ロジック実行部320は、処理をステップS309へ移行する。
【0080】
ステップS308において、ロジック実行部320は、VMからストレージ装置へのアクセスは正常と判定する。ロジック実行部320は、処理をステップS309へ移行する。
【0081】
ステップS309において、ロジック実行部320は、全キーへのアクセス回数をクリアする。ロジック実行部320は、処理をステップS301へ戻す。
【0082】
本実施形態によれば、特定領域の全体に、ランダムであるが重複なくアクセスしている場合は異常と判定し、特定領域の全体に、ランダムであり、かつ、重複してアクセスしている場合は正常と判定することができる。正常時でも、確率的には、ディスクの特定領域の全体にアクセスする可能性はある。一方、悪意あるVMが特定領域の全体にアクセスする場合、効率的にデータを収集するために、特定領域を、重複なくアクセスする可能性が高いことに着目している。なお、ステップS306において用いた、m及びnには「n<m」の条件を満たした任意の値を設定すれば良い。
【0083】
(実施形態4)
図16に本実施形態における情報処理システムを示す。上述したものについては同一番号を付し、その説明を省略する。論理ブロック「L0」411、論理ブロック「L1」412、論理ブロック「L3」421及び論理ブロック「L5」423は既にデータが記録されているものとする。論理ブロック「L0」411、論理ブロック「L1」412、論理ブロック「L3」421及び論理ブロック「L5」423にアクセスがあった場合を異常と判定する。
【0084】
図17に、アクセス判定情報テーブル530を示す。アクセス判定情報テーブル530は、ある特定の領域へのアクセス情報を記録する。アクセス判定情報テーブル530は、項番531、変数532及び説明533を有する。項番「1」の変数「IP(target)」はTargetのIPアドレスを示す。項番「2」の変数「時刻」は、領域にアクセスがあった時点のアクセス時刻を示す。ロジック実行部320は、当該時刻から所定時間経過後、異常アクセス判定を行う。項番「3」の変数「LUN」はLUNの値を示す。項番「4」の「LBA」は、アクセスした領域のLBAの開始値を示す。項番「5」の変数「LBA範囲」は、アクセスした領域の範囲となるLBAのOffsetを示す。項番「6」の変数「アクセス回数」はLBAへアクセスした回数を示す。項番「7」の変数「書込みフィールド」は、既にデータを記録している論理ブロックである論理ブロック「L0」411、論理ブロック「L1」412、論理ブロック「L3」421及び論理ブロック「L5」423にアクセスがあった場合に、ロジック実行部320は、当該論理ブロックに対応する書込み発生記録フィールドのフラグを「0」から「1」に変更する。
【0085】
図18を用いて実施形態4における監視装置300の処理を説明する。
【0086】
ステップS401において、ロジック実行部320は、現在時刻を取得する。ロジック実行部320は、処理をステップS402へ移行する。
【0087】
ステップS402において、ロジック実行部320は、ステップS401にて取得した時刻と前回ステップS402を実行した時刻との差分から所定時間が経過したか否かを判定する。所定時間が経過した場合、ロジック実行部320は、処理をステップS405へ移行する。一方、所定時間が経過していない場合、ロジック実行部320は、処理をステップS403へ移行する。
【0088】
ステップS403において、パケットキャプチャ310は、ネットワーク200を介してサーバ100とストレージ装置400との間で送受信されるパケットを取得する。ロジック実行部320は、処理をステップS404へ移行する。
【0089】
ステップS404において、ロジック実行部320は、パケットキャプチャ310が取得したパケットのInitiatorのIPアドレスやTargetのIPアドレス、LUN等に基づいて、パケットの送信元の物理サーバに対応するアクセス判定情報テーブル520のアクセス回数を更新する。その後、ロジック実行部320は、処理をステップS402へ戻す。
【0090】
ステップS405において、ロジック実行部320は、アクセス判定情報テーブル520を参照して、特定領域単位で各キーへのアクセス回数を取得する。本実施形態では、ロジック実行部320は、特定領域単位の一例として、各論理ブロックへのアクセス回数を取得する。ロジック実行部320は、処理をステップS406へ移行する。
【0091】
ステップS406において、ロジック実行部320は、キーへのアクセス回数が0よりも大きく、かつ書込みフィールドのフラグが1であるか否かを判定する。この判定を満たす場合、ロジック実行部320は、処理をステップS407へ移行する。一方、この判定を満たさない場合、ロジック実行部320は、処理をステップS408へ移行する。
【0092】
ステップS407において、ロジック実行部320は、VMからストレージ装置へのアクセスは異常と判定する。ロジック実行部320は、処理をステップS409へ移行する。
【0093】
ステップS408において、ロジック実行部320は、VMからストレージ装置へのアクセスは正常と判定する。ロジック実行部320は、処理をステップS409へ移行する。
【0094】
ステップS409において、ロジック実行部320は、全キーへのアクセス回数と書き込みフィールドのフラグを0に初期化することでクリアする。その後、ロジック実行部320は、処理をステップS401へ戻す。
【0095】
本実施形態では、悪意あるVMが、標準的なOSコマンド(ls、cp等)でディスクにアクセスし、ファイルの探索を試みる場合、既にデータが書き込みされている領域しかアクセス対象にならないことに着目している。
【0096】
以上、実施形態1〜4によれば、仮想ストレージへのアクセスする際のiSCSIパケットの通信パターンを解析し、その通信パターンに異常な挙動があるか否かを判定することで、セキュリティ的な異常を検出することができる。これにより、VMからストレージ装置への不正なアクセスを検出できる。パケットキャプチャによる外付けのモニタリング方式により、ハイパーバイザ層に依存しないセキュリティ監視が可能である。また、この外付けの汎用性により、VMWare、XENなど、複数の仮想化アーキテクチャでのICTシステムに適用可能である。さらに、仮想サーバによる仮想システムだけでなく、仮想ストレージを利用する物理的なホスティングのシステムにも適用可能である。
【0097】
以上、本発明の例示的な実施の形態の情報処理システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0098】
100 サーバ
110、120、130、140 VM
111、121、131、141 論理的ディスク
150 ハイパーバイザ
160 ディスク
180 iSCSI
200 ネットワーク
201、221 CPU
202、222 主記憶装置
203、223 システムコントローラ
204、224 バス
207、227 ネットワークコントローラ
209、229 電源
212、232 ディスクコントローラ
213、233 ハードディスク
300 監視装置
310 パケットキャプチャ
320 ロジック実行部
400 ストレージ装置
410、420、430、440 ディスク
411、412、413、421、422、423、431、432、433、441、442、443 論理ブロック
510 特定領域情報テーブル
511、521 項番
512、522 変数
513、523 説明
520、530 アクセス判定情報テーブル
540 仮想システム構成情報
610 iSCSIコマンドフォーマット
620 CDB中のフォーマット
1000、3000 アプリケーション
2000、4000 制御プログラム

【特許請求の範囲】
【請求項1】
複数の記憶領域を備えたストレージ装置と、それぞれ、前記複数の記憶領域のうちのいずれかの記憶領域がアクセス可能な記憶領域として割り当てられた複数の仮想サーバを実行するサーバ装置とを有する情報処理システムを監視する監視装置において、
前記ストレージ装置と前記サーバ装置との間で送受信されるパケットの解析結果に基づいて、前記サーバ装置から前記ストレージ装置に対してなされるアクセスのアクセス先を検出し、検出したアクセス先の記憶領域が前記複数の記憶領域間で所定の基準を超えて分散している場合に、前記サーバ装置から前記ストレージ装置に対して異常アクセスが行われていると判定する判定部、
を有することを特徴とする監視装置。
【請求項2】
前記判定部は、前記パケットの解析結果に基づき、前記サーバ装置から前記ストレージ装置に対してなされるアクセスが前記複数の記憶領域に所定順序に従って行われている場合、異常アクセスが行われていると判定することを特徴とする請求項1記載の監視装置。
【請求項3】
前記判定部は、前記パケットの解析結果に基づき、前記サーバ装置から前記ストレージ装置に対してなされるアクセスが前記複数の記憶領域の全てに一回ずつ行われている場合、異常アクセスが行われていると判定することを特徴とする請求項1記載の監視装置。
【請求項4】
前記サーバ装置がアクセスしている記憶領域には、データが格納されていることを特徴とする請求項1乃至3に記載の監視装置。
【請求項5】
複数の記憶領域を備えたストレージ装置と、それぞれ、前記複数の記憶領域のうちのいずれかの記憶領域がアクセス可能な記憶領域として割り当てられた複数の仮想サーバを実行するサーバ装置とを有する情報処理システムを監視する監視装置の制御方法において、
前記監視装置が、
前記ストレージ装置と前記サーバ装置との間で送受信されるパケットの解析結果に基づいて、前記サーバ装置から前記ストレージ装置に対してなされるアクセスのアクセス先を検出し、
検出したアクセス先の記憶領域が前記複数の記憶領域間で所定の基準を超えて分散している場合に、前記サーバ装置から前記ストレージ装置に対して異常アクセスが行われていると判定する、
ことを特徴とする制御方法。
【請求項6】
複数の記憶領域を備えたストレージ装置と、それぞれ、前記複数の記憶領域のうちのいずれかの記憶領域がアクセス可能な記憶領域として割り当てられた複数の仮想サーバを実行するサーバ装置とを有する情報処理システムを監視する監視装置の制御プログラムであって、
前記監視装置に、
前記ストレージ装置と前記サーバ装置との間で送受信されるパケットの解析結果に基づいて、前記サーバ装置から前記ストレージ装置に対してなされるアクセスのアクセス先を検出し、
検出したアクセス先の記憶領域が前記複数の記憶領域間で所定の基準を超えて分散している場合に、前記サーバ装置から前記ストレージ装置に対して異常アクセスが行われていると判定する、
処理を実行させることを特徴とする制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2013−73405(P2013−73405A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−211653(P2011−211653)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】