(57)【要約】【課題】ボット等のコンピュータウィルスによる異常検知の精度を向上することができる異常検知装置およびプログラムを提供する。【解決手段】正常プロファイル記憶部１６は、コンピュータウィルスに感染していない正常な端末で生成されたプロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報を記憶する。ログ生成モジュール１２は、監視対象の端末で生成されたプロセスの挙動を監視し、当該プロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報を生成する。ログ解析モジュール１７は、第１の識別情報と第２の識別情報を比較し、両者が一致しない場合に異常が発生したと判定する。【選択図】図１
2010182019.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータウィルスに感染していない正常な端末で生成された第１のプロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報を記憶する記憶手段と、
監視対象の端末で生成された第２のプロセスの挙動を監視し、当該第２のプロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報を生成する情報生成手段と、
前記第１の識別情報と前記第２の識別情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項２】
コンピュータウィルスに感染していない正常な端末で生成されたプロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報を記憶する記憶手段と、
監視対象の端末で生成された親プロセスの挙動と、当該親プロセスによって起動される子プロセスの挙動とを監視し、前記親プロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報と、前記子プロセスが操作を行ったファイルまたはフォルダを識別する第３の識別情報とを生成する情報生成手段と、
前記第１の識別情報と前記第２の識別情報を比較すると共に前記第１の識別情報と前記第３の識別情報を比較し、前記第１の識別情報と前記第２の識別情報が一致しない場合、前記第１の識別情報と前記第３の識別情報が一致しない場合、または前記第１の識別情報と前記第２の識別情報が一致せず前記第１の識別情報と前記第３の識別情報が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項３】
コンピュータウィルスに感染していない正常な端末で生成された第１のプロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報を含み、前記第１のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第１の手順情報を記憶する記憶手段と、
監視対象の端末で生成された第２のプロセスの挙動を監視し、当該第２のプロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報と時刻情報を含む情報を生成する第１の情報生成手段と、
前記第１の情報生成手段が生成した情報に基づいて、前記第２の識別情報を含み、前記第２のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第２の手順情報を生成する第２の情報生成手段と、
前記第１の手順情報と前記第２の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項４】
コンピュータウィルスに感染していない正常な端末で生成された第１の親プロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報と、前記第１の親プロセスによって起動される第１の子プロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報とを含み、前記第１の親プロセスと前記第１の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第１の手順情報を記憶する記憶手段と、
監視対象の端末で生成された第２の親プロセスの挙動と、当該第２の親プロセスによって起動される第２の子プロセスの挙動とを監視し、前記第２の親プロセスが操作を行ったファイルまたはフォルダを識別する第３の識別情報および時刻情報を含む情報と、前記第２の子プロセスが操作を行ったファイルまたはフォルダを識別する第４の識別情報および時刻情報を含む情報とを生成する第１の情報生成手段と、
前記第１の情報生成手段が生成した情報に基づいて、前記第３の識別情報と前記第４の識別情報を含み、前記第２の親プロセスと前記第２の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第２の手順情報を生成する第２の情報生成手段と、
前記第１の手順情報と前記第２の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、
を備えたことを特徴とする異常検知装置。
【請求項５】
前記第２のプロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする請求項１または請求項３に記載の異常検知装置。
【請求項６】
前記親プロセスと前記子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする請求項２に記載の異常検知装置。
【請求項７】
前記第２の親プロセスと前記第２の子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする請求項４に記載の異常検知装置。
【請求項８】
請求項１〜請求項７のいずれかに記載の異常検知装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボット等のコンピュータウィルスによる異常を検知する異常検知装置に関する。また、本発明は、本異常検知装置としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【０００２】
近年、ウィルスに感染したコンピュータに悪質な動作を実行させる、ボットと呼ばれるウィルスによる被害が拡大している。ボットは、外部の指令サーバに通信セッションを確立して新たなコードをダウンロードする機能や、攻撃のための指令を受ける機能、指令に従って攻撃する機能などを持つ悪意のコードで構成されている。
【０００３】
しかし、パターンマッチング型のウィルス対策ソフトで検知できないボットが増えている。そこで、ボットを検知する手法として、ボットがPC内の複数のファイルに感染するときに自身のコードを読み込む（Read）行為や証拠隠滅のためにコードを消去する（Delete）行為に着目した検知手法が提案されている（例えば非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】酒井崇裕、長谷巧、竹森敬祐、西垣正勝、“自己ファイルREAD/DELETEの検出によるボット検知の可能性に関する一検討”、マルウェア対策研究人材育成ワークショップ2008（MWS2008）、セッションM6-2、2008年10月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の手法によりボットの検知は可能であるが、一部の正常な処理を誤って検知してしまう問題がある。
【０００６】
本発明は、上述した課題に鑑みてなされたものであって、ボット等のコンピュータウィルスによる異常検知の精度を向上することができる異常検知装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するためになされたもので、コンピュータウィルスに感染していない正常な端末で生成された第１のプロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報を記憶する記憶手段と、監視対象の端末で生成された第２のプロセスの挙動を監視し、当該第２のプロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報を生成する情報生成手段と、前記第１の識別情報と前記第２の識別情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【０００８】
また、本発明は、ンピュータウィルスに感染していない正常な端末で生成されたプロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報を記憶する記憶手段と、監視対象の端末で生成された親プロセスの挙動と、当該親プロセスによって起動される子プロセスの挙動とを監視し、前記親プロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報と、前記子プロセスが操作を行ったファイルまたはフォルダを識別する第３の識別情報とを生成する情報生成手段と、前記第１の識別情報と前記第２の識別情報を比較すると共に前記第１の識別情報と前記第３の識別情報を比較し、前記第１の識別情報と前記第２の識別情報が一致しない場合、前記第１の識別情報と前記第３の識別情報が一致しない場合、または前記第１の識別情報と前記第２の識別情報が一致せず前記第１の識別情報と前記第３の識別情報が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【０００９】
また、本発明は、コンピュータウィルスに感染していない正常な端末で生成された第１のプロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報を含み、前記第１のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第１の手順情報を記憶する記憶手段と、監視対象の端末で生成された第２のプロセスの挙動を監視し、当該第２のプロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報と時刻情報を含む情報を生成する第１の情報生成手段と、前記第１の情報生成手段が生成した情報に基づいて、前記第２の識別情報を含み、前記第２のプロセスがファイルまたはフォルダに操作を行ったときの手順を示す第２の手順情報を生成する第２の情報生成手段と、前記第１の手順情報と前記第２の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【００１０】
また、本発明は、コンピュータウィルスに感染していない正常な端末で生成された第１の親プロセスが操作を行ったファイルまたはフォルダを識別する第１の識別情報と、前記第１の親プロセスによって起動される第１の子プロセスが操作を行ったファイルまたはフォルダを識別する第２の識別情報とを含み、前記第１の親プロセスと前記第１の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第１の手順情報を記憶する記憶手段と、監視対象の端末で生成された第２の親プロセスの挙動と、当該第２の親プロセスによって起動される第２の子プロセスの挙動とを監視し、前記第２の親プロセスが操作を行ったファイルまたはフォルダを識別する第３の識別情報および時刻情報を含む情報と、前記第２の子プロセスが操作を行ったファイルまたはフォルダを識別する第４の識別情報および時刻情報を含む情報とを生成する第１の情報生成手段と、前記第１の情報生成手段が生成した情報に基づいて、前記第３の識別情報と前記第４の識別情報を含み、前記第２の親プロセスと前記第２の子プロセスがファイルまたはフォルダに操作を行ったときの手順を示す第２の手順情報を生成する第２の情報生成手段と、前記第１の手順情報と前記第２の手順情報を比較し、両者が一致しない場合に異常が発生したと判定する判定手段と、を備えたことを特徴とする異常検知装置である。
【００１１】
また、本発明の異常検知装置において、前記第２のプロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする。
【００１２】
また、本発明の異常検知装置において、前記親プロセスと前記子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする。
【００１３】
また、本発明の異常検知装置において、前記第２の親プロセスと前記第２の子プロセスは、ユーザが前記監視対象の端末を操作していないときに生成されたプロセスであることを特徴とする。
【００１４】
また、本発明は、上記の異常検知装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１５】
本発明によれば、コンピュータウィルスに感染していない正常な端末で生成されたプロセスによるファイルまたはフォルダの操作とは異なる操作が検知された場合に、異常が発生したと判定されるので、正常な処理を誤って検知する可能性を減らし、異常検知の精度を向上することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態による異常検知装置の構成を示すブロック図である。
【図２】本発明の一実施形態におけるログに含まれる情報を示す参考図である。
【図３】本発明の一実施形態におけるログに含まれる情報を示す参考図である。
【図４】本発明の一実施形態における処理のイメージを示す参考図である。
【図５】本発明の一実施形態における処理のイメージを示す参考図である。
【図６】本発明の一実施形態におけるファイル操作の手順を示す参考図である。
【図７】本発明の一実施形態におけるファイル操作の手順を示す参考図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本実施形態による異常検知装置の構成を示している。本異常検知装置は、ファイルまたはフォルダの状態を変更する操作と、その操作を実行するプロセスとを関連付けることによって、異常の可能性がある操作の詳細を簡易に抽出する。これを達成するために、システムコール処理をフックして、ファイル操作（ファイルの変更・削除）に関するログを生成し、そのログを解析する仕組みが設けられている。
【００１８】
監視対象の端末で動作するOS１１のカーネル部分には、ログ生成モジュール１２が設けられている。このログ生成モジュール１２は、各種のアプリケーションプロセスであるプロセス１０ａ，１０ｂ，１０ｃが記憶装置１３ａ、入力装置１３ｂ、出力装置１３ｃなどのハードウェア１３に対してアクセスを行う際にOS１１に発行したシステムコール処理をフックしてログを生成する。
【００１９】
Linux（登録商標）には、カーネルにおいてセキュリティ機能を拡張するフレームワークであるLinux（登録商標） Security Module（LSM）が実装されている。LSMでは、ファイルやプロセスの操作が行われた際に、ユーザが定義したセキュリティ検証機構を呼び出して権限の検証やログの生成を行うための監視ポイントが設けられている。本ログ解析システムのシステムコール処理のフックは、LSMの監視ポイントにおけるセキュリティ検証機構として実装される。
【００２０】
ログ生成モジュール１２が生成したログはログ記憶部１４に格納され、記憶される。操作検出モジュール１５は、ユーザがマウスやキーボード等の入力装置１３ｂを操作したことを検出し、操作時刻を含むログ（以下、操作ログと記載する）を生成する。操作検出モジュール１５が生成した操作ログはログ記憶部１４に格納され、記憶される。
【００２１】
正常プロファイル記憶部１６は、コンピュータウィルスに感染していないことが保証されている正常な端末で取得された、ファイルまたはフォルダに対する正常な操作の情報を含む正常プロファイルを記憶する。正常プロファイルは、正常な端末のプロセスの挙動を監視した結果に基づいて生成されたものである。プロセスの挙動を監視する手法は、ログ生成モジュール１２がプロセスの挙動を監視する手法と同様である。ログ解析モジュール１７は、ログ記憶部１４に格納されたログを解析し、異常の有無を判定する。
【００２２】
次に、ログ生成モジュール１２が生成するログの詳細を説明する。LSMには、ファイル処理、プログラムの実行処理、通信処理など、およそ160の処理に関して、監視ポイントが設けられている。本実施形態において、ログ生成モジュール１２は、ファイル操作に関する監視ポイントによりログを生成する。本実施形態では、ファイルの読み書きを監視する監視ポイントである「file_permission」と、ファイルの削除を監視する監視ポイントである「inode_delete」とがログを生成する。
【００２３】
図２および図３は、ログ生成モジュール１２が生成するログに含まれる情報を示している。このログに含まれる情報はヘッダ情報と監視ポイント固有情報に大別される。ヘッダ情報は、各監視ポイントに対応するログに共通して記録される情報である。図２はヘッダ情報の内容を示している。具体的には、ログが記録された時刻２００、監視ポイントの名称２０２、処理を行ったプロセスのID２０４（pid）、ユーザID２０６（uid）、グループID２０８（gid）、親プロセスのID２１０（parent）、親プロセスの名称２１２（parent cmd）、および処理を行ったプロセスの名称２１４（cmd）が記録される。
【００２４】
監視ポイント固有情報は、フック処理に渡される引数の情報に応じて監視ポイント毎に記録される情報である。図３は、ファイルの読み書きを監視する「file_permission」によって記録される監視ポイント固有情報の内容を示している。情報３００（inode_num）は、ファイルに割り当てられた固有の識別子である。情報３０２（fowner）は、ファイルの所有者を示す固有の識別子である。情報３０４（fgrp）は、ファイルの所属するグループを示す固有の識別子である。情報３０６（mode）は、ファイルに対する読み込み・書き込みを識別するである。情報３０６の値はOSに固有の値であるが、この値を読み取ることで、操作内容（読み込み／書き込み）を把握することが可能である。情報３０８（path）は、操作対象となるファイルの名称と、ファイルが存在するフォルダの名称とを含む情報である。図３に示した例の場合、「/home/example/」がフォルダの名称であり、「path.txt」がファイルの名称である。
【００２５】
以下では、独立して識別可能なファイル操作に関する１つのヘッダ情報と１つの監視ポイント固有情報からなる情報を単位ログとする。ログ記憶部１４に格納されているログは単位ログの集合体である。
【００２６】
次に、ログ解析モジュール１７によるログの解析方法を説明する。以下では、ファイルに対する操作を異常検知の対象として説明を行うが、フォルダに対する操作を異常検知の対象とする場合も同様である。
【００２７】
ユーザがマウスやキーボード等を操作することによるファイルの操作を誤って検知する可能性がある。そこで、本実施形態では、ユーザがマウスやキーボード等を操作していない期間のファイルの操作を異常検知の対象とする。ただし、この期間のファイル操作を異常検知の対象とすることは必須ではなく、この期間以外のファイル操作も異常検知の対象としてもよい。
【００２８】
ログ解析モジュール１７は、ログ生成モジュール１２が生成したログをログ記憶部１４から読み出すと共に、操作検出モジュール１５が生成した操作ログをログ記憶部１４から読み出す。操作ログには、ユーザがマウスやキーボード等を操作した時刻が記録されており、ログ解析モジュール１７は、ユーザが操作を行った時刻を基準とする所定期間を操作期間であると認識する。ログ解析モジュール１７は、ログ生成モジュール１２が生成したログのうち、時刻（図２の時刻２００）が操作期間に含まれないログを抽出する。このようにして抽出されたログが以降の処理で使用される。以下では、上記のようにして抽出されたログを処理対象のログとする。
【００２９】
上記以降の処理として、以下では４つの処理例を説明する。
【００３０】
（第１の処理例）
まず、第１の処理例を説明する。第１の処理例では、プロセスが本来アクセスするファイル以外のファイルにプロセスがアクセスした場合に、コンピュータウィルス（特にボット）による異常が発生したと判定する。図４は、第１の処理例による処理のイメージを示している。
【００３１】
正常プロファイル記憶部１６に格納されている正常プロファイルには、正常な端末のプロセスがアクセスしたファイルを識別する情報（本実施形態ではファイル名称）が記録されている。監視対象の端末で動作しているプロセス４００，４１０，４２０，４３０のうち、プロセス４００，４１０，４２０は、正常な端末のプロセスがアクセスしたファイルと同一のファイルにアクセスしているため、異常ではない（コンピュータウィルスの可能性が低い）と判定される。しかし、プロセス４３０は、正常な端末のプロセスがアクセスしたファイルとは異なるファイルにアクセスしているため、異常である（コンピュータウィルスの可能性が高い）と判定される。なお、判定は個々のファイル毎に行ってもよいし、DLLファイル、定義ファイル、実行ファイル等のファイル種別毎に行ってもよい。
【００３２】
第１の処理例では、ログ解析モジュール１７は以下のように動作する。まず、ログ解析モジュール１７は正常プロファイル記憶部１６から正常プロファイルを読み出す。続いて、ログ解析モジュール１７は、処理対象のログに含まれる単位ログに記録されているファイル名称（図３の情報３０８）と、正常プロファイルに含まれるファイル名称とを比較する。
【００３３】
正常プロファイルには複数のファイル名称が記録されている。単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれかのファイル名称と一致した場合、ログ解析モジュール１７は、異常が発生していないと判定する。また、単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれのファイル名称とも一致しなかった場合、ログ解析モジュール１７は、異常が発生したと判定する。処理対象のログに複数の単位ログが存在する場合には、ログ解析モジュール１７は上記の処理を繰り返す。
【００３４】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。なお、単位ログに記録されているファイル名称とプロセス名称の組合せが、正常プロファイルに記録されているいずれのファイル名称とプロセス名称の組合せとも一致しなかった場合に異常が発生したと判定するようにしてもよい。
【００３５】
（第２の処理例）
次に、第２の処理例を説明する。ボットに感染した端末では、親プロセスが子プロセスを起動して、親プロセスと子プロセスが所望の処理を共同で行う場合がある。第２の処理例では、親子のプロセスによる異常の有無を判定する。図５は、第２の処理例による処理のイメージを示している。
【００３６】
第１の処理例と同様に、正常プロファイル記憶部１６に格納されている正常プロファイルには、正常な端末のプロセスがアクセスしたファイルを識別する情報（ファイル名称）が記録されている。また、監視対象の端末では、親プロセス５００と、親プロセス５００によって起動された子プロセス５１０，５２０とが動作している。
【００３７】
親プロセス５００と子プロセス５２０は、正常な端末のプロセスがアクセスしたファイルと同一のファイルにアクセスしているため、異常ではないと判定されるが、子プロセス５１０は、正常なプロセスがアクセスしたファイルとは異なるファイルにアクセスしているため、異常であると判定される。この結果、親プロセス５００、子プロセス５１０，５２０を含むグループが異常であると判定される。
【００３８】
第２の処理例では、ログ解析モジュール１７は以下のように動作する。単位ログには、ファイル操作を行ったプロセスのID（図２のID２０４）や名称（図２の名称２１４）のほか、そのプロセスを起動した親プロセスのID（図２のID２１０）や名称（図２の名称２１２）が記録されている。ログ解析モジュール１７は、これらの情報に基づいて、任意の２つの単位ログに記録されたプロセスの親子関係を把握する。
【００３９】
具体的には、ログ解析モジュール１７は、一方の単位ログに含まれるプロセスのIDまたは名称が、他方の単位ログに含まれる親プロセスのIDまたは名称と一致する場合に、両者の単位ログを関連付ける。ただし、プロセスIDは、一時点においては、その時点で動作中の各プロセスに固有な情報であるものの、異なる時点において各プロセスに固有な情報であることを保証するものではないため、上記の処理にはプロセス名称を使用することがより望ましい。
【００４０】
ログ解析モジュール１７は、上記のようにして関連付けた２つの単位ログの親子関係を示す情報（以下、親子関係情報と記載する）を生成する。例えば、親プロセスのIDまたは名称と子プロセスのIDまたは名称とを関連付けた親子関係情報を生成する。続いて、ログ解析モジュール１７は正常プロファイル記憶部１６から正常プロファイルを読み出し、処理対象のログに含まれる単位ログに記録されているファイル名称と、正常プロファイルに含まれるファイル名称とを比較する。
【００４１】
正常プロファイルには複数のファイル名称が記録されている。単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれかのファイル名称と一致した場合、ログ解析モジュール１７は、異常が発生していないと判定する。また、単位ログに記録されているファイル名称が、正常プロファイルに記録されているいずれのファイル名称とも一致しなかった場合、ログ解析モジュール１７は、異常が発生したと判定する。処理対象のログに複数の単位ログが存在する場合には、ログ解析モジュール１７は上記の処理を繰り返す。
【００４２】
ログ解析モジュール１７は、異常が発生したと判定したときに用いた単位ログから、ファイル操作を行ったプロセスのIDまたは名称を抽出し、そのIDまたは名称を含む親子関係情報に基づいて、親子のプロセスを含むグループが異常であると判定する。ログ解析モジュール１７は、異常であると判定したグループに関連する単位ログの情報を関連付けてログ記憶部１４に格納する。上記の処理では、親プロセスが正常かつ子プロセスが異常と判定される場合、親プロセスが異常かつ子プロセスが正常と判定される場合、親プロセスが異常かつ子プロセスが異常と判定される場合があるが、いずれの場合も、親子のプロセスを含むグループが異常であると判定される。
【００４３】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。特に、ボットによって親子のプロセスが共同して所望の処理を行う場合に、異常と判定したグループに関連するログの情報から、親子のプロセスの挙動を知ることができる。なお、単位ログの処理において、単位ログに記録されているファイル名称とプロセス名称の組合せが、正常プロファイルに記録されているいずれのファイル名称とプロセス名称の組合せとも一致しなかった場合に異常が発生したと判定するようにしてもよい。
【００４４】
（第３の処理例）
次に、第３の処理例を説明する。第３の処理例では、プロセスが本来ファイルにアクセスするときの手順と異なる手順でファイルにアクセスした場合に、コンピュータウィルス（特にボット）による異常が発生したと判定する。図６は、プロセスが本来ファイルにアクセスするときの手順の例を示している。
【００４５】
図６では、プロセス６００がファイル６１０，６２０，６３０，６４０にアクセスする様子が示されている。矢印は、プロセス６００による各ファイルへのアクセスを示しており、矢印の近傍に記載された文字はアクセスの種類と順番を示している。アクセスの種類には、「r」（読み込み）、「w」（書き込み）、「d」（削除）がある。また、順番は数字で表され、数字が小さいほど順番が早い。例えば、「r１」はファイルの読み込みであることと、順番が１番目であることとを示している。
【００４６】
図６に示したプロセス６００は以下のステップ１〜ステップ４の手順で各ファイルにアクセスする。
ステップ１：ファイル６１０を読み込む。
ステップ２：ファイル６２０に書き込みを行う。
ステップ３：ファイル６３０に書き込みを行う。
ステップ４：ファイル６４０を削除する。
【００４７】
正常プロファイル記憶部１６に格納されている正常プロファイルには、正常な端末のプロセスがファイルにアクセスしたときの手順を示す情報が記録されている。監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一である場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常ではないと判定される。また、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではない場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常であると判定される。
【００４８】
第３の処理例では、ログ解析モジュール１７は以下のように動作する。まず、ログ解析モジュール１７は、処理対象のログに基づいて、監視対象の端末で検知されたファイル操作の手順を示す情報を生成する。具体的には、ログ解析モジュール１７は、同一のプロセスのID（図２のID２０４）や名称（図２の名称２１４）が記録されている単位ログを抽出し、時刻（図２の時刻２００）の順に単位ログを並べる。この結果、単位ログはファイル操作の順番に並ぶことになり、各単位ログの情報が、一連の手順を構成する各ステップの情報となる。
【００４９】
続いて、ログ解析モジュール１７は正常プロファイル記憶部１６から正常プロファイルを読み出し、監視対象の端末で検知されたファイル操作の手順を示す情報と、正常プロファイルに含まれる情報とを比較する。正常プロファイルには、１または複数のステップからなる手順の情報が記録されている。ログ解析モジュール１７は、ステップ毎に情報を比較する。まず、ログ解析モジュール１７は、監視対象の端末で検知されたファイル操作の最初のステップの情報と、正常プロファイルに記録されているファイル操作の最初のステップの情報とを比較する。
【００５０】
各ステップの情報には、少なくとも、ファイル操作を行ったプロセスの名称、ファイルの名称、ファイル操作の種別（読み込み／書き込み／削除）が含まれる。これらの情報が全て一致した場合、次のステップの情報が比較される。また、これらの情報の１つでも一致しなかった場合、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではないため、ログ解析モジュール１７は、異常が発生したと判定する。各ステップに関して、上記の処理が行われる。全てのステップに関して、監視対象の端末で検知されたファイル操作の情報と、正常プロファイルに記録されているファイル操作の情報とが一致した場合、ログ解析モジュール１７は、異常が発生していないと判定する。正常プロファイルには、複数のファイル操作について、各ファイル操作の手順を示す情報が記録されており、ログ解析モジュール１７は各ファイル操作について上記の処理を繰り返す。
【００５１】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。
【００５２】
（第４の処理例）
次に、第４の処理例を説明する。第４の処理例では、親子のプロセスによる異常の有無を判定する。図７は、プロセスが本来ファイルにアクセスするときの手順の例を示している。
【００５３】
図７では、親プロセス７００と子プロセス７１０がファイル７２０，７３０，７４０にアクセスする様子が示されている。矢印の意味と、矢印の近傍に記載された文字の意味は図６と同様である。図７に示した親プロセス７００と子プロセス７１０は以下のステップ１〜ステップ５の手順で各ファイルにアクセスする。
ステップ１：親プロセス７００がファイル７２０を読み込む。
ステップ２：親プロセス７００がファイル７３０に書き込みを行う。
ステップ３：親プロセス７００がファイル７４０に書き込みを行う。
ステップ４：子プロセス７１０がファイル７３０を読み込む。
ステップ５：子プロセス７１０がファイル７２０を削除する。
【００５４】
正常プロファイル記憶部１６に格納されている正常プロファイルには、正常な端末のプロセスがファイルにアクセスしたときの、親プロセスと子プロセスによる一連の手順を示す情報が記録されている。監視対象の端末で検知された、親プロセスと子プロセスによる一連のファイル操作の手順が、正常プロファイルに記録されている手順と同一である場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常ではないと判定される。また、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではない場合、監視対象の端末で検知されたファイル操作を行ったプロセスは異常であると判定される。
【００５５】
第４の処理例では、ログ解析モジュール１７は以下のように動作する。まず、ログ解析モジュール１７は、第２の処理例と同様の処理により、親子のプロセスの関係を把握し、親プロセスのIDまたは名称と子プロセスのIDまたは名称とを関連付けた親子関係情報を生成する。
【００５６】
続いて、ログ解析モジュール１７は、処理対象のログに基づいて、監視対象の端末で検知されたファイル操作の手順を示す情報を生成する。具体的には、ログ解析モジュール１７は、同一のプロセスのID（図２のID２０４）や名称（図２の名称２１４）が記録されている単位ログを抽出する。また、ログ解析モジュール１７は、親子関係情報に基づいて、このプロセスの親プロセスまたは子プロセスのIDまたは名称と同一のIDまたは名称を含む単位ログも抽出する。これによって、親子関係にあるプロセスの単位ログが抽出される。
【００５７】
続いて、ログ解析モジュール１７は、抽出した単位ログを時刻（図２の時刻２００）の順に並べる。この結果、単位ログはファイル操作の順番に並ぶことになり、各単位ログの情報が、一連の手順を構成する各ステップの情報となる。
【００５８】
続いて、ログ解析モジュール１７は正常プロファイル記憶部１６から正常プロファイルを読み出し、監視対象の端末で検知されたファイル操作の手順を示す情報と、正常プロファイルに含まれる情報とを比較する。正常プロファイルには、１または複数のステップからなる手順の情報が記録されている。ログ解析モジュール１７は、ステップ毎に情報を比較する。まず、ログ解析モジュール１７は、監視対象の端末で検知されたファイル操作の最初のステップの情報と、正常プロファイルに記録されているファイル操作の最初のステップの情報とを比較する。
【００５９】
各ステップの情報には、少なくとも、ファイル操作を行ったプロセスの名称、ファイルの名称、ファイル操作の種別（読み込み／書き込み／削除）が含まれる。これらの情報が全て一致した場合、次のステップの情報が比較される。また、これらの情報の１つでも一致しなかった場合、監視対象の端末で検知されたファイル操作の手順が、正常プロファイルに記録されている手順と同一ではないため、ログ解析モジュール１７は、異常が発生したと判定する。各ステップに関して、上記の処理が行われる。全てのステップに関して、監視対象の端末で検知されたファイル操作の情報と、正常プロファイルに記録されているファイル操作の情報とが一致した場合、ログ解析モジュール１７は、異常が発生していないと判定する。正常プロファイルには、複数のファイル操作について、各ファイル操作の手順を示す情報が記録されており、ログ解析モジュール１７は各ファイル操作について上記の処理を繰り返す。
【００６０】
上記の処理によって、正常な処理を誤って検知する可能性を減らし、異常を検知することができる。
【００６１】
上述した第１〜第４の処理例において、処理結果を表示装置に表示してもよい。例えば、第１の処理例においては、異常と判定されたプロセスが操作を行ったファイルの情報を表示してもよい。第２の処理例においては、異常と判定されたプロセスが操作を行ったファイルの情報や、異常と判定されたプロセスを含む親子のプロセスグループの情報を表示してもよい。第３の処理例においては、異常と判定された手順を表示してもよい。第４の処理例においては、異常と判定された手順や、その手順による操作を行った親子のプロセスグループの情報を表示してもよい。
【００６２】
また、ホスト型侵入検知システムや不正プロセス検知システムで得られる情報を利用してもよい。ホスト型侵入検知システムは、監視対象の端末のファイルやディレクトリの正常な状態を保存して、定期的に整合性のチェックを行うことで、システムファイルの改ざんを検知するシステムである。不正プロセス検知システムは、マルウェアに感染した端末が、ユーザのキーボードやマウスの操作と関係なく、意図しないパケットを自動的もしくは外部からの制御によって送信する特徴に注目して、正常な端末の無操作状態の通信の特徴をプロファイル化して、これに該当しない通信を異常と判定して、不正プロセスを検知するシステムである。
【００６３】
ホスト型侵入検知システムでは、改ざんを検知したファイルの名称が得られる。第１〜第４の処理例において、異常が発生したと判定された場合に、ログ解析モジュール１７は、その異常に関するファイルの名称と、ホスト型侵入検知システムが取得したファイルの名称とを比較する。両者が一致する場合、コンピュータウィルスによる異常が発生している可能性がより高いことを知ることができる。
【００６４】
不正プロセス検知システムでは、不正なプロセスの名称が得られる。第１〜第４の処理例において、異常が発生したと判定された場合に、ログ解析モジュール１７は、その異常に関するプロセスの名称と、不正プロセス検知システムが取得したプロセスの名称とを比較する。両者が一致する場合、コンピュータウィルスによる異常が発生している可能性がより高いことを知ることができる。
【００６５】
また、第３〜第４の処理例では、閾値θを設けて、監視対象の端末で検知されたファイル操作の手順を構成するステップと、正常プロファイルに記録されているファイル操作の手順を構成するステップとがθ個以上異なる場合に異常が発生したと判定するようにしてもよい。
【００６６】
また、以下のようにして、ボットによる異常を検知してもよい。ボットは、そのプロセスが自分自身のファイル（実行ファイル）を複製（自己複製）するという特徴を有する。特に、自己複製の際には、OSに関連するファイルが格納されるシステムフォルダにファイルが複製されるという特徴がある。
【００６７】
ボットの自己複製では、ファイル操作（複製）を行ったプロセスの元となったボットのファイル（およびそのファイルが格納されたフォルダ）と、そのプロセスがファイル操作（複製）を行ったファイル（およびそのファイルが格納されたフォルダ）とが同一となる。そこで、ファイル操作を行った正規なプロセスの元となったファイル、またはそのファイルが格納されたフォルダ（以下、操作元プロセスのファイルまたはフォルダとする）と、そのプロセスがファイル操作を行ったファイル、またはそのファイルが格納されたフォルダ（以下、操作対象のファイルまたはフォルダとする）との相対関係（より具体的には相対パス）を正規プロファイルとする。
【００６８】
監視対象の端末で検出された操作元プロセスのファイルまたはフォルダを基準とする操作対象のファイルまたはフォルダの相対パスが正規プロファイル中の相対パスと異なる場合（実際には、監視対象の端末で検出された操作元プロセスのファイルまたはフォルダが操作対象のファイルまたはフォルダと同一である場合）、異常が発生したと判定される。相対パスは、操作元プロセスのファイルまたはフォルダの絶対パスと操作対象のファイルまたはフォルダの絶対パスとを演算して求めればよい。
【００６９】
さらに、ボットの自己複製ではシステムフォルダにファイルが複製されることから、監視対象の端末で上記により検出された相対パスと正規プロファイルの相対パスとが一致せず、かつ、操作対象のフォルダがシステムフォルダであった場合に異常が発生したと判定してもよい。
【００７０】
上述したように、本実施形態によれば、コンピュータウィルスに感染していない正常な端末で生成されたプロセスによるファイルまたはフォルダの操作とは異なる操作が検知された場合に、異常が発生したと判定されるので、正常な処理を誤って検知する可能性を減らし、異常検知の精度を向上することができる。
【００７１】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上記の異常検知装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【００７２】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７３】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００７４】
１１・・・OS、１２・・・ログ生成モジュール（情報生成手段、第１の情報生成手段）、１３・・・ハードウェア、１３ａ・・・記憶装置、１３ｂ・・・入力装置、１３ｃ・・・出力装置、１４・・・ログ記憶部、１５・・・操作検出モジュール、１６・・・正常プロファイル記憶部（記憶手段）、１７・・・ログ解析モジュール（第２の情報生成手段、判定手段）
【図１】
2010182019.tif 000003
【図２】
2010182019.tif 000004
【図３】
2010182019.tif 000005
【図４】
2010182019.tif 000006
【図５】
2010182019.tif 000007
【図６】
2010182019.tif 000008
【図７】
2010182019.tif 000009