(57)【要約】【課題】未知の不正なプログラムに基づいて動作する不正なプロセスを検出する。【解決手段】コンピュータ上で動作しているプロセスの現在の静的属性を取得するプロセス監視部１１と、静的属性に基づいて要注意プロセスを抽出する静的属性処理部１４と、要注意プロセスの現在の動的属性を取得する動的属性取得部１７と、過去の動的属性を記憶する動的属性ＤＢ３７と、過去の動的属性と現在の動的属性とが、統計的手法を用いて弁別可能であるか否かを判定する動的属性処理部２１と、弁別が可能である場合は、当該要注意プロセスについて警報を発する表示制御部２３と、を備える。【選択図】図１
2008021274.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で動作しているプロセスの現在の静的属性を取得する手段と、
前記静的属性取得手段により取得された現在の静的属性に基づいて、不正プロセスの可能性がある要注意プロセスを抽出する静的属性判定手段と、
前記静的属性判定手段により抽出された要注意プロセスの現在の動的属性を取得する手段と、
予め取得されている、前記要注意プロセスの過去の動的属性を記憶する動的属性記憶手段と、
前記要注意プロセスに関する、前記動的属性記憶手段に記憶されている過去の動的属性と、前記動的属性取得手段により取得された現在の動的属性とが、統計的手法を用いて弁別可能であるか否かを判定する動的属性判定手段と、
前記動的属性判定手段が前記過去の動的属性と前記現在の動的属性との弁別が可能である場合は、当該要注意プロセスについて警報を発する警報手段と、を備えるプロセス監視装置。
【請求項２】
予め取得されている、前記コンピュータ上で動作しているプロセスの過去の静的属性を記憶する静的属性記憶手段をさらに備え、
前記静的属性判定手段は、前記静的属性記憶手段に記憶されている前記過去の静的属性と、前記取得手段により取得された前記現在の静的属性とを比較して、静的属性の変化を検出する変化判定手段を備え、
前記変化判定手段は、静的属性の変化が検出された場合に、当該プロセスを要注意プロセスと判定する、請求項１記載のプロセス監視装置。
【請求項３】
予め定められた、プロセスの静的属性に関する異常性判定条件を記憶した異常判定条件記憶手段をさらに備え、
前記静的属性判定手段は、前記変化判定手段で要注意プロセスと判定されたプロセスについて、前記現在の静的属性と、前記異常性判定条件記憶手段に記憶された前記異常性判定条件とを対比して異常性の有無を判定する異常判定手段をさらに備え、
前記異常判定手段は、前記異常性判定により異常性があると判定したプロセスを、不正プロセスとして、前記要注意プロセスから除外し、
前記警報手段は、前記異常判定手段で不正プロセスとされたプロセスについて警報を発する、請求項２記載のプロセス監視装置。
【請求項４】
前記動的属性取得手段により取得された、前記要注意プロセスの動的属性に基づいて、当該要注意プロセスと所定の関連性がある関連プロセスを抽出する手段をさらに備え、
前記動的属性取得手段は、前記関連プロセスの現在の動的属性を取得し、
前記動的属性判定手段は、前記関連プロセスについて判定を行う、請求項１記載のプロセス監視装置。
【請求項５】
予め定められた、プロセスの動作を制限するための動作制限条件を記憶した動作制限記憶手段と、
前記静的属性判定手段において要注意プロセスとされなかった正常プロセスが、前記動作制限条件を満たすときは、当該正常プロセスの動作を制限する動作制限手段と、さらに備える請求項１記載のプロセス監視装置。
【請求項６】
前記動作制限条件は、前記監視対象のコンピュータ上で動作することが制限されるプロセスの静的属性及び動作制限の内容を含み、
前記動作制限手段は、前記正常プロセスの現在の静的属性と前記動作制限条件とが合致する場合に、指定された内容の動作制限を行う、請求項５記載のプロセス監視装置。
【請求項７】
前記警報手段が発した警報に対して、当該警報に係る要注意プロセスの動作を停止させるか、または動作の継続を承認するか、の少なくともいずれか一方に関するユーザ入力を受け付ける受付手段をさらに備える、請求項１記載のプロセス監視装置。
【請求項８】
前記プロセスの静的属性は、プロセスに係るプログラムの起動場所、プロセスに係るプログラムの作成時に関する情報、プロセスに係るプログラムのサイズ、プロセスに係るプログラム呼び出しに関する親子リレーション（親プロセス名）、プロセスに係るプログラムのパリティ、及びプロセスに係るプログラムの公開された呼び出し関数のうちの少なくとも一つ以上を含む、請求項１記載のプロセス監視装置。
【請求項９】
前記プロセスの動的属性は、プロセスのスレッド数、プロセスのメモリの使用状態、プロセスのリダイレクタの送受信状態、プロセスのハードディスクのアクセス状態及びプロセスのＣＰＵの使用状態のうちの少なくとも一つ以上を含む、請求項１記載のプロセス監視装置。
【請求項１０】
コンピュータ上で動作しているプロセスの現在の静的属性を取得するステップと、
前記取得した現在の静的属性に基づいて、不正プロセスの可能性がある要注意プロセスを抽出するステップと、
前記抽出された要注意プロセスの現在の動的属性を取得するステップと、
前記要注意プロセスに関する過去の動的属性と、前記取得された現在の動的属性とが、統計的手法を用いて弁別可能であるか否かを判定するステップと、
前記過去の動的属性と前記現在の動的属性との弁別が可能である場合は、当該要注意プロセスについて警報を発するステップと、を備えるプロセス監視方法。
【請求項１１】
コンピュータに実行されることにより、
コンピュータ上で動作しているプロセスの現在の静的属性を取得するステップと、
前記取得した現在の静的属性に基づいて、不正プロセスの可能性がある要注意プロセスを抽出するステップと、
前記抽出された要注意プロセスの現在の動的属性を取得するステップと、
前記要注意プロセスに関する過去の動的属性と、前記取得された現在の動的属性とが、統計的手法を用いて弁別可能であるか否かを判定するステップと、
前記過去の動的属性と前記現在の動的属性との弁別が可能である場合は、当該要注意プロセスについて警報を発するステップと、を行うプロセス監視のためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウィルスソフトなどの不正なプログラムに関連する不正なプロセスを検出する技術に関し、特に未知の不正プログラムによる不正プロセスを検出する技術に関する。
【背景技術】
【０００２】
従来、コンピュータウィルスやワームなどの不正なプログラムの検出手法として、定義ファイルを用いるものが広く用いられている。そして定義ファイルを用いた手法では、既に知られているウィルスの検出には一定の効果があるが、未知のウィルスや既知のウィルスをわずかに変えた変種ウィルスの検出が困難であることが知られている。
【０００３】
また、未知のウィルス検出のための手法としては、ヒューリスティック法が知られていて、これを応用したウィルス検出手法が、例えば特許文献１に記載されている。
【特許文献１】特開２００３−１８６６８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の定義ファイルを用いたウィルス検出手法では、まったく未知のウィルスや、定義ファイルの更新を怠った場合などには、ウィルスに感染してしまうという問題がある。この結果、感染したコンピュータ内でのデータ破壊や、そのコンピュータからの情報漏洩などの甚大な被害をもたらすこともある。
【０００５】
また、ヒューリステック法は、何らかの問題が発生したときに、その発生した問題に対して重み付けを行い、それを加算することによって評価を決定する手法である。従って、この手法の場合、問題の発生する頻度によっては、急速に重みが加算されて、その評価が短絡的に決定されてしまうことになり、その結果、ローカルミニマム問題が生じる。
【０００６】
さらに、ヒューリステック法は、保存場所や所定の動作が明確に判明している既知のファイルなどに対して適用することは可能だが、どこで、どのような動作を行うかがまったく予想できない未知の不正プログラムに対しては有効ではない。
【０００７】
そこで、本発明の目的は、未知の不正なプログラムに基づいて動作する不正なプロセスを検出するための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一実施態様に従うプロセス監視装置は、コンピュータ上で動作しているプロセスの現在の静的属性を取得する手段と、前記静的属性取得手段により取得された現在の静的属性に基づいて、不正プロセスの可能性がある要注意プロセスを抽出する静的属性判定手段と、前記静的属性判定手段により抽出された要注意プロセスの現在の動的属性を取得する手段と、予め取得されている、前記要注意プロセスの過去の動的属性を記憶する動的属性記憶手段と、前記要注意プロセスに関する、前記動的属性記憶手段に記憶されている過去の動的属性と、前記動的属性取得手段により取得された現在の動的属性とが、統計的手法を用いて弁別可能であるか否かを判定する動的属性判定手段と、前記動的属性判定手段が前記過去の動的属性と前記現在の動的属性との弁別が可能である場合は、当該要注意プロセスについて警報を発する警報手段と、を備える。
【０００９】
好適な実施形態では、予め取得されている、前記コンピュータ上で動作しているプロセスの過去の静的属性を記憶する静的属性記憶手段をさらに備え、前記静的属性判定手段は、前記静的属性記憶手段に記憶されている前記過去の静的属性と、前記取得手段により取得された前記現在の静的属性とを比較して、静的属性の変化を検出する変化判定手段を備えてもよい。そして、この場合に、前記変化判定手段は、静的属性の変化が検出された場合に、当該プロセスを要注意プロセスと判定する。
【００１０】
好適な実施形態では、予め定められた、プロセスの静的属性に関する異常性判定条件を記憶した異常判定条件記憶手段をさらに備え、前記静的属性判定手段は、前記変化判定手段で要注意プロセスと判定されたプロセスについて、前記現在の静的属性と、前記異常性判定条件記憶手段に記憶された前記異常性判定条件とを対比して異常性の有無を判定する異常判定手段をさらに備えてもよい。そして、前記異常判定手段は、前記異常性判定により異常性があると判定したプロセスを、不正プロセスとして、前記要注意プロセスから除外し、前記警報手段は、前記異常判定手段で不正プロセスとされたプロセスについて警報を発するようにしてもよい。
【００１１】
好適な実施形態では、前記動的属性取得手段により取得された、前記要注意プロセスの動的属性に基づいて、当該要注意プロセスと所定の関連性がある関連プロセスを抽出する手段をさらに備えてもよい。そして、前記動的属性取得手段は、前記関連プロセスの現在の動的属性を取得し、前記動的属性判定手段は、前記関連プロセスについて判定を行うようにしてもよい。
【００１２】
好適な実施形態では、予め定められた、プロセスの動作を制限するための動作制限条件を記憶した動作制限記憶手段と、前記静的属性判定手段において要注意プロセスとされなかった正常プロセスが、前記動作制限条件を満たすときは、当該正常プロセスの動作を制限する動作制限手段と、さらに備えてもよい。
【００１３】
好適な実施形態では、前記動作制限条件は、前記監視対象のコンピュータ上で動作することが制限されるプロセスの静的属性及び動作制限の内容を含み、前記動作制限手段は、前記正常プロセスの現在の静的属性と前記動作制限条件とが合致する場合に、指定された内容の動作制限を行うようにしてもよい。
【００１４】
好適な実施形態では、前記警報手段が発した警報に対して、当該警報に係る要注意プロセスの動作を停止させるか、または動作の継続を承認するか、の少なくともいずれか一方に関するユーザ入力を受け付ける受付手段をさらに備えていてもよい。
【００１５】
好適な実施形態では、前記プロセスの静的属性は、プロセスに係るプログラムの起動場所、プロセスに係るプログラムの作成時に関する情報、プロセスに係るプログラムのサイズ、プロセスに係るプログラム呼び出しに関する親子リレーション（親プロセス名）、プロセスに係るプログラムのパリティ、及びプロセスに係るプログラムの公開された呼び出し関数のうちの少なくとも一つ以上を含むものでもよい。
【００１６】
好適な実施形態では、前記プロセスの動的属性は、プロセスのスレッド数、プロセスのメモリの使用状態、プロセスのリダイレクタの送受信状態、プロセスのハードディスクのアクセス状態及びプロセスのＣＰＵの使用状態のうちの少なくとも一つ以上を含むものでもよい。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施形態に係る不正プロセスの検出装置について、図面を参照して説明する。
【００１８】
図１は、本発明の一実施形態に係る不正プロセスの検出装置の機能構成を示す図である。
【００１９】
本実施形態に係る不正プロセスの検出装置１は、コンピュータで実行されるプログラム及びプログラムが起動するプロセスの状態を監視して、監視対象のコンピュータで動作している不正なプロセス、あるいは、不正と疑わしいプロセスを検出する。本明細書では、プロセスを、その異常性の程度に応じて以下のように分類する。すなわち、異常性が極めて高く、不正なプログラムによる影響を受けたことが明らかであるプロセスを不正プロセス、異常性がないプロセスを正常プロセス、ある程度異常性があるものの、不正プロセスとは断定できないプロセスを要注意プロセスと呼ぶ。
【００２０】
本実施形態に係る不正プロセスの検出装置１は、例えば汎用的なコンピュータシステムで、所定のコンピュータプログラムを実行することにより実現される。このとき、監視対象となっているコンピュータと同一コンピュータ上に実現してもよい。
【００２１】
本検出装置１は、プロセス監視部１１と、プロセス変化判定部１３及び異常判定部１５を含む静的属性処理部１４と、動的属性取得部１７と、動的属性処理部２１と、表示制御部２３と、プロセス起動制御部２５と、プロセス分析部２７とを備える。さらに本検出装置１は、所定の情報を蓄積する記憶手段として、プロセス履歴データベース３１と、プロセスの静的属性データベース３３と、異常判定条件データベース３５と、プロセスの動的属性データベース３７と、プログラムの動作制限条件データベース４１と、監視対象プロセス記憶部４３と、プロセス特性データベース４５とを備える。
【００２２】
プロセス監視部１１は、コンピュータ内で動作しているプログラムにより実行される処理（以下、プロセスという）を監視する。例えば、プロセス監視部１１は、コンピュータで実行されたプロセスに関する種々の情報を、各プロセスの起動時、あるいは、動作している任意のタイミングで取得する。ここでは、通常のＯＳの機能では表示されないプロセスも監視対象とすることができる。そして、現在実行中のプロセスについて、プロセス監視部１１が取得したプロセスに関する情報を、所定の表示装置やプリンタなどに出力することができる。
【００２３】
ここで、プロセス監視部１１が取得するプロセスに関する情報には、例えば、後述するプロセスの静的属性及び動的属性などが含まれる。
【００２４】
また、プロセス監視部１１は、特に監視対象プロセス記憶部４３に登録されているプロセスを重点監視対象として監視する。つまり、プロセス監視部１１は、重点監視対象のプロセスについては、その起動時のみならず、動作中も定期的に情報を収集する。一方、監視対象プロセス記憶部４３に登録されていないプロセスについては、プロセス監視部１１は、各プロセスの起動時にそのプロセスに関する情報を収集する。
【００２５】
プロセス履歴データベース３１には、プロセス監視部１１が取得したプロセスに関する情報が蓄積される。プロセス履歴データベース３１に格納された履歴情報は、プロセスヒストリーとして所定の表示装置やプリンタなどに出力することができる。
【００２６】
図２は、プロセス履歴データベース３１のデータ構造の一例を示す。すなわち、プロセス履歴データベース３１は、例えば、データ項目として、プロセス名３１１、このプロセスに係るプログラムのメーカ名３１２、プログラム（ソフトウェア）名３１３、プログラムのバージョン３１４、このプロセスを起動した親プロセス名３１５、このプロセスの起動時刻３１６，終了時刻３１７，コンピュータ上での起動場所３１８、及びプロセスサイズ３１９を含む。
【００２７】
プロセスの静的属性データベース３３は、プロセス監視部１１が取得したプロセス情報のなかの静的属性を記憶する。ここで、プロセスの静的属性とは、例えば、そのプロセスに係るプログラムに関する起動場所、作成時情報、プログラムサイズ、プログラム呼び出しに関する親子リレーション（親プロセス名）、パリティ、及び公開された呼び出し関数などを含む。
【００２８】
図３は、静的属性データベース３３のデータ構造の一例を示す。すなわち、静的属性データベース３３は、例えば、データ項目として、プロセス名３３１、このプロセスに係るプログラムのメーカ名３３２、プログラム（ソフトウェア）名３３３、バージョン３３４、このプロセスを起動した親プロセス名３３５、及びプロセスサイズ３３３６を含む。静的属性データベース３３の各項目は、後述するプロセス変化判定部１２で正常と判定されたプロセスについては、自動的に更新される。
【００２９】
静的属性処理部１４は、プロセス変化判定部１３及び異常判定部１５を含む。静的属性処理部１４は、各プロセスの現在の静的属性に基づいて、要注意プロセスを抽出する。プロセス変化判定部１３及び異常判定部１５の詳細な処理を以下に説明する。
【００３０】
プロセス変化判定部１３は、実行中のプロセスの静的属性と、過去において取得した同一プロセスの静的属性とを対比し、現在の静的属性が過去の静的属性から変化しているか否かを判定する。
【００３１】
例えば、監視しているコンピュータでプロセスが起動されると、まず、プロセス監視部１１が起動時にそのプロセスの静的属性を取得する。そして、プロセス変化判定部１３は、静的属性データベース３３に格納されている過去の静的属性と、新たに取得された現在の静的属性とを比較する。
【００３２】
この比較の結果、静的属性が変更されていれば、プロセス変化判定部１３は、そのプロセスを要注意プロセスとして、異常判定部１５に対して要注意プロセスの現在の静的属性を通知する。これは、ウィルスに感染すると、プロセスの静的属性が変化する場合もあるので、静的属性が変化したプロセスは不正プロセスである可能性が高いからである。
【００３３】
一方、静的属性が変更されていなければ、プロセス変化判定部１３は、そのプロセスを正常プロセスと判断し、プロセス監視部１１が取得した現在のプロセスの情報に基づいて、プロセス履歴データベース３１及び静的属性データベース３３を更新する。
【００３４】
ここで、プロセス変化判定部１３は、新たにインストールされたプログラムを始めて起動した時に発生したプロセス（以下、新規プロセスという）のように、静的属性データベース３３に過去の静的属性が記憶されていないプロセスについては、まず、プロセス監視部１１が取得した現在のプロセスの情報を、プロセス履歴データベース３１及び静的属性データベース３３に格納する。さらに、プロセス変化判定部１３は、要注意プロセスの場合と同様に、新規プロセスの現在の静的属性を異常判定部１５へ通知する。
【００３５】
さらに、プロセス変化判定部１３は、親プロセスが発見できないプロセスや、外部プロセスが親プロセスとなっているプロセスも要注意プロセスとして抽出する。
【００３６】
動作制限条件データベース４１には、監視対象のコンピュータでの動作制限に関する条件が記憶されている。動作制限条件データベース４１には、監視対象のコンピュータで動作が制限されるプログラム及び制限される動作の内容が予め記憶されている。
【００３７】
例えば、動作制限条件データベース４１には、監視対象のコンピュータへのインストール、または実行が完全に禁止されているプログラムの属性など、そのプログラムを特定するための情報が予め登録されている。従って、動作制限条件データベース４１には、既知のウィルスなどの不正プログラムや、管理者が許可しないプログラムの属性情報などを予め登録しておくことができる。また、動作制限条件データベース４１には、プログラムを特定する情報とともに、動作制限の内容として、動作を許可または禁止する一定の動作条件を記憶してもよい。例えば、プログラムの属性と、そのプログラムの動作条件（例えば、動作が許可または禁止される時間帯、曜日、期間など）を動作制限条件データベース４１に登録することもできる。
【００３８】
プロセス起動制御部２５は、プロセス変化判定部１３で正常プロセスと判定されたプロセスについて、そのプロセスの動作を許可するか否かを判定する。
【００３９】
例えば、プロセス起動制御部２５は、正常プロセスが、動作制限条件データベース４１に格納されている動作制限の条件を満たすか否かを判定する。そして、その条件を満たすときは、プロセス起動制御部２５が、動作制限条件データベース４１で指定されている内容の動作制限を行う。例えば、完全に動作が禁止されているプログラムに係るプロセスが起動されたときは、プロセス起動制御部２５がその起動を強制的に停止し、所定期間だけ動作が禁止されているプログラムに係るプロセスが起動されたときは、その期間内であればプロセス起動制御部２５がその起動を強制的に停止する。
【００４０】
異常判定条件データベース３５には、プロセスの静的属性の異常性を判定するための条件が予め記憶されている。この異常性判定条件は、プロセスが明らかに異常であると判定されるような条件である。
【００４１】
例えば、異常判定条件データベース３５には、プロセスの起動場所、プロセスの呼出関数、及びプロセスの呼出リレーション（親プロセス）などについて、それぞれ不正プロセスと判定される所定の条件が記憶されている。この所定の条件とは、例えば、プロセスの起動場所として通常ではあり得ない場所、プロセスの呼出関数として通常ではあり得ない関数、プロセスの呼出リレーション（親プロセス）として通常ではあり得ない呼出リレーションなどである。また、異常判定条件データベース３５には、プロセスサイズ、パリティ、作成時情報、あるいは親子リレーションなどについて、過去の履歴に基づいて、各プロセス別に不正プロセスとみなせる条件を異常判定条件として記憶しておいてもよい。なお、この不正プロセスとみなせる条件は、所定の範囲を示すもの（例えば、プロセスサイズ○○以上など）であってもよい。
【００４２】
異常判定部１５は、プロセス変化判定部１３から通知を受けた要注意プロセスの静的属性を異常判定条件データベース３５に格納されている異常判定条件と比較して、そのプロセスが不正プロセスであるか否かを判定する。つまり、要注意プロセスの静的属性が異常判定条件に合致する場合は、異常判定部１５は、その要注意プロセスを不正プロセスと判定し、表示制御部２３へ通知する。
【００４３】
ここで、異常判定条件は、明らかに不正プロセスであると断定できるような条件を設定しているので、これに合致する不正プロセスは要注意プロセスから除外される。従って、明らかな不正プロセスが除外された要注意プロセスが、以下に説明する動的属性を用いた検証の対象となる。
【００４４】
動的属性取得部１７及び動的属性処理部２１による動的属性を用いた検証は、静的属性を用いた判定により明らかに正常、または明らかに異常と判定されたプロセスを除く要注意プロセスについて行う。動的属性取得部１７及び動的属性処理部２１の詳細な処理を以下に説明する。ここで、動的属性とは、例えば、プロセスのスレッド数、プロセスによるメモリの使用状態、プロセスによるリダイレクタの送受信状態、プロセスによるハードディスクのアクセス状態及びプロセスによるＣＰＵの使用状態などの各プロセスに関して動的に変化する属性を言う。
【００４５】
動的属性取得部１７は、要注意プロセスの動的属性及びシステム全体の動的情報などを取得する。すなわち、動的属性取得部１７は、着目している要注意プロセスの起動時、あるいは着目している要注意プロセスが動作している任意のタイミングで、そのプロセスの動的属性および、システム全体の動的情報を取得する。ここで取得した要注意プロセスの動的属性及びシステム全体の動的情報は、動的属性データベース３７に格納する。
【００４６】
動的属性データベース３７は、動的属性取得部１７が取得した動的情報の実データを保存する動的属性テーブル３７１と、後述する統計処理による解析後の特徴となる相関指数などを保存する解析テーブルとを有する。
【００４７】
図４は、動的属性テーブル３７１のデータ構造の一例を示す。すなわち、動的属性テーブル３７１は、例えば、データ項目として、プロセス名３７１１，プロセスのスレッド数３７１２、親子リレーション上の起動時間３７１３、親子リレーション上のプロセスの動的専用メモリの割り当てバイト数３７１４、親子リレーション上のプロセスの動的共有メモリの割り当てバイト数３７１５、親子リレーション上のプロセスの仮想アドレスのバイト数３７１６、リダイレクタの送信トラフィック率（バイト数／秒）３７１７、リダイレクタの受信トラフィック率（バイト数／秒）３７１８、ハードディスクのアクセス率３７１９、ＣＰＵ負荷率３７２０及びこれらのデータの取得日時３７２１を有する。
【００４８】
なお、要注意プロセスが新規プロセスの場合、それ以前には動的属性取得部１７にその新規プロセスの動的属性は格納されていない。従って、新規プロセスが起動されたときに、動的属性データベース３７に始めて動的属性が格納される。ここで、少なくとも新規プロセスのときは、このプロセスは正常な状態で動作しているものと考えられるので、以下の処理では、新規プロセス起動時に取得した動的属性を正常状態の動的属性として扱う。
【００４９】
動的属性処理部２１は、動的属性データベース３７に格納されている動的属性に基づいて、要注意プロセスについて解析を行う。例えば、動的属性処理部２１は、現在及び過去の動的属性を、回帰分析、相関分析、非線形解析、ホワイトノイズ検定など統計的な手法を用いて、要注意プロセスの異常性について分析する。
【００５０】
ここで、要注意プロセスが新規プロセスの場合、過去の動的属性との対比ができないので、現在の動的属性が、不正プロセスとみなされる所定の判定条件に合致するか否かにより判定する。この判定条件は、例えば、動的属性の各項目の値が通常ではあり得ないような値以上というようなものである。
【００５１】
動的属性処理部２１は、要注意プロセスが不正プロセスである可能性が高い、つまり要注意プロセスの異常性が高いと判定したときは、そのプロセスの識別情報を表示制御部２３へ通知する。一方、ここで異常性がそれほど高くはないと判定されたときもまた、表示制御部２３へ通知し、監視対象とするか否かをユーザに判定させる。
【００５２】
なお、後述するように、ユーザが継続して監視する対象のプロセスとして指定したときは、プロセス名などが監視対象プロセス記憶部４３に登録される。
【００５３】
また、動的属性処理部２１は、監視対象となるプロセスの範囲を広げるようにしてもよい。つまり、新規プロセスまたは要注意プロセスと所定の関連性を有する関連プロセスを抽出し、これを監視対象プロセスとして監視対象プロセス記憶部４３に追加登録してもよい。これは、コードインジェクションタイプのウィルスのように、コードの一部が書き換えられたプロセスの場合、そのプロセスそのものは目立った不正な動きをしないが、そのコードの一部が書き換えられたプロセスから起動される子プロセス（あるいは見かけ上は親子関係がない隠された子プロセス）が不正な動きを行う場合があるので、そのような子プロセス等も監視対象とするためである。
【００５４】
ここで、所定の関連性を持つプロセスとは、例えば、明確な親子リレーションがあるプロセスの他、明確な親子リレーションがない場合であっても、監視対象プロセスが動作するときに常に起動されるものなど、監視対象プロセスと何らかの関連を持って動作するプロセスを言う。
【００５５】
動的属性処理部２１は、さらに、新規プロセス以外の要注意プロセスについて、過去の動的属性において、統計上の論理的な相関関係があるか否かを分析したり、ある時期からの明らかな特性変化の有無を判定したりすることにより、要注意プロセスの異常性の高さを判定する。
【００５６】
例えば、動的属性処理部２１が動的属性データベース３７を参照し、要注意プロセスの動的専用メモリバイト数３７１４、動的共有メモリバイト数３７１５、リダイレクタの送信、受信トラフィック率３７１７，３７１８、及びハードディスクアクセス率３７１９などについて、新規プロセスのときに取得したデータから直近までのデータを取得する。そして、動的属性処理部２１は、取得した各データを解析し、ある項目のデータがある時点で急激に増加したりするような特性変化があるか否かを判定する。何らかの特性変化があれば、そのプロセスは不正なプロセスである可能性が高い。
【００５７】
例えば、ある時点からリダイレクタの送信トラフィック数３７１７が著しく増加しているようなときは、そのプロセスはその時点より以前に、何らかの不正なプログラムによる影響を受けたものであり、その異常性は高いと考えられる。
【００５８】
あるいは、要注意プロセスがワープロソフトのプロセスであった場合、通常であれば、ネットワークの送信をあらわすリダイレクタの送信トラフィック率３７１７と相関関係が生じることはあり得ない。なぜならば、ワープロソフトには通常通信機能がないからである。それにもかかわらず、例えば回帰分析を行うことで、ワープロソフトのプロセスがリダイレクタの送信トラフック率３７１７と明らかな相関関係あることがわかれば、このワープロソフトのプロセスは不正なプロセスである可能性が高い。
【００５９】
また、動的属性処理部２１は、以下のような処理を行うようにしてもよい。すなわち、動的属性データベース３７には、要注意プロセスについて、正常時に取得した動的属性と、要注意プロセスとして監視対象となった後に取得された動的属性とが記憶されている。そこで、動的属性処理部２１は、正常時動的属性と監視対象となった後の動的属性とを統計的な手法を用いて解析する。そして、動的属性処理部２１は、正常時と監視対象となった後の動的属性が所定の有意水準以上の相違を示すなど、両動的属性が弁別可能であるか否かを判定する。
【００６０】
正常時と監視対象となった後の動的属性の弁別が可能であれば、監視対象となった後のプロセスは、正常時とは異なる特徴を有するのであり、異常性が高いと考えることができる。
【００６１】
ここで、正常時の動的属性と監視対象となった後の動的属性とを統計処理する場合の一例を、図５を用いて説明する。
【００６２】
まず、同図に示すように、動的属性データベース３７には、正常時の動的属性データとしてデータ群１と、監視対象となった後に取得した動的属性データとしてデータ群２〜ｎとが記憶されている。各データ群のサンプル数は５００とする。ここでは、動的属性のデータ項目は、リダイレクタの送信トラフィック率３７１７を用いて解析をする。
【００６３】
動的属性処理部２１は、これらのデータを用いて回帰分析を行う。その結果が、例えば、同図に示すようになったとする。すなわち、データ群１の個別のデータ（ｘ１ｎ，ｙ１ｎ）をｙ１ｎ＝α１＋β１ｘ１ｎ＋ε１ｎで示したときに、誤差１ｎεが正規分布に従えば、データ群１は回帰直線１（ｙ＝α１＋β１ｘ）に回帰する。また、データ群２〜ｎについては、同様にして回帰直線２（ｙ＝α２＋β２ｘ）に回帰する。ここで、回帰直線１，２の切片α及び傾きβは、それぞれ異なる（α１≠α２，β１≠β２）。
【００６４】
これよりわかることは、まず、データ群２〜ｎは同じ直線に回帰されるので、同一の傾向を示すものであり、共通のカテゴリに分類されるものである。一方で、データ群１は、データ群２〜ｎとは異なる直線に回帰するので、データ群２〜ｎが示す傾向とは異なる傾向を示すものであり、データ群２〜ｎが分類されるカテゴリには属さないと理解することができる。従って、データ群１とデータ群２〜ｎとは、弁別可能である。
【００６５】
本実施形態によれば、静的属性などでは正常な状態と明確に弁別できないような異常性を有するプロセスであっても、そのプロセスが動作しているときの状態を示す動的属性を収集し、これを統計的手法を用いて分析することにより、弁別することが可能となる。
【００６６】
表示制御部２３は、異常判定部１５及び動的属性処理部２１などで不正プロセスとみなされたプロセス、あるいは要注意プロセスとして検出されたプロセスについて、警報を出力し、ユーザに報知する。これにより、ユーザは、不正プロセスあるいは不正プロセスとまでは断定できない警戒すべき要注意プロセスを知ることができる。
【００６７】
例えば、表示制御部２３は、例えば図６に示すような不正プロセス及び要注意プロセスを含む、異常と思われるプロセスの一覧画面１００を表示し、ユーザからの指示を受け付ける。
【００６８】
このプロセス一覧１００は、同図に示すように、不正プロセス及び要注意プロセスに関する情報１１０を表示し、対策の受付領域１２０で対策の入力を受け付ける。また、この画面を表示するときに、表示制御部２３は、ユーザに対して推奨する対策１３０を併せて提示してもよい。例えば、システム領域のソフトウェアに影響を与えるプロセスについては、そのプロセスの「停止」を推奨し、異なったソフトウェアに変化してしまっているプロセスは、再インストールを推奨するようにしてもよい。
【００６９】
ここで、ユーザによって、対策として「許可」が選択されると、そのプロセスは継続的に動作することが許可される。また、対策として「継続監視」が選択されると、そのプロセスは監視対象プロセス記憶部４３に登録され、重点監視対象プロセスとなる。さらに、対策として「停止」が選択されると、そのプロセスは、プロセス起動制御部２５により強制的に停止させられる。
【００７０】
なお、プロセス一覧１００において、不正プロセス及び要注意プロセスの異常性の度合いに応じて色を変えるなど、異なる表示態様で表示してもよい。
【００７１】
また、表示制御部２３は、図７に示すような動作制限の登録を受け付けるための受付画面２００を表示させる。受付画面２００は、同図に示すように、動作制限に係るプログラムに関する情報の入力領域２１０と、動作制限の内容の入力領域２２０とを備える。受付画面２００で入力された情報は、動作制限条件データベース４１に格納される。
【００７２】
また、表示制御部２３は、不正プロセスまたは要注意プロセスについて、プロセス分析部２７に分析を依頼してもよい。このとき、表示制御部２３は、分析結果に応じてユーザに対する警報の態様を変えてもよい。
【００７３】
プロセス分析部２７は、プロセス特性データベース４５に予め記憶されている、その依頼を受けたプロセスの特性を取得し、その特性を勘案してそのプロセスの異常性の高さを判定する。例えば、プロセス分析部２７は、依頼を受けたプロセスが、本来システム起動時にしか動作しない特性のプロセスであるにもかかわらず、１時間おきに動作しているような場合には、タイマーによって意図的に動かされていると考えられるので、異常性が高いと判定する。
【００７４】
この場合には、表示制御部２３は、そのプロセスの異常性が高いことを知らせるために、プロセス一覧１００において、他のプロセスとは異なる表示態様で表示するようにしてもよい。
【００７５】
この他、表示制御部２３は、プロセス履歴データベース３１に格納されている情報に基づいて、プロセスの動作状態（ソナーチャート、プロセスヒストリー）、あるいはプロセスの親子関係（プロセスツリー）を表示させたり、プロセス監視部１１が取得した現在のプロセスの状況をリアルタイムで表示させたり（プロセスモニタ）することができる。
【００７６】
例えば、図８は、プロセスの動作状態を時系列に表示したソナーチャート３００の一例を示す。
【００７７】
同図に示すソナーチャート３００は、円周方向に時間軸、半径方向にプロセスの動作領域を示し、それぞれの点が一つのプロセスの起動を示す。プロセスの動作領域は、中心に近い領域から順に、システムソフトウェア領域３１０、標準プログラム領域３２０、その他ハードディスク領域３３０、及び外部・ネットワーク領域３４０である。
【００７８】
このソナーチャート３００により、プロセスの起動のタイミングが共通化しているプロセスを容易に発見できる。
【００７９】
例えば、図９は、ソナーチャート３００で親子関係にあるプロセスを表示したプロセスツリー４００の一例を示す。
【００８０】
プロセスツリー４００は、選択されたプロセスについて、そのプロセスと親子関係にあるプロセスのみを表示する。これにより、親子関係が隠されているまたは発見できないプロセスは、単独の点として表示される。
【００８１】
以上で説明したような構成を備える不正プロセス監視装置における処理手順の一例を、図１０のフローチャートを用いて説明する。
【００８２】
まず、監視対象のコンピュータにおいて、プロセスが新たに起動されたとき、あるいは、監視対象プロセス記憶部４３に登録されているプロセスが動作しているときに、プロセス監視部１１は、それらのプロセスに関する動的属性及び静的属性などを取得する（Ｓ１１）。
【００８３】
次に、プロセス変化判定部１３が、ここで取得されたプロセスの静的属性と、静的属性データベース３３に格納されている静的属性とを比較し、監視しているプロセスの静的属性に変化があったか否かを判定する（Ｓ１２）。
【００８４】
ここで、静的属性に変化がないときは（Ｓ１２：変化なし）、プロセス起動制御部２５が、そのプロセスについて、現時点で停止させるべき動作制限が設定されているか否かを、動作制限条件データベース４１を参照して判定する（Ｓ２１）。
【００８５】
そして、そのプロセスが、現時点で停止させるべき動作制限が設定されているプロセスであれば（Ｓ２１：Ｙｅｓ）、プロセス起動制御部２５がそのプロセスを強制的に停止させる（Ｓ２２）。一方、そのプロセスに、現時点での動作制限がなければ（Ｓ２１：Ｎｏ）、プロセス監視部１１が取得した情報に基づいてプロセス履歴データベース３１及び静的属性データベース３３を更新し、処理を終了する（Ｓ２３）。
【００８６】
また、ステップＳ１２で静的属性に変化があるとき、または対象のプロセスが新規プロセスであるときは、そのプロセスを要注意プロセスとして以下の処理が行われる。すなわち、異常判定部１５が、そのプロセスの静的属性を異常判定条件データベース３５と比較して、静的属性を用いた異常性判定を行う（Ｓ１３）。
【００８７】
ここで、対象のプロセスの静的属性が異常判定条件に合致すれば、表示制御部２３がそのプロセスを不正プロセスとして警報を発する（Ｓ２５）。
【００８８】
一方、対象のプロセスの静的属性が異常判定条件に合致しない場合は、動的属性取得部１７が対象プロセスの動的属性を取得し、動的属性データベース３７へ格納する（Ｓ１４）。
【００８９】
そして、動的属性処理部２１が、動的属性を用いた異常性の判定を行って、対象プロセスが明らかな不正プロセスであるか否かを判定する（Ｓ１５）。
【００９０】
ここで、要注意プロセスが明らかな不正プロセスであるときは、表示制御部２３がそのプロセスを不正プロセスとして警報を発する（Ｓ２５）。
【００９１】
一方、要注意プロセスが明らかな不正プロセスとは断定できないときは、動的属性処理部２１が、要注意プロセスの関連プロセスを抽出し、監視対象プロセス記憶部４３に登録する（Ｓ１６、Ｓ１７）。
【００９２】
また、動的属性処理部２１は、動的属性データベース３７を参照して、要注意プロセスの動的属性について統計処理を行う（Ｓ１８）。この処理により、要注意プロセスの中で異常性が高いと判定されたプロセスは（Ｓ１９：Ｙｅｓ）、ユーザに対して報知される（Ｓ２７）。ここで、異常性が高いとは判定されなかったプロセスについても、要注意プロセスとしてユーザに報知してもよい。
【００９３】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００９４】
【図１】本発明の一実施形態に係る不正プロセスの検出装置の機能構成図である。
【図２】プロセス履歴データベース３１のデータ構造の一例を示す。
【図３】静的属性データベース３３のデータ構造の一例を示す。
【図４】動的属性テーブル３７１のデータ構造の一例を示す。
【図５】動的属性を用いた統計処理の一例の説明図である。
【図６】異常と思われるプロセスの一覧画面である。
【図７】動作制限の登録画面である。
【図８】プロセスの動作状態を時系列に表示したソナーチャートである。
【図９】ソナーチャートで親子関係にあるプロセスを表示したプロセスツリーである。
【図１０】不正プロセス監視装置における処理手順を示すフローチャートである。
【符号の説明】
【００９５】
１           不正プロセス検出装置
１１       プロセス監視部
１２       プロセス変化判定部
１３       プロセス変化判定部
１４       静的属性処理部
１５       異常判定部
１７       動的属性取得部
２１       動的属性処理部
２３       表示制御部
２５       プロセス起動制御部
２７       プロセス分析部
３１       プロセス履歴データベース
３３       静的属性データベース
３５       異常判定条件データベース
３７       動的属性データベース
４１       動作制限条件データベース
４３       監視対象プロセス記憶部
４５       プロセス特性データベース
【図１】
2008021274.tif 000003
【図２】
2008021274.tif 000004
【図３】
2008021274.tif 000005
【図４】
2008021274.tif 000006
【図５】
2008021274.tif 000007
【図６】
2008021274.tif 000008
【図７】
2008021274.tif 000009
【図８】
2008021274.tif 000010
【図９】
2008021274.tif 000011
【図１０】
2008021274.tif 000012