(57)【特許請求の範囲】
【請求項１】
コンピュータで実施され且つコンピュータ・システムのリモート管理を検出する方法であって、
傍受ステップと、第１決定ステップと、第１識別ステップと、第２決定ステップと、第３決定ステップと、第４決定ステップと、第２識別ステップと、判定ステップとを備え、
前記傍受ステップでは、前記コンピュータ・システムのプロセッサを介して、前記コンピュータ・システムにおいて発生した複数のイベントを傍受し、
前記第１決定ステップでは、各傍受イベントのパラメータを決定し、
前記第１識別ステップでは、前記決定されたパラメータに少なくとも基づいて、コンピュータ・ネットワーク内のアプリケーションによる第１データ転送又はコンピュータ・システムの周辺にあるデータ入力装置からのアプリケーションへの第２データ転送に関連するものとして識別し、
前記第２決定ステップでは、前記傍受された複数のイベントのうちの２つを、前記第１及び第２データ転送に関連する特定された傍受イベントに少なくとも基づいて、互いに依存するものとして決定し、
前記第３決定ステップでは、前記２つの傍受イベントのパラメータの依存関係を定義する第１ルールを決定し、
前記第４決定ステップでは、前記第１ルールと以前に作成された第２ルールとの類似度を決定し、
前記第２識別ステップでは、所定の閾値を超える類似度を検出した場合に、前記第１ルール及び前記第２ルールに少なくとも基づいて少なくとも１つのアプリケーションを識別し、
前記判定ステップでは、少なくとも１つのアプリケーションについて、リモート管理のためのアプリケーションか否かの判定を行う、
方法。
【請求項２】
前記複数のイベントは、呼び出しステップと、第１転送ステップと、第２転送ステップと、第３転送ステップと、第４転送ステップのうち、少なくとも１つを含み、
前記呼び出しステップは、コンピュータ・システムにインストールされたオペレーティング・システムのＡＰＩ機能のためのアプリケーションによる呼び出しをし、
前記第１転送ステップは、プロセス間通信技術を介したアプリケーションのプロセス間でのデータ転送をし、
前記第２転送ステップは、コンピュータ・システムのソフトウェアコンポーネントとハードウェアコンポーネントとの間のデータ転送をし、
前記第３転送ステップは、コンピュータ・ネットワーク内のアプリケーションによるデータ転送をし、
前記第４転送ステップは、少なくとも１つの周辺にあるデータ入力装置からのアプリケーションへのデータ転送をする、
請求項１に記載の方法。
【請求項３】
前記周辺にあるデータ入力装置は、キーボードと、コンピュータマウスと、タッチスクリーンと、非接触タッチスクリーンコントローラのうち少なくとも１つを含む、
請求項２に記載の方法。
【請求項４】
前記第１決定ステップは、傍受タイプと、第１識別子と、第２識別子と、先行イベントと、第３識別子と、データタイプと、データ量と、転送データのうち１つもしくは複数のパラメータを決定する方法であって、
前記傍受タイプは、傍受された各イベントのタイプで、
前記第１識別子は、コンピュータ・システムのオペレーティング・システムにおいて各傍受されたイベントを作成したアプリケーション又はプロセスの識別子で、
前記第２識別子は、オペレーティング・システムで各代行受信イベントを作成したアプリケーション又はサービスの識別子で、
前記先行イベントは、それぞれの傍受されたイベントに先行する少なくとも１つのイベントで、
前記第３識別子は、転送されたデータのデータ送信元とデータ受信元の識別子で、
前記データタイプは、転送されたデータのタイプで、
前記データ量は、転送されたデータの量で、
前記転送データは、直接的に転送されたデータである、
請求項１に記載の方法。
【請求項５】
前記第２決定ステップは、時間閾値と、パラメータ相関の少なくとも１つを決定し、
前記時間閾値は、第１の識別された傍受されたイベントの登録と第２の傍受されたイベントの登録との間に経過した時間の閾値で、
前記パラメータ相関は、前記２つの傍受イベントのパラメータは、現在の傍受されたイベントよりも前に登録された特定された傍受されたイベントのパラメータとの相関である、
請求項１に記載の方法。
【請求項６】
前記第３決定ステップは、ルール選択ステップと、係数計算ステップを備え、
前記ルール選択ステップは、ルールを表すために行列形式又はベクトル形式のうちの少なくとも１つを選択し、
前記係数計算ステップは、前記２つの傍受イベントのうちの１つのパラメータに基づいて、ルールの選択された表現に対する係数を計算する、
請求項１に記載の方法。
【請求項７】
前記第４決定ステップは、ヒューリスティック分析と、構造分析のうち少なくとも１つを備え、
前記ヒューリスティック分析では、コンピュータ・システムにおけるデータ転送の後に発生する動作、コンピュータ・ネットワークにおいて送信又は受信された動作の後のデータ、及びデータと動作との間の依存性のうち少なくとも１つを決定する、少なくとも１つのアプリケーションを分析し、
前記構造分析は、少なくとも１つのアプリケーションの構造及びコンピュータ・ネットワークにおけるデータ転送を担うコード、コンピュータ・システムにおける動作の実行、及びコンピュータ・ネットワークにおけるデータの送信又は受信を分析する、
請求項１に記載の方法。
【請求項８】
前記判定に応答して前記少なくとも１つのアプリケーションをブロックする第１ブロックステップを更に備え、
前記第１ブロックステップは、第２ブロックステップと、第１除去ステップと、第２除去ステップの少なくとも１つを備え、
前記第２ブロックステップは、少なくとも１つのアプリケーションとのコンピュータ・ネットワークにおけるデータ交換をブロックし、
前記第１除去ステップは、コンピュータ・システムのＲＡＭから少なくとも１つのアプリケーションを除去し、
前記第２除去ステップはコンピュータ・システムの情報媒体から少なくとも１つのアプリケーションを除去する、
請求項１に記載の方法。
【請求項９】
コンピュータ・システムのリモート管理を検出するシステムであって、前記コンピュータ・システムの少なくとも１つのプロセッサを備え、
前記プロセッサは、傍受ステップと、第１決定ステップと、第１識別ステップと、第２決定ステップと、第３決定ステップと、第４決定ステップと、第２識別ステップと、判定ステップとを実行するように構成され、
前記傍受ステップでは、前記コンピュータ・システムのプロセッサを介して、前記コンピュータ・システムにおいて発生した複数のイベントを傍受し、
前記第１決定ステップでは、各傍受イベントのパラメータを決定し、
前記第１識別ステップでは、前記決定されたパラメータに少なくとも基づいて、コンピュータ・ネットワーク内のアプリケーションによる第１データ転送又はコンピュータ・システムの周辺にあるデータ入力装置からのアプリケーションへの第２データ転送に関連するものとして識別し、
前記第２決定ステップでは、前記傍受された複数のイベントのうちの２つを、前記第１及び第２データ転送に関連する特定された傍受イベントに少なくとも基づいて、互いに依存するものとして決定し、
前記第３決定ステップでは、前記２つの傍受イベントのパラメータの依存関係を定義する第１ルールを決定し、
前記第４決定ステップでは、前記第１ルールと以前に作成された第２ルールとの類似度を決定し、
前記第２識別ステップでは、所定の閾値を超える類似度を検出した場合に、前記第１ルール及び前記第２ルールに少なくとも基づいて少なくとも１つのアプリケーションを識別し、
前記判定ステップでは、少なくとも１つのアプリケーションについて、リモート管理のためのアプリケーションか否かの判定を行う、
システム。
【請求項１０】
前記複数のイベントは、呼び出しステップと、第１転送ステップと、第２転送ステップと、第３転送ステップと、第４転送ステップのうち、少なくとも１つを含み、
前記呼び出しステップは、コンピュータ・システムにインストールされたオペレーティング・システムのＡＰＩ機能のためのアプリケーションによる呼び出しをし、
前記第１転送ステップは、プロセス間通信技術を介したアプリケーションのプロセス間でのデータ転送をし、
前記第２転送ステップは、コンピュータ・システムのソフトウェアコンポーネントとハードウェアコンポーネントとの間のデータ転送をし、
前記第３転送ステップは、コンピュータ・ネットワーク内のアプリケーションによるデータ転送をし、
前記第４転送ステップは、少なくとも１つの周辺にあるデータ入力装置からのアプリケーションへのデータ転送をする、
請求項９に記載のシステム。
【請求項１１】
前記周辺にあるデータ入力装置は、キーボードと、コンピュータマウスと、タッチスクリーンと、非接触タッチスクリーンコントローラのうち少なくとも１つを含む、
請求項１０に記載のシステム。
【請求項１２】
前記第１決定ステップは、傍受タイプと、第１識別子と、第２識別子と、先行イベントと、第３識別子と、データタイプと、データ量と、転送データのうち１つもしくは複数のパラメータを決定する方法であって、
前記傍受タイプは、傍受された各イベントのタイプで、
前記第１識別子は、コンピュータ・システムのオペレーティング・システムにおいて各傍受されたイベントを作成したアプリケーション又はプロセスの識別子で、
前記第２識別子は、オペレーティング・システムで各代行受信イベントを作成したアプリケーション又はサービスの識別子で、
前記先行イベントは、それぞれの傍受されたイベントに先行する少なくとも１つのイベントで、
前記第３識別子は、転送されたデータのデータ送信元とデータ受信元の識別子で、
前記データタイプは、転送されたデータのタイプで、
前記データ量は、転送されたデータの量で、
前記転送データは、直接的に転送されたデータである、
請求項９に記載のシステム。
【請求項１３】
前記第２決定ステップは、時間閾値と、パラメータ相関の少なくとも１つを決定し、
前記時間閾値は、第１の識別された傍受されたイベントの登録と第２の傍受されたイベントの登録との間に経過した時間の閾値で、
前記パラメータ相関は、前記２つの傍受イベントのパラメータは、現在の傍受されたイベントよりも前に登録された特定された傍受されたイベントのパラメータとの相関である、
請求項９に記載のシステム。
【請求項１４】
前記第３決定ステップは、ルール選択ステップと、係数計算ステップを備え、
前記ルール選択ステップは、ルールを表すために行列形式又はベクトル形式のうちの少なくとも１つを選択し、
前記係数計算ステップは、前記２つの傍受イベントのうちの１つのパラメータに基づいて、ルールの選択された表現に対する係数を計算する、
請求項９に記載のシステム。
【請求項１５】
前記第４決定ステップは、ヒューリスティック分析と、構造分析のうち少なくとも１つを備え、
前記ヒューリスティック分析では、コンピュータ・システムにおけるデータ転送の後に発生する動作、コンピュータ・ネットワークにおいて送信又は受信された動作の後のデータ、及びデータと動作との間の依存性のうち少なくとも１つを決定する、少なくとも１つのアプリケーションを分析し、
前記構造分析は、少なくとも１つのアプリケーションの構造及びコンピュータ・ネットワークにおけるデータ転送を担うコード、コンピュータ・システムにおける動作の実行、及びコンピュータ・ネットワークにおけるデータの送信又は受信を分析する、
請求項９に記載のシステム。
【請求項１６】
前記判定に応答して前記少なくとも１つのアプリケーションをブロックする第１ブロックステップを更に備え、
前記第１ブロックステップは、第２ブロックステップと、第１除去ステップと、第２除去ステップの少なくとも１つを備え、
前記第２ブロックステップは、少なくとも１つのアプリケーションとのコンピュータ・ネットワークにおけるデータ交換をブロックし、
前記第１除去ステップは、コンピュータ・システムのＲＡＭから少なくとも１つのアプリケーションを除去し、
前記第２除去ステップはコンピュータ・システムの情報媒体から少なくとも１つのアプリケーションを除去する、
請求項９に記載のシステム。
【請求項１７】
コンピュータが実施可能且つコンピュータ・システムのリモート管理を検出するコードを記憶した不揮発性コンピュータ可読媒体であって、命令を備え、
前記命令は、傍受ステップと、第１決定ステップと、第１識別ステップと、第２決定ステップと、第３決定ステップと、第４決定ステップと、第２識別ステップと、判定ステップとを実行するもので、
前記傍受ステップでは、前記コンピュータ・システムのプロセッサを介して、前記コンピュータ・システムにおいて発生した複数のイベントを傍受し、
前記第１決定ステップでは、各傍受イベントのパラメータを決定し、
前記第１識別ステップでは、前記決定されたパラメータに少なくとも基づいて、コンピュータ・ネットワーク内のアプリケーションによる第１データ転送又はコンピュータ・システムの周辺にあるデータ入力装置からのアプリケーションへの第２データ転送に関連するものとして識別し、
前記第２決定ステップでは、前記傍受された複数のイベントのうちの２つを、前記第１及び第２データ転送に関連する特定された傍受イベントに少なくとも基づいて、互いに依存するものとして決定し、
前記第３決定ステップでは、前記２つの傍受イベントのパラメータの依存関係を定義する第１ルールを決定し、
前記第４決定ステップでは、前記第１ルールと以前に作成された第２ルールとの類似度を決定し、
前記第２識別ステップでは、所定の閾値を超える類似度を検出した場合に、前記第１ルール及び前記第２ルールに少なくとも基づいて少なくとも１つのアプリケーションを識別し、
前記判定ステップでは、少なくとも１つのアプリケーションについて、リモート管理のためのアプリケーションか否かの判定を行う、
媒体。
【請求項１８】
前記複数のイベントは、呼び出しステップと、第１転送ステップと、第２転送ステップと、第３転送ステップと、第４転送ステップのうち、少なくとも１つを含み、
前記呼び出しステップは、コンピュータ・システムにインストールされたオペレーティング・システムのＡＰＩ機能のためのアプリケーションによる呼び出しをし、
前記第１転送ステップは、プロセス間通信技術を介したアプリケーションのプロセス間でのデータ転送をし、
前記第２転送ステップは、コンピュータ・システムのソフトウェアコンポーネントとハードウェアコンポーネントとの間のデータ転送をし、
前記第３転送ステップは、コンピュータ・ネットワーク内のアプリケーションによるデータ転送をし、
前記第４転送ステップは、少なくとも１つの周辺にあるデータ入力装置からのアプリケーションへのデータ転送をする、
請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記第２決定ステップは、時間閾値と、パラメータ相関の少なくとも１つを決定し、
前記時間閾値は、第１の識別された傍受されたイベントの登録と第２の傍受されたイベントの登録との間に経過した時間の閾値で、
前記パラメータ相関は、前記２つの傍受イベントのパラメータは、現在の傍受されたイベントよりも前に登録された特定された傍受されたイベントのパラメータとの相関である、
請求項１７に記載のコンピュータ可読媒体。
【請求項２０】
前記判定に応答して前記少なくとも１つのアプリケーションをブロックする第１ブロックステップを更に備え、
前記第１ブロックステップは、第２ブロックステップと、第１除去ステップと、第２除去ステップの少なくとも１つを備え、
前記第２ブロックステップは、少なくとも１つのアプリケーションとのコンピュータ・ネットワークにおけるデータ交換をブロックし、
前記第１除去ステップは、コンピュータ・システムのＲＡＭから少なくとも１つのアプリケーションを除去し、
前記第２除去ステップはコンピュータ・システムの情報媒体から少なくとも１つのアプリケーションを除去する、
請求項１７に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、サイバーセキュリティの分野に関し、より詳細には、コンピュータを不正なリモート管理から保護するためのシステム及び方法に関する。
【０００２】
過去１０年のコンピュータ技術の急速な発展と、さまざまな計算機器（パーソナルコンピュータ、ノートブック、タブレット、スマートフォン等）の広範な使用は、あらゆる可能な領域でこれらのデバイスを使用するための強力な刺激となった。膨大な数のタスク（インターネットサーフィンから銀行振込や電子文書トラフィックに至るまで）のために、これらのデバイス上で稼働する計算機器とソフトウェアの数の増加と平行して、悪意あるソフトウェアの量も急速に増加している。
【０００３】
現在、さまざまな種類の悪意あるプログラムに対応して、膨大な数の悪意あるプログラムの種類が存在する。その中には、ユーザのデバイス（ログインやパスワード、銀行の詳細、電子文書等）から個人及び機密データを盗むものもある。他にも、ブルートフォース方式を使ってパスワードを推測したり、サービス拒否（ＤｏＳ）攻撃（ＤＤＯＳ）等の攻撃を他のコンピュータやコンピュータ・ネットワークに対して開始するために、ユーザのデバイスからいわゆるボットネットを形成するものもある。さらに、攻撃的な広告、有料購読、有料電話番号へのテキストメッセージの送信等を通じて有料コンテンツをユーザに提供する。
【０００４】
例えば、悪意あるプログラムのある１つのグループは、感染したユーザのコンピュータ上でリモート管理を実行する可能性がある。そのようなプログラムがユーザのコンピュータにインストールされた後、管理者権限を取得してユーザの機密情報へのアクセスを許可したり、ユーザのコンピュータ上で何らかの操作を実行したり、コンピュータ・ネットワークを通じてハッカーに働きかける。例えば、上記の種類のプログラムの１つは、ハッカーが自分のコンピュータ上で実行している行動を被害者のコンピュータ上で複製することができる。
【０００５】
上記のプログラムを検出する複雑さは、しばしば明示的な形式で悪意ある行動を実行しないことが原因であることがある（例えば、データを破壊するのではなく、代わりにＤＤＯＳ攻撃等を構成する）。上記プログラムは、活動を一時的且つ不規則に実行する。また上記プログラム自身を管理者がクライアントコンピュータを制御するために使用する正当なアプリケーションとして提示する。
【０００６】
したがって、現在のアンチウイルスプログラムは、上記のプログラムの動作において悪意ある機能を認識しない可能性がある。また、既知のアンチウイルスプログラムは、リモート管理を実行するためにこれまで知られていない動作を持つアプリケーションを検出するタスクを処理できないことがある。又は遠隔管理を実現するアプリケーションは、それぞれのアプリケーションが完全に合法的な機能を有している。上記のアンチウイルスプログラムは、遠隔管理がユーザの許可で実行されているときに、悪意あるプログラムを検出したという誤ったアラームを生成する可能性がある。
【０００７】
本発明によれば、コンピュータを権限のない遠隔管理から保護するという問題を解決する。
【０００８】
本発明の一観点によれば、コンピュータで実施され且つコンピュータ・システムのリモート管理を検出する方法であって、傍受ステップと、第１決定ステップと、第１識別ステップと、第２決定ステップと、第３決定ステップと、第４決定ステップと、第２識別ステップと、分析ステップとを備え、前記傍受ステップでは、前記コンピュータ・システムのプロセッサを介して、前記コンピュータ・システムにおいて発生した１つ又は複数のイベントを傍受し、前記第１決定ステップでは、各傍受イベントのパラメータを決定し、前記第１識別ステップでは、前記決定されたパラメータに少なくとも基づいて、コンピュータ・ネットワーク内のアプリケーションによる第１データ転送又はコンピュータ・システムの周辺にあるデータ入力装置からのアプリケーションへの第２データ転送に関連するものとして識別し、前記第２決定ステップでは、前記傍受された２つのイベントを、前記第１及び第２データ転送に関連する特定された傍受イベントに少なくとも基づいて、互いに依存するものとして決定し、前記３決定ステップでは、前記２つの傍受イベントのパラメータの依存関係を定義する第１ルールを決定し、前記第４決定ステップでは、前記第１ルールと以前に作成された第２ルールとの類似度を決定し、前記第２識別ステップでは、所定の閾値を超える類似度を検出した場合に、前記第１ルール及び前記第２ルールに少なくとも基づいて少なくとも１つのアプリケーションを識別し、前記分析ステップでは、前記リモート管理アプリケーションを検出するための少なくとも１つのアプリケーションを分析する、方法が提供される。
【０００９】
好ましくは、前記１つ又は複数のイベントは、呼び出しステップと、第１転送ステップと、第２転送ステップと、第３転送ステップと、第４転送ステップのうち、少なくとも１つを含み、前記呼び出しステップは、コンピュータ・システムにインストールされたオペレーティング・システムのＡＰＩ機能のためのアプリケーションによる呼び出しをし、前記第１転送ステップは、プロセス間通信技術を介したアプリケーションのプロセス間でのデータ転送をし、前記第２転送ステップは、コンピュータ・システムのソフトウェアコンポーネントとハードウェアコンポーネントとの間のデータ転送をし、前記第３転送ステップは、コンピュータ・ネットワーク内のアプリケーションによるデータ転送をし、前記第４転送ステップは、少なくとも１つの周辺にあるデータ入力装置からのアプリケーションへのデータ転送をする。
【００１０】
好ましくは、前記周辺にあるデータ入力装置は、キーボードと、コンピュータマウスと、タッチスクリーンと、非接触タッチスクリーンコントローラのうち少なくとも１つを含む。
【００１１】
好ましくは、前記第１決定ステップは、傍受タイプと、第１識別子と、第２識別子と、先行イベントと、第３識別子と、データタイプと、データ量と、転送データのうち１つもしくは複数のパラメータを決定する方法であって、前記傍受タイプは、傍受された各イベントのタイプで、前記第１識別子は、コンピュータ・システムのオペレーティング・システムにおいて各傍受されたイベントを作成したアプリケーション又はプロセスの識別子で、前記第２識別子は、オペレーティング・システムで各代行受信イベントを作成したアプリケーション又はサービスの識別子で、前記先行イベントは、それぞれの傍受されたイベントに先行する少なくとも１つのイベントで、前記第３識別子は、転送されたデータのデータ送信元とデータ受信元の識別子で、前記データタイプは、転送されたデータのタイプで、前記データ量は、転送されたデータの量で、前記転送データは、直接的に転送されたデータである。
【００１２】
好ましくは、前記第２決定ステップは、時間閾値と、パラメータ相関の少なくとも１つを決定し、前記時間閾値は、第１の識別された傍受されたイベントの登録と第２の傍受されたイベントの登録との間に経過した時間の閾値で、前記パラメータ相関は、２つの傍受されたイベントのパラメータは、現在の傍受されたイベントよりも前に登録された特定された傍受されたイベントのパラメータとの相関である。
【００１３】
好ましくは、前記第３決定ステップは、ルール選択ステップと、係数計算ステップを備え、前記ルール選択ステップは、ルールを表すために行列形式又はベクトル形式のうちの少なくとも１つを選択し、前記係数計算ステップは、２つの傍受されたイベントのうちの１つのパラメータに基づいて、ルールの選択された表現に対する係数を計算する。
【００１４】
好ましくは、前記第４決定ステップは、ヒューリスティック分析と、構造分析のうち少なくとも１つを備え、前記ヒューリスティック分析では、コンピュータ・システムにおけるデータ転送の後に発生する動作、コンピュータ・ネットワークにおいて送信又は受信された動作の後のデータ、及びデータと動作との間の依存性のうち少なくとも１つを決定する、少なくとも１つのアプリケーションを分析し、前記構造分析は、少なくとも１つのアプリケーションの構造及びコンピュータ・ネットワークにおけるデータ転送を担うコード、コンピュータ・システムにおける動作の実行、及びコンピュータ・ネットワークにおけるデータの送信又は受信を分析する。
【００１５】
好ましくは、前記リモート管理アプリケーションの検出に応答して前記少なくとも１つのアプリケーションをブロックする第１ブロックステップを更に備え、前記第１ブロックステップは、第２ブロックステップと、第１除去ステップと、第２除去ステップの少なくとも１つを備え、前記第２ブロックステップは、少なくとも１つのアプリケーションとのコンピュータ・ネットワークにおけるデータ交換をブロックし、前記第１除去ステップは、コンピュータ・システムのＲＡＭから少なくとも１つのアプリケーションを除去し、前記第２除去ステップはコンピュータ・システムの情報媒体から少なくとも１つのアプリケーションを除去する。
【００１６】
本発明の一観点によれば、コンピュータ・システムのリモート管理を検出するシステムであって、前記コンピュータ・システムの少なくとも１つのプロセッサを備え、前記プロセッサは、傍受ステップと、第１決定ステップと、第１識別ステップと、第２決定ステップと、第３決定ステップと、第４決定ステップと、第２識別ステップと、分析ステップとを実行するように構成され、前記傍受ステップでは、前記コンピュータ・システムのプロセッサを介して、前記コンピュータ・システムにおいて発生した１つ又は複数のイベントを傍受し、前記第１決定ステップでは、各傍受イベントのパラメータを決定し、前記第１識別ステップでは、前記決定されたパラメータに少なくとも基づいて、コンピュータ・ネットワーク内のアプリケーションによる第１データ転送又はコンピュータ・システムの周辺にあるデータ入力装置からのアプリケーションへの第２データ転送に関連するものとして識別し、前記第２決定ステップでは、前記傍受された２つのイベントを、前記第１及び第２データ転送に関連する特定された傍受イベントに少なくとも基づいて、互いに依存するものとして決定し、前記３決定ステップでは、前記２つの傍受イベントのパラメータの依存関係を定義する第１ルールを決定し、前記第４決ステップでは、前記第１ルールと以前に作成された第２ルールとの類似度を決定し、前記第２識別ステップでは、所定の閾値を超える類似度を検出した場合に、前記第１ルール及び前記第２ルールに少なくとも基づいて少なくとも１つのアプリケーションを識別し、前記分析ステップでは、前記リモート管理アプリケーションを検出するための少なくとも１つのアプリケーションを分析する、システムが提供される。
【００１７】
本発明の一観点によれば、コンピュータが実施可能且つコンピュータ・システムのリモート管理を検出するコードを記憶した不揮発性コンピュータ可読媒体であって、命令を備え、前記命令は、傍受ステップと、第１決定ステップと、第１識別ステップと、第２決定ステップと、第３決定ステップと、第４決定ステップと、第２識別ステップと、分析ステップとを実行するもので、前記傍受ステップでは、前記コンピュータ・システムのプロセッサを介して、前記コンピュータ・システムにおいて発生した１つ又は複数のイベントを傍受し、前記第１決定ステップでは、各傍受イベントのパラメータを決定し、前記第１識別ステップでは、前記決定されたパラメータに少なくとも基づいて、コンピュータ・ネットワーク内のアプリケーションによる第１データ転送又はコンピュータ・システムの周辺にあるデータ入力装置からのアプリケーションへの第２データ転送に関連するものとして識別し、前記第２決定ステップでは、前記傍受された２つのイベントを、前記第１及び第２データ転送に関連する特定された傍受イベントに少なくとも基づいて、互いに依存するものとして決定し、前記３決定ステップでは、前記２つの傍受イベントのパラメータの依存関係を定義する第１ルールを決定し、前記第４決ステップでは、前記第１ルールと以前に作成された第２ルールとの類似度を決定し、前記第２識別ステップでは、所定の閾値を超える類似度を検出した場合に、前記第１ルール及び前記第２ルールに少なくとも基づいて少なくとも１つのアプリケーションを識別し、前記分析ステップでは、前記リモート管理アプリケーションを検出するための少なくとも１つのアプリケーションを分析する、媒体が提供される。
【００１８】
本発明の例示的な側面に係る上述の簡略化した概要は、本発明の基本的な理解を提供するように機能するものである。この概要は、全ての企図された側面の広範な概要ではなく、全ての側面の重要な又は重要な要素を特定することも本発明の任意の又は全ての側面の範囲を描写することも意図されていない。唯一の目的は、以下の本発明のより詳細な説明の前置きとして、１つ又は複数の側面を簡略化した形で提示することである。前述の目的を達成するために、本発明の１つ又は複数の側面が記載され、これは特に特許請求の範囲において主張される特徴を含むものである。
【図面の簡単な説明】
【００１９】
【図１】コンピュータを不正な遠隔管理から保護するための例示的なシステムの構造図を示す。
【図２】コンピュータを不正な遠隔管理から保護する例示的な方法のフローチャートを示す。
【図３】本明細書に開示されたシステム及び方法を実装することができる、パーソナルコンピュータ又はサーバ等の汎用コンピュータ・システムの例を示す。
【発明を実施するための形態】
【００２０】
本発明の様々な側面を説明する際に、多くの用語及び定義を使用する。当業者であれば、以下の説明は例示的なものに過ぎず、決して限定するものではないことを理解するであろう。他の側面は、本開示の利益を有する当業者に容易に示唆されるであろう。以下、添付の図面に例示されている例示的な実装形態を詳細に参照する。同一の符号は、図面全体にわたって可能な範囲で使用され、以下の説明は、同じ又は同様の項目を参照するために使用される。
【００２１】
コンピュータ・システムのイベントとは、コンピュータ・システム内のアプリケーションによって実行されるアクションのグループを指してもよい。
【００２２】
コンピュータ・システムのイベントのパラメータとは、コンピュータ・システムのイベントの様々な属性のグループを含んでもよい。
【００２３】
図１は、不正な遠隔管理からコンピュータを保護するための例示的なシステムの構造図を示す。このシステムは、アクティビティ分析モジュール１００、周辺にあるデータ入力装置１０１、コンピュータ・システム１０２、コンピュータ・ネットワーク１０３、パターン識別モジュール１１０、検索モジュール１２０、ルールライブラリ１２１、及び分析モジュール１３０を含む。
【００２４】
アクティビティ分析モジュール１００は、以下のように構成されてもよい。
・コンピュータ・システム１０２で発生するイベントであり、以下の少なくとも１つを含む傍受されたイベントを傍受する。
・コンピュータ・システム１０２にインストールされたオペレーティング・システムのＡＰＩ機能のアプリケーションによる呼び出し
・プロセス間通信技術を用いたアプリケーション間のデータ転送
・コンピュータ・システム１０２のソフトウェアコンポーネントとハードウェアコンポーネントとの間のデータ転送
・コンピュータ・ネットワーク１０３におけるアプリケーションによるデータ転送
・周辺にあるデータ入力装置１０１からのアプリケーションへのデータ転送
・傍受された各イベントのパラメータを決定する。
・傍受されたイベントの決定されたパラメータを、パターン識別モジュール１１０に送る。
【００２５】
イベントの傍受は、コンピュータ・システム１０２にインストールされたドライバを介して実行してもよい。
例えば、アプリケーションによって呼び出されるオペレーティング・システムのアプリケーションプログラミングインタフェース（ＡＰＩ）機能は、動作するための１つ又は複数の以下のＡＰＩ機能を含んでもよい。
・ＣｒｅａｔｅＦｉｌｅ、ＲｅａｄＦｉｌｅ、ＷｒｉｔｅＦｉｌｅ等のファイルの使用
・ソケット、接続、受信、送信等のコンピュータ・ネットワークの使用
・ＲｅａｄＰｒｏｃｅｓｓＭｅｍｏｒｙ、ＷｒｉｔｅＰｒｏｃｅｓｓＭｅｍｏｒｙ等のプロセスの使用
・ＰｏｓｔＭｅｓｓａｇｅ、ＳｅｎｄＭｅｓｓａｇｅ等のＷｉｎｄｏｗｓイベントの使用
例えば、コンピュータ・システム１０２のハードウェアコンポーネントは、以下のうちの少なくとも１つを含んでもよい。
・ＣＤ−ＲＷドライブ、ＤＷＤ−ＲＷドライブ、ＢＤ−ＲＥドライブ等のオプティカルドライブ等の外部情報メディア
・グラフィックスアダプタ
・ゲームコントローラ
【００２６】
周辺にあるデータ入力装置１０１は、以下のうちの少なくとも１つを含んでもよい。
・キーボード
・コンピュータマウス
・タッチスクリーン
・非接触タッチスクリーンコントローラ
例えば、周辺にあるデータ入力装置１０１からアプリケーションに転送されるデータは、以下のうちの少なくとも１つを含んでもよい。
・キーボードから入力されたテキスト
・コンピュータマウス又はタッチスクリーンを介して実行されるカーソル移動の座標
・非接触タッチスクリーンコントローラによって受信される画像
イベントパラメータは、以下のうちの少なくとも１つを含んでもよい。
・イベントの種類
・オペレーティング・システムのイベント（プロセス識別子、ＰＩＤ）を作成したアプリケーション又はプロセスの識別子
・オペレーティング・システムでイベント（グローバル一意識別子、ＧＵＩＤ）を作成したアプリケーション又はサービスの識別子
・上記のイベントの前のイベント
・データが転送される場合：
・データ送信元及びデータ受信元の独自の識別子であって、これには次のうち少なくとも１つを含んでもよい。
・コンピュータ・ネットワーク１０３内のデータ伝送に関与するサーバのネットワークアドレス
・コンピュータ・システム１０２のハードウェアコンポーネントのタイプ
・転送されるデータのタイプ
・転送されるデータの量
・直接転送されるデータ
例えば、イベントの種類は数値であってもよく、０ｘ００は未知の種類のイベントに対応し、０ｘ０１はオペレーティング・システムのＡＰＩ機能のアプリケーションによる呼び出しを意味し、０ｘ０２はアプリケーションのプロセス間のデータ転送を意味し、０ｘ０３は周辺にあるデータ入力装置１０１等からのアプリケーションへのデータ転送を意味する、等である。
【００２７】
イベントのタイプは、少なくともコンピュータ・システム１０２にインストールされたドライバのどれがイベントを傍受したかに基づいて決定してもよい。例えば、イベントがキーボードドライバによって傍受された場合、そのイベントは、周辺にあるデータ入力装置１０１からのアプリケーションへのデータの転送に割り当てられる。したがって、傍受されるイベントのタイプは０ｘ０３に等しくてもよい。イベントがコンピュータ・ネットワーク１０３内のデータを転送するように設計されたネットワークデバイスのドライバによって傍受された場合、そのイベントはコンピュータ・ネットワーク１０３内のアプリケーションによるデータ転送に割り当てられる。したがって傍受されるイベントのタイプは０ｘ０４に等しくてもよい。すなわち、コンピュータ・システム１０２における同じイベントは、異なるドライバによって傍受され、結果として、同時にいくつかのタイプのイベントを含む可能性がある。例えば、ＩＰＣの補助によりアプリケーションからアプリケーションにデータを転送するイベントは、アプリケーションによって、イベントタイプ０ｘ０１を有するオペレーティング・システムのＡＰＩ関数（ＲｅａｄＰｒｏｃｅｓｓＭｅｍｏｒｙ、ＷｒｉｔｅＰｒｏｃｅｓｓＭｅｍｏｒｙ）を呼び出し、またイベントタイプ０ｘ０２を有するプロセス間通信技術を使用するアプリケーションのプロセス間のデータ転送イベントでもある。
例えば、特定のイベントがお互いに続いてもよい。
・キーボード１０１からのテキストのＭｉｃｒｏｓｏｆｔＬｙｎｃ（イベント＃１）とローカルエリアコンピュータ・ネットワーク１０３（イベント＃２）による同じテキストのその後の転送
・アプリケーションｒｅｃｖ（イベント＃１）のアプリケーションＲｅｍｏｔｅＡｄｍｉｎを呼び出し、関数ＷｒｉｔｅＰｒｏｃｅｓｓＭｅｍｏｒｙ（イベント＃２）のアプリケーションＲｅｍｏｔｅＡｄｍｉｎを呼び出す
例えば、転送されるデータは、以下のタイプのうちの少なくとも１つを含んでもよい。
・ビデオクリップやオーディオレコーディング等のメディアデータ
・画像
・ページのＨＴＭＬコード、ＣＳＳスタイルシート等のインターネットページのコンポーネント
・データライブラリ
・アーカイブされたデータ
・周辺にあるデータ入力装置１０１から得られた行データ等の非構造化データ
【００２８】
転送されたデータのタイプを含む傍受されたイベントのパラメータは、そのイベントを傍受したドライバによって決定されてもよい。異なるイベントを傍受するように設計されたドライバは、同一のデータに対して異なる種類のイベントを決定してもよい。例えば、ユーザは、キーボード１０１を用いて、ワードプロセッサＮｏｔｅｐａｄ＋＋のフィールドにＪａｖａＳｃｒｉｐｔコードを含むテキストを入力する。キーボードドライバは、キーボード１０１からアプリケーションＮｏｔｅｐａｄ＋＋のプロセスへのデータ転送のイベントを傍受し、転送されたデータをフォーマットされていないテキスト、すなわち特定の文字セットとして解釈してもよい。その結果、ＡＰＩ関数呼び出しのドライバは、アプリケーションＮｏｔｅｐａｄ＋＋のプロセスの特定の仮想アドレスに書き込まれたデータを傍受し、インターネットウェブページの適切にフォーマットされたＨＴＭＬコード、すなわち特定のパラメータを有するタグのセットとして解釈してもよい。
【００２９】
パターン識別モジュール１１０は、以下のように構成されてもよい。
・コンピュータ・ネットワーク１０３内のアプリケーションによるデータ転送イベント、及び周辺にあるデータ入力装置１０１からアプリケーションへのデータ転送が発生したイベントのうち少なくとも１つの傍受されたイベントを、少なくとも１つの傍受されたイベントの受信されたパラメータ解析に基づいて特定する。
・傍受されたイベントのうち、識別されたイベントに依存する少なくとも１つのイベントについて、少なくとも以下のうち少なくとも１つによって前記傍受されたイベントの前記識別されたイベントへの依存性を決定する。
・識別されたイベントの登録とその後の傍受されたイベントの登録との間に経過した時間が、以前に確立された時間閾値よりも小さい事
・傍受されたイベントのパラメータは、前記の傍受されたイベントよりも前に登録された識別されたイベントのパラメータと相関する事
・少なくとも１つの決定されたイベントについて、識別されたイベントのパラメータに対する決定されたイベントのパラメータの依存性を記述するルールを形成する。
・決定されたイベントに関する情報と共に形成されたルールを検索モジュール１２０に送る。
【００３０】
傍受されたイベントの中のイベントの識別は、以下のうちの少なくとも１つに基づいて行われてもよい。
・イベントの種類
・アプリケーションの独自の識別子又はイベントを作成したアプリケーションのプロセス
例えば、以下の５つのイベントは傍受されてもよい。
（１）ＡＰＩ関数ｒｅｃｖのアプリケーションＲｅｍｏｔｅＡｄｍｉｎによる呼び出し
（２）ＡＰＩ関数ｓｅｎｄのアプリケーションＬｙｎｃによる呼び出し
（３）アプリケーションＲｅｍｏｔｅＡｄｍｉｎからアプリケーションＬｙｎｃへのテキストデータの転送
（４）キーボード１０１からアプリケーションＬｙｎｃへのテキストデータの転送
（５）アプリケーションＲｅｍｏｔｅＡｄｍｉｎからコンピュータ・ネットワーク１０３内のリモートサーバへのテキストデータの転送
傍受されたイベントのうち、周辺にあるデータ入力装置１０１及びコンピュータ・ネットワーク１０３内のデータ転送に関するイベント、すなわち（４）キーボード１０１からアプリケーションＬｙｎｃへのテキストデータの転送、（５）アプリケーションＲｅｍｏｔｅＡｄｍｉｎからコンピュータ・ネットワーク１０３内のリモートサーバへのテキストデータの転送を識別してもよい。識別されたイベント（４）及び（５）を使用して、ＡＰＩ関数ｓｅｎｄ（３）のアプリケーションＬｙｎｃによる呼び出しの事象が決定されてもよく、転送されるデータのタイプ（テキスト）及びデータ転送が発生するサーバのネットワークアドレス等、ＡＰＩ関数ｓｅｎｄにより呼び出されるコンピュータ・ネットワーク１０３内のデータ転送のパラメータは、データタイプ（テキスト）等のイベント（４）のパラメータの変更、及びコンピュータ・ネットワーク１０３においてデータ転送が生じるサーバのインターネットプロトコル（ＩＰ）アドレス等のイベント（５）に依存する。
【００３１】
１つのイベントのパラメータの別のイベントのパラメータへの依存性を記述するルールは、少なくとも以下を含んでもよい。
・以下のように表される線形変換行列Ｔ：
【数１】
0006400758.tif 000002
【数２】
0006400758.tif 000003
ここでＰ１は以下のように表現されるイベント＃１のパラメータのセットである
【数３】
0006400758.tif 000004
Ｐ２は以下のように表現されるイベント＃２のパラメータのセットである。
【数４】
0006400758.tif 000005
・以下のように表される関数Ｐ２の係数のセット
【数５】
0006400758.tif 000006
ここでＰ１はイベント＃１のパラメータ、Ｐ２はイベント＃２のパラメータである。
【００３２】
あるイベントのパラメータの別のイベントのパラメータへの依存性を記述するルールの定式化は、以下の少なくとも１つを含むことができる。
・以下のルールを表現する方法の少なくとも１つを選択する。
・行列を用いる形式：この場合は１つのパラメータの別のパラメータへの依存性は、行列を用いた演算を介して表現することができる。
・ベクトルを用いる形式：この場合は１つのパラメータの別のパラメータへの依存性は、係数のセットを用いた演算によって表現することができる。
・イベントの指定されたパラメータに対して選択された表現に使用される係数を計算する。
検索モジュール１２０は、以下のように構成されてもよい。
・少なくとも１つの以前に作成されたルールとの類似度を、少なくとも前記ルールの比較に基づいてルールライブラリ１２１から決定する。前記ルールは、遠隔操作中のコンピュータ・システム１０２で発生するイベントのパラメータの依存性を定義することができる。
・決定された類似度が確立された閾値を超える場合、アクティビティ分析モジュール１００によって傍受されたイベントを作成した少なくとも１つのアプリケーションを決定し、そのパラメータは、パターン識別モジュール１１０によって取得されたルールを定式化するために使用されてもよく、予め定められた少なくとも１つのルールとの類似性の判定された値が、確立された閾値より高くてもよい。
・少なくとも１つの決定されたアプリケーションを識別する情報を分析モジュール１３０に送信する。
【００３３】
事前に作成されたルールは、パターン識別モジュール１１０から得られたルールの係数に基づいて、ルールライブラリ１２１から選択してもよい。
事前に作成されたルールは、以下のようにパターン識別モジュール１１０によって定式化されたルールと同じ方法で作成されてもよい。
ａ）既知の遠隔管理アプリケーションが以前にインストールされたコンピュータ・システムにおいて、様々なイベントを傍受する。
ｂ）インターセプトされたイベントについて、イベントのパラメータを決定する。
ｃ）少なくともステップａ）で傍受された事象について前のステップで決定されたパラメータの分析に基づいて、コンピュータ・ネットワークにおける前記遠隔管理アプリケーションによるデータ転送のイベント及び周辺にあるデータ入力装置からの前記遠隔管理アプリケーションへのデータ転送のイベントを、前記イベントの中から特定する。
ｄ）ステップа）で傍受されたイベントのうち、前のステップで特定されたイベントに依存する可能性のある少なくとも１つのイベントを決定する。
ｅ）前のステップで決定された少なくとも１つのイベントについて、前のステップで決定されたイベントのパラメータの、ステップｃ）で特定されたイベントのパラメータへの依存性を定義するルールを決定して作成する。
【００３４】
ルールの比較は、少なくとも確立された閾値と以下の値との比較を含んでもよい。
・以下のように、比較されるルールを記述する関数の畳み込みの結果を表す値。
【数６】
0006400758.tif 000007
ここでｆ１はルール＃１を数学的に表現する関数であり、ｆ２はルール＃２を数学的に表現する関数である。
ルールは、入力データと出力データとの間の所定の関係を含んでいてもよく、ここでいう所定の（決定性がある）とは関係が明確に定義され、曖昧性や不確実性が許容されないということである。したがって、ルールは、入力データと出力データとを関連付ける特定の関数ｆによって数学的に表現されてもよい
・以下のように、比較されるルールを記述する行列の要素のセットから構成される配列のたたみ込みの結果から成る値。
【数７】
0006400758.tif 000008
ここで｛ａｋ｝は以下のように表現される、ルール＃１を数学的に表現する行列Ａの要素のセットである。
【数８】
0006400758.tif 000009
｛ｂｋ｝は以下のように表現される、ルール＃２を数学的に表現する行列Ｂの要素のセットである。
【数９】
0006400758.tif 000010
ルールは入力データと出力データとの間に所定の関係を含んでもよいため、入力データを出力データに変換する行列Ａによって数学的に表現することができる。
【００３５】
類似度は、少なくとも次のように決定された数を含んでもよい。
・２つのベクトルのスカラー積。各ベクトルは比較されるルールの係数の集合。
・事前に決定された畳み込みのパラメータの値。
例えばルール＃１がａ１＝０．１０，ａ２＝０．３，ａ３＝０．１７という三つの係数で記述され、ルール＃２がｂ１＝０．５，ｂ２＝０．９，ｂ３＝０．２１というルールで記述される場合、コンピュータ・ネットワーク１０３で受信されたデータの量に関連して、コンピュータ・ネットワーク１０３で送信されたデータの量の変化の関数を以下のように特徴付ける。
【数１０】
0006400758.tif 000011
ここでｙはコンピュータ・ネットワーク１０３で送信されるデータの量を表し、ｘはコンピュータ・ネットワーク１０３で受信されたデータの量を表し、｛ｐ｝は係数のセットを表す。
ルール＃１と＃２の類似度は以下のように計算されてもよい。
【数１１】
0006400758.tif 000012
この式は前述の場合においてｗ＝０．０４３４を与える。ｗ＝０．０の場合、ルールは同一であり、ｗ＝１．０の場合、ルールは異なる可能性がある。ルールの類似性の基準として、確立された閾値ｗｔｈｒｅｓｈｏｌｄ＝０．１を用いる。したがって、上記の比較したルール＃１及び＃２は類似している可能性がある。
【００３６】
検索モジュール１２０によって決定された少なくとも１つのアプリケーションを識別する情報は、以下のうちの少なくとも１つを含んでもよい。
・アプリケーション又はアプリケーションによって作成されたプロセスの独自の識別子
・実行可能アプリケーションファイルへのパス
・アプリケーションの名前
【００３７】
分析モジュール１３０は以下のように構成されてもよい。
・受け取った情報から識別されたアプリケーションを分析する。ここで、周辺にあるデータ入力装置１０１からのデータ転送のイベントのパラメータに関するコンピュータ・ネットワーク１０３内の前述のアプリケーションによるデータ転送のイベントのパラメータの依存性は、分析中に決定される。
・少なくとも分析中の依存関係の存在に基づいて、リモート管理アプリケーションの検出に関する判定を行う。
・遠隔管理アプリケーションの検出に関して判明した判定の結果に基づいて、前述のアプリケーションをブロックする。
【００３８】
アプリケーションの分析は、以下のうちの少なくとも１つを含んでもよい。
・アプリケーションのヒューリスティック分析。その間、次のことが決定される。
・周辺にあるデータ入力装置１０１からどのデータを転送するか。
・コンピュータ・システム１０２におけるデータ転送後にどのような動作が起こるか。
・この後にどのデータがコンピュータ・ネットワーク１０３において送信又は受信されるか
・決定されたデータとアクションとの間の依存性
・アプリケーションの構造及びデータの転送を担うコードの検索の分析
・コンピュータ・ネットワーク１０３におけるデータの転送
・コンピュータ・システム１０２における動作の実行
・コンピュータ・ネットワーク１０３におけるデータの送信又は受信
例えば、アプリケーションの構造を分析する際に、以下の原因となる実行可能コードを検索してもよい。
・コンピュータ・ネットワーク１０３におけるデータの送信又は受信。
・コンピュータ・システム１０２における動作の実行。
ただし、周辺にあるデータ入力装置１０１からのデータの受信には関連していないもの、またそれは以下のような疑似コードによって定義されてもよい。
ｒｅｃｖ（＜ｓｅｒｖｅｒ＞、＜ｃｏｍｍａｎｄ＞）
ｓｗｉｔｃｈ（＜ｃｏｍｍａｎｄ＞）
ｃａｓｅ＜ａｃｔｉｏｎ−ｉｄ＞：＜ａｃｔｉｏｎ＞
．．．
ｃａｓｅ＜ａｃｔｉｏｎ−ｉｄ＞：＜ａｃｔｉｏｎ＞
このようなアプリケーション作業の編成は、コンピュータ・ネットワーク１０３内のサーバとデータを交換し、コンピュータ・システム１０２内でアクションを実行し、周辺にあるデータ入力装置１０１から受信しているデータを何ら処理することがない遠隔管理アプリケーションの特徴としてもよい。
【００３９】
アプリケーションのブロックは、以下のうち少なくとも１つを含んでもよい。
・アプリケーションの関与を伴ってコンピュータ・ネットワーク内のデータ交換をブロックする
・ＲＡＭからのアプリケーションの削除
・コンピュータ・システム１０２を構成する情報媒体（ハードドライブ等）からのアプリケーションの削除
例えば、アプリケーションＲｅｍｏｔｅＡｄｍｉｎが遠隔管理アプリケーションであると判定された場合、分析モジュール１３０は、ネットワーク・パケットがコンピュータ・ネットワーク１０３のサーバに、及びサーバから遠隔管理アプリケーションに送信されないように、ファイアウォールを設定することができる（例えば、対応する動作パラメータを割り当てる等）。したがって、ＲｅｍｏｔｅＡｄｍｉｎアプリケーションは、コンピュータ・システム１０２内では機能することができるが、コンピュータ・ネットワーク１０３内でコマンドを受信したりデータを送信したりすることができず、アプリケーションが安全なアプリケーションであることを示すことができる。
【００４０】
本発明の態様によれば、少なくとも正当なアプリケーションＲｅｍｏｔｅＡｄｍｉｎ及び悪意あるアプリケーションＢａｃｋｄｏｏｒ．Ｗｉｎ３２．Ａｇｅｎｔの２つの遠隔管理アプリケーションがインストールされるコンピュータ・システム１０２を含む遠隔管理をブロックするためのシステムが考えられる。アプリケーションＲｅｍｏｔｅＡｄｍｉｎは、ユーザのコンピュータのリモート管理を目的としている場合があり、その間ユーザはこのアプリケーションの制御に参加し、その作業を監視することができる。アプリケーションＢａｃｋｄｏｏｒ．Ｗｉｎ３２．Ａｇｅｎｔも同様に、ユーザのコンピュータのリモート管理を目的としている場合もあるが、ＲｅｍｏｔｅＡｄｍｉｎとは異なり、インターフェース要素のデモンストレーションを通じて周辺装置のデータ入力装置１０１からのデータを受信せずに、秘密にユーザの許可なしに行うことができる。
【００４１】
アプリケーションＲｅｍｏｔｅＡｄｍｉｎの作動中、アクティビティ分析モジュール１００は、以下のイベントを傍受することができる。
・ユーザがアプリケーションの作業をセットアップすることができる場合、コンピュータマウス１０１からＲｅｍｏｔｅＡｄｍｉｎアプリケーションへのデータの転送
・ｓｏｃｋｅｔ、ｓｅｎｄ、ｒｅｃｖ等のサーバとのネットワーク接続を確立することに関連する関数の呼び出し
・ＳｅｎｄＭｅｓｓａｇｅ、ＳｅｎｄＤｌｇＩｔｅｍＭｅｓｓａｇｅ等の、コンピュータ・システム１０２内で動作するアプリケーションへのメッセージの送信に関連する機能の呼び出し。
・ローカルエリアコンピュータ・ネットワーク１０３を介したサーバからのデータの受信。
すべての傍受されたイベントについて、以下からイベントのパラメータを選ぶことができる。
・カーソルの座標及びコンピュータマウス１０１上で押されたキーの識別子。
・接続が確立されるサーバのネットワークアドレス。
・サーバーから受信しているデータ量。
・次のような他のアプリケーションに送信されるメッセージの種類。
・アプリケーションの識別子
・メッセージの識別子
・メッセージのコンテキストでアプリケーションに送信されるデータ
【００４２】
イベントのパラメータが選別された後、パターン識別モジュール１１０は、以前に傍受されたアプリケーションＲｅｍｏｔｅＡｄｍｉｎのイベントから、コンピュータ・ネットワーク１０３におけるデータ転送の事象、及び周辺にあるデータ入力装置１０１からのデータ転送の事象を識別してもよい。これらのイベントは、ネットワーク接続が以前に確立されている可能性のあるサーバからのデータの送受信、及びユーザがそのアプリケーションの作業をセットアップしているときにコンピュータマウス１０１からＲｅｍｏｔｅＡｄｍｉｎアプリケーションへのデータ転送のイベントである。
【００４３】
次に、パターン識別モジュール１１０は、残りの傍受されたイベントから、以前に識別されたイベントに依存し得るイベントを決定してもよい。これは、サーバから受信したデータをコンピュータ・システム１０２内で動作するアプリケーションに送信するためのＳｅｎｄＭｅｓｓａｇｅ関数を呼び出すイベントであることを示す。アプリケーションに送信されるこのタイプのメッセージは、例えば、コンピュータマウスで実行されたユーザのアクション等、ＲｅｍｏｔｅＡｄｍｉｎアプリケーションの設定に依存してもよく、アプリケーションに送信されるデータは、コンピュータ・ネットワーク１０３を通じてサーバから受信したデータに依存してもよい。決定されたイベントのパラメータの、以前に識別されたイベントに対する依存性は、以下の形式で表現されてもよい。
【数１２】
0006400758.tif 000013
ここでＴはアプリケーションＲｅｍｏｔｅＡｄｍｉｎによってコンピュータ・システム１０２にインストールされた他のアプリケーションに送信されるメッセージのタイプであり、ＰはアプリケーションＲｅｍｏｔｅＡｄｍｉｎによってコンピュータ・システム１０２にインストールされた他のアプリケーションに送信されるデータの量であり、Ｍは、コンピュータマウス１０１の動きのパラメータであり、Ｄは、サーバからコンピュータ・ネットワーク１０３を介してアプリケーションＲｅｍｏｔｅＡｄｍｉｎによって受信されたデータの量であり、｛Ｋ｝は係数のセットである。
【００４４】
サーバからアプリケーションに受信されたデータの送信のための関数ＳｅｎｄＭｅｓｓａｇｅを呼び出すイベントについて得られた依存性に少なくとも基づいて、上記の決定された依存性を定義するルールを定式化することができる。例えば、［数１２］に示した依存性を表す式においては、係数はｋ１＝０．８５，ｋ２＝０．１９，ｋ３＝０．２１，ｋ４＝０．４７と計算される。
【００４５】
検索モジュール１２０は、例えばコンピュータ・システム１０２にインストールされたアプリケーションに送信されたメッセージのタイプや、メッセージの補助により前記アプリケーションによって送信されたデータ量といった、事前に定式化されたルールと同じパラメータによって記述された依存性を示すルールを、ルール１２１のライブラリから決定したり選択してもよい。前記二つのルールに決定されても良く、係数はそれぞれ以下に等しい。
・ｋ１１＝０．７１，ｋ１２＝０．１９，ｋ１３＝０．３１，ｋ１４＝０．９７
・ｋ２１＝０．８５，ｋ２２＝０．６５，ｋ２３＝０．０１，ｋ２４＝０．４７
【００４６】
ルールが選択された後、検索モジュール１２０は、公式化されたルールと選択されたルールとの類似度係数を以下のように決定してもよい。
・ｗ１＝１．１６０６
・ｗ２＝１．０６９
前記決定されたルールと前記選択されたルールとの類似度の前記決定された係数の平均値である類似性の合計係数は以下のようになる。
・ｗ＿ｔｏｔａｌ＝１．１１４８
確立された閾値としてｗ＿ｔｈｒｅｓｈｏｌｄ＝１．５が与えられると、得られた類似度ｗｔｏｔａｌ＝１．１１４８は傍受された事象が遠隔管理されているコンピュータ・システムの事象として分類されない可能性があり、結果としてアプリケーションＲｅｍｏｔｅＡｄｍｉｎが正当である可能性がある。
【００４７】
アプリケーションＢａｃｋｄｏｏｒ．Ｗｉｎ３２．Ａｇｅｎｔの作業中、アクティビティ分析モジュール１００は、以下のイベントを傍受してもよい。
・ソケット、送信、受信等のサーバとのネットワーク接続の確立に関連する機能の呼び出し
・ＳｅｎｄＭｅｓｓａｇｅ、ＳｅｎｄＤｌｇＩｔｅｍＭｅｓｓａｇｅ等の、コンピュータ・システム１０２で動作するアプリケーションへのメッセージの送信に関連する機能の呼び出し
・ＯｐｅｎＰｒｏｃｅｓｓ、ＲｅａｄＰｒｏｃｅｓｓＭｅｍｏｒｙ等のコンピュータ・システム１０２にインストールされた他のアプリケーションによって占有されているメモリ領域からのデータの受信に関する機能の呼び出し
・コンピュータ・ネットワーク１０３を介したサーバからのデータの受信
・コンピュータ・ネットワーク１０３を介したサーバへのデータの送信
全ての傍受されたイベントについて、以下からイベントのパラメータを選択してもよい。
・接続が確立されるサーバのネットワークアドレス
・サーバーから受信しているデータ量
・サーバーに送信されるデータの量
・次のような他のアプリケーションに送信されるメッセージの種類
・アプリケーションの識別子
・メッセージの識別子
・メッセージのコンテキストでアプリケーションに送信されるデータ
・データの読み取りが発生するメモリ領域を占有するアプリケーションの識別子
・データの読み取りが発生するメモリ領域のパラメータ
【００４８】
イベントのパラメータが決定された後、パターン識別モジュール１１０は、前に傍受されたアプリケーションＢａｃｋｄｏｏｒ．Ｗｉｎ３２Ａｇｅｎｔのイベントから、コンピュータ・ネットワーク１０３におけるデータ転送のイベント、及び周辺にあるデータ入力装置１０１からのデータ転送のイベントを識別してもよい。例えば、これらは、ネットワーク接続が以前に確立されたサーバからのデータの送信及び受信のイベントを含むことができるが、周辺にあるデータ入力装置１０１からのデータの送信のイベントが特定されることはない。具体的には、イベントは事前に確立された時間閾値よりも遅れることなく、ある事象が別の事象の後に続く場合に互いに関連し得る。イベント間で事前に確立された時間閾値よりも大きい時間が経過した場合であっても、後のイベントのパラメータが以前のイベントのパラメータと相関する場合、イベント同士は依存関係がある可能性がある。
【００４９】
パターン識別モジュール１１０は、さらに、残りの傍受されたイベントから、少なくとも（イベント＃２がイベント＃１が発生した後の指定された時間よりも遅れて発生しないといった時間的な）基準に基づいて識別されたイベントに依存するイベントを決定してもよい。  １）サーバから受信したデータをコンピュータ・システム１０２内で実行中のアプリケーションに送信するためのＳｅｎｄＭｅｓｓａｇｅ機能の呼び出しのイベント。前記の例では、アプリケーションに送信されるイベントのタイプは、サーバからコンピュータ・ネットワーク１０３を介してＢａｃｋｄｏｏｒ．Ｗｉｎ３２Ａｇｅｎｔによって受信されたデータの量に依存してもよい。各イベントは、それ自体の、しばしば個々の容量のデータがコンピュータ・ネットワークを介して送信されること、すなわちタイプＴとタイプＤの依存性が常に発生することによって特徴付けられる。従って、以前に識別されたイベントに対する決定されたイベントのパラメータの依存性は、以下のように線形形式で表すことができる。
【数１３】
0006400758.tif 000014
ここでＴはアプリケーションＢａｃｋｄｏｏｒ．Ｗｉｎ３２Ａｇｅｎｔによってコンピュータ・システム１０２にインストールされた他のアプリケーションに送信されるメッセージのタイプであり、Ｄはサーバからコンピュータ・ネットワーク１０３を介してアプリケーションＢａｃｋｄｏｏｒ．Ｗｉｎ３２Ａｇｅｎｔによって受信されたデータの量であり、｛Ｋ｝は係数の集合である。
サーバからアプリケーションに受信されたデータを送信するための関数ＳｅｎｄＭｅｓｓａｇｅを呼び出すイベントについて得られた依存性に基づいて、前記の決定された依存性を定義するルールを定式化することができ、例えば［数１３］の係数の数値は以下のように計算することができる。
・ｋ１＝０．９７
・ｋ２＝０．８９
【００５０】
２）コンピュータ・システム１０２にインストールされたアプリケーションによって占有されるメモリ領域から（ＲｅａｄＰｒｏｃｅｓｓＭｅｍｏｒｙ関数を呼び出すことによって）データを読み出すイベント。１つの側面によれば、読み取られるデータの量は、コンピュータ・ネットワーク１０３内のサーバからＢａｃｋｄｏｏｒ．Ｗｉｎ３２Ａｇｅｎｔによって受信されたメモリアドレスに依存してもよい。例えば、以前に識別されたイベントに対する決定されたイベントのパラメータの依存性は、以下の形式で表現してもよい。
【数１４】
0006400758.tif 000015
ここでＤはメモリアドレスＡで読み出されたデータの量であり、Ａは、コンピュータ・ネットワーク１０３内のサーバからＢａｃｋｄｏｏｒ．Ｗｉｎ３２Ａｇｅｎｔによって取得されたデータが格納されているメモリアドレスであり、｛Ｋ｝は係数のセットである。
関数ＲｅａｄＰｒｏｃｅｓｓＭｅｍｏｒｙを呼び出すイベントに対して得られた依存性に少なくとも基づいて、前記の決定された依存性を定義するルールを定式化することができ、例えば、［数１４］の係数の数値は以下のように計算することができる。
・ｋ１＝０．４７
・ｋ２＝０．９８
・ｋ３＝１．４３
【００５１】
検索モジュール１２０は、以前に公式化されたルールと同じパラメータの依存性を記述するルールのルール１２１のライブラリから、決定し選択してもよい。例えば、係数はそれぞれ以下に等しい。
・ｋ１＝０．９９，ｋ２＝０．８７
・ｋ１＝０．５３，ｋ２＝０．９８，ｋ３＝１．２１
ルールが選択された後、検索モジュール１２０は、公式化されたルールと選択されたルールとの類似度の係数を以下のように決定してもよい。
・ｗ１＝１．７３４６
・ｗ２＝２．９３９８
公式化されたルールと選択されたルールとの類似度の上記決定された係数の平均値である類似性の合計係数は以下のようになる。
・ｗｔｏｔａｌ＝２．３３７２
確立された閾値としてｗｔｈｒｅｓｈｏｌｄ＝１．５が与えられれば、得られた類似度ｗｔｏｔａｌ＝２．３３７２は、傍受されたイベントが遠隔的に管理されているコンピュータ・システムのイベントとして分類され得ることを示す。
【００５２】
上記与えられた公式は単なる例であり、特定の実施例であり、得られた傍受事象のパラメータを経験的に記述している任意の数式を使用して、ルールの類似度係数を計算することができることを理解されたい。
【００５３】
その後、分析モジュール１３０は、アプリケーションの構造の分析を実行し、以下に関する実行可能なコードを決定する。
・コンピュータ・ネットワーク１０３におけるデータの送信又は受信
・コンピュータ・システム１０２における動作の実行
ただし、以下には関連しないコードとする。
・周辺にあるデータ入力装置１０１からのデータの受信
【００５４】
必要な機能を備えたアプリケーションの実行可能コードの検索は、以下のようにして行ってもよい。
１．アプリケーションの解析されるコードのセグメントは、例えば、機械コードから（例えば、プログラミング言語のアセンブラの）コマンドのセットに翻訳される。
２．結果のコマンドのセットでは、必要な機能を担うコマンドに対して検索を実行する。例えば、コンピュータ・ネットワークへのデータの送信は、ＡＰＩ関数の送信等によって行う。
３．コマンドに送信されているパラメータを決定し、分析する。
４．パラメータが、例えば、所与のサーバへのデータの送信等の確立された条件を満たしている場合、分析されたコードセグメントが要求された機能性を担うことが考えられる。
そのようなコードは特定され、その擬似コードは以下のようになっている。
ｒｅｃｖ（＜ｓｅｒｖｅｒ＞，＜ｃｏｍｍａｎｄ＞）
ｓｗｉｔｃｈ（＜ｃｏｍｍａｎｄ＞）
ｃａｓｅ'ｋｉｌｌａｐｐ'：＜ｃｌｏｓｅｓ  ｔｈｅ  ａｐｐｌｉｃａｔｉｏｎ  ｒｕｎｎｉｎｇ  ｉｎ  ｔｈｅ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  １０２＞
ｃａｓｅ'ｓｅｎｄｐａｓｓｗｏｒｄｓ'：＜ｓｅｎｄｓ  ｐａｓｓｗｏｒｄｓ  ｄｉｓｃｏｖｅｒｅｄ  ｏｎ  ｔｈｅ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  １０２  ｔｈｒｏｕｇｈ  ｔｈｅ  ｃｏｍｐｕｔｅｒ  ｎｅｔｗｏｒｋ  １０３＞
このようなアプリケーションの動作の編成は、コンピュータ・ネットワーク１０３内のサーバとデータを交換し、コンピュータ・システム１０２内でアクションを実行し、周辺にあるデータ入力装置１０１から受信しているデータを処理しない遠隔管理アプリケーションの特性としてもよい。
【００５５】
図２は、コンピュータを不正な遠隔管理から保護するための例示的な方法を提示する。本方法は、イベントを傍受するステップ２０１、イベントのパラメータを決定するステップ２０２、イベントを識別するステップ２０３、イベントを決定するステップ２０４、ルールを定式化するステップ２０５、類似性の値を決定するステップ２０６、アプリケーションを決定するステップ２０７、アプリケーションを分類するステップ２０８、判定を下すステップ２０９、及びアプリケーションをブロックするステップ２１０からなる。
【００５６】
ステップ２０１において、コンピュータ・システム１０２において発生したイベントを傍受してもよく、傍受されたイベントは、以下のうちの少なくとも１つを含んでもよい。
・オペレーティング・システムのＡＰＩ機能のアプリケーションによる呼び出し
・プロセス間通信技術を使用したアプリケーションのプロセス間のデータ転送
・コンピュータ・システムのソフトウェアとハードウェアコンポーネント間でのデータ転送
・コンピュータ・ネットワーク１０３内のアプリケーションによるデータ転送
・周辺にあるデータ入力装置１０１からのアプリケーションへのデータ転送
イベントの傍受は、コンピュータ・システム１０２にインストールされたドライバの補助により行われる。
周辺にあるデータ入力装置１０１は、以下のうちの少なくとも１つを含んでもよい。
・キーボード
・コンピュータマウス
・タッチスクリーン
・非接触タッチスクリーンコントローラ
【００５７】
ステップ２０２では、ステップ２０１で傍受された各イベントのパラメータが決定されてもよい。
前記イベントパラメータは、以下のうちの少なくとも１つを含んでもよい。
・イベントの種類。
・オペレーティング・システムのイベント（プロセス識別子、ＰＩＤ）を作成したアプリケーション又はプロセスの識別子。
・オペレーティング・システムでイベント（グローバル一意識別子、ＧＵＩＤ）を作成したアプリケーション又はサービスの識別子。
・上記のイベントの前のイベント。
・転送されるデータの場合について、
・データ送信元及びデータ受信元の固有の識別子。これには少なくとも以下のうち１つを含んでもよい。
・コンピュータ・ネットワーク１０３内のデータ伝送に関与するサーバのネットワークアドレス
・コンピュータ・システム１０２のハードウェアコンポーネントのタイプ
・転送されるデータのタイプ。
・転送されるデータの量。
・直接転送されるデータ。
【００５８】
ステップ２０３において、ステップ２０１で傍受されたイベントの中に、少なくともステップ２０１で傍受されたイベントのステップ２０２で決定されたパラメータの分析に基づいて、特定されたコンピュータ・ネットワーク１０３内のアプリケーションによるデータの転送のイベントと、周辺にあるデータ入力装置１０１からのアプリケーションへのデータ転送のイベントとが含まれてもよい。
傍受されたイベントの中でイベントの識別は、少なくとも、以下のうち少なくとも１つに基づいて起こってもよい。
・イベントの種類。
・アプリケーション又はイベントを作成したアプリケーションのプロセスの独自の識別子。
【００５９】
ステップ２０４において、ステップ２０１で傍受されたイベントの中で、ステップ２０３で特定されたイベントに依存する少なくとも１つのイベントが判定されてもよく、識別されたイベントに対する傍受されたイベントの依存性は、少なくとも以下によって決定される。
・識別されたイベントの登録とそれに続く傍受されたイベントの登録との間に経過した時間が、以前に確立された時間しきい値よりも短い。
・傍受されたイベントのパラメータが、前述の傍受されたイベントより前に登録された識別されたイベントのパラメータと相関する。
【００６０】
ステップ２０５において、ステップ２０３において特定されたイベントのパラメータに基づいてステップ２０４において決定されたイベントのパラメータの依存性を決定するステップ２０４において決定された少なくとも１つのイベントに対してルールを決定し形成してもよい。
あるイベントのパラメータの、別のイベントのパラメータに対する依存性を定義するルールは、少なくとも以下から構成されてもよい。
・以下のように表される線形変換行列Ｔ。
【数１５】
0006400758.tif 000016
【数１６】
0006400758.tif 000017
ここでＰ１は以下のように表現されるイベント＃１のパラメータのセットである
【数１７】
0006400758.tif 000018
Ｐ２は以下のように表現されるイベント＃２のパラメータのセットである。
【数１８】
0006400758.tif 000019
・以下のように表される関数Ｐ２の係数のセット
【数１９】
0006400758.tif 000020
ここでＰ１はイベント＃１のパラメータ、Ｐ２はイベント＃２のパラメータである。
あるイベントのパラメータの別のイベントのパラメータへの依存性を記述するルールの定式化は、以下の少なくとも１つを含むことができる。
・ルールを表現する形式の少なくとも１つを選択する。
・行列を用いる形式。この場合は１つのパラメータの別のパラメータへの依存性は、行列を用いた演算を介して表現することができる
・ベクトルを用いる形式。この場合は１つのパラメータの別のパラメータへの依存性は、係数のセットを用いた演算によって表現することができる。
・イベントの指定されたパラメータに対して選択された表現に使用される係数を計算する。
【００６１】
ステップ２０６において、少なくとも１つの以前に作成されたルールとステップ２０５で策定されたルールの類似度は、少なくとも前述のルールの比較に基づいて決定されてもよく、遠隔管理の間にコンピュータ・システム１０２で発生するイベントのパラメータの依存性を決定してもよい。
以前に作成されたルールは、少なくともパターン識別モジュール１１０から得られたルールの係数に基づいて、ルールライブラリ１２１から選択してもよい。
以前に作成されたルールは、パターン識別モジュール１１０によって定式化されたルールと同じ方法、即ち以下の方法で作成されてもよい。
ａ）既知の遠隔管理アプリケーションが以前にインストールされたコンピュータ・システムにおいて、様々なイベントを傍受する。
ｂ）インターセプトされたイベントについて、イベントのパラメータを決定する。
ｃ）少なくともステップａ）で傍受された事象について前のステップで決定されたパラメータの分析に基づいて、コンピュータ・ネットワークにおける前記遠隔管理アプリケーションによるデータ転送のイベント及び周辺にあるデータ入力装置からの前記遠隔管理アプリケーションへのデータ転送のイベントを、前記イベントの中から特定する。
ｄ）ステップа）で傍受されたイベントのうち、前のステップで特定されたイベントに依存する可能性のある少なくとも１つのイベントを決定する。
ｅ）前のステップで決定された少なくとも１つのイベントについて、前のステップで決定されたイベントのパラメータの、ステップｃ）で特定されたイベントのパラメータへの依存性を定義するルールを決定して作成する。
【００６２】
ルールの比較は、少なくとも確立された閾値と以下の値との比較を含んでもよい。
・以下のように、比較されるルールを記述する関数の畳み込みの結果を表す値。
【数２０】
0006400758.tif 000021
ここでｆ１はルール＃１を数学的に表現する関数であり、ｆ２はルール＃２を数学的に表現する関数である。
ルールは入力データと出力データとの間の所定の関係を含んでいてもよく、所定の（決定性がある）というのは関係が明確に定義されている、すなわち曖昧性や不確実性が許容されないということである。したがってしたがって、ルールは、入力データと出力データとを関連付ける特定の関数ｆによって数学的に表現されてもよい
・以下のように、比較されるルールを記述する行列の要素のセットから構成される配列のたたみ込みの結果から成る値。
【数２１】
0006400758.tif 000022
ここで｛ａｋ｝は以下のように表現される、ルール＃１を数学的に表現する行列Ａの要素のセットである。
【数２２】
0006400758.tif 000023
｛ｂｋ｝は以下のように表現される、ルール＃２を数学的に表現する行列Ｂの要素のセットである。
【数２３】
0006400758.tif 000024
ルールは入力データと出力データとの間に所定の関係を含んでもよいため、入力データを出力データに変換する行列Ａによって数学的に表現することができる。
【００６３】
類似度は、少なくとも次のように決定された数を含んでもよい。
・２つのベクトルのスカラー積。各ベクトルは比較されるルールの係数の集合。
・事前に決定された畳み込みのパラメータの値。
【００６４】
ステップ２０７において、ステップ２０６で決定された類似度が確立された閾値を超えるとき、ステップ２０１で傍受されたイベントを作成した少なくとも１つのアプリケーションを決定してもよく、ステップ２０２で決定されたパラメータはステップ２０５でルールを作成するのに用いられ、前のステップで決定された類似度は、以前に作成された少なくとも１つのルールに対して、確立された閾値より高くてもよい。
【００６５】
ステップ２０８において、ステップ２０７で決定されたアプリケーションが分析され、周辺にあるデータ入力装置１０１からのデータ転送のイベントのパラメータに対するコンピュータ・ネットワーク１０３における前記アプリケーションによるデータ転送のイベントのパラメータの依存性は、分析の間に決定されてもよい。
アプリケーションの分析は、以下のうちの少なくとも１つを含んでもよい。
・アプリケーションのヒューリスティック分析。その間、次のことが決定される。
・周辺にあるデータ入力装置１０１からどのデータを転送するか。
・コンピュータ・システム１０２におけるデータ転送後にどのような動作が起こるか。
・この後にどのデータがコンピュータ・ネットワーク１０３において送信又は受信されるか
・決定されたデータとアクションとの間の依存性
・アプリケーションの構造及びデータの転送を担うコードの検索の分析
・コンピュータ・ネットワーク１０３におけるデータの転送
・コンピュータ・システム１０２における動作の実行
・コンピュータ・ネットワーク１０３におけるデータの送信又は受信
【００６６】
ステップ２０９において、少なくともステップ２０８で実行された分析の間の依存性の存在の決定に基づいて、遠隔管理アプリケーションの検出の判定を下してもよい。
【００６７】
ステップ２１０において、ステップ２０７において決定されたアプリケーションを、遠隔管理アプリケーションの検出に関してステップ２０９において下された判定結果に基づいてブロックしてもよい。
アプリケーションのブロックは、少なくとも以下のうちの少なくとも１つを含んでもよい。
・アプリケーションの関与を伴ったコンピュータ・ネットワーク内のデータ交換のブロック
・ＲＡＭからのアプリケーションの削除
・コンピュータ・システム１０２を構成する情報媒体（ハードドライブ等）からのアプリケーションの削除
【００６８】
図３は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータ・システム（パーソナル・コンピュータやサーバ等）の例を示している。図示の通り、コンピュータ・システム２０は、ＣＰＵ２１と、システムメモリ２２と、ＣＰＵ２１と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス２３とを含み得る。システムバス２３は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来から公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ（ＲＯＭ）２４及びランダムアクセスメモリ（ＲＡＭ）２５を含む。基本的な入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４の使用によってオペレーティング・システムをロードする際等、コンピュータ・システム２０の要素間の情報の伝達を担う基本的な手順を含む。
【００６９】
コンピュータ・システム２０は、データの読み書きのためのハードディスク２７、取り外し可能な磁気ディスク２９の読み書きのための磁気ディスクドライブ２８、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光学メディア等の光学ディスク３１の読み書きのための光学式ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８、及び光学式ドライブ３０は、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、及び光学式ドライブインターフェース３４それぞれを横切るシステムバス２３と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びコンピュータ・システム２０の他のデータのストレージのための電源依存のモジュールである。
【００７０】
本発明は、ハードディスク２７、取り外し可能な磁気ディスク２９及び取り外し可能な光学ディスク３１を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ（ＲＡＭ）等の他のタイプのコンピュータ情報メディア５６を使用してもよいことに留意されたい。また、これはコントローラ５５を介してシステムバス２３に接続される。
【００７１】
コンピュータ・システム２０は、ファイルシステム３６を有し、記録されたオペレーティング・システム３５を保持する。また追加のプログラムアプリケーション３７、他のプログラムモジュール３８、及びプログラムデータ３９を有する。ユーザは、入力機器（キーボード４０、マウス４２）を用いてコマンドと情報をコンピュータ・システム２０に入力することができる。他の入力機器（不図示）：マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力機器は、通常、システムバスに次々接続しているシリアルポート４６を通じてコンピュータ・システム２０に差し込まれるが、それらは、他の方法例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス（ＵＳＢ）に接続される。ディスプレイ機器のモニタ４７又は他のタイプは、また、ビデオアダプタ４８等のインターフェースと交差するシステムバス２３に接続している。モニタ４７に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力機器（不図示）を接続できる。
【００７２】
コンピュータ・システム２０は、１つ又は複数のリモートコンピュータ４９とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ（又はコンピュータ）４９は、図４に示すように、コンピュータ・システム２０の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
【００７３】
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク（ＬＡＮ）５０及びワイドエリアコンピュータ・ネットワーク（ＷＡＮ）を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていにインターネットにアクセスすることができる。ＬＡＮ又はＷＡＮネットワークにおいて、パソコン２０は、ネットワークアダプタ又はネットワークインターフェース５１に交差するローカルエリアネットワーク５０に接続されている。ネットワークが用いられる時には、パソコン２０は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム５４又は他のモジュールを使用することができる。内部又は外部の機器であるモデム５４は、シリアルポート４６によりシステムバス２３と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法もあることに留意されたい。
【００７４】
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及び方法を実施し得る。ソフトウェアにおいて実装される場合は、方法は不揮発性コンピュータ可読媒体の１つ又は複数の指示又はコードとして保存され得る。コンピュータ可読媒体は、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
【００７５】
様々な実施形態で、本発明のシステム及び方法が、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばＡＳＩＣ（ＡｐｐｌｉｃａｔｉｏｎＳｐｅｃｉｆｉｃＩｎｔｅｇｒａｔｅｄＣｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−ＰｒｏｇｒａｍｍａｂｌｅＧａｔｅＡｒｒａｙ）等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや指示セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という２つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる（図３において詳述したもの等）。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
【００７６】
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
【００７７】
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
【００７８】
本明細書で開示された様々な側面は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、側面及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【図１】
0006400758.tif 000025
【図２】
0006400758.tif 000026
【図３】
0006400758.tif 000027