(57)【特許請求の範囲】
【請求項１】
悪意のあるコンピュータシステムを検出するためのコンピュータ実装方法であって、
収集工程と、決定工程と、判定工程と、確定工程と、分析工程とを備え、
前記収集工程では、プロセッサにより前記コンピュータシステムの特性を収集し、
前記決定工程では、収集した前記コンピュータシステムの特性間の関係を決定し、
前記判定工程では、決定された関係に基いてコンピュータシステムの少なくとも１つの状態の時間依存性を判定し、
前記確定工程では、判定された時間依存性に少なくとも基いて前記コンピュータシステムの前記少なくとも１つの状態を確定し、
前記分析工程では、正当な又は悪意のあるコンピュータシステムを表す選択されたパターンに関連して、前記コンピュータシステムの前記少なくとも１つの状態をプロセッサにより分析して、コンピュータシステムの有害度を判定する、
コンピュータ実装方法。
【請求項２】
前記収集工程は、前記コンピュータシステムのコンピューティングリソースの特性、前記コンピュータシステム上で動作するソフトウェアの特性、及び前記コンピュータシステム上で処理されるデータの特性のうちの少なくとも１つの特性を収集することを備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記コンピュータシステムのコンピューティングリソースの特性は、前記コンピュータシステムのメインメモリの特性、前記コンピュータシステムの性能、及び前記コンピュータシステムが関連付けられているネットワーク環境の特性のうちの少なくとも１つを含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記ソフトウェアの特性は、前記コンピュータシステム内で動作する１つ以上のアプリケーションの識別子、前記１つ以上のアプリケーションに関連するファイルの特性、前記１つ以上のアプリケーションの設定ファイルからの記録、及び前記１つ以上のアプリケーション間の関係のうちの少なくとも１つを含む、請求項２に記載のコンピュータ実装方法。
【請求項５】
前記コンピュータシステム上で処理されるデータの特性は、前記データの送信側及び受信側の識別子、前記データの種類、及びデータ送信方法のうちの少なくとも１つを含む、請求項２に記載のコンピュータ実装方法。
【請求項６】
関係は、第２特性の値が変化したときの第１特性の値の変化の関数として構成され、前記決定工程は、収集された特性の値を表す多次元空間を使用する工程、及び選択された特性の多次元空間における投影に少なくとも基いて前記コンピュータシステムの前記少なくとも１つの状態を決定する工程を備える、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記判定工程は、時間の関数として前記コンピュータシステムの前記少なくとも１つの状態を記述する特性の値の変更のための規則を決定する工程を備える、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記確定工程は、前記判定された時間依存性の分析及び特性の値の変更に従って、前記コンピュータシステムの非標準的な挙動を識別する工程を備える、請求項７に記載のコンピュータ実装方法。
【請求項９】
前記正当な又は悪意のあるコンピュータシステムを表す選択されたパターンは、パターンの少なくとも１つのデータベースから検索されるように構成され、各パターンは、前記コンピュータシステム特性の変更のために以前にトリガされた規則に対応する、請求項１に記載のコンピュータ実装方法。
【請求項１０】
コンピュータシステムが正当であるか又は悪意のあるものであるかどうかを判定するために、コンピュータシステムの有害度と、選択された閾値とを比較する評価工程をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項１１】
悪意のあるコンピュータシステムを検出するためのシステムであって、
少なくとも１つのハードウェアプロセッサを備え、
前記ハードウェアプロセッサは、以下（１）〜（５）を行うように構成される、システム。
（１）コンピュータシステムの特性を収集する。
（２）収集された前記コンピュータシステムの特性間の関係を決定する。
（３）決定された関係に基づいて前記コンピュータシステムの少なくとも１つの状態の時間依存性を判定する。
（４）少なくとも決定された時間依存性に基づいて前記コンピュータシステムの前記少なくとも１つの状態を確定する。
（５）正当な又は悪意のあるコンピュータシステムを表す選択されたパターンに関連して前記コンピュータシステムの前記少なくとも１つの状態を分析して、コンピュータシステムの有害度を判定する。
【請求項１２】
前記コンピュータシステムの特性を収集するために、前記少なくとも１つのプロセッサは、前記コンピュータシステムのコンピューティングリソースの特性、前記コンピュータシステム上で動作するソフトウェアの特性、及びコンピュータシステム上で処理されるデータの特性のうちの少なくとも１つの特性を収集するようにさらに構成される、請求項１１に記載のシステム。
【請求項１３】
前記コンピュータシステムのコンピューティングリソースの特性は、前記コンピュータシステムのメインメモリの特性、前記コンピュータシステムの性能、及び前記コンピュータシステムが関連付けられているネットワーク環境の特性のうちの少なくとも１つを含み、
前記コンピュータシステム上で動作するソフトウェアの特性は、前記コンピュータシステム内で動作する１つ以上のアプリケーションの識別子、前記１つ以上のアプリケーションに関連するファイルの特性、前記コンピュータシステム内で動作する前記１つ以上のアプリケーションの設定ファイルからの記録、及び前記１つ以上のアプリケーション間の関係のうちの少なくとも１つを含み、
前記コンピュータシステム上で処理されるデータの特性は、前記データの送信側及び受信側の識別子、前記のデータ種類、及びデータ送信方法のうちの少なくとも１つを含む、請求項１１に記載のシステム。
【請求項１４】
関係は、第２特性の値が変化したときの第１特性の値の変化の関数として構成され、
前記正当な又は悪意のあるコンピュータシステムを表す選択されたパターンは、パターンの少なくとも１つのデータベースから検索されるように構成され、各パターンは、前記コンピュータシステムの特性の変更のために以前にトリガされた規則に対応し、
前記コンピュータシステムの収集された特性間の関係を決定するために、前記少なくとも１つのプロセッサは、前記収集された特性の値を表すために多次元空間を使用し、選択された特性の多次元空間における投影に少なくとも基づいて前記コンピュータシステムの前記少なくとも１つの状態を判定するようにさらに構成される、請求項１１に記載のシステム。
【請求項１５】
前記決定された関係に基づいて前記コンピュータシステムの前記少なくとも１つの状態の時間依存性を判定するために、前記少なくとも１つのプロセッサは、時間の関数として前記コンピュータシステムの少なくとも１つの状態を記述する特性の値の変更のための規則を決定するようにさらに構成される、請求項１４に記載のシステム。
【請求項１６】
前記判定された時間依存性に少なくとも基づいて前記コンピュータシステムの前記少なくとも１つの状態を確定するために、前記少なくとも１つのプロセッサは、前記判定された時間依存性の分析及び前記特性の値の変更に従って、前記コンピュータシステムの非標準的な挙動を識別するようにさらに構成される、請求項１５に記載のシステム。
【請求項１７】
前記少なくとも１つのプロセッサは、前記コンピュータシステムの有害度と、選択された閾値とを比較して評価するようにさらに構成され、前記コンピュータシステムが正当であるか又は悪意のあるものであるかどうかを判定する、請求項１１に記載のシステム。
【請求項１８】
悪意のあるコンピュータシステムを検出するためのコンピュータ実行可能命令を格納する不揮発性コンピュータ可読メディアであって、次に示す（１）から（５）の命令を含む、不揮発性コンピュータメディア。
（１）コンピュータシステムの特性を収集する。
（２）前記コンピュータシステムの収集された特性間の関係を決定する。
（３）決定された関係に基いて前記コンピュータシステムの少なくとも１つの状態の時間依存性を判定する。
（４）判定された時間依存性に少なくとも基いて前記コンピュータシステムの前記少なくとも１つの状態を確定する。
（５）正当な又は悪意のあるコンピュータシステムを表す選択されたパターンに関連して前記コンピュータシステムの前記少なくとも１つの状態を分析して、前記コンピュータシステムの有害度を判定する。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、米国特許法第１１９条（ａ）〜（ｄ）（３５ＵＳＣ  １１９（ａ）−（ｄ））下の優先権の利益を主張する。２０１６年６月２日に出願されたロシア特許出願２０１６１２１８７７号は、本明細書中に参照として援用されるものとする。
【０００２】
本開示は、概してアンチウイルステクノロジーに関し、特に悪意のあるコンピュータシステムを検出するシステム及び方法に関する。
【背景技術】
【０００３】
過去10年間のコンピュータテクノロジーの急速な発展と、様々なコンピューティングデバイス（パーソナルコンピュータ、ノートブック、タブレット、スマートフォンなど）の普及は、これらのデバイスを様々な分野で使用する大きなインセンティブとなっており、膨大な数の問題（インターネットサーフィンから銀行振込や電子文書の流通まで）を解決することができる。コンピュータデバイスの数の成長と並行して、これらのデバイス上で動作しているソフトウェアも、悪意のあるプログラムの数も急速に増加してきている。
【０００４】
現在、膨大な種類の悪意のあるプログラムが存在している。それらの内のいくつかは、ユーザーデバイスから個人情報及び機密データ（ログイン、パスワード、銀行情報、電子文書等）を盗むものである。他は、ユーザーデバイスをサービス拒否攻撃（ＤＤＯＳ）などの攻撃のボットネットにしたり、ブルートフォース方式を使用して他のコンピュータ又はコンピュータネットワーク上でパスワードをソートすることもできる。更に、侵入型広告、有料購読、有料電話番号へのＳＭＳの送信等を通じて有料コンテンツをユーザに提案している。
【０００５】
特殊プログラム又はアンチウィルスアプリケーションは、悪意のあるプログラムを処理する（すなわち、悪意のあるプログラムを検出し、感染を防止し、悪意のあるプログラムに感染したコンピュータシステムを感染から回復させ、復元する）ために使用される。アンチウィルスプログラムは、以下のような悪意のあるプログラムのすべてを検出するために、様々な技術を採用している。
・署名分析−分析対象のプログラムの特定のコードセクションと、悪意のあるプログラムの署名データベースからの既知のコード（署名）との対応関係を検索する。
・ヒューリスティック分析−分析対象のプログラムの作業をエミュレートし、エミュレーションログ（API呼び出し、送信されたパラメータ、分析対象のプログラムのコードセクション等のデータを含む）を作成し、悪意のあるプログラムのエミュレーションデータベースからのデータを用いて作成されたログからのデータとの対応関係を検索する。
・ホワイトリスト及びブラックリスト-悪意のあるプログラム（ブラックリスト）のチェックサムのデータベース又は決定プログラム（ホワイトリスト）のチェックサムのデータベースにおいて分析対象のプログラム（又はその一部）の計算されたチェックサムを検索する。
・事前保護−分析対象のプログラムであってシステム内で実行されているプログラムのアプリケーションプログラミングインターフェイス（API）関数呼び出しをインターセプトし、分析対象のプログラム（API呼び出し、送信されたパラメータ、分析対象のプログラムのコードセクション等のデータを含む）のログを作成し、その作成されたログからのデータと、悪意のあるプログラムの呼び出しデータベースからのデータとの対応関係を検索する。
【０００６】
これらのアンチウイルスアプリケーションに対応して、悪意のあるプログラムは、以下のようなアンチウイルスプログラムによって感染したコンピュータシステム上のそれらの存在を検出するのを妨げるメソッドをますます利用している。
・署名分析を無効にするコードの難読化-元のテキスト（JavaScriptスクリプトなど）又はプログラムの実行可能コードを機能を保持する形に変換するが、解析、動作アルゴリズムの理解、及び逆コンパイル中の変更を妨げる。
・ヒューリスティック分析を無効にする動作の複雑化-プログラムのI/O作業結果に影響を与えず、しかもアンチウイルスプログラムによるエミュレーションを妨げる、多数のAPI関数呼び出し又は操作の使用。
・事前保護を無効にする外国のプログラムの動作の追跡-オペレーティングシステムにおける外国のプログラムの動作の絶え間ない追跡、アンチウイルスプログラムの検索、及びそれらに対する反作用（例えば、分析のための自己コードの隠蔽又は置換）。
【０００７】
コード生成器（ハッカーによって指定された機能を持つ悪意のあるプログラムを自動的に作成できる構築プログラム）、難読化プログラム（プログラムの実行可能コードを変更してその機能を変更せずに分析を複雑にするプログラム）、パッカー（プログラムに埋め込まれたプログラムモジュール、プログラムの実行可能コードを暗号化し、プログラムが起動するときに解読する）などの様々なリソースを利用することで、ハッカーは、多数の新しいバージョンのアンチウイルスによっては検出できない悪意のあるプログラムを素早く簡単に作成し、伝播することができる。
【０００８】
したがって、アンチウイルスがインストールされていても、ユーザのコンピュータにインストールされているすべてのアプリケーションの動作や構造を追跡するアンチウィルスが、悪意のあるアプリケーションの新しい変更や新種を検出しない可能性があるため、ユーザのコンピュータはウイルスに感染する可能性がある。悪意のあるプログラムは、ユーザのコンピュータ上に自身の存在を隠そうとする一方、悪意のあるプログラムを実行し続け、たとえ隠していてもコンピュータ上に存在し、トレースを残す。残されたトレースと、個々のアプリケーション及びコンピュータシステム全体の不規則な挙動によって、悪意のあるアプリケーションを識別する可能性がある。
【０００９】
選択されたコンピュータシステム（大企業の内部ネットワーク、企業のデータベース、バンキングやパスポートデータなどの集中管理された方法で保存された膨大な数の個人データ）を攻撃する技術である、ターゲットとされたサイバー攻撃（Advanced Persistent Threats、APT）の実行にあたり、ハッカーは、現代レベルの専門知識と豊富なリソースを持っていなければならず、さまざまな攻撃方法（情報、身体、欺瞞など）によって目標を達成する方法を作り出す必要がある。これらの目標は、通常、ターゲット組織のコンピュータテクノロジーインフラ内にその存在をインストールして伝播させ、情報の抽出、混乱、又は、提供されるタスク、プログラム、若しくはサービスの重要な側面への干渉を創り出す意図を達成すること、又は、将来これらの意図が実行されることを可能にする立場を取ること、を含んでいる。「先進的な持続的脅威」などのサイバー攻撃は、長時間にわたって目標を2回以上達成し、防御側が脅威への抵抗を示す努力に適応し、そうした意図を達成するために必要なレベルのターゲットインフラへの浸透度を維持することを狙いとしている。
【００１０】
例えば、企業の作業を妨害したり、情報システムの作業の効率を低下させたり、システムを完全に停止したりするためには、ハッカーは、そのコンピュータシステムの仕組み、使用しているハードウェア、防衛手段が使用されているハードウェア、及びそれらが所有する強みと弱みは何かを知らなければならない。そのような情報を準備することにより、ハッカーは、攻撃されているコンピュータシステム上で実行されているアンチウイルスアプリケーションには見えない悪意のあるプログラムを作成し、作成された悪意のあるプログラムであって、導入しても何ら痕跡を残さないプログラムを導入する方法を採用し得る。
【００１１】
そのような標的とされたサイバー攻撃を検出する基本的な原則は、保護されたコンピュータシステム上で実行される悪意のある活動の検出を含み得る。
【００１２】
既知の技術は、既知の悪意のあるアプリケーション（構造と動作の両方に関して）及び新しい悪意のあるアプリケーションを検出するタスクを既知の動作により処理することができる。これら既知の技術は、自分自身を覆い隠し、決して明示されないアプリケーションであって、既知の防御手段を無効にするよう設計されているアプリケーションを検出するタスクを適切に処理することができない。
【００１３】
したがって、悪意のあるコンピュータシステム、すなわち、悪意のある活動が、その悪意のある活動源が隠されたままであっても行われており、その悪意のあるアプリケーションそれ自体が既知の防御手段に対する有効な対策を提示するシステムを検出する問題を解決する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明によれば、悪意のあるコンピュータシステムを検出するためのコンピュータ実装方法であって、収集工程と、決定工程と、判定工程と、確定工程と、分析工程とを備え、前記収集工程では、プロセッサにより前記コンピュータシステムの特性を収集し、前記決定工程では、収集した前記コンピュータシステムの特性間の関係を決定し、前記判定工程では、決定された関係に基いてコンピュータシステムの少なくとも１つの状態の時間依存性を判定し、前記確定工程では、判定された時間依存性に少なくとも基いて前記コンピュータシステムの前記少なくとも１つの状態を確定し、前記分析工程では、正当な又は悪意のあるコンピュータシステムを表す選択されたパターンに関連して、前記コンピュータシステムの前記少なくとも１つの状態をプロセッサにより分析して、コンピュータシステムの有害度を判定する、コンピュータ実装方法、が提供される。
【００１５】
好ましくは、前記収集工程は、前記コンピュータシステムのコンピューティングリソースの特性、前記コンピュータシステム上で動作するソフトウェアの特性、及び前記コンピュータシステム上で処理されるデータの特性のうちの少なくとも１つの特性を収集することを備える、請求項１に記載のコンピュータ実装方法、が提供される。
【００１６】
好ましくは、前記コンピュータシステムのコンピューティングリソースの特性は、前記コンピュータシステムのメインメモリの特性、前記コンピュータシステムの性能、及び前記コンピュータシステムが関連付けられているネットワーク環境の特性のうちの少なくとも１つを含む、請求項２に記載のコンピュータ実装方法、が提供される。
【００１７】
好ましくは、前記ソフトウェアの特性は、前記コンピュータシステム内で動作する１つ以上のアプリケーションの識別子、前記１つ以上のアプリケーションに関連するファイルの特性、前記１つ以上のアプリケーションの設定ファイルからの記録、及び前記１つ以上のアプリケーション間の関係のうちの少なくとも１つを含む、請求項２に記載のコンピュータ実装方法、が提供される。
【００１８】
好ましくは、前記コンピュータシステム上で処理されるデータの特性は、前記データ送信側及び受信側の識別子、前記データ種類、及びデータ送信方法のうちの少なくとも１つを含む、請求項２に記載のコンピュータ実装方法、が提供される。
【００１９】
好ましくは、関係は、第２特性の値が変化したときの第１特性の値の変化の関数として構成され、前記決定工程は、収集された特性の値を表す多次元空間を使用する工程、及び選択された特性の多次元空間における投影に少なくとも基いて前記コンピュータシステムの前記少なくとも１つの状態を決定する工程を備える、請求項１に記載のコンピュータ実装方法、が提供される。
【００２０】
好ましくは、前記判定工程は、時間の関数として前記コンピュータシステムの前記少なくとも１つの状態を記述する特性の値の変更のための規則を決定する工程を備える、請求項６に記載のコンピュータ実装方法、が提供される。
【００２１】
好ましくは、前記確定工程は、前記判定された時間依存性の分析及び特性の値の変更に従って、前記コンピュータシステムの非標準的な挙動を識別する工程を備える、請求項７に記載のコンピュータ実装方法、が提供される。
【００２２】
好ましくは、前記正当な又は悪意のあるコンピュータシステムを表す選択されたパターンは、パターンの少なくとも１つのデータベースから検索されるように構成され、各パターンは、前記コンピュータシステム特性の変更のために以前にトリガされた規則に対応する、請求項１に記載のコンピュータ実装方法、が提供される。
【００２３】
好ましくは、コンピュータシステムが正当であるか又は悪意のあるものであるかどうかを判定するために、コンピュータシステムの有害度と、選択された閾値とを比較する評価工程をさらに備える、請求項１に記載のコンピュータ実装方法、が提供される。
【００２４】
本発明の別の側面によれば、
悪意のあるコンピュータシステムを検出するためのシステムであって、少なくとも１つのハードウェアプロセッサを備え、前記ハードウェアプロセッサは、以下（１）〜（５）を行うように構成される、システム、が提供される。
（１）コンピュータシステムの特性を収集する。
（２）収集された前記コンピュータシステムの特性間の関係を決定する。
（３）決定された関係に基づいて前記コンピュータシステムの少なくとも１つの状態の時間依存性を判定する。
（４）少なくとも決定された時間依存性に基づいて前記コンピュータシステムの前記少なくとも１つの状態を確定する。
（５）正当な又は悪意のあるコンピュータシステムを表す選択されたパターンに関連して前記コンピュータシステムの前記少なくとも１つの状態を分析して、コンピュータシステムの有害度を判定する。
【００２５】
本発明の別の側面によれば、
悪意のあるコンピュータシステムを検出するためのコンピュータ実行可能命令を格納する不揮発性コンピュータ可読メディアであって、次に示す（１）から（５）の命令を含む、不揮発性コンピュータメディア、が提供される。
（１）コンピュータシステムの特性を収集する。
（２）前記コンピュータシステムの収集された特性間の関係を決定する。
（３）決定された関係に基いて前記コンピュータシステムの少なくとも１つの状態の時間依存性を判定する。
（４）判定された時間依存性に少なくとも基いて前記コンピュータシステムの前記少なくとも１つの状態を確定する。
（５）正当な又は悪意のあるコンピュータシステムを表す選択されたパターンに関連して前記コンピュータシステムの前記少なくとも１つの状態を分析して、前記コンピュータシステムの有害度を判定する。
【図面の簡単な説明】
【００２６】
添付の図面は、本明細書の一部として組み入れられ、この指定の一部を構成し、発明の詳細な説明とともに本発明の１つ又は複数の例面を説明し、それらの原理と実施を説明するのに役立ち得るものである。
【図１】図１は、本発明の態様による悪意のあるコンピュータシステムの検出のためのシステムの構造図を提示する。
【図２】図２は、本発明の態様による悪意のあるコンピュータシステムを検出する方法の構造図を示す。
【図３】図３は、本発明の態様を実施するためのコンピュータシステム、パーソナルコンピュータ又はサーバの一例を示す。
【発明を実施するための形態】
【００２７】
例示する実施形態は以下、システム、方法、及び悪意のあるコンピュータシステムを検出するコンピュータプログラム製品として説明される。当業者であれば、以下の記載はあくまでも例示であり、あらゆる制限をも意図するものではないことは当然に意味するところである。本発明が利益となる分野の当業者であれば、別例をも容易に示唆されることであろう。添付の図面ではその詳細を示すための参照符号が付されている。図面と以下の記載において、同一の又はそれに相当するものについては、同一の参照符号を用いるものとする。
【００２８】
本発明のさまざまな側面を説明するために、以下のようにいくつかの定義と概念が導入される。
【００２９】
悪意のあるアプリケーション（マルウェア、悪意のあるソフトウエア）には、コンピュータシステムのリソースを不正に使用したり、情報の所有者及び／又はコンピュータシステムの所有者に情報のコピー、歪み、削除、又は置換によって害を及ぼす（損害を与える）ことを目的として、コンピュータシステムのコンピューティングリソースやコンピュータシステムに保存されている情報に不正アクセスするように設計されたソフトウェアが含まれることがある。
【００３０】
悪意のある行為には、悪意のあるアプリケーションが実行中に実行される行為が含まれることがある。
【００３１】
悪意のあるコンピュータシステムには、悪意のある行為が行われているコンピュータシステムが含まれることがある。
【００３２】
正当なコンピュータシステムには、悪意のある行為が行われていないコンピュータシステムが含まれることがある。
【００３３】
コンピュータシステムの特性は、コンピュータシステムによって実行される動作の１つを決定するコンピュータシステムの様々な特性の集合を含むことができる。
【００３４】
例えば、本発明の態様によれば、コンピュータシステムの特性は、コンピュータシステムの動作速度を含んでもよく、コンピュータシステムが所定の動作を実行するために費やす時間を意味する。コンピュータシステムの動作速度は、少なくとも以下の特性のセットを含んでもよい。
・中央処理装置の性能（１秒あたりの動作数で測定）。
・メインメモリとのデータ交換速度（バイト／秒で測定）。
・外部記憶媒体とのデータ交換速度（バイト／秒で測定）。
特性の値は、リファレンスのコンピュータシステムの動作速度に対して標準化された無次元量である。
【００３５】
コンピュータシステムの別の特性は、コンピュータシステムにおいて同時に動作するアプリケーション数であってもよい。前の例とは異なり、この特性は、コンピュータシステムの１つのプロパティ、すなわち利用可能なメインメモリ（バイト単位で測定）によってのみ記述されてもよい。
【００３６】
コンピュータシステムの状態は、コンピュータシステムの利用可能なコンピューティングリソースの関数として、及び所定のデータセットに対して、コンピュータシステム上で実行中のアプリケーションの動作を記述できるコンピュータシステムの特性のセットを含んでもよい。
【００３７】
コンピュータシステム状態のパターンは、コンピュータシステム上で実行中のアプリケーションの動作のセットを記述するのに十分な既知のコンピュータシステムの特性の一部の予め準備されたセットを含んでもよい。
【００３８】
図１は、本発明の態様による悪意のあるコンピュータシステムの検出のためのシステムの構造図を示す。図示されているように、システムは、とりわけ、特性収集モジュール１０１、関係空間構築モジュール１０２、識別モジュール１０３、分析モジュール１０４、関係記憶装置１１１、及びパターン記憶装置１１２を含んでもよい。
【００３９】
１つの例示的な態様では、特性収集モジュール１０１は、以下をするように構成されてもよい。
・コンピュータシステムの特性を収集する。
・関係空間構築モジュール１０２に、収集した特性を送信する。
【００４０】
コンピュータシステムの特性は、以下を含んでもよいが、それらに限定されるものではない。
・コンピュータシステムのコンピューティングリソースの特性。
・コンピュータシステム上で実行されているソフトウェアの特性。
・コンピュータシステム上で処理されるデータの特性。
【００４１】
コンピュータシステムのコンピューティングリソースの特性は、以下を含んでもよいが、それらに限定されるものではない。
・コンピュータシステムのメインメモリ。
・コンピュータシステムの性能。
・ネットワーク環境の特性。
【００４２】
コンピュータシステム上で実行されているソフトウェアの特性は、以下を含んでもよいが、それらに限定されるものではない。
・コンピュータシステム内で実行されているアプリケーションの識別子だけでなく、識別されたアプリケーションに関連付けられたファイル（名前、実行可能ファイルへの完全パス、又は実行可能ファイルのチェックサム等）。
・コンピュータシステムで実行されているアプリケーションの設定ファイルからの記録（レジストリ内のエントリ、又はｉｎｉファイルのエントリ等）。
・どのアプリケーションがデータをやりとりするかを特徴付けるアプリケーション間の関係。
【００４３】
コンピュータシステム上で処理されるデータの特性は、以下を含んでもよいが、それらに限定されるものではない。
・データの送信側と受信側の識別子（例えば、データ交換が行われているアプリケーションの名前）。
・データ種類（例えば、データベースファイル、イメージ等）。
・データ転送方法（例えば、コンピュータネットワークによって送信されるデータ、又はプロセス間通信方法を使用してあるアプリケーションから別のアプリケーションに送信されるデータ）。
【００４４】
例えば、本発明の態様によれば、銀行の従業員は、クライアントパーソナルデータが格納されたデータベースを扱うためにパーソナルコンピュータを使用することができる。パーソナルコンピュータには、オペレーティングシステム「Ｗｉｎｄｏｗｓ１０」、データベース「ＳＱＬＳｅｒｖｅｒＭａｎａｇｅｍｅｎｔＳｔｕｄｉｏ」、ブラウザ「インターネットエッジ」、アプリケーションパッケージ「ＭｉｃｒｏｓｏｆｔＯｆｆｉｃｅ」、及び様々なディベロッパーからの追加ユーティリティのセットがインストールされていてもよい。特性収集モジュール１０１は、以下の特性を収集するように構成することができる。
・ユーザのコンピュータシステムの様々なコンピューティングリソースの特性：
−利用可能なメインメモリの容量（例えば、８ＧＢ）。
−ローカル及びネットワークディスクの容量（例えば、ディスクドライブＣ：１２０ＧＢ、Ｄ：５００ＧＢ、Ｚ：１０ＴＢ）。
−コンピュータシステムのＣＰＵの性能（例えば、１０ＧＦＬＯＰ）。
−コンピュータネットワークのスループット（例えば、１００Ｍｂｉｔ／ｓ）。
・ユーザのコンピュータシステム上で動作するソフトウェアの特性（「インターネットエッジ」の例）：
−アプリケーションのインストールパス（例えば、C:\Program Files\Internet Edge\edge.exe, など）。
−インストール済みアプリケーションの開始頻度及び動作時間（例えば、セッション３０回：８：３０：１７から８：３４：０５，８：４６：５６から９：０１：３０など）。
−実行されたインストール済みアプリケーションの機能の統計情報（例えば、ＷｒｉｔｅＦｉｌｅ：１３７５７、ＲｅａｄＦｉｌｅ：７６４４６、ＣｒｅａｔｅＳｏｃｋｅｔ：５５６１など）。
−インストール済みアプリケーションによるコンピュータシステムのコンピューティングリソースの使用統計。これらに限定されるものではないが、例えば以下のデータ。
＊使用されたメインメモリの容量（例えば、１０３４ＭＢ）。
＊コンピュータシステムのＣＰＵの作業負荷レベル（例えば、７．５６％）。
＊データ交換が行われているネットワークアドレス（例えば、１９２．１６８．１７．１、１９２．１６８．３４．５６など）。
＊記憶媒体から読み込まれるデータ量又は記憶媒体に書き込まれるデータ量（例えば、データ入力：５６４１ＭＢ、データ出力：６７５ＭＢ）。
・ネットワーク環境の特性：
−データ交換が行われているネットワークアドレス（例えば、１９２．１６８．１７．１、１９２．１６８．３４．５６など）。
−ネットワーク・アドレスでのデータ交換の速度（例えば、１９２．１６８．１７．１：３０ＭＢ／ｓ、１９２．１６８．３４．５６：１５ＭＢ／ｓ）。
・ユーザーアクティビティ：
−どのアプリケーションがユーザによって起動されたか（例えば、ＳＱＬＳｅｒｖｅｒＭａｎａｇｅｍｅｎｔＳｔｕｄｉｏ）。
−インストール済みアプリケーションのグラフィックインターフェースのどの要素が使用されたか（例えば、ダイアログ：ＩＤ＝１２１４５、ボタン：ＩＤ＝１７、８７）。
【００４５】
例えば、特性収集モジュール１０１は、任意の所与の瞬間に、コンピュータシステムの現在の状態を一意的に定義するか、又は示す特性を収集することができる。すなわち、モジュール１０１は、インストール済みのすべてのアプリケーション、これらのアプリケーションに関連付けられたファイル、及びこれらのアプリケーションの動作中に発生したプロセスもまた決定し得る。。
【００４６】
関係空間構築モジュール１０２は、以下をするように構成してもよい。
・コンピュータシステムの得られた特性の間の関係を決定する。（ここで、関係は、別の特性の値の変更に対応するある特性の値の変更の関数であってもよい。）
・少なくとも決定された関係の分析に基づいて、コンピュータシステムの状態の時間依存性を判定する。（ここで、コンピュータシステムの状態は、判定された関係のセットによって特徴付けられてもよく、コンピュータシステムの状態の時間依存性は、時間の関数として、コンピュータシステムの状態を記述する特性の値の変化を記述する規則を含む。）
・判定されたコンピュータシステムの状態の時間依存性を識別モジュール１０３に送信する。
【００４７】
コンピュータシステムの状態の時間依存性を判定する際に得られたコンピュータシステムの特性であって、以前に判定された特性の間の関係の分析は、以下の工程を含んでもよいが、それらに限定されるものではない。
・時間依存性が既定されている他の特性に対するこの特性の既知の依存性を使用することによって、コンピュータシステムの状態の記述に含まれる１つの特性の値の変化の時間依存性を特定する工程。
・特定された上記特性の値の時間依存性に従って、上記特性の値の変化に対する規則を作成する工程。
【００４８】
判定された関係は、関係記憶装置１１１から得られた関係で補足されてもよく、また、判定された関係は、（例えば、コンピュータシステムの状態が変化したときの）次の関係の判定の際に用いるために、関係記憶装置１１１に保持されてもよい。
【００４９】
例えば、正当なコンピュータシステムの関係を上記のように保存し、それらを悪意のあるコンピュータシステムの関係と比較してもよい。
【００５０】
モジュール１０１によって収集されたすべての特性の値は、各次元が１つの特性を表す多次元空間の点の形態で表されてもよい。そのような場合のこれらの点の集合は、ある面を定義することができる。１つ以上の特性を選択することによって、選択された特性の空間内の投影をその表面から得ることができる。そのような投影がコンピュータシステム全体の状態を特徴付けることができる場合、得られた投影は、選択された特性に従ってシステムの状態の変化を特徴付けることができる。
【００５１】
例えば、選択された特性は、以下を含んでもよいが、それらに限定されるものではない。ａ）メインメモリの容量。
ｂ）コンピュータシステムにおけるアプリケーションの動作開始の順序。
ｂ）に従って起動された各アプリケーションは、ａ）の一定量のメインメモリを利用することができ、その結果、利用可能なメインメモリの容量は、新しいアプリケーションが起動されるたびに減少する。コンピュータシステム内で実行されているアプリケーション数に依存して、利用可能なメインメモリの容量の２次元関数を構築するために、以下のような特徴的な減少関数を得ることができる。
【数１】
0006341964.tif 000002
ここで、Ｍは、利用可能なメインメモリの容量であり、Ｎは、コンピュータシステム内で実行されているアプリケーションの数であり、
0006341964.tif 000003
は、コンピュータシステム内で実行されているアプリケーションの平均数であり、コンピュータシステムがその機能を果たすことができる。得られた機能は、コンピュータシステムが変更されていない場合（例えば、新しいアプリケーションがインストールされていない場合）、又はコンピュータシステムがわずかに変更された場合（アプリケーションがインストールされたが、頻繁には使用されていないか、又はコンピュータシステムの動作にほとんど影響を与えない場合）にはほとんど変化しない可能性がある。
【００５２】
収集される各特性は、コンピュータシステムの動作時間に依存するいくつかの値を有しうる。このように判定された特性間の関係は、時間とともに変化する可能性がある。
【００５３】
例えば、メインメモリの容量は、画像処理又はパスワード推測アプリケーションがコンピュータシステム上で起動されるまで、コンピュータシステムのプロセッサによって実行される動作の数に全く依存しないことがある。しかし、そのようなアプリケーションの起動後には、プロセッサによって実行されている動作の数のメインメモリ容量への依存性が、以下の式で表されるように、逆となりうる。
【数２】
0006341964.tif 000004
ここで、Ｎは、実行されている動作の数を示す。
【００５４】
本発明の１つの例示的な態様によれば、時間依存性の分析は、悪意のあるソフトウェアがシステム内で実行されていることを示すコンピュータシステムの非標準的な動作を識別することができる可能性がある。例えば、特定の瞬間に先立つメインメモリ容量の変化は、（例えば、メインメモリの大容量が、実行中のアプリケーションの要求に応じてオペレーティングシステムによってめったに割り当てられないか又は開放されるかといった）低周期発振によって特徴付けられうるが、その後、これらの発振は、（例えば、メインメモリの小容量が、実行中のアプリケーションの要求に応じてオペレーティングシステムによって割り当てられたり開放されたりするといった）高周期発振となった。これは、メモリによってわずかな数の動作を実行するコンピュータシステムにおいてアプリケーションが実行を開始した後、その結果を他のアプリケーション又は別のアプリケーションに送信して、その結果をハードディスクに保存することを示すことができるが、これは正当なアプリケーションに特有の動作ではない。しかし、そのような動作は、特定の種類の悪意のあるアプリケーション（いわゆるトロイの木馬−ユーザーのコンピュータから機密データを収集する悪意のあるプログラム）とは区別される可能性がある。
【００５５】
例示的な一態様では、識別モジュール１０３は、以下をするように構成してもよい。
・コンピュータシステムの状態の取得された時間依存性の分析に少なくとも基づいて、コンピュータシステムの状態を判定する。
・コンピュータシステムの以下（１）、（２）の状態を表しうるパターンをパターン記憶装置１１２から選択する。
（１）正当なコンピュータシステムの状態。
（２）悪意のあるコンピュータシステムの状態。
・コンピュータシステムの判定された状態と選択されたパターンとを比較する。
・比較結果を分析モジュール１０４に送信する。
【００５６】
コンピュータシステムの状態は、以下により判定されてもよい。
・コンピュータシステムの変更のための以下（１）〜（３）の規則のいくつかをトリガする際の状態。
（１）アプリケーションの実行開始。
（２）アプリケーションの実行終了。
（３）以前に選択されたＡＰＩ関数の呼び出し。
・定期的に、定められた時点での状態。
【００５７】
例示的な一態様では、パターン記憶装置１１２は、コンピュータシステムの以前に選択された動作を特徴付けるコンピュータシステムの状態を含むコンピュータシステムの状態のパターンを保存することができる。
【００５８】
例えば、コンピュータシステムの状態のパターンは、アプリケーションのネットワーク動作を定義する特性のみを含んでもよく、コンピュータシステムの状態は、コンピュータネットワークにおいてデータを交換するときのコンピュータシステムの動作のみを特徴付けてもよい。
【００５９】
コンピュータシステムの状態のパターンは、コンピュータシステムの変更に起因して以前にトリガされた規則に依存してパターン記憶装置１１２から選択されてもよい。
【００６０】
例えば、アプリケーションがコンピュータシステム内で実行開始した場合、オペレーティングシステムにおけるアプリケーションの初期化を指定する特性を含むコンピュータシステムの状態のパターンが選択されうる。
【００６１】
コンピュータシステムの状態の比較の結果は、０（コンピュータシステムのこれらの特性の値が両方の状態で等しいとき、コンピュータシステムの両方の状態がコンピュータシステムの同一の特性のセットである場合）〜１（コンピュータシステムの第１状態が、コンピュータシステムの第２状態を含む特性と異なるコンピュータシステムの特性のセットである場合）の数値であってもよい。
【００６２】
例えば、コンピュータシステムの各状態は、コンピュータシステムの特性であり、コンピュータシステムの状態を特定するコンポーネントを含む多次元ベクトルとして表されてもよい。この場合、コンピュータシステムの２つの状態の比較は、各々がコンピュータシステムの状態の１つを表すことができる２つの多次元ベクトルのスカラー積を計算する工程を備えてもよく、この比較の結果は、１つのベクトルが他のベクトルとどれだけ異なるかを示す数（０は、コンピュータシステムの状態は同一であることを示し、±πは、コンピュータシステムの状態は最大限に異なることを示す。）であってもよい。
【００６３】
分析手段１０４は、以下をするように構成されてもよい。
・コンピュータシステムの状態と選択されたパターンとを比較して得られた結果の分析に少なくとも基づいて、コンピュータシステムの有害度を判定する。
・コンピュータシステムの有害度と選択された閾値とを比較した結果に基づいて、コンピュータシステムを悪意のあるものとして認識する判定を宣言する。
【００６４】
コンピュータシステムの有害度は、コンピュータシステムの状態の比較の結果として得られる以下によって特徴付けられる数値であってもよい。
・以前に判定された正当なコンピュータシステムとの差異度。
・以前に判定された悪意のあるコンピュータシステムとの類似度。
【００６５】
例えば、コンピュータシステムの特定の状態と、新しいソフトウェアがインストールされている正当なコンピュータシステムの以前に特定された状態との比較の結果、（高い確率でコンピュータシステムは正当である）０．０１の有害度が計算されたが、一方で、悪意のあるアプリケーションが実行されている悪意のあるコンピュータシステムの以前に特定された状態と比較の結果、被害を受けたコンピュータのリモートコントロール（バックドア）に（高い有害性を示すが、コンピュータシステムを悪意のあるものと判定するには十分ではない）０．５の有害度をもたらすことが計算され、コンピュータシステム上でソフトウェアインストールが行われているという事実と共に０．９の有害度をもたらし、これは、分析されているコンピュータシステムが悪意があるものと判定される可能性があることを意味する。
【００６６】
関係記憶装置１１１は、以下をするように構成されてもよい。
・特性収集モジュール１０１によって収集されたコンピュータシステムの特性間の関係の格納する。
・関係空間構築モジュール１０２に、収集された関係を提供する。
【００６７】
パターン記憶装置１１２は、以下をするように構成されてもよい。
・以下（１）、（２）に示す以前に判定されたパターンを格納する。
（１）正当なコンピュータシステムの状態。
（２）悪意のあるコンピュータシステムの状態。
・識別モジュール１０３にパターンを提供する。
【００６８】
パターンは、以下のものを含んでもよい。
・選択されたセキュリティポリシー（例えば、コンピュータシステム上で何が、どのように行われることが許可されているか）に基づいてコンピュータシステムの状態から事前に選択されているパターン。
・ユーザーのコンピュータのアンチウイルススキャン結果（悪意のあるアプリケーションに感染していると認識されたコンピュータから、悪意のあるコンピュータシステムの状態を取得し、正当であると認められたコンピュータから、正当なコンピュータシステムの状態を取得する）に基づいて、ユーザーのコンピュータシステムの状態から事前に選択されているパターン。
・分析されるコンピュータシステムの以前に得られた状態（例えば、長い間コンピュータシステムに変更が加えられていない場合、又は変更が無視できる程度である場合）として事前に判定されるパターン。
【００６９】
１つの例示的な態様では、悪意のあるコンピュータシステムの検出は、ユーザ＃１が長時間、ＭｉｃｒｏｓｏｆｔＷｏｒｄ文書を処理する作業をしたコンピュータシステムの分析に基づいてもよく、一方、所与の時点でユーザ＃２（ハッカー）は、悪意のあるサイトを訪問したり、個人のユーザーデータを盗むように設計された悪意のあるアプリケーションをダウンロードして実行したりするなど、コンピュータシステム上でリモートで作業を開始している。
【００７０】
当初、コンピュータシステムは正当であった、すなわち、悪意のある行為は行われていなかった。ＭｉｃｒｏｓｏｆｔＷｏｒｄ文書を有するコンピュータシステムにおけるユーザ＃１の作業中に、使用されるメインメモリの容量、コンピュータシステム上のユーザの動作に依存するＣＰＵの作業負荷のレベル、ネットワーク接続のプロパティ、データが交換されるネットワークアドレス、コンピュータネットワークを介して送信されるデータの特性（容量、種類、構造など）などの、コンピュータシステムの特性の標準的な集合が存在し得る。これらの収集されたコンピュータシステムの特性から、ユーザ＃１によって実行される動作、すなわちＭｉｃｒｏｓｏｆｔＷｏｒｄ文書の処理に関連する特性（値の変更（ＭｉｃｒｏｓｏｆｔＷｏｒｄによってネットワークディスクに転送されるデータ量、ユーザーがアクセスしたネットワークアドレス、ユーザーがダウンロードしたＭｉｃｒｏｓｏｆｔＷｏｒｄ文書等）がＭｉｃｒｏｓｏｆｔＷｏｒｄの動作を特定する特性の値の変更に依存する特性など）をＭｉｃｒｏｓｏｆｔＷｏｒｄアプリケーション自体の動作によって記述する特性（例えば、ＭｉｃｒｏｓｏｆｔＷｏｒｄの更新プログラムがダウンロードされたネットワークアドレス）が選択された。時間の経過とともに、正当なコンピュータシステムの状態は、コンピュータシステムの選択された特性のセットからなる収集されたデータに基づいて判定された。
【００７１】
所与の時点で得られた選択された特性のすべての値は、多次元空間に位置する点のセットとして表されてもよく、上記のように選択された各特性は、その空間の次元の１つを含み得る。この点のセットは、コンピュータシステムの正当な状態の１つを特徴付ける複数の点を有する空間の領域（「コンピュータシステムの正当な状態の領域」と呼ぶことができよう）を包含する閉鎖面（「コンピュータシステム状態の面」と呼ぶことができよう）を形成し得る。すなわち、これは、ユーザ＃１の動作中に得られたコンピュータシステムの状態であり、一方、上記表面によって包含される領域外の点は、ユーザ＃１によって実行されるものとは異なる動作を有するコンピュータシステムの状態を含むことができる。コンピュータシステム内のユーザ＃１の任意の動作は、選択された特性の値を変更する可能性があり、結果として「コンピュータシステムの状態表面」に反映され得る。結果として、コンピュータシステムの過去の状態は、「コンピュータシステムの状態表面」＃ｔ１．１によって取得及び記述される得るし、コンピュータシステムの新しい状態は、「コンピュータシステムの状態表面」＃ｔ１．２によって取得及び記述され得る。１つの例示的な態様において、「コンピュータシステムの状態表面」＃ｔ２と「正当なコンピュータシステムの状態表面」ｔ１との差異の程度は、時刻ｔ１．２の時点におけるコンピュータシステムの有害度を特徴付けることができる。
【００７２】
あるいは、ユーザ＃１がコンピュータシステムで作業していた際に、コンピュータシステムの状態と正当なコンピュータシステムの状態のパターンとの比較の結果は、コンピュータシステムに０．０５の有害度をもたらすとすることがあり、悪意のあるコンピュータシステムの状態のパターンとの比較は、コンピュータシステムに０．０１の有害度をもたらすとすることがある。したがって、ユーザ＃１が作業していたコンピュータシステムは、正当であると判定される可能性がある。
【００７３】
ユーザー＃２がコンピュータシステムで作業していた場合、悪意のあるサイトに定期的にアクセスし、それらのサイトから悪意のあるアプリケーションをダウンロードして実行する可能性がある。ユーザーの行動の変化はコンピュータシステムの挙動にも反映される可能性がある。なぜなら、遠隔地にあるファイルでの作業のために追加機能（例えば、ブラウザの起動、悪意のあるサイトへの侵入など）が使用され始めたからである。ある時点で、悪意のあるアプリケーションは、ネットワークアドレスの１つからコンピュータシステムにダウンロードされ、インストールされ、起動され、個人データを収集し、コンピュータネットワークを介して送信する可能性がある。このような動作は、コンピュータシステムの多くの特性の値の変更をもたらし、動作後のコンピュータシステムの状態に強く反映され得る。全ての特性の値が多次元空間の点を形成して表され、上記のようにコンピュータシステムの特性である場合、前述の悪意のあるアプリケーションがコンピュータシステムで動作していた時点での点から形成された表面（コンピュータシステムの現在の状態表面）は、コンピュータシステムが正当な状態であった時点での点から形成された表面（コンピュータシステムの正当な状態表面）とは著しく異なっていた。この差異は、「コンピュータシステムの正当な状態の領域」及び「コンピュータシステムの現在の状態の領域」が、それらの全領域と比較して小さな領域の共通領域を有するという事実に反映され得る。
【００７４】
コンピュータシステムの状態と正当なコンピュータシステムの状態のパターンとを比較した結果、コンピュータシステムの有害度が０．５０であると判定及び計算され、悪意のあるコンピュータシステムの状態のパターンとを比較した結果、コンピュータシステムの有害度が０．８０であるとされうる。したがって、ユーザ＃２が作業していたコンピュータシステムは、悪意のあるコンピュータシステムであると判定される可能性がある。
【００７５】
図２は、本発明の例示的な一態様による悪意のあるコンピュータシステムの検出方法の構造図を示す。悪意のあるコンピュータシステムの検出方法の構造図は、コンピュータシステムの特性を識別及び収集するステップ２０１と、コンピュータシステムの特性間の関係を決定するステップ２０２と、コンピュータシステムの状態の時間依存性を判定するステップ２０３と、コンピュータシステムの状態を確定するステップ２０４と、コンピュータシステムの特性を比較するステップ２０５と、コンピュータシステムの有害度を判定するステップ２０６と、判定を宣言するステップ２０７とを含む。
【００７６】
より具体的には、図２を参照すると、ステップ２０１において、コンピュータシステムの特性は、識別及び収集されうる。
【００７７】
コンピュータシステムの特性は、以下を含んでもよいが、それらに限定されるものではない。
・コンピュータシステムのコンピューティングリソースの特性。
・コンピュータシステム上で実行されているソフトウェアの特性。
・コンピュータシステム上で処理されるデータの特性。
【００７８】
コンピュータシステムのコンピューティングリソースの特性は、以下を含んでもよいが、それらに限定されるものではない。
・コンピュータシステムのメインメモリ。
・コンピュータシステムの性能。
・ネットワーク環境の特性。
【００７９】
コンピュータシステム上で実行されているソフトウェアの特性は、以下を含んでもよいが、それらに限定されるものではない。
・コンピュータシステム内で実行されているアプリケーションの識別子だけでなく、識別されたアプリケーションに関連付けられたファイル（名前、実行可能ファイルへの完全パス、実行可能ファイルのチェックサムなど）。
・コンピュータシステムで実行されているアプリケーションの設定ファイル（レジストリ内のエントリ又はｉｎｉファイルのエントリなど）からの記録。
・どのアプリケーションがデータを交換し、どのように交換するかを特徴付けるアプリケーション間の関係。
【００８０】
コンピュータシステム上で処理されるデータの特性は、以下を含んでもよいが、それらに限定されるものではない。
・データの送信側及び受信側の識別子（例えば、データ交換が行われているアプリケーションの名称）。
・データの種類（例えば、データベースファイル、イメージなど）。
・データ転送方法（例えば、コンピュータネットワークによって行われるデータ転送、又はプロセス間通信の方法を使用したあるアプリケーションから別のアプリケーションへのデータ転送）。
【００８１】
ステップ２０２において、ステップ２０１で収集されたコンピュータシステムの特性間の、関係が決定されてもよく、ここで、関係は、別の特性の値の変更に対してある特性の値の変更の依存性を含みうる。
【００８２】
コンピュータシステムの状態の時間依存性を判定する際に、ステップ２０１で収集されたコンピュータシステムの特性間の関係であって、以前に決定された関係の分析は、以下の工程を含み得る。
・時間依存性がすでに定められている他の特性に対してこの特性の既知の依存性を用いて、コンピュータシステムの状態の記述に関わる１つの特性の値の変化の時間依存性を識別する工程
・上記特性の値の識別された時間依存性によって、上記特性の値の変化に対する規則を構成する工程
【００８３】
判定された関係は、関係記憶装置１１１から得られた関係で補足されてもよく、判定された関係は、関係記憶装置１１１に格納され、格納された関係が、関係の次の判定時（例えば、コンピュータシステムの状態が変化したとき）に用いられうる。 
【００８４】
ステップ２０１で収集されたすべての特性の値は、各次元が１つの特性を表しうる多次元空間の点の形態で表すことができる。そのような点の収集は、特定の表面を特定しうる。必要な特性を選択することによって、特定された表面から、選択された特性の空間内の投影を得ることができる。記述された投影がコンピュータシステム全体の状態を特徴付ける場合、得られた投影は、選択された特性についてシステムの状態の変化を特徴付けることができる。
【００８５】
ステップ２０１で収集された各特性は、コンピュータシステムの動作時間に依存するいくつかの値を有する可能性がある。このように判定された特性間の関係はまた、時間の経過とともに変化する可能性がある。
【００８６】
ステップ２０３では、ステップ２０２で判定された関係の分析に基づいて、コンピュータシステムの状態について時間依存性を判定することができ、コンピュータシステムの状態は、このように判定された関係のセットによって特徴付けることができ、コンピュータシステムの状態の時間依存性は、時間の関数としてコンピュータシステムの状態を表す特性の値の変化を記述する規則を含むことができる。
【００８７】
時間依存性を分析することにより、コンピュータシステムの非標準的な動作を判定及び追跡することが可能になり、悪意のあるソフトウェアがシステム内で実行されていることが示される可能性がある。
【００８８】
ステップ２０４において、コンピュータシステムの状態は、ステップ２０３において判定されたコンピュータシステムの状態の時間依存性の分析に基づいて判定されてもよい。
【００８９】
コンピュータシステムの状態は、以下により判定されてもよい。
・コンピュータシステムの変更のための以下（１）〜（３）の規則のいくつかをトリガするときの状態。
（１）アプリケーションの実行開始。
（２）アプリケーションの実行終了。
（３）以前に選択されたＡＰＩ関数の呼び出し。
・定期的に、定められた時点での状態。
【００９０】
ステップ２０５では、コンピュータシステムの特性を比較することができる。より具体的には、コンピュータシステムの状態のパターンは、パターン（正当なコンピュータシステムの状態及び悪意のあるコンピュータシステムの状態）記憶装置１１２から選択され、ステップ２０４において判定されたコンピュータシステムの状態と比較することができる。
【００９１】
パターンは、以下に示すもので構成されてもよい。
・選択されたセキュリティポリシー（例えば、コンピュータシステム上で何が、どのように、行われることが許可されているか）に基づいてコンピュータシステムの状態から事前に選択されるパターン。
・ユーザーのコンピュータのアンチウイルススキャンの結果（悪質なアプリケーションに感染していると認識されたコンピュータから、悪質なコンピュータシステムの状態を取得し、正当であると認められたコンピュータから、正当なコンピュータシステムの状態を取得する）に基いて、ユーザーのコンピュータシステムの状態から事前に選択されるパターン。
・分析中のコンピュータシステムの以前に得られた状態として事前に決定されるパターン（例えば、長い間コンピュータシステムに変更が加えられていないか、又は行われた変更が無視できる場合）。
【００９２】
例示的な一態様では、コンピュータシステムの以前に選択された挙動を含むコンピュータシステムの状態を表すコンピュータシステムの状態のパターンをパターン記憶装置１１２に格納することができる。
【００９３】
コンピュータシステムの状態のパターンを、パターン記憶装置１１２から、コンピュータシステムの変更のために以前にトリガされた規則の関数として選択することもできる。
【００９４】
コンピュータシステムの状態の比較結果は、０（コンピュータシステムのこれらの特性の値が両方の状態で等しいとき、コンピュータシステムの両方の状態がコンピュータシステムの同一の特性のセットである場合）〜１（コンピュータシステムの第１状態が、コンピュータシステムの第２状態を含む特性と異なるコンピュータシステムの特性のセットである場合）の数値であってもよい。
【００９５】
ステップ２０６において、コンピュータシステムの有害度は、ステップ２０５で得られたコンピュータシステムの状態の比較結果の分析に基づいて判定されてもよい。
【００９６】
コンピュータシステムの有害度は、コンピュータシステムの状態の比較結果として得られる数値を含んでもよく、以下のものを含むがこれに限定されるものではない。
・以前に判定された正当なコンピュータシステムとの差異度
・以前に判定された悪意のあるコンピュータシステムとの類似度
【００９７】
ステップ２０７において、判定は決定され、選択された閾値と関連してステップ２０６で判定されたように、コンピュータシステムの有害度の比較結果に基づいて、コンピュータシステムを悪意があるものと識別することを宣言されうる。
【００９８】
図３は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータシステム（パーソナルコンピュータやサーバ等）の例を示している。例えば、コンピュータシステム２０は、保護サーバ１２０又はシンクライアント１１０の１つ又は複数に対応し得る。図示の通り、コンピュータシステム２０は、ＣＰＵ２１（シンクライアント１１０用ではないことに留意）と、システムメモリ２２と、ＣＰＵ２１と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス２３とを含み得る。システムバス２３は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来より公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ（ＲＯＭ）２４及びランダムアクセスメモリ（ＲＡＭ）２５を含む。基本的な入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４の使用によってオペレーティングシステムをロードする際等、パーソナルコンピュータ２０の要素間の情報の伝達を担う基本的な手順を含む。
【００９９】
パーソナル・コンピュータ２０は、データの読み書きのためのハードディスク２７、取り外し可能な磁気ディスク２９の読み書きのための磁気ディスクドライブ２８、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光学メディア等の光学ディスク３１の読み書きのための光学式ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８、及び光学式のドライブ３０は、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、及び光学式のドライブインターフェース３４それぞれを横切るシステムバス２３と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びパーソナルコンピュータ２０の他のデータのストレージのための電源依存のモジュールである。
【０１００】
本発明は、ハードディスク２７、取り外し可能な磁気ディスク２９及び取り外し可能な光ディスク３１を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるソリッドステートドライブ、フラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ（ＲＡＭ）等の他のタイプのコンピュータ情報メディア５６を使用してもよいことに留意されたし。また、これはコントローラ５５を介してシステムバス２３に接続される。
【０１０１】
コンピュータ２０は、ファイルシステム３６を有し、記録されたオペレーティングシステム３５の保持する。また追加のプログラムアプリケーション３７、他のプログラムモジュール３８、及びプログラムデータ３９を有する。ユーザは、入力デバイス（キーボード４０、マウス４２）を用いてコマンドと情報をパーソナルコンピュータ２０に入力することができる。他の入力デバイス（不図示）：マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力デバイスは、通常、システムバスに次々接続しているシリアルポート４６を通じてコンピュータシステム２０に差し込まれるが、それらは、他の方法例えばパラレルポート、ゲームポート、又は一般的なシリアルバス（ＵＳＢ）に接続される。ディスプレイ機器のモニタ４７又は他のタイプは、また、ビデオアダプタ４８等のインターフェースと交差するシステムバス２３に接続している。モニタ４７に加えて、パーソナルコンピュータは、スピーカー、プリンタ等の他の周辺の出力デバイス（不図示）を接続できる。
【０１０２】
パーソナルコンピュータ２０は、１つ又は複数のリモートコンピュータ４９とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ（又はコンピュータ）４９は、パーソナルコンピュータ２０の性質として説明した上述の要素全て又は上述の要素の大多数を有するパーソナルコンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータネットワークで存在し得るものである。
【０１０３】
ネットワーク接続は、ローカルエリアコンピュータネットワーク（ＬＡＮ）５０及びワイドエリアコンピュータネットワーク（ＷＡＮ）を形成することができる。そのようなネットワークは、企業のコンピュータネットワーク及び社内ネットワークで利用され、それらはたいていにインターネットにアクセスすることができる。ＬＡＮ又はＷＡＮネットワークにおいて、パソコン２０は、ネットワークアダプタ又はネットワークインターフェース５１に交差するローカルエリアネットワーク５０に接続されている。ネットワークが用いられる時には、パソコン２０は、通信にインターネット等のワイドエリアコンピュータネットワークを実現するために、モデム５４又は他のモジュールを使用することができる。内部又は外部の機器であるモデム５４は、シリアルポート４６によりシステムバス２３と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法もあることに留意されたい。
【０１０４】
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及びメソッドを実施し得る。ソフトウェアにおいて実装される場合は、メソッドは不揮発性コンピュータ可読メディアの１つ又は複数の指示又はコードとして保存され得る。コンピュータ可読メディアは、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読メディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
【０１０５】
様々な態様において、本開示で説明されたシステム及び方法は、モジュールに関して扱うことができる。以下使用する用語「モジュール」は、ハードウェアを用いて実装される実世界の機器、コンポーネント、又はコンポーネント類を指すものとする。ここでいうハードウェアとは、例えば、特定用途向け集積回路（ＡＳＩＣ：ＡｐｐｌｉｃａｔｉｏｎＳｐｅｃｉｆｉｃＩｎｔｅｇｒａｔｅｄＣｉｒｃｕｉｔ）又はＦＰＧＡ（Ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅＧａｔｅＡｒｒａｙ）や、ハードウェアとソフトウェアの組み合わせ等によるものや、マイクロプロセッサシステム及びモジュールの機能を実行する指示のセットであって実行中にマイクロプロセッサシステムを特定の目的の機器に変換するものによるものである。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という２つの組み合わせとして実施されてもよい。特定の実施例では、モジュールの少なくとも一部、場合によってはすべてが、ユーザコンピュータ又はコンピューティングデバイスのプロセッサ（例えば、特性修正モジュール１０１、関係空間構築モジュール１０２、識別モジュール１０３、及び分析モジュール１０４を含む）を含む。したがって、各モジュールは、様々な適切な構成で実現することができ、本明細書に例示される特定の実装に限定されるべきではない。
【０１０６】
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
【０１０７】
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
【０１０８】
本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、態様及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【図１】
0006341964.tif 000005
【図２】
0006341964.tif 000006
【図３】
0006341964.tif 000007