(57)【要約】  本発明は、プログラム動作をフィルタリングするための方法とシステムを提供することを目的の1つとする。この方法とシステムは、非特徴的動作のモニタリングまたは分析への干渉を低減し、コンピューターの処理ボリュームを減少させ、モニタリングおよび分析の正確度を高めるために、プログラムの動作をモニタもしくは分析する前にプログラムの非特徴的動作をフィルタリングする際に用いられる。そのために、本発明におけるプログラム動作のフィルタリング方法は、複数の動作サンプルおよびこれらの動作サンプルの重みを有する動作サンプルライブラリを構築し、処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに応じて、前述のプログラム動作をフィルタリングするステップを有する。
2011530121.tif 000002
【特許請求の範囲】
【請求項１】
複数の動作サンプルおよびこの動作サンプルの重みを有する動作サンプルライブラリを構築し、処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタするステップを有することを特徴とするプログラム動作のフィルタリング方法。
【請求項２】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断し、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタし、入らない場合は、前述のプログラム動作を保留するステップを有し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、プログラム動作をフィルタすることを特徴とする請求項１に記載のプログラム動作のフィルタリング方法。
【請求項３】
前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断する際に、前述の動作サンプルの出現頻度が予め設定されたフィルタリング閾値の下限を超える場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定するステップで判断することを特徴とする請求項２に記載のプログラム動作のフィルタリング方法。
【請求項４】
前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断する際に、前述の動作サンプルの逆ドキュメント頻度が予め設定されたフィルタリング閾値の上限未満の場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定するステップで判断することを特徴とする請求項２に記載のプログラム動作のフィルタリング方法。
【請求項５】
前述の動作サンプルライブラリには、すべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれ、前述のプログラム動作のフィルタリング方法には、前述の動作サンプルライブラリをアップデートするステップが含まれ、前述の動作サンプルライブラリをアップデートする際に、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算するステップでアップデートすることを特徴とする請求項１から４のいずれかに記載のプログラム動作のフィルタリング方法。
【請求項６】
モニタされているプログラムの動作を収集し、複数の動作サンプルおよび前述の動作サンプルの重みを有する動作サンプルライブラリを構築し、処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタし、モニタされているフィルタされていないプログラム動作を分析するステップを有することを特徴とするプログラム動作のモニタリング方法。
【請求項７】
前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、プログラム動作をフィルタする際に、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断し、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタし、入らない場合は、前述のプログラム動作を保留するステップでフィルタすることを特徴とする請求項６に記載のプログラム動作のモニタリング方法。
【請求項８】
前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断する際に、前述の動作サンプルの出現頻度が予め設定されたフィルタリング閾値の下限を超える場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定するステップで判断することを特徴とする請求項７に記載のプログラム動作のモニタリング方法。
【請求項９】
前述の動作サンプルの重みは予め設定されたフィルタリング閾値の範囲に入るか否かを判断する際に、前述の動作サンプルの逆ドキュメント頻度が予め設定されたフィルタリング閾値の上限未満の場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定するステップで判断することを特徴とする請求項７に記載のプログラム動作のモニタリング方法。
【請求項１０】
前述の動作サンプルライブラリには、すべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれ、前述のプログラム動作のモニタリング方法には、前述の動作サンプルライブラリをアップデートするステップが含まれ、前述の動作サンプルライブラリをアップデートする際に、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして、前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算するステップでアップデートすることを特徴とする請求項６から９のいずれかに記載のプログラム動作のモニタリング方法。
【請求項１１】
複数の動作サンプルおよびこれらの動作サンプルの重みを有する動作サンプルライブラリを構築するための構築モジュールおよび処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタするためのフィルタリングモジュールを有することを特徴とするコンピュータープログラム動作フィルタリングシステム。
【請求項１２】
前述のフィルタリングモジュールは、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断するためのもので、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留し、ある場合は、前述のプログラム動作を第2判断処理サブモジュールに回して処理する第1判断処理サブモジュールと、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合に、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するためのもので、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタし、入らない場合は、前述のプログラム動作を保留する第2判断処理サブモジュールを有することを特徴とする請求項１１に記載のコンピュータープログラム動作フィルタリングシステム。
【請求項１３】
前述の動作サンプルの重みは該タイプの動作サンプルの出現頻度であり、前述の動作の出現頻度はこのタイプの動作サンプルの出現するプログラムサンプルの数とすべてのプログラムサンプルの総量との比率であり、あるいはこのタイプの動作サンプルのすべてのプログラムサンプルでの出現回数とすべてのプログラムサンプルに含まれる動作サンプルの総量との比率であることを特徴とする請求項１１または１２に記載のコンピュータープログラム動作フィルタリングシステム。
【請求項１４】
前述の動作サンプルの重みは該タイプの動作サンプルの逆ドキュメント頻度であり、前述の動作サンプルの逆ドキュメント頻度は該タイプの動作サンプルの出現頻度の逆数の対数であり、前述の動作サンプルの出現頻度は該タイプの動作サンプルの出現するプログラムサンプルの数とすべてのプログラムサンプルの総量の比率であり、あるいは該タイプの動作サンプルのすべてのプログラムサンプルでの出現回数とすべてのプログラムサンプルに含まれる動作サンプルの総量の比率であることを特徴とする請求項１１または１２に記載のコンピュータープログラム動作フィルタリングシステム。
【請求項１５】
前述の動作サンプルライブラリは、すべてのプログラムサンプルの総量およびすべての動作サンプルの総量を有し、前述のシステムは、前述の動作サンプルライブラリをアップデートするためのアップデートモジュールを有し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして、前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算することを特徴とする請求項１１または１２に記載のコンピュータープログラム動作フィルタリングシステム。
【請求項１６】
複数の動作サンプルおよびこの動作サンプルの重みを有する動作サンプルライブラリを構築するための構築モジュールと、処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいてプログラム動作をフィルタするためのフィルタリングモジュールとを有することを特徴とする、モニタされているプログラムの動作を収集するためのコレクションモジュールおよびモニタされているフィルタされていないプログラム動作を分析するための分析モジュールを有するコンピュータープログラム動作モニタリングシステム。
【請求項１７】
前述のフィルタリングモジュールは、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断するためのもので、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留し、ある場合は、前述のプログラム動作を第2判断処理サブモジュールに回して処理する第1判断処理サブモジュールと、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合に、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断し、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタし、入らない場合は、前述のプログラム動作を保留する第2判断処理サブモジュールを有することを特徴とする請求項１６に記載のコンピュータープログラム動作モニタリングシステム。
【請求項１８】
前述の動作サンプルライブラリには、さらにすべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれ、前述のシステムには、前述の動作サンプルライブラリをアップデートするためのアップデートモジュールを有し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして、前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算し、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算することを特徴とする請求項１６または１７に記載のコンピュータープログラム動作モニタリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューターのセキュリティ分野、すなわちコンピューターのプログラム動作をフィルタリング・モニタリングするための方法とシステムに関する。
【背景技術】
【０００２】
コンピューターのプログラム動作に対して、インターセプトおよびモニタリングを実行することは、セキュリティソフトウェアのウィルス対策としてよく用いられる手段である。実際には、非特性コード検出によるセキュリティソフトウェア製品は、通常、プログラムの動作へのモニタリングおよび分析によって、ウイルスやトロイの木馬など不審なプログラムを識別する。例えば、ドキュメント読み取り・書き込み操作およびレジストリ読み取り・書き込み操作などを含め、特定のインターセプトポイント（例：システムリソースの呼び出し）によって、プログラムの動作をインターセプトしたりモニタリングし、そして前述のプログラム動作に基づいて、プログラムのタイプ（ウイルス、トロイの木馬、システムプログラムなど）を判断することができる。
【０００３】
統計的言語の処理では、「of」、「by」「in」など一部のよく使われる副詞、接続詞などは、あまりにも用いられ、大多数の文章に出現するため、これらの言葉は、テキストの分類では、ごくわずかな役割しか果たさない。従って、これらの言葉は、統計言語学では、「ストップワード」（Stop Words）と呼ばれている。「ストップワード」は、処理作業に影響を与えないよう、テキスト分類中で削除されることがよくある。
【０００４】
同じように、プログラムの動作は、2つのタイプに分けることができる。1つは分類の意義を持つ動作（「特徴的動作」とも呼ばれる。）であり、もう1つは分類の意義を持たない動作（「非特徴的動作」とも呼ばれる。）である。例えば、一部のプログラム動作は、大多数のプログラムに使用され、あるいは大多数のプログラムに頻繁に使用される。このようなプログラム動作は、分類や分析の意義を持たず、非特徴的動作となる。プログラム動作の処理では、このような非特徴的動作を識別し、さらに分類または分析処理を行う前に、これらの非特徴的動作を削除することにより、非特徴的動作のプログラムサンプルの分類への干渉を効果的に低減することが可能である（例えば、前述の非特徴的動作は、ウイルスの特徴として処理されると重大な誤報問題が発生する可能性がある。）。
【０００５】
プログラムの動作をモニタするための1つの従来の方法では、当該プログラムのすべてのプログラム動作についてリッスンし、またすべてのプログラム動作について分析しモニタする。この方法によると、データ処理の際に、ボリュームが多く複雑度が高くかつエラー率が比較的に高いなどの欠陥がある（例えば、前述の非特徴的動作がウイルスの特徴として処理されると重大な誤報問題が発生する可能性が高くなる。）。
【０００６】
プログラムの動作をモニタリングするためのもう1つの従来の方法では、まず人間による識別によって前述の非特徴的動作を識別してフィルタし、そして他のプログラム動作について分析をする。このような方法では、多くの人や工数が必要となり、コストが高く、さらに正確で安定した結果も得られないので、普及することは困難である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、プログラム動作をフィルタリングするための方法とシステムを提供することを目的の1つとする。この方法とシステムは、非特徴的動作のモニタリングまたは分析への干渉を低減し、コンピューターの処理ボリュームを減少させ、モニタリングおよび分析の正確度を高めるために、プログラムの動作をモニタもしくは分析する前にプログラムの非特徴的動作をフィルタリングする際に用いられる。
【課題を解決するための手段】
【０００８】
そのために、本発明におけるプログラム動作のフィルタリング方法は、複数の動作サンプルおよびこれらの動作サンプルの重みを有する動作サンプルライブラリを構築し、処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに応じて、前述のプログラム動作をフィルタリングするステップを有する。
【０００９】
従来の技術に比べて、本発明では、プログラムの動作をモニタもしくは分析する前に、動作サンプルライブラリの中の動作サンプルおよび動作サンプルの重みに応じて、プログラムの動作をフィルタするため、非特徴的動作がフィルタされ、非特徴的動作のモニタリングまたは分析への干渉が低減され、コンピューターの処理ボリュームが減少し、モニタリングおよび分析の正確度が向上する。
【００１０】
より好ましくは、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに応じて、プログラム動作をフィルタする場合のステップは、下記のとおりとする。
【００１１】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断する。
【００１２】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留する。
【００１３】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルの重みは予め設定されたフィルタリング閾値の範囲に入るか否かを判断する。
【００１４】
前述の動作サンプルの重みは予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタし、入らない場合は、前述のプログラム動作を保留する。
【００１５】
本実施形態では、動作サンプルライブラリの中の動作サンプルおよび予め設定されたフィルタリング閾値の範囲に応じて、プログラムの動作をフィルタするため、非特徴的動作がフィルタされ、特徴的動作が保留される。従って、コンピューターの処理ボリュームをよりよく減少させ、モニタリングおよび分析の正確度をさらに高めることができる。
【００１６】
より好ましくは、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するステップは、下記のとおりとする。
【００１７】
前述の動作サンプルの出現頻度が予め設定されたフィルタリング閾値の下限を超える場合、前述の予め設定されたフィルタリング閾値の範囲に入ると判定する。本実施形態では、出現頻度が高すぎる動作は通常の場合、分類または分析の意義を持たない非特徴的動作になるため、出現頻度に応じて、あるプログラム動作がフィルタが必要な非特徴的動作になるか否かを判断する。従って、本実施形態では、予め設定されたフィルタリング閾値の下限に応じて、これらの非特徴的動作をフィルタする。この実施形態は、簡単で計算ボリュームが少なく容易に実施することができる。
【００１８】
もう1つの実施形態では、動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するステップは、下記のとおりとする。
【００１９】
前述の動作サンプルの逆ドキュメント頻度が予め設定されたフィルタリング閾値の上限未満の場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定する。この実施形態では、逆ドキュメント頻度に応じて、ある動作がフィルタが必要な非特徴的動作になるか否かを判断する。統計学分野では、逆ドキュメント頻度は、測定の妥当性と値との公認された重要なパラメータとなっている。通常の場合、逆ドキュメント頻度が小さすぎる動作は、分類または分析の意義を持たない非特徴的動作になるため、本実施形態では、予め設定されたフィルタリング閾値の上限に応じて、これらの非特徴的動作をフィルタする。本実施形態では、逆ドキュメント頻度を用いて非特徴的動作を識別しフィルタするため、よりよい効果およびより信頼できる結果が得られる。
【００２０】
より好ましくは、前述の動作サンプルライブラリには、さらにすべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれる。
【００２１】
前述のプログラム動作のフィルタリング方法は、前述の動作サンプルライブラリをアップデートするためのステップを有する。
【００２２】
前述の動作サンプルライブラリをアップデートする場合には、下記のステップで進める。
【００２３】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして、前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。この実施形態では、現在の処理状況に応じて、タイムリーに動作サンプルをアップデートするため、動作サンプルライブラリに含まれるものがより多く、より包括的、より正確になる。従って、フィルタリングの正確性がさらに向上する。
【００２４】
本発明の目的を達成するために、本発明ではまた、構築モジュールとフィルタリングモジュールを有する、コンピューターのプログラム動作をフィルタするためのシステムを備えている。前述の構築モジュールは、動作サンプルライブラリを構築するために用いられる。前述の動作サンプルライブラリには、複数の動作サンプルおよび前述の動作サンプルの重みが入っている。前述のフィルタリングモジュールは、処理待ちのプログラム動作を獲得するために用いられ、また前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに応じて、前述のプログラム動作をフィルタする。
【００２５】
それは、プログラム動作のフィルタリング方法と同様に、プログラムの動作をモニタもしくは分析する前に、動作サンプルライブラリの中の動作サンプルおよび動作サンプルの重みに応じて、プログラムの動作をフィルタするので、非特徴的動作がフィルタされ、非特徴的動作のモニタリングまたは分析への干渉が低減され、コンピューターの処理ボリュームが減少し、モニタリングおよび分析の正確度が向上する。
【００２６】
本発明のもう1つの目的は、プログラム動作をモニタリングするための方法とシステムを提供することである。この方法によると、プログラムの非特徴的動作をフィルタし、非特徴的動作のモニタリングまたは分析への干渉を低減し、コンピューターの処理ボリュームを減少させ、モニタリングおよび分析の正確度を高めることができる。
【００２７】
従って、本発明におけるプログラム動作のモニタリング方法は、下記のステップを有する。
【００２８】
モニタされているプログラムの動作を収集する。
【００２９】
複数の動作サンプルおよびその動作サンプルの重みを有する動作サンプルライブラリを構築する。
【００３０】
処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに応じて、前述のプログラム動作をフィルタする。
【００３１】
モニタされているフィルタされていないプログラム動作を分析する。
【００３２】
同じように、従来の技術に比べて、本発明におけるプログラム動作のモニタリング方法では、プログラムの動作をモニタもしくは分析する前に、動作サンプルライブラリの中の動作サンプルおよび予め設定されたフィルタリング閾値の範囲に基づいて、プログラムの動作を比較し、非特徴的動作をフィルタするため、非特徴的動作のモニタリングまたは分析への干渉を低減し、コンピューターの処理ボリュームを減少させ、モニタリングおよび分析の正確度を高めることができる。
【００３３】
より好ましくは、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに応じて、プログラム動作をフィルタリングする場合は、下記のステップで進める。
【００３４】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断する。
【００３５】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留する。
【００３６】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断する。
【００３７】
前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタし、入らない場合は、前述のプログラム動作を保留する。
【００３８】
本実施形態では、動作サンプルライブラリの中の動作サンプルおよび予め設定されたフィルタリング閾値の範囲に基づいて、プログラム動作をフィルタするため、非特徴的動作がフィルタされ、特徴的動作が保留される。従って、コンピューターの処理ボリュームをよりよく減少させ、モニタリングおよび分析の正確度をさらに高めることができる。
【００３９】
より好ましくは、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するステップは、下記のとおりとする。
【００４０】
前述の動作サンプルの出現頻度が予め設定されたフィルタリング閾値の下限を超える場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定する。本実施形態では、出現頻度が高すぎる動作は通常の場合、分類または分析の意義を持たない非特徴的動作になるため、出現頻度に基づいて、あるプログラム動作がフィルタが必要な非特徴的動作になるか否かを判断する。従って、本実施形態では、予め設定されたフィルタリング閾値の下限に基づいて、これらの非特徴的動作をフィルタする。本実施形態は、簡単で計算ボリュームが少なく容易に実施することができる。
【００４１】
もう1つの実施形態では、動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するステップは、下記のとおりとする。
【００４２】
前述の動作サンプルの逆ドキュメント頻度が予め設定されたフィルタリング閾値の上限未満の場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定する。この実施形態では、逆ドキュメント頻度に基づいて、ある動作がフィルタが必要な非特徴的動作になるか否かを判断する。統計学分野では、逆ドキュメント頻度は測定の妥当性と値との公認された重要なパラメータとなっている。通常の場合、逆ドキュメント頻度が小さすぎる動作は、分類または分析の意義を持たない非特徴的動作になるため、本実施形態では、予め設定されたフィルタリング閾値の上限に応じて、これらの非特徴的動作をフィルタする。この実施形態では、逆ドキュメント頻度を用いて、非特徴的動作を識別しフィルタするため、よりよい効果およびより信頼できる結果が得られる。
【００４３】
より好ましくは、前述の動作サンプルライブラリには、すべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれる。
【００４４】
前述のプログラム動作のフィルタリング方法は、前述の動作サンプルライブラリをアップデートするためのステップを有する。
【００４５】
前述の動作サンプルライブラリをアップデートする場合のステップは、下記のとおりとする。
【００４６】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして、前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。この実施形態では、現在の処理状況に応じて、タイムリーに動作サンプルをアップデートするため、動作サンプルライブラリに含まれるものがより多く、より包括的、より正確になる。従って、フィルタリングの正確性がさらに向上する。
【００４７】
本発明の目的を達成するために、本発明ではまた、モニタされているプログラムの動作を収集するためのコレクションモジュールおよびモニタされているフィルタされていないプログラム動作を分析するための分析モジュールならびに構築モジュールおよびフィルタリングモジュールを有する、コンピューターのプログラム動作をモニタリングするためのシステムを備えている。前述の構築モジュールは、動作サンプルライブラリを構築するために用いられる。前述の動作サンプルライブラリには、複数の動作サンプルおよび該動作サンプルの重みが入っている。前述のフィルタリングモジュールは、処理待ちのプログラム動作を獲得するために用いられ、また前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタする。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施例における動作サンプルライブラリを構築するフローチャートである。
【図２】図１に示す動作サンプルライブラリがプログラムの動作をフィルタリングするフローチャートである。
【図３】本発明のもう1つの実施例における動作サンプルライブラリを構築するフローチャートである。
【図４】図３に示す動作サンプルライブラリがプログラムの動作をフィルタリングするフローチャートである。
【発明を実施するための形態】
【００４９】
本発明の実施例は、プログラム動作をフィルタリングまたはモニタリングする方法とシステム、とりわけプログラム動作をモニタまたは分析する前にプログラムの非特徴的動作をフィルタリングする方法とシステムに係わる。本発明を実施することにより、非特徴的動作のモニタリングまたは分析への干渉を低減し、コンピューターの処理ボリュームを減少させ、モニタリングおよび分析の正確度を高めることができる。
実施例１
本実施例１では、本発明の実施例におけるプログラム動作のフィルタリング方法について詳しく説明している。この方法は、以下のステップを有する。
【００５０】
複数の動作サンプルおよびこの動作サンプルの重みを有する動作サンプルライブラリを構築する。
【００５１】
処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタする。
【００５２】
具体的に言うと、まず、若干のプログラムサンプルから収集する複数の動作サンプル、およびタイプごとの動作サンプルの出現頻度に基づいて計算するすべての動作サンプルの重みを有する動作サンプルライブラリを構築する。動作サンプルの重みは、当該動作の値、関連性または重要性を表示するために用いられる。重みは、出現頻度、出現頻度に基づいて見積もる出現確率あるいは逆ドキュメント頻度のいずれであってもよいがそれらに限定しない。さらに、動作サンプルの出現頻度は、このタイプの動作サンプルが出現するプログラムサンプルの数とすべてのプログラムサンプルの総量の比率であってもよい。例えば、動作サンプルライブラリを構築する中で、100のプログラムサンプルの動作サンプルを収集したが、30のプログラムサンプルに動作サンプルAが出現すれば、動作サンプルAの出現頻度は30/100＝30％となる。動作サンプルの出現頻度は、このタイプの動作サンプルがすべてのプログラムサンプルに出現する回数とすべてのプログラムサンプルに含まれる動作サンプルの総量の比率であってもよい。例えば、上記の例の中で、100のプログラムサンプルには、トータルで9000の動作サンプルがあり、動作サンプルAの出現回数が2500回とすると、動作サンプルAの出現頻度は、2500/9000≒27.8％となる。
【００５３】
動作サンプルライブラリができたら、プログラム動作のフィルタリングに使用することができる。
【００５４】
具体的に言うと、まず処理待ちのプログラム動作を獲得し、そして前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタする。
【００５５】
1つの実施可能な形態として、前述のプログラム動作のフィルタリング方法は、下記のとおりとする。
【００５６】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断する。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留する。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断する。入る場合は、前述のプログラム動作をフィルタし、入らない場合は、前述のプログラム動作を保留する。
【００５７】
次に、図面を合わせて、本発明について、さらに詳しく説明する。
【００５８】
1つの実施可能な形態として、本発明の実施例１におけるプログラム動作のフィルタリング方法は、以下のとおりに実施する。
【００５９】
図１は本発明の1つの実施例における動作サンプルライブラリを構築するためのフローチャートであり、図２は図１に示す動作サンプルライブラリがプログラムの動作をフィルタリングするフローチャートである。
【００６０】
図１に示すとおり、ステップS100を開始してから、ステップS102において、大量のプログラムサンプルの動作を収集し、大量の動作サンプルを獲得し、さらに収集した動作サンプルの総量Dを記録する。統計学の原理によると、サンプルの規模が大きいほど、統計結果が真の値に近くなる。従って、動作サンプルライブラリを構築する中で、なるべく多くのプログラムサンプルの動作サンプルを収集するのが好ましい。この分野の技術者は、従来の技術を利用すれば、ドキュメントの読み書き操作や登録表の読み書き操作などへのインターセプトポイントの設置などによって、大量のプログラムサンプルの動作を収集することが可能であることを意識すべきである。
【００６１】
そして、ステップS104の中で、動作サンプルの出現回数Dwiを計算する。Dwiは第iタイプの動作サンプルが前述の動作サンプルライブラリに出現する回数を表すものである。明らかに、Dwiは、実際には、該動作サンプルライブラリにおける第iタイプの動作サンプルと同じ動作サンプルの数に等しい。
【００６２】
その後、ステップS106の中で、動作サンプルの出現頻度fiを計算する。fiは第iタイプの動作サンプルが前述の動作サンプルライブラリに出現する頻度を表すものである。第iタイプの動作サンプルの頻度fiは、このタイプの動作サンプルの出現回数Dwiと動作サンプルライブラリの中の動作サンプルの総量Dとの比率と同じであり、すなわちfi＝Dwi/Dとなる。上述したように、出現頻度fiは動作サンプルの1つの表現方式として、該動作サンプルの関連性や重要性などを表すために用いられる。明らかに、0≦fi≦1、かつfiが大きいほど、そのタイプの動作サンプルの出現頻度または出現確率が高くなる。上述したように、この実施例では、あるタイプの動作サンプルのすべてのプログラムサンプルでの出現回数とすべてのプログラムサンプルに含まれる動作サンプルの総量の比率とをこのタイプの動作サンプルの出現頻度としているが、もう1つの実施可能な形態として、あるタイプの動作サンプルが出現するプログラムサンプルの数とすべてのプログラムサンプルの総量の比率とをこのタイプの動作サンプルの出現頻度としてもよい。
【００６３】
すべての動作サンプルの出現頻度fiの計算が完了してから、前述の動作サンプルの総量D、各動作サンプルの出現回数Dwiおよび出現頻度fiを保存すると、動作サンプルライブラリの構築が完了する。これはステップS108に示している。
【００６４】
続いて、図２に示すとおり、ステップS200を開始してから、ステップS201で、処理が必要なプログラム動作を収集しあるいは読み取る。同様に、この分野の技術者は、従来の技術を利用すれば、ドキュメントの読み書き操作や登録表の読み書き操作などへのインターセプトポイントの設置などによって、大量のプログラムサンプルの動作を収集することが可能であることを意識すべきである。
【００６５】
そして、ステップS202で、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタする。1つの実施可能な形態として、まず前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断する。ない場合は、該プログラム動作は新規のプログラム動作あるいは出現頻度の低いプログラム動作となり、非特徴的動作にならない。従って、後のステップで該プログラム動作を処理（例えば、リッスン、分析、モニタなど）できるよう、このプログラム動作を保留する。これはステップS205に示している。
【００６６】
反対に、ステップS202で、動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルが見付かった場合は、この同じ動作サンプルの出現頻度をさらに読み取る。これはステップS203に示している。
【００６７】
ステップS203が完了した後に、ステップS204で、該出現頻度が予め設定されたフィルタリング閾値の範囲に入るか否かを判断する。上述したように、プログラム動作は、頻度が高いほど、非特徴的動作になる可能性も高くなる。従って、あるプログラム動作の出現頻度が予め設定されたフィルタリング閾値の下限を超える場合は、ステップS206に示すとおり、該プログラム動作を非特徴的動作としてフィルタすることができる。こうすれば、後の処理において、該プログラム動作を分析したりリッスンしたりモニタするなどの必要がなくなり、後の処理ボリュームを効果的に減少させることができ、また上記の非特徴的動作のモニタリングと分析への干渉を低減でき、モニタリングと分析との正確度を高めることができる。
【００６８】
反対に、ステップS204で、該プログラム動作の出現頻度が予め設定されたフィルタリング閾値の範囲に入らなかった場合、すなわち該出現頻度が予め設定されたフィルタリング閾値の下限未満の場合は、該プログラム動作の出現頻度が低く、非特徴的動作にならないということになる。従って、後のステップで該プログラム動作を処理（例えば、リッスン、分析、モニタなど）できるように、ステップS205に入ってから、ステップS205で該プログラム動作を保留する。
【００６９】
ステップS205およびステップS206はステップS207で完了する。全フィルタリングプロセスはこれで終了する。
【００７０】
本実施例では、出現頻度に基づいて、ある動作がフィルタが必要な非特徴的動作になるか否かを判断する。プログラム動作が非特徴的動作になる場合は、後の処理ボリュームを減少させ、また後の処理の正確度を高めるために、該プログラム動作をフィルタする。このような実施方法は、簡単で計算ボリュームが少なく容易に実施することができる。
【００７１】
もう1つの実施可能な形態として、本発明の実施例１におけるプログラム動作のフィルタリング方法は、以下のとおりに実施する。
【００７２】
図３は、本発明の別の実施例における動作サンプルライブラリ構築のフローチャートである。図４は、図３に示す動作サンプルライブラリがプログラムの動作をフィルタするフローチャートである。
【００７３】
図３に示す動作サンプルライブラリ構築の流れは、図１に示す構築の流れと大同小異である。もっと具体的に言うと、図３に示すステップS300からステップS304までは、図１に示すステップS100からステップS104までと同じであり、それぞれ、開始、大量の動作サンプルの収集、動作サンプルの総量Dの記録、およびタイプごとの動作サンプルの出現回数Dwiの計算となっている。
【００７４】
続いて、ステップS306では、タイプごとの動作サンプルの逆ドキュメント頻度（IDF）を計算する。上述したように、逆ドキュメント頻度は測定の妥当性と値との公認された重要なパラメータである。第iタイプの動作サンプルの逆ドキュメント頻度IDF（i）は、該第iタイプの動作サンプルの該動作サンプルライブラリでの出現頻度の逆数の対数であり、すなわち、
IDF(i)＝log(D／Dwi)となる。そのうち、Dは動作サンプルライブラリの中の動作サンプルの合計であり、Dwiは第iタイプの動作の動作サンプルライブラリでの出現回数である。明らかに、ある動作サンプルのIDF（i）はその出現頻度（Dwi/D）とは反比例する。具体的に言えば、第iタイプの動作サンプルの出現頻度が高いほど、このタイプの動作サンプルの逆ドキュメント頻度IDF（i）は小さくなり、IDF（i）の最小値は0になる。逆に、第iタイプの動作サンプルの出現頻度が低いほど、そのIDF（i）は高くなる。従って、IDF（i）がある予め設定されたフィルタリング閾値未満の場合は、当該動作サンプルは、非特徴的動作になりフィルタすることができる。
【００７５】
動作サンプルライブラリの構築が完了すると、該動作サンプルライブラリを用いて、プログラムの動作を識別し判断することができる。詳しくは図４に示すとおりである。
【００７６】
図４に示すステップS400からステップS407までは、図２に示すステップS200からステップS207までとほぼ同じである。多少異なるところはステップS403とステップS404にある。具体的に言えば、ステップS403では、動作サンプルライブラリにおける処理待ちのプログラムサンプルと同じ動作サンプルのIDF値を読み取る。ステップS404では、該IDF値が予め設定されたフィルタリング閾値の上限未満の場合は、該IDF値は予め設定されたフィルタリング閾値の範囲に入る。従って、該プログラム動作は非特徴的動作になりフィルタすることができる（ステップS406）。そうでない場合は、プロセスはステップS404からステップS405に入る。つまり該プログラム動作を保留し、後で処理するものとする（分析、リッスン、モニタ）。
【００７７】
本実施例で用いる実施形態では、逆ドキュメント頻度に基づいて、ある動作がフィルタが必要な非特徴的動作になるか否かを判断する。統計学分野では、逆ドキュメント頻度は測定の妥当性と値との公認された重要なパラメータである。通常の場合、逆ドキュメント頻度の小さすぎる動作は、分類または分析の意義を持たない非特徴的動作になる。従って、本実施形態では、予め設定されたフィルタリング閾値の上限に基づいて、これらの非特徴的動作をフィルタする。この実施形態では、逆ドキュメント頻度を用いて非特徴的動作を識別しフィルタするため、よりよい効果およびより信頼できる結果が得られる。
【００７８】
実施例１に対する改善として、定期的もしくはタイムリーに動作サンプルライブラリをアップデートすることも可能である。動作サンプルライブラリをよりよくアップデートするために、前述の動作サンプルライブラリでは、プログラムサンプルの総量および動作サンプルの総量Dなどの情報を保存すべきである。実施にあたり、1つの実施可能な形態として、図２に示すステップS202で、動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがないことが見付かったら、プロセスの終了後に、前述のプログラム動作を新規の動作サンプルとして前述の動作サンプルライブラリに追加し、またプログラムサンプルの総量および前述の動作サンプルの総量Dなどの情報をアップデートし、さらにタイプごとの動作サンプルの出現頻度を再計算することができる。図４に示すステップS402で、動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがないことが見付かったら、プロセスの終了後に、前述のプログラム動作を新規の動作サンプルとして前述の動作サンプルライブラリに追加し、また前述の動作サンプルの総量Dをアップデートし、さらにタイプごとの動作サンプルの逆ドキュメント頻度IDFを再計算することができる。このように、動作サンプルをタイムリーにアップデートすることにより、動作サンプルライブラリに含まれるものがより多く、より包括的、より正確になる。従って、フィルタリングの正確性がさらに向上する。
【００７９】
同じように、1つの実施可能な形態として、図２に示すステップS202で、動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあることが見付かったら、プロセスの終了後に、前述の動作サンプルの総量Dおよび前述の同じ動作サンプルの出現頻度をアップデートし、さらにタイプごとの動作サンプルの出現頻度を再計算することができる。同様に、図４に示すステップS402で、動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあることが見付かったら、プロセスの終了後に、前述の動作サンプルの総量Dおよび前述の同じ動作サンプルの逆ドキュメント頻度IDFをアップデートすることができる。この実施形態では、現在の処理状況に応じて、動作サンプルをタイムリーにアップデートするため、動作サンプルライブラリに含まれるものがより多く、より包括的、より正確になる。従って、フィルタリングの正確性がさらに向上する。
実施例２
本実施例２の中では、本発明の実施例におけるプログラム動作のモニタリング方法について、詳しく説明している。この方法は、以下のステップを有する。
【００８０】
モニタされているプログラムの動作を収集する。
【００８１】
複数の動作サンプルおよびその動作サンプルの重みを有する動作サンプルライブラリを構築する。
【００８２】
処理待ちのプログラム動作を獲得し、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに応じて、前述のプログラム動作をフィルタする。
【００８３】
モニタされているフィルタされていないプログラム動作を分析する。
【００８４】
具体的に言えば、動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、プログラム動作をフィルタする。以下のステップで進める。
【００８５】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断する。
【００８６】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留する。
【００８７】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断する。
【００８８】
前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタする。入らない場合は、前述のプログラム動作を保留する。
【００８９】
1つの実施可能な形態として、動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するためのステップは、以下のとおりとする。
【００９０】
前述の動作サンプルの出現頻度が予め設定されたフィルタリング閾値の下限を超える場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定する。
【００９１】
もう1つの実施可能な形態として、動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するためのステップは、以下のとおりとする。
【００９２】
前述の動作サンプルの逆ドキュメント頻度が予め設定されたフィルタリング閾値の上限未満の場合は、前述の予め設定されたフィルタリング閾値の範囲に入ると判定する。
【００９３】
1つのよりよい実施形態として、前述の動作サンプルライブラリには、すべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれる。
【００９４】
前述のプログラム動作のモニタリング方法は、前述の動作サンプルライブラリをアップデートするためのステップを有する。
【００９５】
前述の動作サンプルライブラリのアップデートは、以下のステップを有する。
【００９６】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラム動作の総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。
【００９７】
前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。
【００９８】
本発明の実施例２では、収集したプログラム動作をフィルタリングする流れは、実施例１におけるプログラム動作をフィルタリングする流れと同じであるため、一々と詳しく説明しないこととする。
【００９９】
実施例３
本実施例３では、本発明の実施例における構築モジュールとフィルタリングモジュールを有するコンピュータープログラム動作のフィルタリングシステムについて、詳しく説明する。
【０１００】
前述の構築モジュールは、複数の動作サンプルおよび前述の動作サンプルの重みを有する動作サンプルライブラリを構築するために用いられる。
【０１０１】
前述のフィルタリングモジュールは、処理待ちのプログラム動作を獲得するために用いられ、前述の動作サンプルライブラリの中の動作サンプルおよび前述の動作サンプルの重みに基づいて、前述のプログラム動作をフィルタする。
【０１０２】
1つの実施可能な形態として、フィルタリングモジュールは、第1判断処理サブモジュールおよび第2判断処理サブモジュールを備える。
【０１０３】
前述の第1判断処理サブモジュールは、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断するために用いられる。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留する。ある場合は、前述のプログラム動作を第2判断処理サブモジュールに回して処理する。
【０１０４】
前述の第2判断処理サブモジュールは、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合に、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するために用いられる。前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタする。入らない場合は、前述のプログラム動作を保留する。
【０１０５】
1つの実施可能な形態として、動作サンプルの重みは、該タイプの動作サンプルの出現頻度である。この動作サンプルの出現頻度は、当該タイプの動作サンプルの出現するプログラムサンプルの数とすべてのプログラムサンプルの総量との比率であり、あるいは当該タイプの動作サンプルがすべてのプログラムサンプルに出現する回数とすべてのプログラムサンプルに含まれる動作サンプルの総量との比率である。
【０１０６】
もう1つの実施可能な形態として、動作サンプルの重みは、このタイプの動作サンプルの逆ドキュメント頻度である。
【０１０７】
前述の動作サンプルの逆ドキュメント頻度は、このタイプの動作サンプルの出現頻度の逆数の対数である。
【０１０８】
前述の動作サンプルの出現頻度は、このタイプの動作サンプルの出現するプログラムサンプルの数とすべてのプログラムサンプルの総量との比率であり、あるいはこのタイプの動作サンプルがすべてのプログラムサンプルに出現する回数とすべてのプログラムサンプルに含まれる動作サンプルの総量との比率である。
【０１０９】
より好ましくは、前述の動作サンプルライブラリには、すべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれる。
【０１１０】
1つの実施可能な形態として、前述のシステムにはさらに、前述の動作サンプルライブラリをアップデートするためのアップデートモジュールを備える。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリにおけるプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリにおけるプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。
【０１１１】
本発明の実施例３におけるコンピュータープログラム動作モニタリングシステムでは、プログラム動作をフィルタリングする流れは、実施例１におけるプログラム動作をフィルタリングする流れと同じであるため、本発明の実施例３では、一々と詳しく説明しないこととする。
実施例４
本実施例４では、モニタされているプログラムの動作を収集するためのコレクションモジュールおよびモニタされているフィルタされていないプログラム動作を分析するための分析モジュールならびに構築モジュールおよびフィルタリングモジュールを有する本発明の実施例におけるコンピュータープログラム動作モニタリングシステムについて、詳しく説明する。
【０１１２】
前述の構築モジュールは、複数の動作サンプルおよびその動作サンプルの重みを有する動作サンプルライブラリを構築するために用いられる。
【０１１３】
前述のフィルタリングモジュールは、処理待ちのプログラム動作を獲得するために用いられ、前述の動作サンプルライブラリの中の動作サンプルおよびその動作サンプルの重みに基づいて、前述のプログラム動作をフィルタする。
【０１１４】
より好ましくは、フィルタリングモジュールは、第1判断処理サブモジュールと第2判断処理サブモジュールを備える。
【０１１５】
前述の第1判断処理サブモジュールは、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがあるか否かを判断するために用いられる。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を保留する。ある場合は、前述のプログラム動作を第2判断処理サブモジュールに回して処理する。
【０１１６】
前述の第2判断処理サブモジュールは、前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合に、前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入るか否かを判断するために用いられる。前述の動作サンプルの重みが予め設定されたフィルタリング閾値の範囲に入る場合は、前述のプログラム動作をフィルタする。入らない場合は、前述のプログラム動作を保留する。
【０１１７】
より好ましくは、前述の動作サンプルライブラリには、さらにすべてのプログラムサンプルの総量およびすべての動作サンプルの総量が含まれる。
【０１１８】
1つの実施可能な形態として、前述のモニタリングシステムにはさらに、前述の動作サンプルライブラリをアップデートするためのアップデートモジュールを備える。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがない場合は、前述のプログラム動作を新規の動作サンプルとして、前述の動作サンプルライブラリに追加し、また前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。前述の動作サンプルライブラリに、前述のプログラム動作と同じ動作サンプルがある場合は、前述の動作サンプルライブラリのプログラムサンプルの総量および動作サンプルの総量をアップデートし、さらにタイプごとの動作サンプルの重みを再計算する。
【０１１９】
本発明の実施例４では、収集したプログラム動作をフィルタリングする流れは、実施例２におけるプログラム動作をフィルタリングする流れと同じであるため、一々と詳しく説明しないこととする。
【０１２０】
本発明の実施例３と実施例４で述べたコンピューターのモジュールは、いずれもコンピューター可読媒体を利用して保存することができ、コンピューターの実行中に、コンピューターまたはコンピューターのある部分を用いて実現する。例えば、コンピューターに1つまたは複数のコマンドを導入して、本発明の実施例３と実施例４で述べた機能を実行することができる。
【０１２１】
上記の「コンピューター可読媒体」とは、実行するコマンドをコンピューターのプロセッサーに提供するためのすべての媒体のことをいう。このような媒体は、多くのフォーマットがあり、不揮発性媒体、揮発性媒体および伝送媒体を含むがそれらに限定されない。不揮発性媒体には、CD-ROMやディスクのストレージデバイスなどがある。揮発性媒体には、メインメモリなどのダイナミックメモリがある。伝送媒体には、同軸ケーブル、銅ケーブル、光ケーブル、およびバスを構成するワイヤーとケーブルなどがある。伝送媒体は、ラジオや赤外線データの間の通信で生じる波のような音波や光波を利用することも可能である。
【０１２２】
一般的なコンピューター可読媒体は、通常、フロッピーディスク、ハードディスク、テープ、その他の磁気メディア、CD-ROM、その他の光メディア、パンチカード、紙テープ、その他の多孔質物理メディア、RAM、PROM、EPROM、FLASH-EPROM、その他のメモリチップやチャック、搬送波、およびその他のコンピューター可読媒体などがある。
【０１２３】
以上、図面を合わせて、本発明について説明をした。本発明の実施例における方法とシステムは、非特徴的動作へのフィルタリングに利用できると共に、セキュリティソフトウェアなどによるプログラムに対するモニタリングにも利用できるという点を意識されたい。具体的に言えば、セキュリティソフトウェアは、従来の技術を利用して、モニタされているプログラム動作を獲得した後に、上述したフィルタリング方法を利用して、その中の非特徴的動作をフィルタし、そして従来のモニタリング方法を用いて、残りのプログラム動作をモニタリングすることができる。従来の技術に比べて、本発明におけるプログラム動作のモニタリング方法では、プログラムの動作をモニタもしくは分析する前に、動作サンプルライブラリの中の動作サンプルおよび予め設定されたフィルタリング閾値の範囲に基づいて、プログラムの動作を比較して、非特徴的動作をフィルタするため、非特徴的動作のモニタリングまたは分析への干渉を低減し、コンピューターの処理ボリュームを減少させ、モニタリングおよび分析の正確度を高めることができる。
【０１２４】
以上述べた本発明の実施形態は、本発明の保護範囲に対する限定を構成するものではない。本発明の精神や原則のもとで行われる一切の変更、同等の交換および改善などは、本発明の特許請求の保護範囲内に含まれるものとする。
【図１】
2011530121.tif 000003
【図２】
2011530121.tif 000004
【図３】
2011530121.tif 000005
【図４】
2011530121.tif 000006
【国際調査報告】
2011530121.tif 000007
2011530121.tif 000008
2011530121.tif 000009
2011530121.tif 000010