(57)【要約】  無断アクセスからデジタル情報を保護するための装置、システム及び方法が説明される。本発明は、デジタル指紋、パターン認識、及びリアルタイム不正証拠収集を使用して、無断アクセスを監視するように構成される。無断アクセスが検出されると、ビジネスルールに基づく適切な応答が与えられ、これは、コンテンツプレーヤの実行を終了させることを含んでもよい。本発明は、状態の変化を検出するために、クライアント装置の少なくとも１つのプロセスに関連したパラメータの所定セットを時間と共に監視する。状態の変化を利用して、プロセスに対する指紋を生成する。次いで、収集された付加的なデータに統計学的分析を適用して、付加的なデータが無許可の振舞いを指示するかどうか決定する。【選択図】図１
2008503820.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング装置における無許可の振舞い(unauthorized behavior)を検出する方法であって、
前記コンピューティング装置における複数のプロセスの各プロセスに関連した複数のパラメータを選択するステップと、
前記複数のプロセスの各プロセスに関連した前記複数のパラメータに対するデータを収集するステップと、
デルタ事象(delta events)を使用して前記複数のプロセスの少なくともサブセットに対する指紋を決定するステップと、
前記複数のプロセスの前記サブセットに対するエントロピーを動的に決定するステップと、
前記決定されたエントロピーが前記コンピューティング装置における無許可の振舞いを指示する場合に、所定のアクションを遂行するステップとを備えた方法。
【請求項２】
複数のパラメータを選択する前記ステップは、更に、オペレーティングシステム特性、メモリ特性、又は入力／出力（Ｉ／Ｏ）装置特性の少なくとも１つを含む前記コンピューティング装置の特性に基づいて複数のパラメータを選択することを含む、請求項１に記載の方法。
【請求項３】
前記複数のパラメータは、前記コンピューティング装置で実行するように構成された少なくとも１つのプロセスに関連したメモリメトリック、カーネルメトリック、リソース使用メトリック、時間メトリック、入力／出力メトリック、及びサイズメトリックの少なくとも１つを含む、請求項１に記載の方法。
【請求項４】
前記複数のプロセス内で、前記コンピューティング装置の中央処理ユニット（ＣＰＵ）リソースを消費するプロセスを選択することにより、前記複数のプロセスのサブセットを決定するステップを更に備えた、請求項１に記載の方法。
【請求項５】
前記ＣＰＵリソースは、更に、ＣＰＵ時間のパーセンテージを含む、請求項４に記載の方法。
【請求項６】
複数のパラメータに対するデータを収集する前記ステップは、更に、
第１時間インターバル中に前記複数のパラメータを記録することにより第１データセットを発生する段階と、
第２時間インターバル中に前記複数のパラメータを記録することにより第２データセットを発生する段階と、を含む請求項１に記載の方法。
【請求項７】
デルタ事象を使用して指紋を決定する前記ステップは、更に、
前記第１データセットを前記第２データセットから差し引いて差のデータセットを発生する段階であって、この差し引きが第１及び第２データセット内の同じパラメータ及び同じプロセスに基づくものであるような段階と、
前記差のデータセットを、論理的重み付け係数を使用して２進データセットに変換する段階であって、該２進データセットは、前記複数のプロセスのサブセット内の各プロセスに対する指紋を表わすものである段階と、を含む請求項６に記載の方法。
【請求項８】
前記差し引き段階は、更に、前記第１データセット及び第２データセットがプロセスの数について相違する場合に、前記差し引きを遂行する前に、前記第１データセットと第２データセットとの間に共通セットのプロセスを選択することを含む、請求項７に記載の方法。
【請求項９】
エントロピーを動的に決定する前記ステップは、更に、分析、ファジー、又は神経系メカニズムの少なくとも１つに基づいてエントロピーを決定する段階を含む、請求項１に記載の方法。
【請求項１０】
エントロピーを動的に決定する前記ステップは、更に、
前記プロセスのサブセット内で、所定の理想的良好クラスのパラメータとの不一致を最大にするプロセスの別のサブセットを決定する段階と、
第１クラスのプロセス内で良好パラメータの数を決定する段階であって、前記第１クラスのプロセスは、前記プロセスの他のサブセット内でハイパーラインより上であると決定されたプロセスを含むものである段階と、
第２クラスのプロセス内で不良パラメータの数を決定する段階であって、前記第２クラスのプロセスは、前記プロセスの他のサブセット内でハイパーラインより下であると決定されたプロセスを含むものである段階と、
前記不良パラメータの数が前記良好パラメータの数より実質的に大きい場合には、前記不良パラメータの数、良好パラメータの数、並びに良好及び不良パラメータの合計数の対数関数に基づいてエントロピーを決定する段階と、を含む請求項１に記載の方法。
【請求項１１】
コンピューティング装置における無許可の振舞い(unauthorized behavior)を検出する方法であって、
前記コンピューティング装置における複数のプロセスの各プロセスに関連した複数のパラメータを選択するステップと、
前記複数のプロセスの各プロセスに関連した前記複数のパラメータに対するデータを収集するステップと、
前記複数のプロセスの少なくともサブセットに対する指紋を決定するステップと、
前記複数のプロセスの前記サブセットに対するエントロピーを動的に決定するステップと、
前記決定されたエントロピーが前記コンピューティング装置における無許可の振舞いを指示する場合に、所定のアクションを遂行するステップと、を備えた方法。
【請求項１２】
指紋を決定する前記ステップは、更に、前記複数のプロセスのサブセット内の各プロセスに関連した複数のパラメータに対して前記収集されたデータのデルタ事象(delta events)分析を使用する段階を含み、このデルタ事象分析は、更に、データの多数の収集インターバル間に共通の各プロセスに対して前記複数のパラメータ内の各パラメータ間の差のデルタを決定することを含む、請求項１１に記載の方法。
【請求項１３】
エントロピーを動的に決定する前記ステップは、更に、
前記複数のプロセスのサブセットにおける各プロセスにより使用されるＣＰＵ時間のパーセンテージに基づいて前記プロセスのサブセット内からプロセスの別のサブセットを選択する段階と、
前記プロセスの他のサブセットの中で、所定の理想的良好クラスのパラメータとの不一致を最大にするプロセスを決定する段階と、
第１クラスのプロセス内で良好パラメータの数を決定する段階であって、前記第１クラスのプロセスは、前記プロセスの他のサブセット内でハイパーラインより上であると決定されたプロセスを含むものである段階と、
第２クラスのプロセス内で不良パラメータの数を決定する段階であって、前記第２クラスのプロセスは、前記プロセスの他のサブセット内でハイパーラインより下であると決定されたプロセスを含むものである段階と、
前記不良パラメータの数が前記良好パラメータの数より実質的に大きい場合には、前記不良パラメータの数、良好パラメータの数、並びに良好及び不良パラメータの合計数の対数関数に基づいてエントロピーを決定する段階と、を含む請求項１１に記載の方法。
【請求項１４】
コンピューティング装置における無許可の振舞い(unauthorized behavior)を検出するのに使用するためのコンピュータ実行可能な要素を有するコンピュータ読み取り可能な媒体であって、前記要素は、
情報を受信及び送信するためのトランシーバーと、
前記トランシーバーと通信するプロセッサと、
前記プロセッサと通信し、前記プロセッサがオペレーションを遂行するようにさせるデータ及びマシンインストラクションを記憶するのに使用するメモリと、
を備え、前記オペレーションは、
前記コンピューティング装置における少なくとも１つのプロセスに関連した少なくとも１つのパラメータを選択し、
前記少なくとも１つのプロセスのための少なくとも１つのパラメータに対するデータを収集し、
前記データの収集においてデルタ事象(delta events)に一部分基づいて少なくとも１つのプロセスに対する指紋を決定し、
前記少なくとも１つのプロセスに対するエントロピーを動的に決定し、そして
前記決定されたエントロピーが前記コンピューティング装置における無許可の振舞いを指示する場合に、所定のアクションを遂行することを含むコンピュータ読み取り可能な媒体。
【請求項１５】
前記少なくとも１つのパラメータの選択は、更に、コンピューティング装置の特性に基づいて少なくとも１つのパラメータを選択することを含む、請求項１４に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
コンピューティング装置の所定のリソースを消費するプロセスを選択することにより少なくとも１つのプロセスを決定することを更に含む、請求項１４に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
前記少なくとも１つのプロセスの少なくとも１つのパラメータに対するデータの収集は、更に、
第１時間インターバル中に少なくとも１つのパラメータを記録することにより第１データセットを発生し、そして
第２時間インターバル中に少なくとも１つのパラメータを記録することにより第２データセットを発生する、ことを含む請求項１４に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
前記デルタ事象に少なくとも一部分基づいた指紋の決定は、更に、
前記第１データセットと前記第２データセットとの間の差のデータセットを決定し、この決定は、第１及び第２データセット内の同じパラメータ及び同じプロセスに基づくものであり、そして
前記差のデータセットを、論理的重み付け係数を使用して２進データセットに変換し、該２進データセットは、少なくとも１つのプロセスに対する指紋を表わすものである、請求項１７に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
前記エントロピーの動的な決定は、更に、
前記少なくとも１つのプロセス内で、所定の理想的良好クラスのパラメータとの不一致を最大にするプロセスを決定し、
第１クラスのプロセス内で良好パラメータの数を決定し、前記第１クラスのプロセスは、前記データの収集に少なくとも一部分基づいてハイパーラインより上であると決定されたプロセスを含むものであり、
第２クラスのプロセス内で不良パラメータの数を決定し、前記第２クラスのプロセスは、前記データの収集に少なくとも一部分基づいてハイパーラインより下であると決定されたプロセスを含むものであり、そして
前記不良パラメータの数が前記良好パラメータの数より大きい場合には、前記不良パラメータの数、良好パラメータの数、並びに良好及び不良パラメータの合計数の対数関数に基づいてエントロピーを決定する、ことを含む請求項１４に記載のコンピュータ読み取り可能な媒体。
【請求項２０】
コンピューティング装置における無許可の振舞い(unauthorized behavior)を検出するのに使用するための変調データ信号であって、この変調データ信号は、前記コンピューティング装置が、
複数のプロセス内の各プロセスのための少なくとも１つのパラメータに対して第１周期にわたり第１データセットを収集し、前記複数のプロセス内の少なくとも１つのプロセスは、前記第１データセットの収集中に前記コンピューティング装置で実行され、
別の複数のプロセス内の各プロセスのための少なくとも１つのパラメータに対して第２周期にわたり第２データセットを収集し、前記他の複数のプロセス内の少なくとも１つのプロセスは、前記第２データセットの収集中に前記コンピューティング装置で実行され、
前記複数のプロセス及び前記他の複数のプロセスから１セットのプロセスを選択し、
前記選択された１セットのプロセスに対してデルタ事象(delta events)分析を少なくとも一部分使用して前記選択された１セットのプロセスに対する指紋を決定し、
前記選択された１セットのプロセスに対するエントロピーを動的に決定し、そして
前記決定されたエントロピーが前記コンピューティング装置における無許可の振舞いを指示する場合に、所定のアクションを遂行する、という動作を実行できるようにするインストラクションを含む変調データ信号。
【請求項２１】
前記決定されたエントロピーが無許可の振舞いを示す場合に、前記決定されたエントロピーを信頼性レベルと比較することを更に含む、請求項２０に記載の変調データ信号。
【請求項２２】
前記エントロピーの動的な決定は、更に、
第１クラスのプロセス内で良好パラメータの数を決定し、前記第１クラスのプロセスは、前記選択された１セットのプロセス内でハイパーラインより上であると決定されたプロセスを含むものであり、
第２クラスのプロセス内で不良パラメータの数を決定し、前記第２クラスのプロセスは、前記選択された１セットのプロセス内でハイパーラインより下であると決定されたプロセスを含むものであり、
前記不良パラメータの数が前記良好パラメータの数より実質的に大きい場合には、前記不良パラメータの数、良好パラメータの数、並びに良好及び不良パラメータの合計数の対数関数に基づいてエントロピーを決定する、ことを含む請求項２０に記載の変調データ信号。
【請求項２３】
前記デルタ事象を使用して指紋を決定することは、更に、
少なくとも１つのパラメータに対する前記第１データセットと第２データセットとの間の１セットのデルタ差を決定し、そして
前記１セットのデルタ差を、論理的重み付け係数を使用して２進データセットに変換し、該２進データセットは、前記選択された１セットのプロセスに対する指紋を表わす、請求項２０に記載の変調データ信号。
【請求項２４】
コンピューティング装置における無許可の振舞いを検出する装置であって、
前記コンピューティング装置で実行される１セットのプロセスに関連したパラメータに対するデータを収集する手段と、
前記収集されたデータに基づき、デルタ事象手段を使用して、指紋を決定する手段と、
前記プロセスの少なくともサブセットに対するエントロピーを動的に決定する手段と、
前記決定されたエントロピーが前記コンピューティング装置における無許可の振舞いを指示する場合に、所定のアクションを遂行する手段と、を備えた装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、リモートコンピューティングセキュリティに係り、より詳細には、デジタル指紋、パターン認識、及び不正証拠収集の使用を含めて、無断アクセスからデジタル情報を保護するための装置、システム及び方法を提供することに係るが、これに限定されない。
【背景技術】
【０００２】
デジタル技術やインターネットの進歩により変革される全ての産業の中で、「コンテンツ」産業として著しく発展しているのは、音楽、映画、ペイ・パー・ビュー（ＰＰＶ）、ビデオ・オン・デマンド（ＶｏＤ）、双方向メディアの製作者及びプロバイダー、等のごく僅かである。インターネットは、このようなコンテンツを従来よりも容易に広く配布する。不都合なことに、デジタル時代は、コンテンツ製作者及びプロバイダーにとって重大なマイナス面もある。即ち、ある消費者が支払をせずにコンテンツにアクセスすることが容易になった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
コンテンツの保護に向かって多数の試みがなされている。例えば、コンテンツは、インターネットのようなネットワークを経て配送される間に、暗号化されてもよい。又、コンテンツは、ＣＤ、ＤＶＤ、等のメディア装置にある間に暗号化されてもよい。しかしながら、例えば、再生中にクライアントコンピューティング装置において、コンテンツが暗号解読されて消費者に利用できるようになると、それが無断アクセスに曝される。このように曝されたコンテンツは、種々の技術を使用して不適切にアクセスされ又はハッキングされることがある。
【０００４】
例えば、コンテンツは、クライアントコンピューティング装置「内」からハッキングされることがある。即ち、クライアントコンピューティング装置のユーザは、スクリーンディスプレイにハッキングしたり、スクリーンスクレーパーツールを使用したり、ビデオ及び／又はオーディオ装置にハッキングしたり、コンテンツストリームにハッキングしたり、等々を含む種々のメカニズムのいずれかを使用して、コンテンツに不適切にアクセスしようと試みることがある。又、ユーザは、コンテンツストリームスクレーパーを使用して、コンテンツに不適切にアクセスし、無断使用しようと試みることもある。
【０００５】
又、クライアントコンピューティング装置の「外部」からクライアントコンピューティング装置にハッキングすることにより、コンテンツが同様に不適切にアクセスされることもある。即ち、種々のハッキングツール及び方法を使用することにより、外部のハッカーがクライアントコンピューティング装置に侵入し、コンテンツ保護情報を非保護位置へ転送し、次いで、保護情報を使用して、コンテンツを不適切にコピーするよう試みることがある。従って、これら及び他の事柄に対して本発明がなされた。
【発明を実施するための最良の形態】
【０００６】
添付図面を参照して本発明の実施形態を説明するが、これは、余すところのないものではなく、又、本発明をこれに限定するものでもない。添付図面において、特に指示のない限り、種々の図面にわたって同じ部分を同じ参照番号で示す。
本発明を良く理解するために、添付図面を参照して、本発明を以下に詳細に説明する。
【０００７】
本発明を実施する特定の実施形態を例示する添付図面を参照して、本発明をより完全に説明する。しかしながら、本発明は、多数の異なる形態で実施されてもよく、ここに示す実施形態に限定されると考えてはならず、むしろ、これら実施形態は、この開示を徹底的な完全なものとするように設けられたもので、本発明の範囲を当業者に完全に伝えるものである。とりわけ、本発明は、方法又は装置として実施することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、或いはソフトウェア及びハードウェア態様を結合する実施形態の形式をとってもよい。それ故、以下の詳細な説明は、これに限定することを意味していない。
【０００８】
簡単に述べると、本発明は、デジタル情報を無断アクセスから保護する装置、システム及び方法に向けられる。本発明は、デジタル指紋、パターン認識及びリアルタイム不正証拠収集(tamper evidence gathering)を使用して、無断アクセスを監視すると共に、適切な応答を与えるように構成される。デジタル指紋は、少なくとも一部分は、選択されたコンピュータプロセスの振舞いをベースとすることができる。本発明は、外部及び／又は内部の無断アクセス、並びにクライアント側装置における同様の無断アクションからデジタル媒体を保護することに向けられる。一実施形態では、クライアント側装置は、デジタルコンピュータ、セットトップボックス（ＳＴＢ）等を含む。
【０００９】
本発明は、ベクトル分析、クラスター分析、統計学的分析、ファジー論理、神経系(neural)ロジック理論、判断実行、最適化理論、等を含む多数のメカニズムを使用する。又、本発明は、これらメカニズムの少なくとも幾つかを結合して、無許可(unauthorized)アクションを検出するためのパターン認識システムを提供することができる。本発明は、正常であると決定できるデータ、異常であると決定できるデータ（時には、「不良」又は無許可の振舞いとも称される）、半繰り返し、不確実なデータ、及び振舞いのパターンを生成できるファジーデータを含む（これらに限定されないが）広いスペクトルの異なるデータを生成しそして処理するように構成される。その生成されたパターンは、正常な（良好な）データパターン、潜在的に許可できない異常な（不良の）データパターン、等として分類できる。このようなパターンは、典型的なハッカーがハッキングの遂行を試みる間にこのような正常なパターンをシステム、プロセス等に対して維持するのがしばしば不可能であるために使用される。
【００１０】
更に、本発明を使用することにより、ハッカーを比較的迅速に検出することができ、おそらく、システム、プロセス、アプリケーション、等が危険に曝された場合でも、コンテンツを保証できることになる。ハッカーは、一般に、システムを危険に曝したり、そのソフトウェアを変更したりし得るが、システムのプロセスの振舞いが同じになることはあり得ない。従って、プロセスの振舞いを監視することが、ハッカーに対して非常に有効となる。更に、システムのプロセスの振舞いが変化するので、ハッカーがハッキングを検出の前に完了し得るおそれが著しく減少される。
【００１１】
本発明は、侵入検出システムや、不正又は無断データ変更を検出するように構成された装置や、ダイナミック（動的）及び／又はスタティック（静的）パターン、映像認識システムや、コンピューティング装置、ＳＴＢ及び同様の装置からの異常な振舞いを検出するように構成された装置を含む（これらに限定されないが）種々の構成に使用することができる。更に、本発明は、少なくとも１つの実施形態では、クライアントコンピューティング装置に常駐するように構成されてもよい。この構成においては、クライアントコンピューティング装置がネットワークと通信できないときでも、無許可の振舞いに対する監視を実行することができる。しかしながら、本発明は、クライアントコンピューティング装置に常駐することだけに限定されない。例えば、本発明は、本発明の範囲又は精神から逸脱せずに、別のコンピューティング装置に常駐したり、多数のコンピューティング装置にわたって常駐したり、等々でよい。
【００１２】
例示的環境
図１は、本発明を実施できるオペレーティング環境１００の一実施形態を示す機能的ブロック図である。このオペレーティング環境１００は、適当なオペレーティング環境の一例に過ぎず、本発明の使用又は機能の範囲に関して何ら制限を示唆するものではない。本発明の範囲又は精神から逸脱せずに、他の良く知られた環境及び構成を使用してもよい。
【００１３】
図示されたように、オペレーティング環境１００は、コンテンツプロバイダー１０２、ネットワーク１０４、及びクライアント１０６−１０８を備えている。ネットワーク１０４は、コンテンツプロバイダー１０２及びクライアント１０６−１０８と通信する。
【００１４】
コンテンツプロバイダー１０２は、クライアント装置１０６−１０８へ配布することのできる媒体コンテンツの製作者、開発者及び所有者により使用するように構成されたコンピューティング装置を備えている。このようなコンテンツは、クライアント装置１０６−１０８のようなクライアント装置のユーザに向けられる動画、映画、ビデオ、音楽、ＰＰＶ、ＶｏＤ、双方向媒体、オーディオ、スチール映像、テキスト、グラフィック、及び他の形式のデジタルコンテンツを含むが、これらに限定されない。又、コンテンツプロバイダー１０２は、コンテンツを複写及び配布するための権利をコンテンツ所有者から得るビジネス、システム等を含んでもよい。コンテンツプロバイダー１０２は、１人以上のコンテンツ所有者から複写及び配布の権利を得ることができる。コンテンツプロバイダー１０２は、他のコンテンツプロバイダー、クライアント装置１０６−１０８のユーザ等へその後に販売、配布及びライセンス付与するために、コンテンツを再パッケージ、記憶、及びスケジュールすることができる。
【００１５】
ネットワーク１０４を使用してクライアント装置１０６−１０８へコンテンツを通信するものとして図示されているが、本発明はこれに限定されない。例えば、コンテンツプロバイダー１０２は、実質上、データ通信ラインを含む（これに限定されないが）いかなるコンテンツ通信メカニズムや、ＣＤ、ＤＶＤ、フロッピー（Ｒ）ディスケット、磁気テープ等を含むいかなる記憶装置を使用してもよい。コンテンツは、種々の暗号化技術のいずれを使用して暗号化されてもよい。同様に、コンテンツを暗号解読することもできる。
【００１６】
コンテンツプロバイダー１０２として動作できる装置は、パーソナルコンピュータ、デスクトップコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者電子装置、ネットワークＰＣ、サーバー、等を含む。
【００１７】
ネットワーク１０４は、１つのコンピューティング装置を別のコンピューティング装置に結合してそれらが通信できるような構成にする。ネットワーク１０４は、１つの電子装置から別の電子装置へ情報を通信するのに、いかなる形式のコンピュータ読み取り可能な媒体を使用することもできる。又、ネットワーク１０４は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ユニバーサルシリアルバス（ＵＳＢ）ポートのような直接接続、他の形式のコンピュータ読み取り可能な媒体、又はその組み合せに加えて、ワイヤレスインターフェイス、及び／又はワイヤードインターフェイス、例えば、インターネットを含んでもよい。異なるアーキテクチャーやプロトコルをベースとするものを含む相互接続された１セットのＬＡＮにおいて、ルーターがＬＡＮ間のリンクとして働き、メッセージを互いに送信できるようにする。又、ＬＡＮ内の通信リンクは、通常、ツイストペアケーブル又は同軸ケーブルを含み、一方、ネットワーク間の通信リンクは、アナログ電話回線、Ｔ１、Ｔ２、Ｔ３及びＴ４を含む完全又は部分的専用デジタル回線、サービス総合デジタル網（ＩＳＤＮ）、デジタル加入者ライン（ＤＳＬ）、衛星リンクを含むワイヤレスリンク、或いは当業者に知られた他の通信リンクを利用してもよい。更に、リモートコンピュータ及び他の関連電子装置は、モデム及び一時的電話リンクを経てＬＡＮ又はＷＡＮへリモート接続することができる。本質的に、ネットワーク１０４は、クライアント装置１０６−１０８とコンテンツプロバイダー１０２との間で情報を伝達できるようにするいかなる通信方法を含んでもよい。
【００１８】
上述したように通信リンクにおいて情報を送信するのに使用される媒体は、コンピュータ読み取り可能な媒体、即ち通信媒体の一形式を例示するものである。一般的に、コンピュータ読み取り可能な媒体は、コンピューティング装置によりアクセスできる媒体を含む。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体、通信媒体、又はその組み合せを含んでもよい。
【００１９】
更に、通信媒体は、通常、コンピュータ読み取り可能なインストラクションや、データ構造や、プログラムモジュールや、搬送波、データ信号又は他の搬送メカニズムのような変調データ信号における他のデータを具現化するもので、情報配送媒体を含む。「変調データ信号」及び「搬送波信号」という語は、情報、インストラクション、データ等を信号においてエンコードするようにセット又は変更された１つ以上の特性を有する信号を含む。例えば、通信媒体は、ワイヤード媒体、例えば、ツイストペアケーブル、同軸ケーブル、光ファイバー、導波管、及び他のワイヤード媒体と、ワイヤレス媒体、例えば、音響、ＲＦ、赤外線、及び他のワイヤレス媒体を含む。
【００２０】
クライアント装置１０６−１０８は、実質上、別のコンピューティング装置、例えば、コンテンツプロバイダー１０２から、ネットワーク、例えば、ネットワーク１０４を経てコンテンツを受け取ることのできるいかなるコンピューティング装置を含んでもよい。又、クライアント装置１０６−１０８は、ＣＤ、ＤＶＤ、テープ、電子メモリデバイス、等を含む（これらに限定されないが）他のメカニズムを使用してコンテンツを受け取ることのできるいかなるコンピューティング装置を含んでもよい。１組のこのような装置は、通常、ワイヤード通信媒体、例えば、パーソナルコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者電子装置、ネットワークＰＣ等を使用して接続する装置を含んでもよい。又、１組のこのような装置は、通常、ワイヤレス通信媒体、例えば、セルラー電話、スマートホン、ページャー、ウォーキー・トーキー、高周波（ＲＦ）装置、赤外線（ＩＲ）装置、ＣＢ、１つ以上の先行装置を結合する一体化装置、等を使用して接続する装置を含んでもよい。又、クライアント装置１０６−１０８は、ワイヤード又はワイヤレス通信媒体、例えば、ＰＤＡ、ＰＯＣＫＥＴ  ＰＣ、着用可能なコンピュータを使用して接続できる装置や、ワイヤード及び／又はワイヤレス通信媒体を経て通信してコンテンツを受け取り再生するように装備された他の装置を含んでもよい。同様に、クライアント装置１０６−１０８は、このようなコンテンツを楽しむための種々の装置のいずれを使用してもよく、これら装置は、コンピュータディスプレイシステム、オーディオシステム、ジュークボックス、セットトップボックス（ＳＴＢ）、テレビジョン、ビデオディスプレイ装置、等を含むが、これらに限定されない。クライアント装置１０６−１０８は、図２を参照して以下に詳細に述べるクライアント装置を使用して実施されてもよい。
【００２１】
クライアント装置１０６−１０８は、エンドユーザがコンテンツを受け取って、その受け取ったコンテンツを再生できるように構成されたクライアントを含んでもよい。又、クライアントは、クライアント装置の他の要素が、別の要素、装置、エンドユーザ等とのインターフェイスを実行できるようにすることを含む（これに限定されないが）他のアクションを与えてもよい。
【００２２】
クライアント装置１０６−１０８は、更に、以下に詳細に述べるようなコンテンツ保護マネージメント（ＣＰＭ）要素を受け取ってもよい。このＣＰＭ要素は、クライアント装置の振舞いの特性を監視するように構成され、振舞いが異常な（不良又は無許可の）振舞いであると決定されたときに、ＣＰＭ要素は、潜在的に無許可のアクションからコンテンツを保護するためのアクションを可能にする。このようなアクションは、ポリシー、ルール等に基づく種々の所定のアクションのいずれかを含み、ネットワーク接続をターンオフすること、１つ以上のプロセスをターンオフすること、コンテンツへのアクセスを破壊又は禁止すること、コンピューティング装置のエンドユーザ、コンテンツの所有者、等へメッセージを供給することを含んでもよい。
【００２３】
例示的コンピューティング装置
図２は、本発明の一実施形態によるコンピューティング装置の一実施形態を示す。コンピューティング装置２００は、図示された以上の要素を含んでもよい。しかしながら、本発明を実施するための実施形態を開示するには、図示された要素で充分である。コンピューティング装置２００は、例えば、図１のクライアント装置１０６−１０８を表わしてもよい。
【００２４】
コンピューティング装置２００は、処理ユニット２１２、ビデオ表示アダプタ２１４及び大量メモリを備え、これらは、全て、バス２２２を経て互いに通信する。大量メモリは、一般に、ＲＡＭ２１６、ＲＯＭ２３２、及び１つ以上の永久大量記憶装置、例えば、ハードディスクドライブ２２８、テープドライブ、光学ドライブ、及び／又はフロッピー（Ｒ）ディスクドライブを含む。大量メモリは、コンピューティング装置２００のオペレーションを制御するためのオペレーティングシステム２２０を記憶する。任意の汎用のオペレーティングシステムを使用してもよい。コンピューティング装置２００の低レベルオペレーションを制御するために基本的入力／出力システム（ＢＩＯＳ）２１８も設けられる。図２に示すように、コンピューティング装置２００は、ＴＣＰ／ＩＰプロトコルを含む種々の通信プロトコルと共に使用するように構成されたネットワークインターフェイスユニット２１０を経て、インターネット又は他の通信ネットワーク、例えば、図１のネットワーク１０４とも通信することができる。ネットワークインターフェイスユニット２１０は、時には、トランシーバー、トランシービング装置、又はネットワークインターフェイスカード（ＮＩＣ）としても知られている。
【００２５】
上述した大量メモリは、別の形式のコンピュータ読み取り可能な媒体、即ちコンピュータ記憶媒体も例示する。コンピュータ記憶媒体は、コンピュータ読み取り可能なインストラクション、データ構造、プログラムモジュール、又は他のデータのような情報を記憶するための方法又は技術で実施される揮発性、不揮発性、除去可能、及び除去不能な媒体を含んでもよい。コンピュータ記憶媒体は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多様性ディスク（ＤＶＤ）、又は他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、又は他の磁気記憶装置、或いは希望の情報を記憶するのに使用でき且つコンピューティング装置によりアクセスできる他の媒体を含む。
【００２６】
また、大量メモリは、プログラムコード及びデータも記憶する。１つ以上のアプリケーション２５０が大量メモリにロードされ、オペレーティングシステム２２０で実行される。アプリケーションプログラムは、例えば、トランスコーダー、スケジューラー、カレンダー、データベースプログラム、ワード処理プログラム、ＨＴＴＰプログラム、オーディオプレーヤ、ビデオプレーヤ、ＶｏＤプレーヤ、デコーダ、暗号解読装置、ＰＰＶプレーヤ、ＳＴＢへのインターフェイスプログラム、テレビへのインターフェイスプログラム、ビデオカメラ、等々を含むが、これらに限定されない。大量記憶装置は、更に、コンテンツ保護マネージャー（ＣＰＭ）２５２のようなアプリケーションを含んでもよい。このＣＰＭ２５２は、指紋を生成し（指紋マネージャー２５３）そしてパターンの分類を遂行する（クラシファイア２５４）ように構成できる付加的な要素を含んでもよい。また、ＣＰＭ２５２は、とりわけ、異常な振舞いを指示できる種々のファクタを分析するように構成できる判断エンジン２５５を含んでもよい。異常な振舞いが検出されると、判断エンジン２５５は、潜在的な無許可行動からコンテンツを保護するためのアクションをとることができる。ＣＰＭ２５２及びそれに関連した要素は、図４から６を参照して以下に詳細に述べるアクションを遂行することができる。
【００２７】
一実施形態では、ＣＰＭ２５２は、コンテンツに関連してコンピューティング装置２００にロードされる。従って、ＣＰＭ２５２は、ＣＤ、ＤＶＤ、等のコンテンツ媒体に常駐してもよい。又、ＣＰＭ２５２は、コンテンツがコンピューティング装置２００へダウンロードされる間にネットワークにわたってロードされてもよい。しかしながら、本発明は、これに限定されるものではなく、そしてＣＰＭ２５２は、コンテンツがいつロードされるかに関わらず、実質上いつでも、そして実質上いかなるメカニズムを使用して、コンピューティング装置２００にロードされてもよい。更に、図２は、コンピューティング装置２００内に常駐するＣＰＭ２５２を示しているが、本発明はこれに限定されず、そしてＣＰＭ２５２は、本発明の範囲又は精神から逸脱せずに、別の装置に常駐してもよいし、多数の装置にわたり分布されてもよいし、等々である。
【００２８】
また、コンピューティング装置２００は、ｅメールを送信及び受信するためのＳＭＴＰハンドラーアプリケーション、ＨＴＴＰ要求を受け取って処理するためのＨＴＴＰハンドラーアプリケーション、及びセキュアな接続を取り扱うためのＨＴＴＰＳハンドラーアプリケーションを含んでもよい。このＨＴＴＰＳハンドラーアプリケーションは、セキュアな形態で外部アプリケーションとの通信を開始することができる。
【００２９】
また、コンピューティング装置２００は、外部装置と通信するための入力／出力インターフェイス２２４、例えば、マウス、キーボード、スキャナ、又は図２に示されていない他の入力装置も含む。同様に、コンピューティング装置２００は、更に、付加的な大量記憶ファシリティ、例えば、ＣＤ−ＲＯＭ／ＤＶＤ−ＲＯＭドライブ２２６、及びハードディスクドライブ２２８を含んでもよい。ハードディスクドライブ２２８は、とりわけ、アプリケーションプログラム、データベース、クライアント装置構成情報、ポリシー等を記憶するのに使用できる。
【００３０】
オペレーションの例示的概要
本発明は、無許可の振舞いを監視して検出し、このような振舞いのシステム、コンテンツ等への影響を最小にすることができる。従って、本発明は、無許可の振舞いがコンピューティングシステムの外部のソース又はそこから離れたソースからのものであるか、或いはコンピューティングシステムの内部のソース（例えば、ソースがコンピューティングシステムのエンドユーザであるか、コンピューティングシステムで実行されるプロセス、プログラム又は同様のタスク等である場合）からのものであるかについて、無許可の振舞いを監視することに向けられる。
【００３１】
本発明は、更に、指紋、パターン認識、統計学的分析等を含む種々の概念のいずれかを使用して、コンテンツの傍受、キャプチャー、複写及び／又は変更に向けられた振舞いを表わし得るコンピューティングシステムにおける無許可の振舞いを検出するように設計される。従って、コンテンツの保護は、無許可のプロセス又はタスクを終了させ、無許可のプロセス又はタスクを妨げ、或いは種々のメカニズムを通してコンテンツを遮断させて、コンテンツが無許可のプロセス又はタスクにもはや使用できないようにすることにより、達成できる。
【００３２】
これらの概念を使用する際には、コンピューティングシステム上で観察される許可されたアクションを、アクション又は振舞いの「正常」パターンとして分類することができる。無許可の行動を起こそうと試みるアクションは、「正常」な振舞いのこのパターンを変化させ得る。このように変化した振舞いパターンは、おそらく、正常なパターンに一致しない。これらの変化した振舞いパターンは、「異常」又は「不良」の振舞いと称されてもよい。
【００３３】
正常な振舞いの決定は、各プロセスに関連した名前とは独立して、コンピューティングシステムで実行されるプロセス又はプロセスのサブセットに対して１セットの特性に関連したデータから変換することのできる振舞いを分類することに一部分基づいて行うことができる。このようなデータは、例えば、コンテンツプレーヤ等の実行中にコンピューティングシステムから得ることができる。
【００３４】
本発明は、更に、各プロセスに対して考えられる「正常」な振舞いと「異常」な振舞いとの間の論理的、非数値的な差を決定することに向けられる。この決定は、リアルタイムでもよいし、非リアルタイムでもよい。
【００３５】
１つの解決策に基づき、監視は、コンピューティングシステムにおける既存のプロセスに関連した情報及び特性の収集に向けられる。しかしながら、各々の単一プロセスを特徴付けることのできる異なるパラメータは潜在的に数百ある。これは、時間及びリソースについて広範囲の分析を招く。例えば、各プロセスにおいて約２００個の潜在的なパラメータを監視できる場合を考える。これは、例えば、Ｗｉｎｄｏｗｓ（Ｒ）２０００Ｐｒｏｆｅｓｓｉｏｎａｌオペレーティングシステムの一実施形態において実現可能である。次いで、２００×Ｋデータ空間にわたり分析を行わねばならず、ここで、Ｋは、コンピューティングシステム上で実行中のプロセスの数である。しかしながら、充分な空間とリソースが与えられると、この解決策は、本発明により遂行することができ、従って、本発明の範囲外ではない。
【００３６】
しかしながら、収集されたデータは、分析に使用されるパラメータの数を最小にするように配列されてもよい。従って、一実施形態では、本発明は、ある時間周期にわたりプロセスを特徴付けることのできる各パラメータ間の差を測定することに一部分基づくデルタ事象解決策を使用する。得られた差は、パラメータ振舞いの特殊な事象として考えることができ、ここでは、指紋（フィンガープリント）と称される。
【００３７】
更に、所与のプロセスに対するあるパラメータは、時間と共にその値を変化させるが、他のパラメータは、そのようにならない。この観察を、プロセスの指紋の発生に使用することができる。即ち、パラメータは、所与の時間周期内に実質的に変化してもよいし、しなくてもよい。これは、ある時間周期中にパラメータが変化したか又は実質的に同じままであるか決定するためのパラメータの監視を簡単化するのに使用できる。従って、パラメータは、２つの状態、即ち変化又は非変化、のうちの１つを有するものとして表わすことができる。各プロセスパラメータは、指紋又は振舞いのパターンへ変換することのできるそれ自身の振舞い状態を有すると考えられる。更に、各プロセスは、指紋又は振舞いのパターンのうちの１つのパターンとして特徴付けることができる。パラメータのアクションについて２状態表示を使用することにより、本発明は、デジタルパラメータ解決策を非数値論理タスクへと変換することができる。
【００３８】
しかしながら、各パラメータが１つの状態のみを有するのではない。パラメータは、例えば、時間と共に多数の状態となってもよい。しかしながら、パラメータの各状態の出現の確率は、統計学的な分析により得ることができる。このような統計学的な分析が、１つの状態の出現を別の状態の出現が実質的に越えることを示す場合には、各状態について数学的予想（例えば、演算平均）の決定を行うことができる。従って、パラメータに対して得られた異常のカウントを、ノイズ又は不確実性と決定することができる。
【００３９】
どのプロセスを監視すべきかの選択は、種々の事柄のいずれかに基づいて行うことができる。例えば、コンテンツの再生に関連したプロセス、ハッキングに関連したプロセス等を監視するように選択することができる。一実施形態では、プロセッサカーネルに関連したパラメータが選択される。別の実施形態では、プロセッサカーネルに関連したプロセス、及びプロセスを実行するユーザ時間について分析が実行される。他のプロセスより実質的に長い時間を要すると決定されたプロセスが、分析継続のために選択されてもよい。
【００４０】
例えば、一実施形態に基づき、Ｗｉｎｄｏｗｓ（Ｒ）の所定のバージョンのような所与のオペレーティングシステムに対して、各単一プロセスを特徴付ける２００の中の統計学的に３７のパラメータが振舞いパラメータに大きな影響を及ぼし得ることを数学的分析が示すことがある。図３は、少なくとも一部分は分析に基づいて本発明の一実施形態に使用される１セットのパラメータの一例を示す。しかしながら、本発明は、これらのパラメータに限定されず、本発明の範囲から逸脱せずに他のパラメータが使用されてもよい。
【００４１】
１組のパラメータを選択した後に、境界を伴う１組のクラスを生成することができる。例えば、２つのクラス、即ち良好な振舞いのクラス及び不良な振舞いのクラスを、２つの振舞いパターンで表わすことができる。その第１（良好な振舞い）は、コンテンツプレーヤ等に関連付けることができ、そしてその他方（不良の振舞い）は、例えば、スクリーンスクレーパー、オーディオキャプチャープログラム等を含む種々のハッキングツールのいずれかからの無許可のアクションに関連付けることができる。
【００４２】
コンテンツプレーヤを表わすパターンは、多数の時間周期にわたりコンテンツプレーヤの実行に基づいて数学的予想を計算し、そしてコンテンツプレーヤに関連したプロセスの分析を遂行することにより得ることができる。ハッキングツールに関連したパターンを決定するために同様の解決策が使用されてもよい。
【００４３】
各クラスに対して、理想的な不良クラスが不変のデータしか含まず且つ理想的な良好クラスが変化したデータしか含まないという理想的な境界を発生することができる。一実施形態では、このような理想的な境界は、コンテンツプレーヤ及び／又はハッキングツール等に関連した単一パターンの振舞い分析から得ることができる。
【００４４】
得られたプロトタイプパターンにおいて分析を遂行して、判断エンジンへ与える組を選択することができる。一実施形態では、得られるプロトタイプパターンは、２個から４個のパターンのようなサブセットの選択により減少できる（が、本発明は、このような減少された組に限定されない）。得られるプロトタイプパターンを良好なパターンと比較して、悪いケースを確立することができる。同様に、プロトタイプパターンを不良パターンと比較して、不良パターンを最も厳密に表わすパターンの選択を行うことができる。更に別の実施形態では、判断エンジン２５５がバランシングの原理で動作するように構成され、１組のパターン又はクラスが良好なパターンスコアしか含まず、別の組のパターン又はクラスが不良パターンスコアしか含まない。
【００４５】
２スケールクラスの各々は、同じ数の良好スコア及び不良スコアで直感的にロードされてもよい。一実施形態では、最初にゼロにされるスケールが確立される。選択されたクラスに関連した良好スコア及び不良スコアは、各クラスに生じることのある考えられる合計スコアを表わす。新たなスコアが得られると、本発明は、それを、スケールクラスの１つに追加することができる。１つがクラスに追加されると、別のものが自動的に他のクラスから差し引かれる。これは、実質的なミスバランスを生じることなく、実質的に同じ合計スコア数を維持することに向けられる。
【００４６】
例えば、不良スコアに基づいてミスバランスが生じると、本発明は、判断エンジンから値及び分類を決定する。この決定は、良好スコアではなく、不良スコアのミスバランスに対して遂行される。というのは、不良状態は、本発明で識別を求めるものであり、良好スコアに対してそれを遂行しないことにより、処理時間を最小にできるからである。
【００４７】
例えば、非直線的分類ルール等を使用して、値の決定に一部分基づいて、クラスごとにデータエントロピーを決定することができる。一実施形態では、底２の対数データエントロピーを使用して、判断エンジンからの出力が決定される。次いで、出力の結果が顕著に所定の信頼性レベル以上であるときには、判断エンジンは、最終的な結論で応答するように構成される。
【００４８】
プロセス特性を決定するための準備において、収集すべきデータに対する事象の数及びサンプルサイズが決定される。事象の数は、所与のオペレーションシステムコンフィギュレーションから得ることのできる異なるプロセスパラメータ及び特性の希望の最大数を含む。例えば、このようなパラメータは、プロセスＩＤ、ターゲットＯＳバージョン、プライオリティクラス、ユーザオブジェクトカウント、メモリＩｎｆｏ、ＩＯカウンタ等を含むが、これらに限定されない。
【００４９】
サンプルサイズは、使用可能な事象の数から抽出できる、処理に通常使用されるデータサンプルのサイズを含む。種々の統計学的アプローチのいずれかを使用して、パターン認識タスクを遂行するのに使用されるサンプルサイズを著しく減少することができる。
【００５０】
無許可の振舞いを検出するための例示的オペレーション
図４から６を参照して、本発明の幾つかの態様のオペレーションを以下に説明する。特に、図４は、コンピューティング装置において無許可の振舞いを検出するためのプロセスの概略を示す。ここに述べるプロセスは、コンピューティング装置において実行できる種々のプロセスのための予め選択されたパラメータに関するデータを収集するサブプロセス、デルタ事象分析に基づいて指紋を決定するサブプロセス、及びエントロピー分析を使用して指紋を分類するサブプロセスを含む多数のサブプロセスを備えている。図５は、データ収集サブプロセスを示す。図６は、指紋決定サブプロセスを示し、そして図７は、分類プロセスを示す。これらプロセスの各々を以下に詳細に説明する。更に、論理的フロー図の説明に続いて、オペレーションを詳細に説明する。
【００５１】
図４は、図１のクライアント１０６−１０８のようなコンピューティング装置において無許可の振舞いを検出するための概略プロセスの一実施形態を一般的に示す論理的フロー図である。図４のプロセス４００は、ソフトウェア、ハードウェア、それらの組み合せ、等で実施することができ、コンピューティング装置において動作し得る。
【００５２】
プロセス４００は、スタートブロックの後に、ブロック４０２において開始され、これは、図５を参照して以下に詳細に述べる。しかしながら、簡単に述べると、ブロック４０２において、コンピューティング装置で実行できる種々のプロセスに対して予め選択されたパラメータの収集が行われる。このような予め選択されたパラメータの例は、図３を参照して上述した。一実施形態では、収集プロセスは、少なくとも２つの時間インターバル中に予め選択されたパラメータを収集することを含む。
【００５３】
次いで、プロセスは、ブロック４０４へ続き、これは、図６を参照して以下に詳細に述べる。しかしながら、簡単に述べると、ブロック４０４において、コンピューティング装置で実行できるプロセスの少なくともサブセットに対して指紋が決定される。指紋は、以下に詳細に述べるデルタ事象分析を使用して決定できる。
【００５４】
プロセス４００は、次いで、ブロック４０６へ続き、これは、図７を参照して以下に詳細に説明する。簡単に述べると、ブロック４０６において、決定された指紋は、エントロピー分析を使用して不良及び／又は良好振舞いパターンへと分類することができる。エントロピー分析は、次いで、コンピューティング装置において評価されるプロセスのエントロピーを決定することができる。
【００５５】
プロセスは、次いで、判断ブロック４０８へ続き、無許可の振舞いが検出されたかどうかの決定がなされる。以下に述べるように、この決定は、決定されたエントロピーを所定の信頼性レベルと比較することに基づいて実行できる。決定されたエントロピーが所定の信頼性レベルより高いと決定された場合には、無許可の振舞いが存在すると言うことができ、プロセスは、ブロック４１０へ進むが、さもなければ、プロセスは、ブロック４０２へループして戻り、コンピューティング装置における無許可の振舞いの存在を監視し続ける。
【００５６】
ブロック４１０では、ビジネスポリシー等に基づいて種々の所定のアクションを遂行することができる。例えば、このような所定のアクションは、ネットワーク接続をターンオフすること、１つ以上のプロセスをターンオフすること、コンテンツへのアクセスを破壊するか又はその他禁止すること、コンピューティング装置へのアクセスを禁止すること、１つ以上のエンティティにメッセージ、警告等を与えること、等々を含んでもよい。無許可の振舞いを検出した際には、実質上いかなるアクションが実行されてもよい。
【００５７】
プロセスは、次いで、コーリングプロセスに復帰してもよい。しかしながら、本発明は、これに限定されない。例えば、プロセス４００は、コーリングプロセスへの復帰を示しているが、本発明の範囲又は精神から逸脱せずに、ブロック４１０の後にブロック４０２へループバックして、無許可の振舞いの監視を続けてもよい。
【００５８】
図５は、コンピューティング装置に関連したプロセスの予め選択されたパラメータを収集するプロセスの一実施形態を一般的に示す論理的フロー図である。図５は、図４を参照して上述したブロック４０２に対するオペレーションのサブプロセスの一実施形態を示す。
【００５９】
図５のプロセス５００は、理想的なクラスが確立されるブロック５０２で開始される。一実施形態では、理想的な良好クラス及び理想的な不良クラスが決定される。例えば、理想的な良好クラスは、全て１のマトリクスで表わすことができ、一方、理想的な不良クラスは、全て−１のマトリクスで表わすことができる。
【００６０】
次いで、プロセスは、ブロック５０４へ進み、Ｍ個のプロセスに対するパラメータの第１データセットが第１時間インターバルＴ１にわたって収集される。このようなデータ収集は、Ｍ個のプロセスの各々に対して１セットのパラメータを監視し、そして時間インターバルＴ１にわたってその各々の値を記録することを含んでもよい。データセットは、フォルダー、スプレッドシート、メモリ、データベース、ドキュメント等を含む種々のメカニズムのいずれかを使用して記憶されてもよい。更に、１セットのパラメータは、コンピューティング装置で実行されるＭ個のプロセスに関連した種々のパラメータのいずれを含んでもよい。
【００６１】
プロセス５００は、ブロック５０６へ続き、Ｋ個のプロセスに対するパラメータの第２データセットが第２時間インターバルＴ２にわたって収集される。パラメータの第１及び第２データセットは、実質上、コンピューティング装置で実行される各々の当該プロセスに対して得ることができる。しかしながら、本発明は、各プロセスに対するデータセットの収集に限定されない。例えば、本発明の範囲又は精神から逸脱せずに、プロセスのサブセットが収集のために選択されてもよい。一実施形態では、ブロック５０６のデータ収集を、ある遅延の後に行うことができる。
【００６２】
更に、第１及び第２のデータセットをマトリクスとして表わすことができるが、これについては、以下で詳細に説明する。しかしながら、簡単に述べると、マトリクスは、Ｍ個又はＫ個のプロセスの各々に対して時間と共に１セットのパラメータ値を含んでもよい。
【００６３】
次いで、プロセスは、ブロック５０６から判断ブロック５０８へ続き、Ｔ１中に収集されたプロセスの数Ｍが、Ｔ２中に収集されたプロセスの数Ｋと同じであるかどうかの決定がなされる。即ち、Ｍ＝Ｋ？である。例えば、あるプロセスが１つのインターバル中に実行され、そして他のデータ収集インターバル中に実行されない状況では、ＭとＫが等しくならない。例えば、スペルチェッカープロセスは、あるインターバル中には実行されるが、別のインターバル中には実行されないことがある。従って、ＭがＫとは異なることが決定された場合には、プロセスがブロック５１０へ進む。ブロック５１０では、２つのインターバルに対してプロセスの数Ｌに関連したパラメータのデータの選択が行われる。一実施形態では、プロセスの数は、両インターバル中に実行されたプロセスを選択することにより決定される。例えば、プロセスの数Ｌは、最小（Ｍ、Ｋ）でよい。これは、２つのデータセットを同次元サイズとすることができる。次いで、プロセスは、コーリングプロセスへ復帰し、他のアクションを遂行する。同様に、判断ブロック５０８においてＭ＝Ｋである場合にも、プロセスはコーリングプロセスへ復帰し、他のアクションを遂行する。
【００６４】
図６は、デルタ事象分析を使用して、幾つか又は全部のプロセスに対する指紋を決定するためのプロセスの一実施形態を一般的に示す論理的フロー図である。図６のプロセス６００の背後にある数学について、以下に詳細に述べる。更に、プロセス６００は、図４のブロック４０４の一実施形態を表わす。
【００６５】
プロセス６００は、スタートブロックの後に、ブロック６０２において開始され、データセットが収集されたところのプロセスのサブセットが決定される。プロセスのサブセットを決定するのに、種々のメカニズムのいずれが使用されてもよい。しかしながら、図示されたように、ＣＰＵ時間の高いパーセンテージが使用されたプロセスを選択することによりサブセットが決定される。一実施形態では、これは、例えば、図３のパラメータ２１及び２３がＣＰＵ時間の高いパーセンテージを指示するところのプロセスを監視することにより決定されてもよい。一実施形態では、ＣＰＵ時間の高いパーセンテージは、ＣＰＵ時間のパーセンテージの最大値である。しかしながら、本発明は、これに限定されず、他のパラメータ等を使用してもよい。いずれにせよ、プロセスのサブセットが決定されると、プロセスは、ブロック６０４へ進む。
【００６６】
ブロック６０４では、プロセスのサブセットに対してデルタ事象分析が実行される。簡単に述べると、デルタ事象分析は、プロセスのサブセットの２つのデータセットを差し引きして、プロセスのデルタデータセットを得ることを含んでもよい。先に述べたように、各データセットは、パラメータマトリクス等によりプロセスを表わすことができ、パラメータの変化が、更に、プロセスに対する振舞いのパターンを表わすことができる。
【００６７】
次いで、プロセスは、ブロック６０６へ続き、以下に詳細に述べる２進分類(binary classification)を使用することにより、デルタ事象データセットがプロセスに対する指紋へと変換される。簡単に述べると、このような２進分類は、数値的判断を非数値的論理判断へと変換するものとして考えることができる。次いで、プロセス６００は、コーリングプロセスへ復帰する。
【００６８】
図７は、エントロピー分析を使用してその決定された指紋のパターン分類を遂行するプロセスの一実施形態を一般的に示す論理フロー図である。図７のプロセス７００は、例えば、上述した図４のブロック４０６の一実施形態を表わす。
【００６９】
プロセス７００は、スタートブロックの後に、ブロック７０２において始まり、理想的な良好クラスに対する不一致を最大にするプロセスが決定される。これについては、以下に詳細に述べる。しかしながら、簡単に述べると、理想的な良好クラスが、例えば、１セット（組）の全部１である（［１、１、・・・１］）と考える。次いで、理想的な良好クラスのセット内の各エレメントと、図６のプロセス６００等から得られた各プロセスのセット内の各エレメントとの間で比較を行うことができる。エレメントごとのカウントを行うことができ、その比較結果の和は、どのプロセスが不一致を最大にするか（例えば、理想的な最良クラスから最も遠いか）を指示することができる。一実施形態では、悪いプロセスを指示する（即ち、プロセスのサブセットの中で、理想的な良好クラスからの最大不一致を生じたプロセスの別のサブセットを識別する）。
【００７０】
次いで、プロセスは、ブロック７０４へ続き、ブロック７０２で決定されたプロセスのサブセットに対してバランシング機構が使用される。このバランシング機構は、振舞い（プロセス）の各パターンを良好クラス及び不良クラスへと分類し、そして以下のバランシングルールに基づいて２つのクラスの各々におけるこのようなパターンのカウントを決定する。
【００７１】
次いで、プロセスは、判断ブロック７０６へ進み、不良クラスにおいてカウントされたパターンの数が、良好クラスにおいてカウントされたパターンの数を越えるかどうかの決定がなされる。もしそうであれば、プロセスはブロック７０８へ進み、さもなければ、コーリングプロセスに復帰する。
【００７２】
ブロック７０８では、以下に詳細に述べるように、最終スコアエントロピーが決定される。次いで、プロセスは、コーリングプロセスに復帰する。一実施形態では、次いで、コーリングプロセスが、最終スコアエントロピーに統計学的テストを適用して、所定の信頼性レベル内で、無許可の振舞いが検出されたかどうか決定することができる。
【００７３】
フローチャートの各ブロック、及びフローチャート内のブロックの組み合せは、コンピュータプログラムインストラクションにより実施できることが理解されよう。これらのプログラムインストラクションをプロセッサへ供給し、プロセッサで実行されるインストラクションが、フローチャートのブロックで指定されたアクションを実施するための手段を生成するようなシステムを形成することができる。また、コンピュータプログラムインストラクションをプロセッサで実行して、一連のオペレーションステップをプロセッサで実行させ、プロセッサで実行されるインストラクションがフローチャートのブロックで指定されたアクションを実施するためのステップを与えるようなコンピュータ実施プロセスを形成することができる。
【００７４】
従って、フローチャートのブロックは、指定のアクションを遂行するための手段の組み合せ、指定のアクションを遂行するためのステップの組み合せ、及び指定のアクションを遂行するためのプログラムインストラクションをサポートする。また、フローチャートの各ブロック、及びフローチャート内のブロックの組み合せは、指定のアクション又はステップを遂行する特殊目的のハードウェアベースのシステムにより実施できるし、或いは特殊目的のハードウェア及びコンピュータインストラクションの組み合せを使用して、指定のアクションを遂行できることも理解されよう。
【００７５】
パターン分類
以下の説明は、本発明を更に詳細に述べるもので、図４−７を参照して上述したプロセスを更に説明するのに使用されてもよい。
例えば、上述した図５のパターン分類及びデータ収集アクションを以下に説明する。
【００７６】
当該コンピューティングシステム上の既存のプロセスの各々を特徴付ける１組の単一パターンとして事象の数を考える。このセットは、時間周期Ｔ１に対して、上述したように、コンピューティングシステムを監視した後に得ることができる。
【００７７】
事象の数は、Ｎ次元ユークリッド測定空間ＲNにおけるベクトルＸiを使用することにより、パターンのうちの１つのパターンとして説明することができ、ここで、パラメータｉ＝１、Ｎは、単一パターンの数をベクトルＸiの成分として表わす。
Ｘi＝（Ｘi,1、Ｘi,2、・・・Ｘi,N-1、Ｘi,N）
【００７８】
Ｍ個のプロセスが同時に実行される場合には（即ち、Ｍ個のベクトルＸi,j、ｉ＝１、Ｎ及びｊ＝１、Ｍ）、それらをマトリクスＡで表わすことができる。
2008503820.tif 000003
【００７９】
別のセットは、上述したように、時間周期Ｔ２に対してコンピューティングシステムを監視した後に得ることができる。Ｎ次元ユークリッド測定空間ＲNにおけるベクトルＹiにより、パターンのうちの１つのパターンとして新たな事象数を導入することができ、ここで、パラメータｉ＝１、Ｎは、単一パターンの数をベクトルＹiの成分として表わす。
Ｙi＝（Ｙi,1、Ｙi,2、・・・Ｙi,N-1、Ｙi,N）
【００８０】
Ｋ個のプロセスがコンピューティングシステム内で同時に実行される場合には（Ｋ個のベクトルＹi,j、ｉ＝１、Ｎ及びｊ＝１、Ｋ）、それらをマトリクスＢで表わすことができる。
2008503820.tif 000004
【００８１】
パラメータＫに関して次の３つの状態が考えられる。第１：Ｋ＝Ｍ、第２：Ｋ＞Ｍ、及び第３：Ｋ＜Ｍ。これらの状態を監視することで、本発明は、マトリクスＡ及びＢを使用して計算を適切に遂行することができる。一実施形態では、時間周期Ｔ１及び時間周期Ｔ２の両方の間に実行される実質上全てのプロセスにおいてマトリクスＡとＢを比較することにより比較が行われる。これらのマトリクスは、各プロセスを独特に識別するのに使用される以前に決定されたプロセスパラメータ（ＩＤ）を使用して順序付けされる。
【００８２】
それらが同じであって、追加のエントリーが現われないことが決定されると、Ｍ＝Ｋであり、且つマトリクスＡ及びＢを使用する計算を実行できることが指示される。Ｍ＞Ｋの状態（例えば、先に実行されたプロセスが終了した場合）、又はＭ＜Ｋの状態（例えば、非実行プロセスが実行を開始する場合）には、両マトリクスＡ及びＢに共通のＩＤのサブセットを決定して、その後の計算に使用することができる。
【００８３】
デルタ事象分析を使用した指紋の決定
図６のプロセス６００について以下に詳細に述べる。上述したように、あるプロセスを表わす各ベクトルの次元をサイズＮからサイズＬへ減少することが可能である（但し、Ｎ＞Ｌ）。事象の数を、例えば、Ｌ次元ユークリッド測定空間ＲNにおいてベクトルＸi又はＹiによるパターンのうちの１つのパターンとして導入することができ、ここで、パラメータｉ＝１、Ｌは、ベクトルＸi又はＹiの成分としての単一パターンの数である。
【００８４】
ある選択された値Ｐ％より大きなＣＰＵ％の時間を使用するパラメータを選択することにより、考慮するベクトルの数を減少することができ、ここで、Ｐ％は、種々の条件に基づいて選択することができる。例えば、一実施形態では、Ｐ％は、プレーヤにより使用されるＣＰＵに基づいて選択されてもよい。
【００８５】
ユーザ時間Ｕｔは、異なるＴ２及びＴ１時間インターバルにおいてプロセスがユーザモードの実行で費やしてＯ／Ｓにより報告される時間長さを表わす２つの値の間の差として定義できる。また、カーネル時間Ｋｔは、同じＴ２及びＴ１時間インターバルにおいてプロセスがカーネルの実行で費やしてＯ／Ｓにより報告される時間長さを表わす２つの値の間の差として定義できる。次いで、ベクトルＶｕｋからＣＰＵ％の計算を決定することができる。
Ｖｕｋ＝（Ｋｔ1,i-1＋Ｕｔ1,i；Ｋｔ2,i-1＋Ｕｔ2,i；・・・；
Ｋｔj,i-1＋Ｕｔj,i；・・・ＫｔM,i-1＋ＵｔM,i）T
但し、インデックスＭは、実行プロセスの全数であり、ｊは、現在プロセスであり、インデックスｉは、プロセスｊのプロセス事象ｉ−１及びｉを表わす。事象ｉ−１及びｉは、各々、カーネル及びユーザ時間に関連した値を維持するのに使用される。種々のインデックスの選択は、特定のコンピュータオペレーティングシステム等に関連してもよい。
【００８６】
次いで、各ｊ実行プロセスに対するＣＰＵ％時間のパーセンテージを、和（Ｋｔj,i-1＋Ｕｔj,i）の一部分として決定することができ、但し、ｊ＝１、Ｍである。
2008503820.tif 000005
【００８７】
全てのＣＰＵ％を決定した後に、選択された値Ｐ％より大きなＣＰＵ％時間を使用したプロセスＮＰの数の決定が行われ、但し、ＮＰ＜＜Ｍである。
実際のシステムでは、値ＮＰの分散が通常２から４であるが、これは必要とされない。
上述したこと及び新たな最大マトリクスサイズに基づいて、本発明は、計算を４×３７の問題へ緩和することができる。
【００８８】
次いで、２つの新たなマトリクスＡ１及びＢ１が同じランクで与えられ、Ａ１は、時間インターバルＴ１から得られ、そしてＢ１は、時間インターバルＴ２から得られる。
2008503820.tif 000006
【００８９】
新たなマトリクスＣ１は、次のように決定することができる。
Ｃ１＝Ｂ１−Ａ１
又は
2008503820.tif 000007
但し、Ｚj,i＝Ｙj,i−Ｘj,i；ｉ＝１、Ｎ１；ｊ＝１,４
【００９０】
しかしながら、本発明は、ｉ及びＮ１に対するこのような値に限定されない。例えば、一実施形態では、関連情報を著しく解放することなく、１５（Ｎ１＝１５）へのベクトルサイズの更なる減少を行うことができる。
【００９１】
マトリクスＣ１の２進分類形態への変換を決定することができ、ここでは、各マトリクスエレメントが２進値として決定される。一実施形態では、これは、マトリクスＣ１の各エレメントＺj,iをＷに置き換えることにより達成でき、ここで、Ｗは、任意の論理的重み付け係数である。
2008503820.tif 000008
【００９２】
その結果、マトリクスＣ１は、１,−１のようなエレメントを含む。更に、これにより得られるマトリクスは、プロセスに対する指紋を表わす。しかしながら、本発明は、これらの値に限定されず、本発明の範囲又は精神から逸脱せずに、他の値、１組の値等を使用してもよい。
【００９３】
エントロピー分析を使用した指紋の分類
図７のプロセス７００について以下に詳細に述べる。判断エンジンへ与えられるべきスコアを決定するために、例えば、Ｎ１次元空間において４つのベクトルに対して拡張された形態の表現を、次の式を使用して決定することができる。
Ｃ１＊ＰＶT＝Ｄ
但し、ＰＶTは、成分ＰＶ1、ＰＶ2、・・・ＰＶN1を伴うパターンベクトルであり、そしてＤは、成分Ｄ1、Ｄ2、Ｄ3及びＤ4を伴う出力ベクトルで、次のように表わされる。
2008503820.tif 000009
【００９４】
スコア値を２進形態に維持するために、次のようなルールを使用することができる。
2008503820.tif 000010
【００９５】
次いで、オリジナル情報における関連特徴を識別し、このような特徴を抽出し、そしてそれらを測定することにより、パターンを分類することができる。次いで、これらの測定値をクラシファイアへ送り、クラシファイアがパターンを分類することができる。
【００９６】
図８は、２つのベクトルＸi及びＹiを１つのスコア出力（ＺiT∪Ｗ）＊ＰＶ＝Ｄiへ変換するプロセスの一実施形態を一般的に示す概略図８００である。図示されたように、ベクトルＸi及びＹiは、入力データを表わす。同様に、ベクトルＺｉ＝（Ｚｉ1,Ｚｉ2,・・・,ＺｉN）は、デルタ事象を表わす。更に、係数Ｗは、任意の重みを表わし（上述した）、そしてベクトルＰＶ＝（ＰＶ1,ＰＶ2,・・・,ＰＶN）は、理想的パターンベクトルを表わす。例えば、理想的な値を１と仮定すれば、ＰＶは、（１,１,・・・,１）となる。しかしながら、本発明は、これに限定されず、ＰＶを他の値で表わしてもよい。単一の値Ｄiは、２つのベクトルＸi及びＹiの変換の全出力結果を表わす。
【００９７】
図９は、本発明によりマトリクスを変換して多数のスコア出力を決定するプロセスの一実施形態を一般的に示す概略図である。特に、図示されたように、概略図９００は、変換式（Ｚ∪Ｗ）＊ＰＶT＝Ｄに基づいてマトリクスＡ及びＢを多数の異なるソース出力Ｄに変換するところを示す。図示されたように、マトリクスＡ及びＢは、変換式に入力される。マトリクスＺは、デルタ事象のマトリクスを表わし、そしてＷは、任意の重み係数のマトリクスである。更に、ベクトルＰＶ＝（ＰＶ1,ＰＶ2,・・・,ＰＶK）は、理想的パターンベクトルを表わす。変換の全出力結果は、ベクトルＤ＝（Ｄ1,Ｄ2,・・・,Ｄk）により表わされる。
【００９８】
更に、Ｋ個のＮ次元ベクトルＸi,Ｙi及びＺi,但し、ｉ＝１,Ｋ,は、各々、マトリクスＡ,Ｂ及びＺを表わす。
クラスの数が分かり、クラスとクラスとの間に幾何学的分離があるトレーニングパターンのときには、１組の判断関数（ＤＦ）を使用して、未知のパターンを分類することができる。
【００９９】
例えば、２つのクラスＣ１及びＣ２がＲn次元空間に存在し、そして関連パターンを分離するハイパーラインＤ（Ｘ）＝０が見つかるケースを考える。ＤＦＤ（Ｘ）をクラシファイアとして使用して、各々の新たなパターンを分類することができる。これは、次の式に基づいて適用されてもよい。
Ｄ（Ｘ）＞０→∈Ｃ１
Ｄ（Ｘ）＜０→∈Ｃ２
【０１００】
ハイパーラインＤ（Ｘ）＝０は、時には、判断境界(decision boundary)として知られている。また、直線的又は非直線的ＤＦに各々関連した直線的又は非直線的クラシファイアも存在し得る。そのタスクは、著しく信頼性のある結果を得るためにどの種類のＤＦを使用すべきか識別することである。
【０１０１】
判断エンジンは、種々のメカニズムを使用して実施することができる。一実施形態では、判断エンジンは、クラスＣ１及びＣ２の結合に対する逆エントロピーＲＥの決定をベースとする非直線的クラシファイアを伴う判断関数を使用する。即ち、次のようになる。
ＲＥ＝１−ＮＥ
但し、ＮＥは通常エントロピーである。この解決策は、ファジー及び神経学的メカニズムを使用する。しかしながら、本発明はこの解決策に限定されず、本発明の範囲又は精神から逸脱せずに他のものを使用してもよい。
【０１０２】
バランス原理をクラシファイアに使用してもよく、そして自然対数関数ｌｏｇ2をエントロピー決定に使用してもよい。良好値及び不良値がほぼ等しいバランスである場合には、この状況に対するエントロピーは、ほぼ０に等しく、そしてハイパーポイントＤ（Ｘ）＝０が、２つのクラスＣ１及びＣ２を分離する判断境界として使用されてもよい。
【０１０３】
一実施形態では、クラスＣ１で最初に収集される良好データ値の数は、クラスＣ２で収集される不良データ値の数にほぼ等しい。更に、良好データ値及び不良データ値の数の合計和は一定のままで、値ＶＳに等しい。
【０１０４】
データスコアがブロック７０４から受け取られるときには、それが不良データであるか良好データであるかに基づいてそれが適当なクラスＣ２又はＣ１に関連付けられる。第１状態においては、データを受け取ると、そのクラスにおけるデータの量が１だけ増加する。合計値ＶＳを実質的に一定の値に維持するために、他のクラスに対してデータの数が減少される。クラスＣ１に対する数と、Ｃ２に対する数との間で比較が行われる。クラスＣ２における不良データの数ＢＮが、クラスＣ１における良好データの数ＧＮより実質的に大きい（即ち、Ｄ（Ｘ）＞０）ことが決定されると、次の式に基づいて判断エンジンから最終スコアＦＳが決定される。
ＦＳ＝１＋（ＢＮ／ＶＳ）＊ｌｏｇ2（ＢＮ／ＶＳ）＋
（ＧＮ／ＶＳ）＊ｌｏｇ2（ＧＮ／ＶＳ）
【０１０５】
更に、最終スコアＦＳは、評価されているプロセスのパターンに対するエントロピーを表わす。
信頼性レベルは、約０から約１までのスケールにおける値ＣＬに関連付けることができる。次いで、テストされたパターンに関する最終判断は、次のようなときに行われる。
ＦＳ≧ＣＬ
同様に、最終判断は、パーセンテージ測定に基づいて行うことができる。
ＦＳ％＝ＦＳ＊１００％
【０１０６】
従って、計算された最大エラーが指定のエラー範囲（信頼性レベル）内であると決定された場合には、それらの結果は、無許可の振舞いが検出されたかどうか判断するに充分なほど信頼性があると決定される。検出に基づいて、コンテンツへのアクセスを最小にするための種々のアクションのいずれかを行うことができ、これは、コンテンツの削除、コンピュータのロック、疑わしいプログラムの実行の禁止、エラーメッセージの送信等を含むが、それらに限定されない。
【０１０７】
以上の説明、例及びデータは、本発明の要素の製造及び使用を完全に説明するためのものである。本発明の精神及び範囲から逸脱せずに本発明の多数の実施形態がなされ得るから、本発明は特許請求の範囲内で限定される。
【図面の簡単な説明】
【０１０８】
【図１】本発明を実施する環境の一実施形態を示す機能的ブロック図である。
【図２】本発明を実施するシステムに含むことのできるクライアント装置の一実施形態を示す図である。
【図３】指紋の決定及びリアルタイム証拠収集において本発明により分析できるパラメータのリストの一実施形態を示す図である。
【図４】コンピューティング装置における無許可振舞いを検出するための概略プロセスの一実施形態を一般的に示す論理的フローチャートである。
【図５】コンピューティング装置に関連したプロセスの予め選択されたパラメータを収集するためのプロセスの一実施形態を一般的に示す論理的フローチャートである。
【図６】デルタ事象分析を使用して、プロセスの少なくともサブセットに対して指紋を決定するためのプロセスの一実施形態を一般的に示す論理的フローチャートである。
【図７】エントロピー分析を使用してその決定された指紋のパターン分類を遂行するプロセスの一実施形態を一般的に示す論理的フローチャートである。
【図８】ベクトルを変換してスコア出力を決定するプロセスの一実施形態を一般的に示す概略図である。
【図９】本発明によりマトリクスを変換して多数のスコア出力を決定するプロセスの一実施形態を一般的に示す概略図である。
【図１】
2008503820.tif 000011
【図２】
2008503820.tif 000012
【図３】
2008503820.tif 000013
【図４】
2008503820.tif 000014
【図５】
2008503820.tif 000015
【図６】
2008503820.tif 000016
【図７】
2008503820.tif 000017
【図８】
2008503820.tif 000018
【図９】
2008503820.tif 000019
【国際調査報告】
2008503820.tif 000020
2008503820.tif 000021