(58)【調査した分野】(Int.Cl.,DB名)
前記第1の関連付けステップによって前記ファイル属性データが関連付けされたファイル名データと前記ファイル名データを前記通信ネットワークに流れさせたコマンドファイルのそれぞれのタイムスタンプに基づいて、前記ファイル名データと前記コマンドファイルとを関連付ける第2の関連付ステップを含むことを特徴とする請求項1に記載の通信監視方法。
前記第2の関連付けステップは、前記コマンドファイルの対象となった2つのファイルのそれぞれのファイルサイズに基づいて関連付けることを特徴とする請求項2に記載の通信監視方法。
前記タイムスタンプは、アクセス時刻に関するタイムスタンプ、更新時刻に関するタイムスタンプ、及び修正時刻に関するタイムスタンプの少なくとも1つを含むことを特徴とする請求項2又は3に記載の通信監視方法。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態について図面を参照して説明する。
【0014】
図1は、通信監視システムSの構成を概略的に示す図である。通信監視システムSは、
図1に示すように、端末装置100、サーバ装置200、ストレージ装置300、及び通信監視装置400を備えている。端末装置100とサーバ装置200とは、Local Area Network(LAN)150を介して接続される。サーバ装置200とストレージ装置300とはLAN350を介して接続される。尚、サーバ装置200はイニシエータとも呼ばれる。ストレージ装置300はターゲットとも呼ばれる。LAN350にはIPネットワークが含まれる。IPネットワークには、IPをベースとしたSAN(IP−SAN)が含まれる。端末装置100とサーバ装置200とが、LAN350を介して接続されていてもよい。
【0015】
端末装置100は、入力装置、表示装置、並びに入力装置及び表示装置を制御する制御装置を備えている。端末装置100は、LAN150に接続されている。端末装置100としては、例えばPersonal Computer(PC)が該当する。端末装置100を利用する利用者は、入力装置又は表示装置を通じてファイル名を指定し、サーバ装置200に対してファイルへのアクセスを要求することができる。制御装置はファイルへのアクセスが要求されると、ファイルへのアクセス要求と指定されたファイル名とをTCP/IPパケット(以下、通信パケットという。)に含めてサーバ装置200に送信する。
【0016】
サーバ装置200は、ネットワークアダプタ210、及びOS220を備えている。
ネットワークアダプタ210は、サーバ装置100をLAN150及びLAN350に接続するための機器である。ネットワークアダプタ210は、端末装置100から送信された通信パケットを受信すると、当該通信パケットを後述するTCP/IP処理部221に送信する。
【0017】
OS220は、TCP/IP処理部221、ファイルシステム222、SCSIドライバ223、iSCSIドライバ224としての機能を含んでいる。OS220としては、例えばUNIX(登録商標)やLinux(登録商標)などがある。
TCP/IP処理部221は、TCPに関するプロトコル処理、及びIPに関するプロトコル処理を行う。TCP/IP処理部221は、ネットワークアダプタ210から送信された通信パケットに対しプロトコル処理を行って、通信パケットの中身であるファイルへのアクセス要求及び指定されたファイル名を取り出し、ファイルシステム222に送信する。
【0018】
ファイルシステム222は、TCP/IP処理部221から送信されたファイルへのアクセス要求をブロックへのアクセス要求に変換する。ファイルシステム222は、ブロックへのアクセス要求と指定されたファイル名とをSCSIドライバ223に送信する。尚、ファイルシステム222には、例えばLinux系のthird extended file system(ext3)がある。
【0019】
SCSIドライバ223は、ブロックへのアクセス要求を受信すると、SCSI Readコマンドを発行する。SCSIドライバ223は、SCSI Readコマンドと指定されたファイル名とをiSCSIドライバ224に送信する。
iSCSIドライバ224は、SCSI Readコマンドと指定されたファイル名とを受信すると、SCSI Readコマンドと指定されたファイル名とを別々にカプセル化する。カプセル化されたSCSI Readコマンドは、例えばSCSIコマンドパケットとも呼ばれる。カプセル化されたファイル名は、例えばSCSIデータアウトパケットとも呼ばれる。iSCSIドライバ224は、SCSIコマンドパケット及びSCSIデータアウトパケットをTCP/IP処理部221に送信する。
【0020】
TCP/IP処理部221では、SCSIコマンドパケットを含む通信パケットとSCSIデータアウトパケットを含む通信パケットとが生成される。これらの通信パケットは、ネットワークアダプタ210及びLAN350を介してストレージ装置300に送信される。尚、SCSIコマンドパケットを含む通信パケットが先に送信されて、データ送信を促す所定の通信パケット(例えばReady To Transfer)があってからSCSIデータアウトパケットを含む通信パケットが送信される。
【0021】
ストレージ装置300は、Hard Disk Drive(HDD)310、Redundant Arrays of Inexpensive Disks(RAID)コントローラ320を備えている。
HDD310は、ファイルシステム属性データ311、ファイル名データ312、ファイル属性データ313を記憶している。ファイルシステム属性データ311、ファイル名データ312、及びファイル属性データ313は、それぞれブロック単位で記憶されている。尚、ファイルシステム属性データ311、ファイル名データ312、ファイル属性データ313については、後に詳しく説明する。
【0022】
RAIDコントローラ320は、上述した各種のプロトコルを備えている。RAIDコントローラ320は、サーバ装置200から通信パケットを受信すると、プロトコルの処理を行って通信パケットの中身であるSCSI Readコマンドと指定されたファイル名とを抽出する。そして、当該ファイル名に基づいて、そのファイル名を含むブロックをHDD310に記憶されたファイル名データ312から抽出する。RAIDコントローラ320は、抽出したブロックをカプセル化する。カプセル化されたブロックは、例えばSCSIデータインパケットとも呼ばれる。RAIDコントローラ320は、SCSIデータインパケットを含む通信パケットを生成し、サーバ装置200に送信する。
【0023】
ストレージ装置300からサーバ装置200に通信パケットが到着すると、TCP/IP処理部221、SCSIドライバ223及びiSCSIドライバ224によって各種のプロトコル処理が行われて、通信パケットの中身であるブロックが抽出される。その後ファイルシステム222は、ブロックに付与された識別番号(詳細は後述)に基づいて、同様の通信手法によりファイルシステム属性データ321を含むブロックを取得する。また、ファイルシステム222は、ファイルシステム属性データ321を含むブロックを取得すると、ブロックに付与されたアドレス(詳細は後述)に基づいてファイル属性データ323を含むブロックを取得する。
【0024】
このように、iSCSIを含むブロックアクセスを用いるプロトコルにより通信された結果、LAN350には、各種のブロックを含む通信パケット、各種のブロックを含まない通信パケット(例えば、指定されたファイル名や識別番号を含む通信パケットなど)、上述したデータ送信を促す所定の通信パケット等が別々に流れている。それ以外にもLAN350には、多種多様の通信パケットが流れている。通信監視装置400は、LAN350に流れているこれらの通信パケットを監視する。通信監視装置400は、通信パケットを取得し、これらを解析する。尚、通信監視装置400の詳細は後述する。
【0025】
続いて、上述したファイルシステム属性データ311、ファイル名データ312、及びファイル属性データ313のデータ構造について説明する。
【0026】
図2(a)は、ファイルシステム属性データ311のデータ構造の一例である。
図2(b)は、ファイル名データ312のデータ構造の一例である。
図3は、ファイル属性データ313のデータ構造の一例である。
ファイルシステム属性データ311は、
図2(a)に示すように、ブロック総数、ブロック数/グループ、ブロックサイズ、属性数/グループ、リザーブGDTブロック数、及び属性サイズをデータフォーマットとして備えている。ブロック総数は、ファイルシステム221が扱っているブロックの総数を示している。ブロック数/グループは、1ブロックグループあたりのブロック数を示している。ブロックサイズは、1つのブロックの大きさ(bytes)を示している。属性数/グループは、1ブロックグループあたりの属性数を示している。リザーブGDTブロック数は、拡張用に予約されたブロック数を示している。属性サイズは、1つの属性の大きさ(bytes)を示している。ファイルシステム属性データ311は、本実施形態では1ブロックであり、このブロックにはアドレス「8」が付与されている。ファイルシステム属性データ311は、例えばスーパーブロックとも呼ばれる。属性サイズは、例えばアイノードサイズ(Inode size)とも呼ばれる。
【0027】
ファイル名データ312は、
図2(b)に示すように、識別番号及びファイル名をデータフォーマットとして備えている。ファイル名データ312は、親ディレクトリファイルへのポインタも備えている。ファイル名は、利用者やサーバ装置によって付与されたファイルの名称である。ファイル名には、ディレクトリファイルを表すファイル名(例えば「A0001/」)、及び通常のファイルを表すファイル名(例えば「Z9999」)がある。識別番号は、ファイルシステム222がディレクトリファイルや通常のファイルを識別するために利用する一意な番号である。識別番号はファイル名毎に付与されている。ファイル名データ312は数ブロックを含み、それぞれのブロックに対しアドレスが付与されている。ファイル名がディレクトリを表すファイル名である場合には、ファイル名データ312は、自己の直下にあるファイル(通常ファイル、ディレクトリファイル)の識別番号付きリストも備えている。識別番号付きリストにより、ディレクトリファイルとそのディレクトリファイルの直下にあるディレクトリファイルとの階層構造、及びディレクトリファイルとそのディレクトリファイルの直下にある通常のファイルとの階層構造が把握できる。尚、ファイル名データ312は、例えばdirectory entry(ディレクトリエントリ)やdentry(デントリ)とも呼ばれる。識別番号は、例えばアイノード番号(inode番号)とも呼ばれる。
【0028】
ファイル属性データ313は、
図3に示すように、所有者、サイズ、アクセス時刻(access time)、更新時刻(modify time)、修正時刻(change time)、モード(ファイルモード)をデータフォーマットとして備えている。必要に応じて、ファイル属性データ323に削除時刻(delete time)が含まれていてもよい。所有者はファイルの所有者を示している。サイズはファイルのサイズ(bytes)を示している。アクセス時刻は、そのファイルが最後に参照(アクセス)された時刻を示している。更新時刻は、そのファイルが最後に更新された時刻を示している。修正時刻は、そのファイル又はそのファイルの属性が最後に修正された時刻を示している。ファイルが更新された場合には、更新時刻と修正時刻が共に変化する。尚、アクセス時刻、更新時刻及び修正時刻は、本実施形態においてそれぞれ記号によって表されているが、これらの時刻は、hh:mm:ss:msといった時刻形式で表すことができる。
【0029】
モードは、そのファイルのファイルモードを示している。モード「d」は、そのファイルがディレクトリファイルであることを示している。モード「−」は、そのファイルが通常のファイルであることを示している。ファイル属性データ323は数ブロックを含み、それぞれのブロックに対しアドレス(例えば、アドレス「270368」)が付与されている。尚、ファイル属性データ313は、識別番号順になっているが、ファイル属性データ313には、識別番号が含まれていない。このため、識別番号を含むファイル名データ312と識別番号が含まれていないファイル属性データ313とを直接的に関連付けすることができない。尚、ファイル属性データ313は、例えばアイノードとも呼ばれる。
【0030】
続いて、上述した通信監視装置400について
図4を参照して説明する。
【0031】
図4は、通信監視装置400のブロック図の一例である。
通信監視装置400は、通信パケット取得部410、iSCSI記憶部420、構成再現部430、構成記憶部440、アクセス推測部450、ログ記憶部460を含んでいる。
【0032】
通信パケット取得部410は、LAN350から通信パケットを取得(キャプチャ)する。通信パケット取得部410は、取得した通信パケットが、iSCSIにより通信された通信パケットである場合、その通信パケットの中身であるブロック、指定されたファイル名、識別番号又はアドレス(以下、ブロック等という。)をiSCSI記憶部420に保存する。尚、ブロックアクセスに関するプロトコルとしては、上述したiSCSIのほか、例えばFibre Channel over IP(FCIP)、internet Fibre Channel Protocol(iFCP)がある。通信パケット取得部410は、取得した通信パケットが、iSCSIが使用されていない通信パケットである場合、その通信パケットを破棄する。
【0033】
構成再現部430は、iSCSI記憶部420に保存されたブロックを解析して、通常のファイルまで含んだディレクトリファイルの構成を再現する。構成再現部430は、ブロック判断部431、ブロック番号算出部432、識別番号算出部433、第1の関連付部434を備えている。
【0034】
ブロック判断部431は、iSCSI記憶部420に保存されたブロック等が所定のブロックに関するものであるかを判断する。すなわち、ブロック判断部431は、システム属性ブロック、ファイル属性ブロック、及びファイル名ブロックのいずれに関するものであるかを判断する。システム属性ブロックは、ファイルシステムの属性を示すファイルシステム属性データ311が格納されたブロックである。ファイル属性ブロックは、ファイルの属性を示すファイル属性データ313が複数格納されたブロックである。ファイル名ブロックは、ファイルの名称を示すファイル名データ312が複数格納されたブロックである。システム属性ブロック、ファイル属性ブロック、及びファイル名ブロックのいずれに関するものであるかの判断は、データフォーマットに基づいて行われる。例えば、取得したブロック等の先頭から数ビットがブロック総数を示していれば、システム属性ブロックと判断される。同様に、先頭から数ビットが識別番号とファイル名を示していれば、ファイル名ブロックと判断され、所有者を示していればファイル属性ブロックと判断される。一方、取得したブロック等の先頭から数ビットがファイル名を示していれば、所定のブロックと判断されない。また、先頭から数ビットが識別番号であるもののファイル名を示していなければ、所定のブロックと判断されない。
【0035】
ブロック番号算出部432は、ブロック判断部431によってブロック等がファイル属性ブロックに関するものであると判断された場合に、システム属性ブロックに付与されたアドレスとファイル属性ブロックに付与されたアドレスとに基づいて、ファイル属性ブロックのブロック番号を算出する。ブロック番号の算出式は以下の通りである。尚、ブロック番号の算出式で使用されるintは、小数点以下を切り捨てる関数である。
(ブロック番号の算出式)
ブロック番号=int((「ファイル属性ブロックに付与されたアドレス」−「システム属性ブロックに付与されたアドレス」)×512÷「ブロックサイズ」)
ここで、上述した
図2(a)に示されたシステム属性ブロックに付与されたアドレス「8」及びブロックサイズ「4096」、
図3に示されたファイル属性ブロックに付与されたアドレス「270368」を用いて計算すると、ブロック番号「33795」となる。すなわち、ファイル属性ブロックにはブロック番号「33795」が付与されていることが分かる。
【0036】
識別番号算出部433は、ファイルシステム属性データ311とブロック番号算出部432によって算出されたブロック番号とに基づいて、ファイル属性データの各識別番号を算出する。識別番号算出部433は、まず、先頭の識別番号を算出する。先頭の識別番号の算出式は以下の通りである。尚、先頭の識別番号の算出式及び属性数/ブロックの算出式で使用されるintは、小数点以下を切り捨てる関数である。
(先頭の識別番号の算出式)
先頭の識別番号の算出式=「属性数/グループ」×int(「ブロック番号」÷「ブロック数/グループ」)+(「ブロック番号」−(「ブロック数/グループ」×int(「ブロック番号」÷「ブロック数/グループ」)+「先頭までのオフセット」−1)−1)×「属性数/ブロック」+1
(属性数/ブロックの算出式)
属性数/ブロック=int(「ブロックサイズ」÷「属性サイズ」)
【0037】
ここで、上述した「先頭までのオフセット」は、所定の計算式による計算結果によって変わる。まず、所定の計算式は以下の通りである。尚、所定の算出式で使用されるintは、小数点以下を切り捨てる関数である。
(所定の計算式)
計算結果=int(「ブロック番号」÷「ブロック数/グループ」)
計算結果が「0」、「1」並びに「3」、「5」、及び「7」の累乗の場合、以下に示す先頭までのオフセットの算出式が使用される。尚、先頭までのオフセットの算出式で使用されるintは、小数点以下を切り上げる関数である。
(先頭までのオフセットの算出式)
先頭までのオフセット=3+「リザーブGDTブロック数」+int(int(「ブロック総数」÷「ブロック数/グループ」)×32÷「ブロックサイズ」)
一方、計算結果が「0」、「1」並びに「3」、「5」、及び「7」の累乗以外の場合、数値「2」が先頭までのオフセットとなる。
【0038】
ここで、ブロック番号算出部432によって算出されたブロック番号「33795」と、上述した
図2(a)に示されたブロック数/グループ「32768」とを用いて、所定の計算式を計算すると、計算結果「1」が得られる。したがって、上述した先頭までのオフセットの算出式が使用される。
さらに、
図2(a)に示されたリザーブGDTブロック数「1015」、ブロック総数「35307520」、ブロック数/グループ「32768」、ブロックサイズ「4096」を用いて、先頭までのオフセットの算出式を計算すると、先頭までのオフセット「1026」が得られる。
【0039】
したがって、ブロックサイズ「4096」、属性サイズ「128」を用いて、属性数/ブロックの算出式を計算すると、属性数/ブロック「32」が得られる。さらに、先頭までのオフセット「1026」、ブロック番号算出部432によって算出されたブロック番号「33795」、
図2(a)に示された属性数/グループ「32768」、ブロック数/グループ「32768」、属性数/ブロック「32」を用いて、先頭の識別番号の算出式を計算すると、先頭の識別番号「32769」が得られる。
この結果、2番目の識別番号は、先頭の識別番号に「1」を加算した「32770」が得られる。以後、同様に計算されると、最後の識別番号は、先頭の識別番号「32769」に属性数/ブロック「32」を加算して得られる。すなわち、最後の識別番号「32801」が得られる。
【0040】
第1の関連付部434は、識別番号算出部433によって算出された各識別番号とファイル名データ312毎に付与された識別番号とに基づいて、ファイル属性ブロックに格納された複数のファイル属性データ313とファイル名ブロックに格納された複数のファイル名データ312とをそれぞれ関連付ける。さらに、第1の関連付部434は、ディレクトリファイルにある識別番号付きリストに基づいて、ディレクトリファイル同士、及びディレクトリファイルと通常のファイルとを関連付ける。この結果、通常のファイルまで含んだディレクトリファイルの構成が再現される。第1の関連付部434は、関連付けたファイル名データ312とファイル属性データ313とを構成データとして構成記憶部440に保存する。
【0041】
アクセス推測部450は、構成記憶部440に保存された構成データを解析し、構成データに対するアクセスの状況を推測する。アクセス推測部450は、第2の関連付部451を備えている。
第2の関連付部451は、構成データと、ファイル名データ312をLAN350に流れさせたコマンドファイルのそれぞれのタイムスタンプに基づいて、構成データとコマンドファイルとを関連付ける。また、第2の関連付部451は、コマンドファイルの対象となったファイル同士をそれぞれのファイルサイズに基づいて、関連付ける。タイムスタンプには、アクセス時刻に関するタイムスタンプ、更新時刻に関するタイムスタンプ、及び修正時刻に関するタイムスタンプの少なくとも1つが含まれる。第2の関連付部451は、関連付けた結果をログ記憶部460に保存する。
【0042】
ここで、通信監視装置400のハードウェア構成について
図5を参照して説明する。
【0043】
図5は、通信監視装置400のハードウェア構成の一例である。
通信監視装置400は、Central Processing Unit(CPU)400a、Random Access Memory(RAM)400b、Read Only Memory(ROM)400c、Hard Disc Drive(HDD)400dを含んでいる。通信監視装置400は、入力Interface(I/F)400e、出力I/F400f、入出力I/F400gも含んでいる。通信監視装置400は、ドライブ装置400h、ネットワークアダプタ400iも含んでいる。これらの各機器400a〜400iは、バス400jによって互いに接続されている。少なくともCPU400aとRAM400bとが協働することによってコンピュータが実現される。
【0044】
入力I/F400eには、入力装置510が接続される。入力装置としては、例えばキーボードやマウスなどがある。
出力I/F400fには、出力装置が接続される。出力装置としては、例えば表示装置520(例えば液晶ディスプレイ)や印刷装置530(例えばプリンタ)がある。
入出力I/F400gには、半導体メモリ540が接続される。半導体メモリ540としては、例えばUniversal Serial Bus(USB)メモリやフラッシュメモリなどがある。入出力I/F400gは、半導体メモリ540に記憶されたプログラムやデータを読み取る。
入力I/F400e、出力I/F400f、及び入出力I/F400gは、例えばUSBポートを備えている。
【0045】
ドライブ装置400hには、可搬型記録媒体550が挿入される。可搬型記録媒体550としては、例えばCompact Disc(CD)−ROM、Digital Versatile Disc(DVD)といったリムーバブルディスクがある。ドライブ装置400hは、可搬型記録媒体550に記録されたプログラムやデータを読み込む。
ネットワークアダプタ400iには、例えばネットワークケーブルの一端が接続される。ネットワークケーブルの他端は、サーバ装置200及びストレージ装置300と接続される。
【0046】
上述したRAM400bは、ROM400cやHDD400d、半導体メモリ540に記憶された通信監視プログラムを読み込む。RAM400bは、可搬型記録媒体550に記録された通信監視プログラムを読み込む。読み込まれた通信監視プログラムをCPU400aが実行することにより、各記憶部420,440,460を除く通信監視装置400の各機能410,430,431,・・・,451が実現される。また、通信監視方法の各処理ステップも通信監視装置400により実行される。通信監視プログラムは、後述するフローチャートに応じたものとすればよい。
尚、サーバ装置200及びストレージ装置300のハードウェア構成も基本的に通信監視装置400のハードウェア構成と同様である。
【0047】
次に、通信監視装置400で実行される通信監視方法について説明する。
【0048】
図6は、通信パケット取得部410で実行される処理ステップを例示するフローチャートである。
通信パケット取得部410は、まずLAN350から通信パケットを取得する(ステップS110)。通信パケット取得部410は、ここで取得した通信パケットが、iSCSIにより通信された通信パケットであるか否かを判断する(ステップS120)。当該判断は、例えば取得した通信パケットに対しTCP/IPに関するプロトコル処理を行って、iSCSIに関連するパケットが抽出されるか否かによって行われる。例えば、SCSIコマンドパケット、SCSIデータアウトパケット、SCSIデータインパケット等が抽出されれば、iSCSIが使用された通信パケットであると判断される。尚、IPアドレスやポート番号が利用されて判断されてもよい。
【0049】
通信パケット取得部410は、取得した通信パケットが、iSCSIにより通信された通信パケットであると判断した場合(S120:YES)、取得した通信パケットの中身をiSCSI記憶部420に保存する(ステップS130)。より詳しくは、取得した通信パケットに対し、TCP/IPに関するプロトコル処理が行われて抽出されたブロック等をiSCSI記憶部420に保存する。尚、通信パケット取得部410は、取得した通信パケットが、iSCSIにより通信された通信パケットでないと判断した場合(S120:NO)、ステップS130の処理を行わない。このため、iSCSI記憶部420には、iSCSIにより通信された通信パケットの中身(ブロック等)だけが記憶される。通信パケット取得部410は、終了指示があるまで、ステップS110からS130までの処理を行う(ステップS150)。
【0050】
図7は、構成再現部430で実行される処理ステップを例示するフローチャートである。
ブロック判断部431は、iSCSI記憶部420から通信パケットの中身の1つを抽出する(ステップS210)。すなわち、ブロック等の1つが抽出される。ブロック判断部431は、ここで、ブロック等がシステム属性ブロックであるか否かを判断する(ステップS220)。ブロック判断部431は、ブロック等がシステム属性ブロックであると判断した場合(ステップS220:YES)、後述のシステム属性処理が実行される(ステップS230)。
【0051】
一方、ブロック判断部431は、ブロック等がシステム属性ブロックでないと判断した場合(ステップS220:NO)、ブロック等がファイル名ブロックであるか否かを判断する(ステップS240)。ブロック判断部431は、ブロック等がファイル名ブロックであると判断した場合(ステップS240:YES)、後述のファイル名処理が実行される(ステップS250)。
【0052】
一方、ブロック判断部431は、ブロック等がファイル名ブロックでないと判断した場合(ステップS240:NO)、ブロック等がファイル属性ブロックであるか否かを判断する(ステップS260)。ブロック判断部431は、ブロック等がファイル属性ブロックであると判断した場合(ステップS260:YES)、後述のファイル属性処理が実行される(ステップS270)。ブロック判断部431は、終了指示があるまで(ステップS280)、ステップS210からS270の処理を繰り返す。尚、ブロック等のすべてに対する判断が終了した場合に、構成再現部430の動作が終わってもよい。
【0053】
次に、上述したシステム属性処理、及びファイル名処理のそれぞれについて、
図8を参照して順に説明する。
【0054】
図8(a)は、システム属性処理の処理ステップを例示するフローチャートである。
ブロック判断部431は、上述したステップS220の判断処理において、システム属性ブロックであると判断した場合、
図8(a)に示すように、抽出したシステム属性ブロックを保持する(ステップS231)。より詳しくは、システム属性ブロックに格納されたファイルシステム属性データ311を保持する。ブロック判断部431は、ファイルシステム属性データ311を保持すると、処理を終了する。ブロック判断部431によって保持されたファイルシステム属性データ311は、後述の格納ブロック番号を算出する処理、及び識別番号を算出する処理で使用される。尚、ファイルシステム属性データ311は、システム属性用の所定のテーブルに保持される。当該所定のテーブルは、RAM400bの記憶領域に形成される。
【0055】
図8(b)は、ファイル名処理の処理ステップを例示するフローチャートである。
ブロック判断部431は、上述したステップS240の判断処理において、ファイル名ブロックであると判断した場合、
図8(b)に示すように、同一の識別番号のファイル属性があるか否かを判断する(ステップS251)。ここで、詳細はステップS276で説明するが、ファイル属性ブロックに格納されたファイル属性データ313のそれぞれには、算出された識別番号が付与され、識別番号が付与されたファイル属性データ313は、ファイル属性用の所定のテーブルに保持されている。ブロック判断部431は、当該所定のテーブルに、ファイル名ブロックに格納されたファイル名データ312のそれぞれに付与された識別番号と同一の識別番号を有するファイル属性データ313があるか否かを判断する。
【0056】
ブロック判断部431が、同一の識別番号のファイル属性があると判断した場合(ステップS251:YES)、第1の関連付部434は、ファイル名データ312とファイル属性データ313を関連付ける(ステップS252)。その後、第1の関連付部434は、関連付けられたファイル名データ312及びファイル属性データ313を構成データとして構成記憶部440に保存する(ステップS253)。尚、ブロック判断部431が、同一の識別番号のファイル属性がないと判断した場合(ステップS251:NO)、第1の関連付部434は、ステップS252の関連付処理を行わずに、ファイル名ブロックに格納されたファイル名データ312をそのまま構成記憶部440に上書き保存する(ステップS253)。当該ファイル名データ312は、ファイル属性データ313に対する識別番号が算出されて関連付けられるまで構成記憶部440で待機する。
【0057】
次に、上述したファイル属性処理について、
図9及び
図10を参照して説明する。
【0058】
図9は、ファイル属性処理の処理ステップを例示するフローチャートである。
図10(a)は、ブロック番号算出を説明するための図である。
図10(b)は、識別番号算出を説明するための図である。
図10(c)は、ファイル名データ312とファイル属性データ313との関連付けを説明するための図である。
【0059】
ブロック判断部431が、上述したステップS260の判断処理において、ファイル属性ブロックであると判断した場合、
図9に示すように、ブロック番号算出部432は、格納ブロック番号を算出する(ステップS271)。すなわち、複数のファイル属性データ313が格納されたファイル属性ブロックの番号が算出される。格納ブロック番号の算出は、上述したブロック番号の算出式、システム属性用の所定のテーブルに保持されたファイルシステム属性データ311、システム属性データに付与されたアドレス、及びファイル属性ブロックに付与されたアドレスに基づいて行われる。この結果、
図10(a)に示すように、ファイル属性ブロックに対するブロック番号「33795」が得られる。
【0060】
ブロック番号算出部432が格納ブロック番号を算出すると、次いで、識別番号算出部433が、識別番号を算出する(ステップ272)。識別番号の算出は、上述した先頭の識別番号の算出式、属性数/ブロックの算出式、所定の計算式、先頭までのオフセットの算出式、格納ブロック番号、及びファイルシステム属性データ311に基づいて行われる。この結果、
図10(b)に示すように、ファイル属性ブロックに格納された複数のファイル属性データ313に対する識別番号「32769」,・・・,「32801」が得られる。
【0061】
次いで、第1の関連付部434は、算出された識別番号のファイル名があるか否かを判断する(ステップ273)。上述したように、構成記憶部440にはファイル属性データ313がまだ関連付けられていないファイル名データ312が記憶されている。ファイル名データ312には識別番号が付与されているため、算出された識別番号と同一の識別番号が付与されたファイル名データ312があるか否かを判断する。第1の関連付部434は、算出された識別番号のファイル名があると判断した場合(ステップ273:YES)、ファイル名データ312とファイル属性データ313とを関連付ける(ステップS274)。関連付けは、
図10(c)に示すように、算出された各識別番号とファイル名データ312に付与された各識別番号との対比に基づいて行われる。併せて、ディレクトリファイルと通常のファイルとの関連付けも行われる。これにより、通常のファイルまでが含まれたディレクトリファイルの構成が再現される。その後、第1の関連付部434は、関連付けられたファイル名データ312及びファイル属性データ313を構成データとして構成記憶部440に上書き保存する(ステップS275)。
【0062】
尚、第1の関連付部434は、算出された識別番号のファイル名がないと判断した場合(ステップ273:NO)、ファイル属性ブロックを保持する(ステップS276)。すなわち、ファイル属性ブロックに格納された複数のファイル属性データ313が保持される。上述したように、ファイル属性ブロックに格納されたファイル属性データ313のそれぞれには、既にステップS272の処理によって算出された識別番号が付与されている。識別番号が付与されたファイル属性データ313は、ファイル属性用の所定のテーブルに保持される。当該所定のテーブルは、RAM400bの記憶領域に形成される。そして、保持されたファイル属性データ313は、ステップS251の判断処理の際に使用される。
【0063】
図11は、構成記憶部440に記憶された構成データの一例である。
図11に示すように、構成データは、識別番号、ファイル名、アクセス時刻、更新時刻、修正時刻及びサイズをデータフォーマットとして有する。識別番号は、通常のファイルに付与された識別番号である。ファイル名は、ディレクトリファイル名と通常のファイル名とが階層構造化されたファイル名である。そして、このようなファイル名データ312の要素である識別番号とファイル名に対し、ファイル属性データ313の要素であるアクセス時刻、更新時刻、修正時刻及びサイズが関連付けられている。尚、サイズは、通常のファイルのサイズを示している。このように、本明細書開示の通信監視方法、通信監視装置、及び通信監視プログラムによれば、ファイルへのアクセス状況やディレクトリの階層構造といった、通常のファイルまで含んだディレクトリの構成を再現することができる。
【0064】
図12は、アクセス推測部450で実行される処理ステップを例示するフローチャートである。
第2の関連付部451は、構成記憶部440から1つの構成データを抽出する(ステップS310)。次いで、第2の関連付部451は、後述する第1の判断処理(ステップS320)及び第2の判断処理(ステップS330)を実行する。第2の関連付部451は、第2の判断処理が終了すると、最後の構成データであるか否かを判断する(ステップS340)。第2の関連付部451は、最後の構成データでないと判断した場合(ステップS340:NO)、引き続きステップS310からS330までの処理を繰り返す。一方、第2の関連付部451は、最後の構成データであると判断した場合(ステップS340:YES)、後述のステップS350からS380までの処理を行う。
【0065】
ここで、上述した第1の判断処理及び第2の判断処理について
図13から
図16を参照して説明する。
【0066】
図13は、第1の判断処理の処理ステップを例示するフローチャートである。
図14は、第2の判断処理の処理ステップを例示するフローチャートである。
図15(a)は、コマンドファイルの一例である。
図15(b)は、参照リストの一例である。
図15(c)は、更新リストの一例である。
図16は、ログ記憶部460に記憶されたアクセスログの一例である。
【0067】
第2の関連付部451は、
図13に示すように、まず、アクセス時刻が変化したか否かを判断する(ステップS321)。当該判断処理は、抽出した構成データのアクセス時刻とその構成データの識別番号と同じ識別番号が付与されたファイル属性データ313のアクセス時刻とを対比することによって行われる。
【0068】
例えば、
図11に示す識別番号「32801」である構成データのアクセス時刻は「**********」である。一方、
図15(a)に示すコマンドファイルのうち、更新のコマンドファイル(更新コマンド)が時刻「**********」より後の時刻「##########」に実行されると、コマンドファイルにアクセスされるため、
図15(a)に示すように、アクセス時刻が時刻「##########」になる。また、更新コマンドの実行に伴い、更新コマンドの対象となったファイルのアクセス時刻も時刻「##########」になる。例えば、更新コマンドがファイルをコピーするコピーコマンドである場合、コピー元のファイル及びコピーにより生成されたファイル(コピー先のファイル)の双方のアクセス時刻がコピーコマンドのアクセス時刻と同一の時刻になる。したがって、コピーコマンドの対象となったファイルのファイル名の1つが「A0001/Z9999」である場合、
図15(a)及び(c)に示すように、ファイル名「A0001/Z9999」のアクセス時刻がコピーコマンドのアクセス時刻「##########」になる。
【0069】
また、例えば、識別番号「47851」である構成データのアクセス時刻が時刻「**********」である場合に、
図15(a)に示すコマンドファイルのうち、参照のコマンドファイル(参照コマンド)が時刻「**********」より後の時刻「&&&&&&&&&&」に実行されると、
図15(a)に示すように、アクセス時刻が時刻「&&&&&&&&&&」になる。また、参照コマンドの実行に伴い、参照コマンドの対象となったファイルのアクセス時刻も時刻「&&&&&&&&&&」になる。したがって、参照コマンドの対象となったファイルのファイル名が「T5321/F0505」である場合、
図15(a)及び(b)に示すように、ファイル名「T5321/F0505」のアクセス時刻が参照コマンドのアクセス時刻「&&&&&&&&&&」になる。
【0070】
このように、アクセス時刻が変化したか否かを判断することによって、更新コマンド又は参照コマンドの実行に基づいてファイル属性データ313のアクセス時刻が構成データのアクセス時刻から変化したか否かを判断する。
【0071】
第2の関連付部451は、アクセス時刻が変化したと判断した場合(ステップS321:YES)、次いで、参照コマンドのアクセス時刻とのみ同じか否かを判断する(ステップS322)。第2の関連付部451は、参照コマンドのアクセス時刻とのみ同じであると判断した場合(ステップS322:YES)、参照リストに書き込む(ステップS323)。すなわち、
図15(a)に示す参照コマンドのアクセス時刻とファイル属性データ313の変化後のアクセス時刻のみが同一である場合、アクセス時刻の変化は参照コマンドによってなされたと判断できる。この場合、
図15(b)に示すように、ファイル名とアクセス時刻が参照リストに書き込まれる。
【0072】
一方、ステップS322において、第2の関連付部451は、参照コマンドのアクセス時刻とのみ同じでないと判断した場合(ステップS322:NO)、更新リストに書き込む(ステップS324)。この場合、アクセス時刻の変化は更新コマンドによってなされたと判断する。そして、
図15(c)に示すように、ファイル名とアクセス時刻とサイズとが更新リストに書き込まれる。
【0073】
第2の関連付部451は、次いで、更新時刻が同時に変化したか否かを判断する(ステップS325)。参照コマンドについてはアクセス時刻が同時に変化しても更新時刻が同時に変化することはない。このため、当該判断処理は、更新コマンドが実行された場合に行われる。また、更新コマンドであっても、更新元ファイルのファイル属性データ313については更新時刻が変化することはない。更新時刻が同時に変化するのは、更新先ファイルである。すなわち、更新コマンドがコピーコマンドである場合、新たにコピーとして生成されるファイルの更新時刻が同時に変化する。
【0074】
したがって、第2の関連付部451は、更新時刻が同時に変化したと判断した場合(ステップS325:YES)、更新リストに書き込む(ステップS326)。一方、第2の関連付部451は、更新時刻が同時に変化していないと判断した場合(ステップS325:NO)、ステップS326の処理をスキップする。この結果、
図15(c)に示すように、更新時刻が書き込まれたファイル名と更新時刻が書き込まれないファイル名とが併存する。
【0075】
第2の関連付部451は、次いで、修正時刻が同時に変化したか否かを判断する(ステップS327)。参照コマンドについては修正時刻が同時に変化することはない。このため、当該判断処理は、更新コマンドが実行された場合に行われる。また、更新コマンドであっても、更新元ファイルのファイル属性データ313については修正時刻が変化することはない。修正時刻が同時に変化するのは、更新先ファイルである。すなわち、更新コマンドがコピーコマンドである場合、新たにコピーとして生成されるファイルの修正時刻が同時に変化する。
【0076】
したがって、第2の関連付部451は、修正時刻が同時に変化したと判断した場合(ステップS327:YES)、更新リストに書き込む(ステップS328)。一方、第2の関連付部451は、修正時刻が同時に変化していないと判断した場合(ステップS327:NO)、ステップS326の処理をスキップする。この結果、
図15(c)に示すように、修正時刻が書き込まれたファイル名と修正時刻が書き込まれないファイル名も併存する。
【0077】
第2の関連付部451は、
図13に示す第1の判断処理が終了すると、次いで、
図14に示す第2の判断処理を実行する。
【0078】
第2の関連付部451は、
図14に示すように、まず、更新コマンドのアクセス時刻と書き込まれたすべての時刻を比較する(ステップS331)。すなわち、第2の関連付部451は、
図15(c)に示す更新リストに書き込まれたアクセス時刻、更新時刻及び修正時刻と更新コマンドのアクセス時刻とを比較する。
【0079】
ここで、第2の関連付部451は、アクセス時刻のみが同じであるか否かを判断する(ステップS332)。第2の関連付部451は、アクセス時刻のみが同じであると判断した場合(ステップS332:YES)、更新リストに書き込む(ステップS333)。上述したように、
図15(c)に示す更新リストには、更新時刻及び修正時刻が書き込まれていないファイル名と更新時刻及び修正時刻が書き込まれたファイル名とが併存する。アクセス時刻のみが同じである場合、更新時刻及び修正時刻が書き込まれていないファイル名のアクセス時刻と一致する。この場合、当該ファイル名は、更新元のファイルであると判断でき、
図15(c)に示すように、更新元フラグにONが書き込まれる。
【0080】
一方、第2の関連付部451は、アクセス時刻のみが同じでないと判断した場合(ステップS332:NO)、すべての時刻が同じであるか否かを判断する(ステップS334)。第2の関連付部451は、すべての時刻が同じであると判断した場合(ステップS334:YES)、更新リストに書き込む(ステップS335)。すべての時刻、すなわちアクセス時刻、更新時刻及び修正時刻が同じである場合、更新時刻及び修正時刻が書き込まれたファイル名のアクセス時刻、更新時刻及び修正時刻と一致する。この場合、当該ファイル名は、更新先のファイル名であると判断でき、
図15(c)に示すように、更新先フラグにONが書き込まれる。このように、第2の判断処理では、更新コマンドにおける更新元のファイル名と更新先のファイル名が推測される。
【0081】
ここで、
図12に戻り、残りのステップS350からS380までの処理を説明する。
【0082】
第2の関連付部451は、ステップS340において最後の構成データであると判断すると、
図12に示すように、サイズが同一であるか否かを判断する(ステップS350)。当該判断は、
図15(c)に示す更新リストに書き込まれたサイズが同一であるファイル名が存在するか否かによって行われる。例えば、コピーコマンドが実行された場合に、コピー元ファイルのファイルサイズとコピー先ファイルのファイルサイズが同一であれば、コピー先ファイルは、コピー元ファイルから生成された可能性が高い。したがって、更新元フラグ及び更新先フラグが更新リストに書き込まれた状態において、ファイルのサイズが同一であれば、更新コマンドにおける更新元のファイル名と更新先のファイル名との関連性が極めて高いと推測される。
【0083】
第2の関連付部451は、サイズが同一であると判断した場合(ステップS350:YES)、コマンドファイルと構成データとを関連付ける(ステップS360)。この結果、更新コマンド、構成データに含まれる更新元及び更新先となるそれぞれのファイル名並びに対応するそれぞれの識別番号が互いに関連付けられる。一方で、第2の関連付部451は、サイズが同一でないと判断した場合(ステップS350:NO)、ステップS360,S370の処理をスキップする。ファイルのサイズが同一でなければ、更新コマンドにおける更新元のファイル名と更新先のファイル名との関連性が低いと推測される。
【0084】
第2の関連付部451は、次いで、関連付けた結果をアクセス時刻とともにログ記憶部460に保存する(ステップS370)。さらに、第2の関連付部451は、
図15(b)に示す参照リストをアクセス時刻及びファイル名に対応する識別番号とともにログ記憶部460に保存する(ステップS380)。この結果、
図16に示すように、アクセス時刻、実行されたコマンドファイルのコマンド名、更新元又は参照元のファイル名と対応する識別番号、及び更新先ファイル名と対応する識別番号がアクセスログとしてログ記憶部460に保存される。このように、コマンドファイルとコマンドファイルの対象となったファイルを1つに関連付けることができる。
【0085】
以上説明したように、本明細書に開示の通信監視方法、通信監視装置、及び通信監視プログラムは、サーバ装置200とストレージ装置300との間の通信ネットワークを流れる通信パケットを取得して解析する。このため、サーバ装置200に解析用のプログラムを搭載しなくても、サーバ装置200の内部で実行されたコマンドファイルと実行に伴うファイルの入出力を即時に把握することができる。特に、ファイル属性の相関関係(例えば、タイムスタンプやファイルサイズ)に基づいて解析するため、特別な監視項目を設定する必要もない。
【0086】
また、解析する通信パケットは、ブロックアクセスを用いるプロトコルにより通信された通信パケットの限定されている。このため、当該プロトコル以外のプロトコルが使用された通信パケットも含めて解析する場合に比べて、解析効率が向上する。さらに、サーバ装置200に解析用のプログラムを搭載して通信パケットを監視したり、端末装置100とサーバ装置200との間の通信パケットを監視したりする場合、サーバ装置200に第三者が侵入しプログラムやサーバ装置200の内部に出力されたログを改竄すると、正確な解析を損なうおそれがある。しかしながら、本明細書に開示の通信監視方法、通信監視装置、及び通信監視プログラムによれば、サーバ装置200とストレージ装置300との間の通信ネットワークを流れる通信パケットを解析するため、このようなおそれが消失する。
【0087】
運用面においても、複数のサーバ装置200があって、それぞれのサーバ装置200が解析用のプログラムを搭載している場合に、解析用のプログラムに不具合があってサーバ装置200のそれぞれにパッチを適用すると、適用後のサーバ装置200に問題がないか検証する作業が必要となる。しかしながら、本明細書に開示の通信監視方法、通信監視装置、及び通信監視プログラムによれば、サーバ装置200とストレージ装置300との間の通信ネットワークを流れる通信パケットを解析するため、このような作業が不要となり、サーバ装置200のメンテナンスが簡便化する。また、本明細書に開示の通信監視方法、通信監視装置、及び通信監視プログラムは、サーバ装置200のリソースを利用しない。このため、サーバ装置200で稼動している業務システムへ影響を与えることもない。
【0088】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0089】
なお、以上の説明に関して更に以下の付記を開示する。
(付記1)コンピュータが、通信ネットワークから、ブロックアクセスを用いるプロトコルが使用された通信パケットを取得する取得ステップと、前記取得ステップによって取得された通信パケットが、ファイルシステムの属性を示すファイルシステム属性データが格納されたシステム属性ブロック、ファイルの属性を示すファイル属性データが複数格納されたファイル属性ブロック、及び前記ファイルの名称を示すファイル名データが複数格納されたファイル名ブロックのいずれに関するものであるかを判断する判断ステップと、前記判断ステップによって前記通信パケットがファイル属性ブロックに関するものであると判断された場合に、前記システム属性ブロックに付与された第1のアドレスと前記ファイル属性ブロックに付与された第2のアドレスとに基づいて、前記ファイル属性ブロックのブロック番号を算出する第1の算出ステップと、前記システム属性データと前記第1の算出ステップによって算出されたブロック番号とに基づいて、前記ファイル属性データの各識別番号を算出する第2の算出ステップと、前記第2の算出ステップによって算出された各識別番号と前記ファイル名データ毎に付与された識別番号とに基づいて、前記ファイル属性ブロックに格納された複数のファイル属性データと前記ファイル名ブロックに格納された複数のファイル名データとをそれぞれ関連付ける第1の関連付ステップと、を実行する通信監視方法。
(付記2)前記第1の関連付けステップによって前記ファイル属性データが関連付けされたファイル名データと前記ファイル名データを前記通信ネットワークに流れさせたコマンドファイルのそれぞれのタイムスタンプに基づいて、前記ファイル名データと前記コマンドファイルとを関連付ける第2の関連付ステップを含むことを特徴とする付記1に記載の通信監視方法。
(付記3)前記第2の関連付けステップは、前記コマンドファイルの対象となった2つのファイルのそれぞれのファイルサイズに基づいて関連付けることを特徴とする付記2に記載の通信監視方法。
(付記4)前記タイムスタンプは、アクセス時刻に関するタイムスタンプ、更新時刻に関するタイムスタンプ、及び修正時刻に関するタイムスタンプの少なくとも1つを含むことを特徴とする付記2又は3に記載の通信監視方法。
(付記5)通信ネットワークから、ブロックアクセスを用いるプロトコルにより通信された通信パケットを取得する取得手段と、前記取得手段によって取得された通信パケットが、ファイルシステムの属性を示すファイルシステム属性データが格納されたシステム属性ブロック、ファイルの属性を示すファイル属性データが複数格納されたファイル属性ブロック、及び前記ファイルの名称を示すファイル名データが複数格納されたファイル名ブロックのいずれに関するものであるかを判断する判断手段と、前記判断手段によって前記通信パケットがファイル属性ブロックに関するものであると判断された場合に、前記システム属性ブロックに付与された第1のアドレスと前記ファイル属性ブロックに付与された第2のアドレスとに基づいて、前記ファイル属性データブロックのブロック番号を算出する第1の算出手段と、前記システム属性データと前記第1の算出手段によって算出されたブロック番号とに基づいて、前記ファイル属性データの各識別番号を算出する第2の算出手段と、前記第2の算出手段によって算出された各識別番号と前記ファイル名データ毎に付与された識別番号とに基づいて、前記ファイル属性ブロックに格納された複数のファイル属性データと前記ファイル名ブロックに格納された複数のファイル名データとをそれぞれ関連付ける第1の関連付手段と、を有する通信監視装置。
(付記6)前記第1の関連付手段によって前記ファイル属性データが関連付けされたファイル名データと前記ファイル名データを前記通信ネットワークに流れさせたコマンドファイルのそれぞれのタイムスタンプに基づいて、前記ファイル名データと前記コマンドファイルとを関連付ける第2の関連付手段を含むことを特徴とする付記5に記載の通信監視装置。
(付記7)前記第2の関連付手段は、前記コマンドファイルの対象となった2つのファイルのそれぞれのファイルサイズに基づいて関連付けることを特徴とする付記6に記載の通信監視装置。
(付記8)前記タイムスタンプは、アクセス時刻に関するタイムスタンプ、更新時刻に関するタイムスタンプ、及び修正時刻に関するタイムスタンプの少なくとも1つを含むことを特徴とする付記6又は7に記載の通信監視装置。
(付記9)通信ネットワークから、ブロックアクセスを用いるプロトコルにより通信された通信パケットを取得する取得ステップと、前記取得ステップによって取得された通信パケットが、ファイルシステムの属性を示すファイルシステム属性データが格納されたシステム属性ブロック、ファイルの属性を示すファイル属性データが複数格納されたファイル属性ブロック、及び前記ファイルの名称を示すファイル名データが複数格納されたファイル名ブロックのいずれに関するものであるかを判断する判断ステップと、前記判断ステップによって前記通信パケットがファイル属性ブロックに関するものであると判断された場合に、前記システム属性ブロックに付与された第1のアドレスと前記ファイル属性ブロックに付与された第2のアドレスとに基づいて、前記ファイル属性データブロックのブロック番号を算出する第1の算出ステップと、前記システム属性データと前記第1の算出ステップによって算出されたブロック番号とに基づいて、前記ファイル属性データの各識別番号を算出する第2の算出ステップと、前記第2の算出ステップによって算出された各識別番号と前記ファイル名データ毎に付与された識別番号とに基づいて、前記ファイル属性ブロックに格納された複数のファイル属性データと前記ファイル名ブロックに格納された複数のファイル名データとをそれぞれ関連付ける第1の関連付ステップと、をコンピュータに実行させるための通信監視プログラム。
(付記10)前記第1の関連付けステップによって前記ファイル属性データが関連付けされたファイル名データと前記ファイル名データを前記通信ネットワークに流れさせたコマンドファイルのそれぞれのタイムスタンプに基づいて、前記ファイル名データと前記コマンドファイルとを関連付ける第2の関連付ステップを含むことを特徴とする付記9に記載の通信監視プログラム。
(付記11)前記第2の関連付けステップは、前記コマンドファイルの対象となった2つのファイルのそれぞれのファイルサイズに基づいて関連付けることを特徴とする付記10に記載の通信監視プログラム。
(付記12)前記タイムスタンプは、アクセス時刻に関するタイムスタンプ、更新時刻に関するタイムスタンプ、及び修正時刻に関するタイムスタンプの少なくとも1つを含むことを特徴とする付記10又は11に記載の通信監視プログラム。