説明

異常検知装置およびプログラム

【課題】ボット等のコンピュータウィルスによる異常検知の精度を向上することができる異常検知装置およびプログラムを提供する。
【解決手段】正常プロファイル記憶部16は、コンピュータウィルスに感染していない正常な端末で生成されたプロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報を記憶する。ログ生成モジュール12は、監視対象の端末で生成されたプロセスの挙動を監視し、当該プロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報を生成する。ログ解析モジュール17は、第1の識別情報と第2の識別情報を比較し、両者が一致しない場合に異常が発生したと判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ボット等のコンピュータウィルスによる異常を検知する異常検知装置に関する。また、本発明は、本異常検知装置としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【0002】
近年、ウィルスに感染したコンピュータに悪質な動作を実行させる、ボットと呼ばれるウィルスによる被害が拡大している。ボットは、外部の指令サーバに通信セッションを確立して新たなコードをダウンロードする機能や、攻撃のための指令を受ける機能、指令に従って攻撃する機能などを持つ悪意のコードで構成されている。
【0003】
しかし、パターンマッチング型のウィルス対策ソフトで検知できないボットが増えている。そこで、ボットを検知する手法として、ボットがPC内の複数のファイルに感染するときに自身のコードを読み込む(Read)行為や証拠隠滅のためにコードを消去する(Delete)行為に着目した検知手法が提案されている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】酒井崇裕、長谷巧、竹森敬祐、西垣正勝、“自己ファイルREAD/DELETEの検出によるボット検知の可能性に関する一検討”、マルウェア対策研究人材育成ワークショップ2008(MWS2008)、セッションM6-2、2008年10月
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の手法によりボットの検知は可能であるが、一部の正常な処理を誤って検知してしまう問題がある。
【0006】
本発明は、上述した課題に鑑みてなされたものであって、ボット等のコンピュータウィルスによる異常検知の精度を向上することができる異常検知装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するためになされたもので、コンピュータウィルスに感染していない正常な端末で生成された第1のプロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報を記憶する記憶手段と、監視対象の端末で生成された第2のプロセスの挙動を監視し、当該第2のプロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報を生成する情報生成手段と、前記第1の識別情報と前記第2の識別情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【0008】
また、本発明は、ンピュータウィルスに感染していない正常な端末で生成されたプロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報を記憶する記憶手段と、監視対象の端末で生成された親プロセスの挙動と、当該親プロセスによって起動される子プロセスの挙動とを監視し、前記親プロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報と、前記子プロセスが操作を行ったファイルまたはフォルダを識別する第3の識別情報とを生成する情報生成手段と、前記第1の識別情報と前記第2の識別情報を比較すると共に前記第1の識別情報と前記第3の識別情報を比較し、前記第1の識別情報と前記第2の識別情報が一致しない場合、前記第1の識別情報と前記第3の識別情報が一致しない場合、または前記第1の識別情報と前記第2の識別情報が一致せず前記第1の識別情報と前記第3の識別情報が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【0009】
また、本発明は、コンピュータウィルスに感染していない正常な端末で生成された第1のプロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報を含み、前記第1のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第1の手順情報を記憶する記憶手段と、監視対象の端末で生成された第2のプロセスの挙動を監視し、当該第2のプロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報と時刻情報を含む情報を生成する第1の情報生成手段と、前記第1の情報生成手段が生成した情報に基づいて、前記第2の識別情報を含み、前記第2のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第2の手順情報を生成する第2の情報生成手段と、前記第1の手順情報と前記第2の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【0010】
また、本発明は、コンピュータウィルスに感染していない正常な端末で生成された第1の親プロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報と、前記第1の親プロセスによって起動される第1の子プロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報とを含み、前記第1の親プロセスと前記第1の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第1の手順情報を記憶する記憶手段と、監視対象の端末で生成された第2の親プロセスの挙動と、当該第2の親プロセスによって起動される第2の子プロセスの挙動とを監視し、前記第2の親プロセスが操作を行ったファイルまたはフォルダを識別する第3の識別情報および時刻情報を含む情報と、前記第2の子プロセスが操作を行ったファイルまたはフォルダを識別する第4の識別情報および時刻情報を含む情報とを生成する第1の情報生成手段と、前記第1の情報生成手段が生成した情報に基づいて、前記第3の識別情報と前記第4の識別情報を含み、前記第2の親プロセスと前記第2の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第2の手順情報を生成する第2の情報生成手段と、前記第1の手順情報と前記第2の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【0011】
また、本発明の異常検知装置において、前記第2のプロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする。
【0012】
また、本発明の異常検知装置において、前記親プロセスと前記子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする。
【0013】
また、本発明の異常検知装置において、前記第2の親プロセスと前記第2の子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする。
【0014】
また、本発明は、上記の異常検知装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0015】
本発明によれば、コンピュータウィルスに感染していない正常な端末で生成されたプロセスによるファイルまたはフォルダの操作とは異なる操作が検知された場合に、異常が発生したと判定されるので、正常な処理を誤って検知する可能性を減らし、異常検知の精度を向上することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態による異常検知装置の構成を示すブロック図である。
【図2】本発明の一実施形態におけるログに含まれる情報を示す参考図である。
【図3】本発明の一実施形態におけるログに含まれる情報を示す参考図である。
【図4】本発明の一実施形態における処理のイメージを示す参考図である。
【図5】本発明の一実施形態における処理のイメージを示す参考図である。
【図6】本発明の一実施形態におけるファイル操作の手順を示す参考図である。
【図7】本発明の一実施形態におけるファイル操作の手順を示す参考図である。
【発明を実施するための形態】
【0017】
以下、図面を参照し、本発明の実施形態を説明する。図1は、本実施形態による異常検知装置の構成を示している。本異常検知装置は、ファイルまたはフォルダの状態を変更する操作と、その操作を実行するプロセスとを関連付けることによって、異常の可能性がある操作の詳細を簡易に抽出する。これを達成するために、システムコール処理をフックして、ファイル操作(ファイルの変更・削除)に関するログを生成し、そのログを解析する仕組みが設けられている。
【0018】
監視対象の端末で動作するOS11のカーネル部分には、ログ生成モジュール12が設けられている。このログ生成モジュール12は、各種のアプリケーションプロセスであるプロセス10a,10b,10cが記憶装置13a、入力装置13b、出力装置13cなどのハードウェア13に対してアクセスを行う際にOS11に発行したシステムコール処理をフックしてログを生成する。
【0019】
Linux(登録商標)には、カーネルにおいてセキュリティ機能を拡張するフレームワークであるLinux(登録商標) Security Module(LSM)が実装されている。LSMでは、ファイルやプロセスの操作が行われた際に、ユーザが定義したセキュリティ検証機構を呼び出して権限の検証やログの生成を行うための監視ポイントが設けられている。本ログ解析システムのシステムコール処理のフックは、LSMの監視ポイントにおけるセキュリティ検証機構として実装される。
【0020】
ログ生成モジュール12が生成したログはログ記憶部14に格納され、記憶される。操作検出モジュール15は、ユーザがマウスやキーボード等の入力装置13bを操作したことを検出し、操作時刻を含むログ(以下、操作ログと記載する)を生成する。操作検出モジュール15が生成した操作ログはログ記憶部14に格納され、記憶される。
【0021】
正常プロファイル記憶部16は、コンピュータウィルスに感染していないことが保証されている正常な端末で取得された、ファイルまたはフォルダに対する正常な操作の情報を含む正常プロファイルを記憶する。正常プロファイルは、正常な端末のプロセスの挙動を監視した結果に基づいて生成されたものである。プロセスの挙動を監視する手法は、ログ生成モジュール12がプロセスの挙動を監視する手法と同様である。ログ解析モジュール17は、ログ記憶部14に格納されたログを解析し、異常の有無を判定する。
【0022】
次に、ログ生成モジュール12が生成するログの詳細を説明する。LSMには、ファイル処理、プログラムの実行処理、通信処理など、およそ160の処理に関して、監視ポイントが設けられている。本実施形態において、ログ生成モジュール12は、ファイル操作に関する監視ポイントによりログを生成する。本実施形態では、ファイルの読み書きを監視する監視ポイントである「file_permission」と、ファイルの削除を監視する監視ポイントである「inode_delete」とがログを生成する。
【0023】
図2および図3は、ログ生成モジュール12が生成するログに含まれる情報を示している。このログに含まれる情報はヘッダ情報と監視ポイント固有情報に大別される。ヘッダ情報は、各監視ポイントに対応するログに共通して記録される情報である。図2はヘッダ情報の内容を示している。具体的には、ログが記録された時刻200、監視ポイントの名称202、処理を行ったプロセスのID204(pid)、ユーザID206(uid)、グループID208(gid)、親プロセスのID210(parent)、親プロセスの名称212(parent cmd)、および処理を行ったプロセスの名称214(cmd)が記録される。
【0024】
監視ポイント固有情報は、フック処理に渡される引数の情報に応じて監視ポイント毎に記録される情報である。図3は、ファイルの読み書きを監視する「file_permission」によって記録される監視ポイント固有情報の内容を示している。情報300(inode_num)は、ファイルに割り当てられた固有の識別子である。情報302(fowner)は、ファイルの所有者を示す固有の識別子である。情報304(fgrp)は、ファイルの所属するグループを示す固有の識別子である。情報306(mode)は、ファイルに対する読み込み・書き込みを識別するである。情報306の値はOSに固有の値であるが、この値を読み取ることで、操作内容(読み込み/書き込み)を把握することが可能である。情報308(path)は、操作対象となるファイルの名称と、ファイルが存在するフォルダの名称とを含む情報である。図3に示した例の場合、「/home/example/」がフォルダの名称であり、「path.txt」がファイルの名称である。
【0025】
以下では、独立して識別可能なファイル操作に関する1つのヘッダ情報と1つの監視ポイント固有情報からなる情報を単位ログとする。ログ記憶部14に格納されているログは単位ログの集合体である。
【0026】
次に、ログ解析モジュール17によるログの解析方法を説明する。以下では、ファイルに対する操作を異常検知の対象として説明を行うが、フォルダに対する操作を異常検知の対象とする場合も同様である。
【0027】
ユーザがマウスやキーボード等を操作することによるファイルの操作を誤って検知する可能性がある。そこで、本実施形態では、ユーザがマウスやキーボード等を操作していない期間のファイルの操作を異常検知の対象とする。ただし、この期間のファイル操作を異常検知の対象とすることは必須ではなく、この期間以外のファイル操作も異常検知の対象としてもよい。
【0028】
ログ解析モジュール17は、ログ生成モジュール12が生成したログをログ記憶部14から読み出すと共に、操作検出モジュール15が生成した操作ログをログ記憶部14から読み出す。操作ログには、ユーザがマウスやキーボード等を操作した時刻が記録されており、ログ解析モジュール17は、ユーザが操作を行った時刻を基準とする所定期間を操作期間であると認識する。ログ解析モジュール17は、ログ生成モジュール12が生成したログのうち、時刻(図2の時刻200)が操作期間に含まれないログを抽出する。このようにして抽出されたログが以降の処理で使用される。以下では、上記のようにして抽出されたログを処理対象のログとする。
【0029】
上記以降の処理として、以下では4つの処理例を説明する。
【0030】
(第1の処理例)
まず、第1の処理例を説明する。第1の処理例では、プロセスが本来アクセスするファイル以外のファイルにプロセスがアクセスした場合に、コンピュータウィルス(特にボット)による異常が発生したと判定する。図4は、第1の処理例による処理のイメージを示している。
【0031】
正常プロファイル記憶部16に格納されている正常プロファイルには、正常な端末のプロセスがアクセスしたファイルを識別する情報(本実施形態ではファイル名称)が記録されている。監視対象の端末で動作しているプロセス400,410,420,430のうち、プロセス400,410,420は、正常な端末のプロセスがアクセスしたファイルと同一のファイルにアクセスしているため、異常ではない(コンピュータウィルスの可能性が低い)と判定される。しかし、プロセス430は、正常な端末のプロセスがアクセスしたファイルとは異なるファイルにアクセスしているため、異常である(コンピュータウィルスの可能性が高い)と判定される。なお、判定は個々のファイル毎に行ってもよいし、DLLファイル、定義ファイル、実行ファイル等のファイル種別毎に行ってもよい。
【0032】
第1の処理例では、ログ解析モジュール17は以下のように動作する。まず、ログ解析モジュール17は正常プロファイル記憶部16から正常プロファイルを読み出す。続いて、ログ解析モジュール17は、処理対象のログに含まれる単位ログに記録されているファイル名称(図3の情報308)と、正常プロファイルに含まれるファイル名称とを比較する。
【0033】
正常プロファイルには複数のファイル名称が記録されている。単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれかのファイル名称と一致した場合、ログ解析モジュール17は、異常が発生していないと判定する。また、単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれのファイル名称とも一致しなかった場合、ログ解析モジュール17は、異常が発生したと判定する。処理対象のログに複数の単位ログが存在する場合には、ログ解析モジュール17は上記の処理を繰り返す。
【0034】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。なお、単位ログに記録されているファイル名称とプロセス名称の組合せが、正常プロファイルに記録されているいずれのファイル名称とプロセス名称の組合せとも一致しなかった場合に異常が発生したと判定するようにしてもよい。
【0035】
(第2の処理例)
次に、第2の処理例を説明する。ボットに感染した端末では、親プロセスが子プロセスを起動して、親プロセスと子プロセスが所望の処理を共同で行う場合がある。第2の処理例では、親子のプロセスによる異常の有無を判定する。図5は、第2の処理例による処理のイメージを示している。
【0036】
第1の処理例と同様に、正常プロファイル記憶部16に格納されている正常プロファイルには、正常な端末のプロセスがアクセスしたファイルを識別する情報(ファイル名称)が記録されている。また、監視対象の端末では、親プロセス500と、親プロセス500によって起動された子プロセス510,520とが動作している。
【0037】
親プロセス500と子プロセス520は、正常な端末のプロセスがアクセスしたファイルと同一のファイルにアクセスしているため、異常ではないと判定されるが、子プロセス510は、正常なプロセスがアクセスしたファイルとは異なるファイルにアクセスしているため、異常であると判定される。この結果、親プロセス500、子プロセス510,520を含むグループが異常であると判定される。
【0038】
第2の処理例では、ログ解析モジュール17は以下のように動作する。単位ログには、ファイル操作を行ったプロセスのID(図2のID204)や名称(図2の名称214)のほか、そのプロセスを起動した親プロセスのID(図2のID210)や名称(図2の名称212)が記録されている。ログ解析モジュール17は、これらの情報に基づいて、任意の2つの単位ログに記録されたプロセスの親子関係を把握する。
【0039】
具体的には、ログ解析モジュール17は、一方の単位ログに含まれるプロセスのIDまたは名称が、他方の単位ログに含まれる親プロセスのIDまたは名称と一致する場合に、両者の単位ログを関連付ける。ただし、プロセスIDは、一時点においては、その時点で動作中の各プロセスに固有な情報であるものの、異なる時点において各プロセスに固有な情報であることを保証するものではないため、上記の処理にはプロセス名称を使用することがより望ましい。
【0040】
ログ解析モジュール17は、上記のようにして関連付けた2つの単位ログの親子関係を示す情報(以下、親子関係情報と記載する)を生成する。例えば、親プロセスのIDまたは名称と子プロセスのIDまたは名称とを関連付けた親子関係情報を生成する。続いて、ログ解析モジュール17は正常プロファイル記憶部16から正常プロファイルを読み出し、処理対象のログに含まれる単位ログに記録されているファイル名称と、正常プロファイルに含まれるファイル名称とを比較する。
【0041】
正常プロファイルには複数のファイル名称が記録されている。単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれかのファイル名称と一致した場合、ログ解析モジュール17は、異常が発生していないと判定する。また、単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれのファイル名称とも一致しなかった場合、ログ解析モジュール17は、異常が発生したと判定する。処理対象のログに複数の単位ログが存在する場合には、ログ解析モジュール17は上記の処理を繰り返す。
【0042】
ログ解析モジュール17は、異常が発生したと判定したときに用いた単位ログから、ファイル操作を行ったプロセスのIDまたは名称を抽出し、そのIDまたは名称を含む親子関係情報に基づいて、親子のプロセスを含むグループが異常であると判定する。ログ解析モジュール17は、異常であると判定したグループに関連する単位ログの情報を関連付けてログ記憶部14に格納する。上記の処理では、親プロセスが正常かつ子プロセスが異常と判定される場合、親プロセスが異常かつ子プロセスが正常と判定される場合、親プロセスが異常かつ子プロセスが異常と判定される場合があるが、いずれの場合も、親子のプロセスを含むグループが異常であると判定される。
【0043】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。特に、ボットによって親子のプロセスが共同して所望の処理を行う場合に、異常と判定したグループに関連するログの情報から、親子のプロセスの挙動を知ることができる。なお、単位ログの処理において、単位ログに記録されているファイル名称とプロセス名称の組合せが、正常プロファイルに記録されているいずれのファイル名称とプロセス名称の組合せとも一致しなかった場合に異常が発生したと判定するようにしてもよい。
【0044】
(第3の処理例)
次に、第3の処理例を説明する。第3の処理例では、プロセスが本来ファイルにアクセスするときの手順と異なる手順でファイルにアクセスした場合に、コンピュータウィルス(特にボット)による異常が発生したと判定する。図6は、プロセスが本来ファイルにアクセスするときの手順の例を示している。
【0045】
図6では、プロセス600がファイル610,620,630,640にアクセスする様子が示されている。矢印は、プロセス600による各ファイルへのアクセスを示しており、矢印の近傍に記載された文字はアクセスの種類と順番を示している。アクセスの種類には、「r」(読み込み)、「w」(書き込み)、「d」(削除)がある。また、順番は数字で表され、数字が小さいほど順番が早い。例えば、「r1」はファイルの読み込みであることと、順番が1番目であることとを示している。
【0046】
図6に示したプロセス600は以下のステップ1〜ステップ4の手順で各ファイルにアクセスする。
ステップ1:ファイル610を読み込む。
ステップ2:ファイル620に書き込みを行う。
ステップ3:ファイル630に書き込みを行う。
ステップ4:ファイル640を削除する。
【0047】
正常プロファイル記憶部16に格納されている正常プロファイルには、正常な端末のプロセスがファイルにアクセスしたときの手順を示す情報が記録されている。監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一である場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常ではないと判定される。また、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではない場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常であると判定される。
【0048】
第3の処理例では、ログ解析モジュール17は以下のように動作する。まず、ログ解析モジュール17は、処理対象のログに基づいて、監視対象の端末で検知されたファイル操作の手順を示す情報を生成する。具体的には、ログ解析モジュール17は、同一のプロセスのID(図2のID204)や名称(図2の名称214)が記録されている単位ログを抽出し、時刻(図2の時刻200)の順に単位ログを並べる。この結果、単位ログはファイル操作の順番に並ぶことになり、各単位ログの情報が、一連の手順を構成する各ステップの情報となる。
【0049】
続いて、ログ解析モジュール17は正常プロファイル記憶部16から正常プロファイルを読み出し、監視対象の端末で検知されたファイル操作の手順を示す情報と、正常プロファイルに含まれる情報とを比較する。正常プロファイルには、1または複数のステップからなる手順の情報が記録されている。ログ解析モジュール17は、ステップ毎に情報を比較する。まず、ログ解析モジュール17は、監視対象の端末で検知されたファイル操作の最初のステップの情報と、正常プロファイルに記録されているファイル操作の最初のステップの情報とを比較する。
【0050】
各ステップの情報には、少なくとも、ファイル操作を行ったプロセスの名称、ファイルの名称、ファイル操作の種別(読み込み/書き込み/削除)が含まれる。これらの情報が全て一致した場合、次のステップの情報が比較される。また、これらの情報の1つでも一致しなかった場合、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではないため、ログ解析モジュール17は、異常が発生したと判定する。各ステップに関して、上記の処理が行われる。全てのステップに関して、監視対象の端末で検知されたファイル操作の情報と、正常プロファイルに記録されているファイル操作の情報とが一致した場合、ログ解析モジュール17は、異常が発生していないと判定する。正常プロファイルには、複数のファイル操作について、各ファイル操作の手順を示す情報が記録されており、ログ解析モジュール17は各ファイル操作について上記の処理を繰り返す。
【0051】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。
【0052】
(第4の処理例)
次に、第4の処理例を説明する。第4の処理例では、親子のプロセスによる異常の有無を判定する。図7は、プロセスが本来ファイルにアクセスするときの手順の例を示している。
【0053】
図7では、親プロセス700と子プロセス710がファイル720,730,740にアクセスする様子が示されている。矢印の意味と、矢印の近傍に記載された文字の意味は図6と同様である。図7に示した親プロセス700と子プロセス710は以下のステップ1〜ステップ5の手順で各ファイルにアクセスする。
ステップ1:親プロセス700がファイル720を読み込む。
ステップ2:親プロセス700がファイル730に書き込みを行う。
ステップ3:親プロセス700がファイル740に書き込みを行う。
ステップ4:子プロセス710がファイル730を読み込む。
ステップ5:子プロセス710がファイル720を削除する。
【0054】
正常プロファイル記憶部16に格納されている正常プロファイルには、正常な端末のプロセスがファイルにアクセスしたときの、親プロセスと子プロセスによる一連の手順を示す情報が記録されている。監視対象の端末で検知された、親プロセスと子プロセスによる一連のファイル操作の手順が、正常プロファイルに記録されている手順と同一である場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常ではないと判定される。また、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではない場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常であると判定される。
【0055】
第4の処理例では、ログ解析モジュール17は以下のように動作する。まず、ログ解析モジュール17は、第2の処理例と同様の処理により、親子のプロセスの関係を把握し、親プロセスのIDまたは名称と子プロセスのIDまたは名称とを関連付けた親子関係情報を生成する。
【0056】
続いて、ログ解析モジュール17は、処理対象のログに基づいて、監視対象の端末で検知されたファイル操作の手順を示す情報を生成する。具体的には、ログ解析モジュール17は、同一のプロセスのID(図2のID204)や名称(図2の名称214)が記録されている単位ログを抽出する。また、ログ解析モジュール17は、親子関係情報に基づいて、このプロセスの親プロセスまたは子プロセスのIDまたは名称と同一のIDまたは名称を含む単位ログも抽出する。これによって、親子関係にあるプロセスの単位ログが抽出される。
【0057】
続いて、ログ解析モジュール17は、抽出した単位ログを時刻(図2の時刻200)の順に並べる。この結果、単位ログはファイル操作の順番に並ぶことになり、各単位ログの情報が、一連の手順を構成する各ステップの情報となる。
【0058】
続いて、ログ解析モジュール17は正常プロファイル記憶部16から正常プロファイルを読み出し、監視対象の端末で検知されたファイル操作の手順を示す情報と、正常プロファイルに含まれる情報とを比較する。正常プロファイルには、1または複数のステップからなる手順の情報が記録されている。ログ解析モジュール17は、ステップ毎に情報を比較する。まず、ログ解析モジュール17は、監視対象の端末で検知されたファイル操作の最初のステップの情報と、正常プロファイルに記録されているファイル操作の最初のステップの情報とを比較する。
【0059】
各ステップの情報には、少なくとも、ファイル操作を行ったプロセスの名称、ファイルの名称、ファイル操作の種別(読み込み/書き込み/削除)が含まれる。これらの情報が全て一致した場合、次のステップの情報が比較される。また、これらの情報の1つでも一致しなかった場合、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではないため、ログ解析モジュール17は、異常が発生したと判定する。各ステップに関して、上記の処理が行われる。全てのステップに関して、監視対象の端末で検知されたファイル操作の情報と、正常プロファイルに記録されているファイル操作の情報とが一致した場合、ログ解析モジュール17は、異常が発生していないと判定する。正常プロファイルには、複数のファイル操作について、各ファイル操作の手順を示す情報が記録されており、ログ解析モジュール17は各ファイル操作について上記の処理を繰り返す。
【0060】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。
【0061】
上述した第1〜第4の処理例において、処理結果を表示装置に表示してもよい。例えば、第1の処理例においては、異常と判定されたプロセスが操作を行ったファイルの情報を表示してもよい。第2の処理例においては、異常と判定されたプロセスが操作を行ったファイルの情報や、異常と判定されたプロセスを含む親子のプロセスグループの情報を表示してもよい。第3の処理例においては、異常と判定された手順を表示してもよい。第4の処理例においては、異常と判定された手順や、その手順による操作を行った親子のプロセスグループの情報を表示してもよい。
【0062】
また、ホスト型侵入検知システムや不正プロセス検知システムで得られる情報を利用してもよい。ホスト型侵入検知システムは、監視対象の端末のファイルやディレクトリの正常な状態を保存して、定期的に整合性のチェックを行うことで、システムファイルの改ざんを検知するシステムである。不正プロセス検知システムは、マルウェアに感染した端末が、ユーザのキーボードやマウスの操作と関係なく、意図しないパケットを自動的もしくは外部からの制御によって送信する特徴に注目して、正常な端末の無操作状態の通信の特徴をプロファイル化して、これに該当しない通信を異常と判定して、不正プロセスを検知するシステムである。
【0063】
ホスト型侵入検知システムでは、改ざんを検知したファイルの名称が得られる。第1〜第4の処理例において、異常が発生したと判定された場合に、ログ解析モジュール17は、その異常に関するファイルの名称と、ホスト型侵入検知システムが取得したファイルの名称とを比較する。両者が一致する場合、コンピュータウィルスによる異常が発生している可能性がより高いことを知ることができる。
【0064】
不正プロセス検知システムでは、不正なプロセスの名称が得られる。第1〜第4の処理例において、異常が発生したと判定された場合に、ログ解析モジュール17は、その異常に関するプロセスの名称と、不正プロセス検知システムが取得したプロセスの名称とを比較する。両者が一致する場合、コンピュータウィルスによる異常が発生している可能性がより高いことを知ることができる。
【0065】
また、第3〜第4の処理例では、閾値θを設けて、監視対象の端末で検知されたファイル操作の手順を構成するステップと、正常プロファイルに記録されているファイル操作の手順を構成するステップとがθ個以上異なる場合に異常が発生したと判定するようにしてもよい。
【0066】
また、以下のようにして、ボットによる異常を検知してもよい。ボットは、そのプロセスが自分自身のファイル(実行ファイル)を複製(自己複製)するという特徴を有する。特に、自己複製の際には、OSに関連するファイルが格納されるシステムフォルダにファイルが複製されるという特徴がある。
【0067】
ボットの自己複製では、ファイル操作(複製)を行ったプロセスの元となったボットのファイル(およびそのファイルが格納されたフォルダ)と、そのプロセスがファイル操作(複製)を行ったファイル(およびそのファイルが格納されたフォルダ)とが同一となる。そこで、ファイル操作を行った正規なプロセスの元となったファイル、またはそのファイルが格納されたフォルダ(以下、操作元プロセスのファイルまたはフォルダとする)と、そのプロセスがファイル操作を行ったファイル、またはそのファイルが格納されたフォルダ(以下、操作対象のファイルまたはフォルダとする)との相対関係(より具体的には相対パス)を正規プロファイルとする。
【0068】
監視対象の端末で検出された操作元プロセスのファイルまたはフォルダを基準とする操作対象のファイルまたはフォルダの相対パスが正規プロファイル中の相対パスと異なる場合(実際には、監視対象の端末で検出された操作元プロセスのファイルまたはフォルダが操作対象のファイルまたはフォルダと同一である場合)、異常が発生したと判定される。相対パスは、操作元プロセスのファイルまたはフォルダの絶対パスと操作対象のファイルまたはフォルダの絶対パスとを演算して求めればよい。
【0069】
さらに、ボットの自己複製ではシステムフォルダにファイルが複製されることから、監視対象の端末で上記により検出された相対パスと正規プロファイルの相対パスとが一致せず、かつ、操作対象のフォルダがシステムフォルダであった場合に異常が発生したと判定してもよい。
【0070】
上述したように、本実施形態によれば、コンピュータウィルスに感染していない正常な端末で生成されたプロセスによるファイルまたはフォルダの操作とは異なる操作が検知された場合に、異常が発生したと判定されるので、正常な処理を誤って検知する可能性を減らし、異常検知の精度を向上することができる。
【0071】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上記の異常検知装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【0072】
ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0073】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0074】
11・・・OS、12・・・ログ生成モジュール(情報生成手段、第1の情報生成手段)、13・・・ハードウェア、13a・・・記憶装置、13b・・・入力装置、13c・・・出力装置、14・・・ログ記憶部、15・・・操作検出モジュール、16・・・正常プロファイル記憶部(記憶手段)、17・・・ログ解析モジュール(第2の情報生成手段、判定手段)

【特許請求の範囲】
【請求項1】
コンピュータウィルスに感染していない正常な端末で生成された第1のプロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報を記憶する記憶手段と、
監視対象の端末で生成された第2のプロセスの挙動を監視し、当該第2のプロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報を生成する情報生成手段と、
前記第1の識別情報と前記第2の識別情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項2】
コンピュータウィルスに感染していない正常な端末で生成されたプロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報を記憶する記憶手段と、
監視対象の端末で生成された親プロセスの挙動と、当該親プロセスによって起動される子プロセスの挙動とを監視し、前記親プロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報と、前記子プロセスが操作を行ったファイルまたはフォルダを識別する第3の識別情報とを生成する情報生成手段と、
前記第1の識別情報と前記第2の識別情報を比較すると共に前記第1の識別情報と前記第3の識別情報を比較し、前記第1の識別情報と前記第2の識別情報が一致しない場合、前記第1の識別情報と前記第3の識別情報が一致しない場合、または前記第1の識別情報と前記第2の識別情報が一致せず前記第1の識別情報と前記第3の識別情報が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項3】
コンピュータウィルスに感染していない正常な端末で生成された第1のプロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報を含み、前記第1のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第1の手順情報を記憶する記憶手段と、
監視対象の端末で生成された第2のプロセスの挙動を監視し、当該第2のプロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報と時刻情報を含む情報を生成する第1の情報生成手段と、
前記第1の情報生成手段が生成した情報に基づいて、前記第2の識別情報を含み、前記第2のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第2の手順情報を生成する第2の情報生成手段と、
前記第1の手順情報と前記第2の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項4】
コンピュータウィルスに感染していない正常な端末で生成された第1の親プロセスが操作を行ったファイルまたはフォルダを識別する第1の識別情報と、前記第1の親プロセスによって起動される第1の子プロセスが操作を行ったファイルまたはフォルダを識別する第2の識別情報とを含み、前記第1の親プロセスと前記第1の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第1の手順情報を記憶する記憶手段と、
監視対象の端末で生成された第2の親プロセスの挙動と、当該第2の親プロセスによって起動される第2の子プロセスの挙動とを監視し、前記第2の親プロセスが操作を行ったファイルまたはフォルダを識別する第3の識別情報および時刻情報を含む情報と、前記第2の子プロセスが操作を行ったファイルまたはフォルダを識別する第4の識別情報および時刻情報を含む情報とを生成する第1の情報生成手段と、
前記第1の情報生成手段が生成した情報に基づいて、前記第3の識別情報と前記第4の識別情報を含み、前記第2の親プロセスと前記第2の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第2の手順情報を生成する第2の情報生成手段と、
前記第1の手順情報と前記第2の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項5】
前記第2のプロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする請求項1または請求項3に記載の異常検知装置。
【請求項6】
前記親プロセスと前記子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする請求項2に記載の異常検知装置。
【請求項7】
前記第2の親プロセスと前記第2の子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする請求項4に記載の異常検知装置。
【請求項8】
請求項1〜請求項7のいずれかに記載の異常検知装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate