(57)【特許請求の範囲】
【請求項１】
システムであって、
複数のプロセスを実行するプロセッサと、
前記複数のプロセスのそれぞれの複数の特徴を収集する特徴収集モジュールと、
複数の重み付け脅威スコアを生成するべく前記複数の特徴に対して、それぞれが複数のプロセスカテゴリのうち１以上のプロセスカテゴリに対応している複数の分類ルールを適用し、前記複数の重み付け脅威スコアと、それぞれが前記複数のプロセスカテゴリのうちの１つに対応している複数のしきい値とを比較して、前記複数の重み付け脅威スコアと前記複数のしきい値とを比較した結果に少なくとも基づいて、前記複数のプロセスのそれぞれを前記１以上のプロセスカテゴリに分類する特徴分析エンジンと
を備え、
前記複数の重み付け脅威スコアと複数のしきい値とを比較することは、前記複数の重み付け脅威スコアと前記複数のしきい値との差分に少なくとも基づいて、前記複数の重み付け脅威スコアのそれぞれに信頼度を割り当てることを含む、システム。
【請求項２】
前記複数のプロセスカテゴリは、複数の悪意プロセスカテゴリを含む、請求項１に記載のシステム。
【請求項３】
前記複数の悪意プロセスカテゴリは、バックドアマルウェアを含む、請求項２に記載のシステム。
【請求項４】
前記複数の悪意プロセスカテゴリは、フェイクアラートマルウェアを含む、請求項３に記載のシステム。
【請求項５】
前記複数の悪意プロセスカテゴリは、ダウンローダマルウェアを含む、請求項３に記載のシステム。
【請求項６】
前記複数の特徴は、前記複数のプロセスのそれぞれが不可視であるか否かを特定することを含む、請求項１から５のいずれか一項に記載のシステム。
【請求項７】
前記複数の特徴は、前記複数のプロセスのそれぞれに対応付けられているネットワーク利用挙動を示す特徴を含む、請求項１から５のいずれか一項に記載のシステム。
【請求項８】
前記複数の特徴は、前記複数のプロセスのそれぞれに対応付けられているシステムトレイ挙動を示す特徴を含む、請求項１から５のいずれか一項に記載のシステム。
【請求項９】
前記複数の特徴は、前記複数のプロセスのそれぞれに対応付けられている署名済み証明書の挙動を示す特徴を含む、請求項１から５のいずれか一項に記載のシステム。
【請求項１０】
特徴収集モジュールが、複数のプロセスのそれぞれの複数の特徴を収集する段階と、
特徴分析エンジンが、複数の重み付け脅威スコアを生成するべく、それぞれが複数のプロセスカテゴリのうち１以上のプロセスカテゴリに対応する複数の分類ルールを前記複数の特徴に適用する段階と、
前記特徴分析エンジンが、前記複数の重み付け脅威スコアと、それぞれが前記複数のプロセスカテゴリのうちの１つに対応する複数のしきい値とを比較する段階と、
前記特徴分析エンジンが、前記複数の重み付け脅威スコアと前記複数のしきい値とを比較した結果に少なくとも基づいて、前記複数のプロセスのそれぞれを前記１以上のプロセスカテゴリに分類する段階と
を備え、
前記複数の重み付け脅威スコアと前記複数のしきい値とを比較する段階は、前記複数の重み付け脅威スコアと前記複数のしきい値との差分に少なくとも基づいて、前記複数の重み付け脅威スコアのそれぞれに信頼度を割り当てる段階を有する、方法。
【請求項１１】
前記複数のプロセスカテゴリは、複数の悪意プロセスカテゴリを含む、請求項１０に記載の方法。
【請求項１２】
前記複数の悪意プロセスカテゴリは、バックドアマルウェアを含む、請求項１１に記載の方法。
【請求項１３】
前記複数の悪意プロセスカテゴリは、フェイクアラートマルウェアを含む、請求項１１に記載の方法。
【請求項１４】
前記複数の悪意プロセスカテゴリは、ダウンローダマルウェアを含む、請求項１１に記載の方法。
【請求項１５】
前記複数の特徴は、前記複数のプロセスのそれぞれが不可視であるか否かを特定する特徴を含む、請求項１０から１４のいずれか一項に記載の方法。
【請求項１６】
前記複数の特徴は、前記複数のプロセスのそれぞれに対応付けられているネットワーク利用挙動を示す特徴を含む、請求項１０から１４のいずれか一項に記載の方法。
【請求項１７】
前記複数の特徴は、前記複数のプロセスのそれぞれに対応付けられているシステムトレイ挙動を示す特徴を含む、請求項１０から１４のいずれか一項に記載の方法。
【請求項１８】
前記複数の特徴は、前記複数のプロセスのそれぞれに対応付けられている署名済み証明書挙動を示す特徴を含む、請求項１０から１４のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して情報セキュリティに関し、特に署名を利用せずにマルウェアを検出することに関する。
【背景技術】
【０００２】
デジタル的に格納されているデータがますます重要になると共にどこでもアクセスできるようになるにつれて、デジタルデータのセキュリティを維持することの重要性も同じく増している。企業および個人はデータの保護に努めているが、他の個人、機関および企業がセキュリティホールを悪用して、データにアクセスしたり、および／または、コンピュータシステム自体に大きな損害を与えたりしようと試みる場合がある。一般的に、セキュリティホールを悪用しようとするさまざまな種類のソフトウェアは、「マルウェア」と呼ばれ、ウイルス、ワーム、アドウェア、スパイウェア等を含むグループにグループ化され得る。
【０００３】
コンピュータシステムおよび対応するデータをマルウェアによる攻撃から保護するべく多くのさまざまな製品が開発されている。このような方法の一つに、ＭｃＡｆｅｅ  ＡｎｔｉＶｉｒｕｓ、ＭｃＡｆｅｅ  Ｉｎｔｅｒｎｅｔ  ＳｅｃｕｔｉｒｙおよびＭｃＡｆｅｅ  Ｔｏｔａｌ  Ｐｒｏｔｅｃｔｉｏｎ等のマルウェア対策プログラムを利用することが挙げられる。一部のマルウェア対策プログラムは、検出の際にマルウェア署名を利用している。マルウェア署名は、既に特定されたマルウェアの識別情報、または、マルウェアファイルのハッシュもしくはその他の構造識別子に基づいた署名である。マルウェアを特定する別の方法として、ファイルの挙動に基づいて判断する方法がある。例えば、マルウェア対策ソフトウェアは、メモリの禁止部分にアクセスしようと試みるプロセスがないかどうか、電子デバイスを監視する。
【０００４】
しかし、上記の方法は、静的な署名、および／または、プロセスの挙動を追跡するための大量の処理電力を利用する。また、特定されるマルウェアは増加する一方なので、署名データベースが大きくなり過ぎる可能性がある。さらに、マルウェアファイルを少し変更するだけで、わずかに修正されたマルウェアファイルのハッシュは元のハッシュとは異なるので、署名データベースのサイズの小型化への努力が台無しになってしまう。また、マルウェア署名の最新バージョンが利用できるように保証するべく、常にネットワーク接続が必要になるので、ハードウェアに関する問題も発生し得る。最後に、署名を利用することで、ゼロデイ攻撃、つまり、これまでに特定されたことのないマルウェアによる攻撃に対してシステムが脆弱になってしまう。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示の教示内容によると、電子デバイスに対するサービス攻撃の拒絶を検出することに関する問題点および不利益が、改善され、低減され、または、無くなるとしてよい。
【０００６】
本開示の一実施形態によると、複数のプロセスを複数のプロセスカテゴリに分類する方法を説明する。当該方法は、プロセスの複数の特徴を収集する段階と、複数の重み付け脅威スコアを生成するべく複数の分類ルールを複数の特徴に適用する段階と、複数の重み付け脅威スコアを複数のしきい値と比較する段階と、複数の重み付け脅威スコアと複数の所定のしきい値との比較結果に少なくとも基づいて、１以上のプロセスカテゴリのプロセスを分類する段階とを備え、各分類ルールは複数のプロセスカテゴリの１以上に対応し、各しきい値は、複数のプロセスカテゴリのうち１つに対応するとしてよい。
【０００７】
本開示の別の実施形態によると、複数のプロセスを複数のプロセスカテゴリに分類するシステムを説明している。当該システムは、プロセッサを備えるとしてよく、当該プロセッサは、プロセスの複数の特徴を収集し、複数の重み付け脅威スコアを生成するべく複数の分類ルールを複数の特徴に適用し、複数の重み付け脅威スコアを複数のしきい値と比較し、複数の重み付け脅威スコアと複数の所定のしきい値との比較結果に少なくとも基づいて、１以上のプロセスカテゴリのプロセスを分類し、各分類ルールは複数のプロセスカテゴリの１以上に対応し、各しきい値は、複数のプロセスカテゴリのうち１つに対応するとしてよい。
【図面の簡単な説明】
【０００８】
本発明の実施形態およびその利点についてより詳しく説明するべく、添付図面と共に以下の説明を参照されたい。添付図面では、同様の参照番号は同様の特徴を示す。図面は以下の通りである。
【図１】本開示の特定の実施形態に応じた、電子デバイスで実行されている悪意プロセスを検出する電子デバイスを示す高位図である。
【図２】本開示の特定の実施形態に応じた、電子デバイスで実行されている悪意プロセスを検出する電子デバイスを示す別の高位図である。
【図３】本開示の特定の実施形態に応じた、電子デバイスで実行されている悪意プロセスを検出する方法の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００９】
好ましい実施形態およびその利点は、図１から図３を参照すると最も分かり易い。図１から図３では、同様および対応する構成要素を示す場合には同様の番号を用いる。
【００１０】
本開示において、電子デバイスシステムは、デジタル形式で格納されているデータ、例えば、コンピュータ読出可能媒体に格納されているデータの格納、処理、送信、受信、利用または取扱いが可能な任意のデバイス、サブデバイス、または、デバイスおよび／もしくはサブデバイスの組み合わせを含むとしてよい。コンピュータ読出可能媒体は、デジタルデータを格納する任意のデバイス、サブデバイス、または、デバイスおよび／もしくはサブデバイスの組み合わせを含み、これらに限定されないが、ハードディスクドライブ、フラッシュメモリ、リードオンリーメモリ、ランダムアクセスメモリ、光メモリ、ソリッドステートメモリ、または、デジタルデータを格納するために用いられる任意のその他の種類の取り外し可能な媒体および／もしくは固定媒体としてよい。
【００１１】
図１は、本開示の特定の実施形態に係る電子デバイス１００で実行されている悪意プロセスを検出するための電子デバイス１００を示す高位図である。電子デバイス１００は、複数のプロセスを実行するように構成されているとしてよい。一般的に、プロセスは、電子デバイス１００で現在実行されているコンピュータプログラムのインスタンスであるとしてよい。電子デバイスは、任意の数のプロセスを同時に実行するとしてよい。説明のための一例として、プロセスは、ワードプロセッシングプログラム、ウェブブラウザ、プリントスプーラまたはタスクマネージャ等のオペレーティングシステムプロセス、ネットワークアクティビティモニタ、または、電子デバイス１００で現在実行されているコンピュータプログラムの任意のその他のインスタンスのうち、現在実行されている一部分であってよい。一部の実施形態によると、これらのプロセスは１以上のプロセスカテゴリに分類可能であるとしてよい。プロセスカテゴリは、安全プロセスおよび悪意プロセスを含むとしてよい。安全プロセスは、電子デバイス１００で実行されているプロセスのうち、ユーザまたはシステム操作者が分かっており、および／または、ユーザまたはシステム操作者の権限が与えられているプロセスであってよい。悪意プロセスは、電子デバイス１００で実行されているプロセスのうち、ユーザまたはシステム操作者が不明で、および／または、ユーザまたはシステム操作者の権限が与えられていないプロセスであってよい。または、電子デバイス１００、または、電子デバイス１００のユーザもしくは操作者に有害な挙動を持つプロセスであってよい。一部の構成によると、悪意プロセスは、「マルウェア」と一般的に呼ばれるとしてよい。
【００１２】
電子デバイス１００は、任意の種類の電子デバイスであってよく、ラップトップコンピュータ、デスクトップコンピュータ、および／または、携帯電話であってよい。一部の実施形態によると、電子デバイス１００はさらに、サーバ、サーバクラスタ、仮想マシン、または、その他のコンピューティングハードウェア、ファームウェア、および／または、ハードウェアおよび／またはファームウェアで実行されるべく構成されているソフトウェアであってよい。
【００１３】
一部の実施形態によると、電子デバイス１００は、プロセッサ２０２およびコンピュータ可読媒体２０８を備えるとしてよい。プロセッサ２０２は、電子デバイス用の命令を実行するよう構成されている任意の適切なマイクロプロセッサであってよい。説明のための例を挙げると、プロセッサ２０２は、パーソナルコンピュータプロセッサであってよく（例えば、Ｉｎｔｅｌ  Ｃｏｒｅ  ２  Ｄｕｏ、Ｉｎｔｅｌ  Ｃｏｒｅ  ｉ３、または、ＡＭＤ  Ｔｕｒｉｏｎプロセッサ）、または、携帯電話プロセッサであってよく（例えば、Ｓａｍｓｕｎｇ  Ｓ５ＰＣ１１０）、または、任意のその他の適切なマイクロプロセッサであってよい。
【００１４】
プロセッサ２０２は、通信可能にコンピュータ可読媒体２０８に結合されているとしてよい。コンピュータ可読媒体２０８は、任意の適切なコンピュータ可読媒体を含むとしてよい。例えば、ハードディスクドライブ、ＲＡＭ、ＲＯＭ、光媒体、ネットワークストレージデバイス、分散型ストレージデバイス、クラスタ化ストレージデバイス、仮想ディスク、または、任意のその他の適切なコンピュータ可読媒体であってよい。
【００１５】
一部の実施形態によると、電子デバイス１００は、ハードウェア素子として実現されるか、または、コンピュータ可読媒体２０８に格納されプロセッサ２０２で実行可能なものとして実現されている１以上のモジュールを含むとしてよい。例えば、特徴収集モジュール１０２、特徴分析エンジン１０４、および、データベース１０６がある。図１に図示した実施形態によると、特徴収集モジュール１０２、特徴分析エンジン１０４、および、データベース１０６は、コンピュータ可読媒体２０８に格納されているものとして図示されている。しかし、一部の実施形態によると、これらのモジュールは、同一または異なるコンピュータ可読媒体２０８に格納されているとしてよく、同一または異なる電子デバイス１００に格納されているとしてもよく、または、ハードウェア、ファームウェア、または、一部のこれらの組み合わせで実現されるとしてよい。
【００１６】
一部の実施形態によると、特徴収集モジュール１０２は、電子デバイス１００で実行されているプロセスについての特徴を収集するように構成されているとしてよい。説明のための一例を挙げると、プロセスの特徴は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムのスタートメニューに対応付けられているか否かであってよい。特徴分析エンジン１０４は概して、分析中のプロセスが悪意プロセスまたは安全プロセスのいずれであるかを判断するべく、および／または、さらに当該プロセスを１以上の悪意プロセスサブカテゴリに分類するべく、特徴収集モジュール１０２が収集する特徴を分析するように構成されているとしてよい。
【００１７】
特徴収集モジュール１０２、特徴分析エンジン１０４、および、データベース１０６は同じ電子デバイス１００内にあるものとして図示されているが、一部の実施形態では、同一または異なる電子デバイス１００にあるとしてもよい。例えば、データベース１０６が中央サーバ上にある一方、特徴収集モジュール１０２および特徴分析エンジン１０４はローカルクライアントマシン上にあるとしてもよい。別の例を挙げると、データベース１０６は、電子デバイス上に存在するハイパーバイザ内にあるとしてもよい。この場合、データベース１０６は、ハイパーバイザに通信可能に結合されている複数のゲストオペレーティングシステムに存在する複数の特徴収集モジュール１０２および複数の特徴分析エンジン１０４に対してサービスを提供するとしてよい。さらに別の例を挙げると、特徴収集モジュール１０２、特徴分析エンジン１０４、および、データベース１０６は、コンピュータ可読媒体上で実行可能な統合されたソフトウェアプログラムの一部であってよく、または、コンピュータ可読媒体上で実行可能な大規模ソフトウェアプログラムに含まれるそれぞれ別のソフトウェアプログラムおよび／もしくはそれぞれ別の素子、関数もしくはルーチンであってよい。
【００１８】
一部の実施形態によると、特徴収集モジュール１０２は概して、電子デバイス１００で実行されている一連のプロセスの複数の特徴を、これらのプロセスを悪意プロセスまたは安全プロセスとして分類するべく、収集することが可能であるとしてよい。この処理については、図２および図３を参照しつつより詳細に後述する。一般的に、プロセス特徴は、電子デバイス１００で実行されているプロセスの挙動、ステータス、ファイルサイズ、ファイル種類、または、その他の属性を記述している属性である。例えば、特徴には、プロセスが電子デバイス１００のオペレーティングシステムのスタートメニューに対応付けられているか否か、オペレーティングシステムのタスクバーに対応付けられているか否か、隠れているかまたは見えないようになっているか、署名が有るか無いか、および／または、オープンネットワークポートを要求しているか否かが含まれるとしてよい。
【００１９】
特徴分析エンジン１０４は概して、収集した特徴を分析することが可能であるとしてよい。一部の実施形態によると、これには、収集した特徴に対して複数の分類ルール２１４を適用することを含むとしてよい。分類ルール２１４は、収集した特徴に重みを割り当てること、重み付けされた合計値に対して統計学的分析を実行すること、および、各プロセスについて重み付け脅威スコアを生成することを含むとしてよい。このことについては、図２および図３を参照しつつより詳細に後述する。一部の実施形態によると、特徴分析エンジン１０４はさらに、重み付け脅威スコアをデータベース１０６に格納されている一連の所定のしきい値と比較して、プロセスを悪意プロセスまたは安全プロセスとして分類するとしてよい。同一または異なる実施形態によると、特徴分析エンジン１０４はさらに、重み付け脅威スコアに少なくとも基づいて、プロセスを１以上のマルウェアファミリーに分類することが可能であるとしてよい。これについては図２および図３を参照しつつより詳細に後述する。
【００２０】
動作について説明すると、電子デバイス１００は概して、複数のプロセスを１以上のプロセスカテゴリに分類するとしてよい。プロセスは、電子デバイス１００で現在実行されているコンピュータプログラムのインスタンスであってよい。電子デバイスは、任意の数のプロセスを同時に実行するとしてよい。説明のため一例を挙げると、プロセスは、ワードプロセッシングプログラム、ウェブブラウザ、プリントスプーラまたはタスクマネージャ等のオペレーティングシステムプロセス、ネットワークアクティビティモニタ、または、電子デバイス１００で現在実行されているコンピュータプログラムの任意のその他のインスタンスのうち、現在実行されている一部分であってよい。一部の実施形態によると、これらのプロセスは１以上のプロセスカテゴリに分類可能であるとしてよい。これらのカテゴリには、安全プロセスおよび悪意プロセスが含まれるとしてよい。安全プロセスは、電子デバイス１００で実行されているプロセスのうちユーザまたはシステム操作者が分かっているプロセス、および／または、ユーザまたはシステム操作者の権限が付与されているプロセスであってよい。悪意プロセスは、電子デバイス１００で実行されているプロセスのうち、ユーザまたはシステム操作者が分かっていないプロセスおよび／またはユーザまたはシステム操作者の権限が付与されていないプロセスであってよく、または、電子デバイス１００または電子デバイス１００のユーザもしくは操作者に対して有害な挙動を実行するプロセスであってよい。一部の構成によると、これらの悪意プロセスは概して、「マルウェア」と呼ばれるとしてよい。
【００２１】
同一または他の実施形態によると、悪意プロセスはさらに、サブカテゴリに分類されるとしてよい。これについては、図２および図３を参照しつつより詳細に後述する。これらのサブカテゴリは、特定の種類のマルウェア、例えば、バックドアプロセス、フェイクアラートプロセスおよびダウンローダプロセス等を含むとしてよい。さらに、本開示の範囲から逸脱することなく、所与の構成で実現する悪意プロセスのカテゴリの数を減らすか、または、変更するとしてよい。
【００２２】
図２および図３を参照しつつより詳細に後述するが、電子デバイス１００は概して、分類用の一連のルール２１４を作成し、電子デバイス１００で実行されている各プロセスから特徴を収集して、収集した特徴に対して一連のルール２１４を適用し、適用した結果を適切に重み付けして、重み付けした結果を一連のしきい値と比較することによって、プロセスを１以上のプロセスカテゴリに分類するとしてよい。
【００２３】
一部の実施形態によると、電子デバイス１００は概して、電子デバイス１００で実行されているプロセスから、電子デバイス１００に通信可能に結合されているか、電子デバイス１００の一部であるさまざまなハードウェア、ファームウェア、ソフトウェア、または、ハードウェアファームウェアおよび／もしくはソフトウェアの組み合わせから当該プロセスについてのデータを集めることによって、特徴を収集するとしてよい。
【００２４】
図２は、本開示の特定の実施形態に応じた、図１に示した電子デバイス１００をより詳細に示す図である。一部の実施形態によると、電子デバイス１００は、オペレーティングシステム２０４に通信可能に結合されているプロセッサ２０２と、マルウェア対策素子２０６と、コンピュータ可読媒体２０８と、ネットワークインターフェース２１２とを備えるとしてよい。図１を参照してより詳細に上述し、図３を参照しつつより詳細に後述するが、電子デバイス１００は、全て通信可能に互いに結合されている特徴収集モジュール１０２、特徴分析エンジン１０４、および、データベース１０６を格納しているコンピュータ可読媒体２０８を備えるとしてよい。コンピュータ可読媒体２０８はさらに、特徴収集モジュール１０２に通信可能に結合されているプロセス情報モジュール２２０を含むとしてよい。同一または別の実施形態によると、電子デバイス１００は、特徴収集モジュール１０２、特徴分析エンジン１０４および／またはデータベース１０６が提供する命令を実行するプロセッサ２０２を備えるとしてよい。
【００２５】
一部の実施形態によると、プロセッサ２０２は、複数のプロセス２１０を実行するように構成されているとしてよい。一般的に、一のプロセス２１０は、電子デバイス１００で現在実行されているコンピュータプログラムのインスタンスであってよい。電子デバイスは、任意の数のプロセス２１０を同時に実行するとしてよい。説明のための一例として、分かりやすいように、プロセッサ２０２は、５個のプロセス２１０、つまり、プロセス２１０Ａ、２１０Ｂ、２１０Ｃ、２１０Ｄおよび２１０Ｅを実行しているものとして図示されている。５個のプロセス２１０を図示しているが、本開示の範囲から逸脱することなく、所与の構成ではプロセスを増減するとしてもよいし、または、異なるプロセスとしてもよい。
【００２６】
プロセッサ２０２は、オペレーティングシステム２０４、マルウェア対策素子２０６、コンピュータ可読媒体２０８および／またはネットワークインターフェース２１２からデータを取得するように構成されているとしてよい。一部の実施形態によると、オペレーティングシステム２０４は、電子デバイス１００または他の電子デバイス１００のプロセッサ２０２または他のプロセッサ２０２で実行されている任意のオペレーティングシステムであってよい。説明のための一例を挙げると、オペレーティングシステム２０４は、Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ、Ｗｉｎｄｏｗｓ（登録商標）  ７、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、Ｍａｃ  ＯＳ（登録商標）の実際のインスタンスまたは仮想インスタンスであってよく、または、電子デバイス１００で実行する任意のその他のオペレーティングシステムであってよい。オペレーティングシステム２０４は、プロセス２１０を悪意プロセスまたは安全プロセスと分類するために有用な情報を提供する、オペレーティングシステム２０４で実行されている特定のプログラム、ルーチン、または、サブルーチンを持つように構成されているとしてよい。例えば、オペレーティングシステム２０４は、エンドユーザが一部のアプリケーションに容易にアクセスできるように「スタートメニュー」を含むとしてよい。電子デバイス１００上で実行されている一部のプロセス２１０はスタートメニューに対応付けられているが、対応付けられていないプロセスもあるとしてよい。図２に図示した例では、プロセス２１０Ａ、２１０Ｂ、２１０Ｄおよび２１０Ｅがスタートメニューに対応付けられている。例えば、プロセス２１０は、現在実行されているＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）等のワードプロセッシングアプリケーションのインスタンスであってよい。一部の構成によると、当該アプリケーションは、スタートメニューに対応するショートカットが含まれているとしてよい。あるプロセスがスタートメニューに対応付けられているか否かの情報は、悪意プロセスに対応付けられているアプリケーションはスタートメニューに含まれる可能性が低いので、悪意プロセスまたは安全プロセスとしてプロセスを分類する上で有用であるとしてよい。
【００２７】
また、オペレーティングシステム２０４は、電子デバイス１００で実行されている特定のプロセス２１０のステータスを提供する「タスクバー」を含むとしてよい。図２に図示した例によると、プロセス２１０Ａ、２１０Ｃ、２１０Ｄおよび２１０Ｅがタスクバーに対応付けられている。例えば、プロセス２１０は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムが利用しているようなネットワークステータスアプリケーションの現在実行されているインスタンスであってよい。プロセスがタスクバーに対応付けられていることに関する情報は、特定の種類の悪意プロセスはタスクバーを悪用してエンドユーザを悪意プロセスに関与させようとするので、プロセスを悪意プロセスまたは安全プロセスと分類する上で有用であるとしてよい。しかし、ネットワークステータスアプリケーション等の多くの種類の安全プログラムも同様に、ステータスバーを利用する。図３を参照しつつより詳細に後述するが、複数のプロセスの特徴をまとめて考慮する方が、特定の種類の挙動のみを考慮するよりも有用性が高いことが多い。
【００２８】
説明のための「スタートメニュー」および「タスクバー」の例はオペレーティングシステム２０４内で実行されているルーチンとして図示されているが、オペレーティングシステム２０４で実行および／または分析されているルーチンは、増減させるとしてもよいし、異なるルーチンであってもよい。これについては、図３を参照しつつより詳細に後述する。
【００２９】
一部の実施形態によると、電子デバイス１００はさらに、プロセッサ２０２に通信可能に結合されているマルウェア対策素子２０６を備えるとしてよい。マルウェア対策素子は、任意のハードウェア、ファームウェア、コンピュータ可読媒体に格納されておりハードウェアおよび／もしくはファームウェアで実行可能なソフトウェア、または、これらの任意の組み合わせであってよい。一部の実施形態によると、マルウェア対策素子２０６は、オペレーティングシステム２０４内で実行されているアプリケーションであってよい。他の実施形態によると、マルウェア対策素子２０６は、例えば、プリブート環境でオペレーティングシステム２０４の外部で実行されるアプリケーションであってよい。さらに別の実施形態によると、マルウェア対策素子２０６は、複数のサブ素子を有するとしてよく、一部のサブ素子はオペレーティングシステム２０４の内部で実行され、一部のサブ素子はオペレーティングシステム２０４の外部で実行される。説明のための一例を挙げると、マルウェア対策素子２０６は、オペレーティングシステム２０４の内部で実行されるエージェントおよびオペレーティングシステム２０４の外部で実行される分析エンジンのうち一部またはすべてを含むとしてよい。
【００３０】
一部の実施形態によると、マルウェア対策素子２０６は、複数のルール２１４を格納するとしてもよい。ルール２１４は、プロセス２１０の各カテゴリについての一連のルール２１４を含むとしてよい。例えば、悪意プロセス、バックドアプロセス、フェイクアラートプロセス、ダウンローダプロセスおよび安全プロセスはそれぞれ、独自のルール群を持つとしてよい。一部の実施形態によると、これらのルール群は、プロセス２１０を１以上のカテゴリに分類する場合に検査するべき特定の特徴および特徴群を記述しているとしてよい。一部の実施形態によると、特徴分析エンジン１０４は、収集した特徴に対してルール２１４を適用して、プロセス２１０を悪意プロセスまたは安全プロセスとして分類するとしてもよい。他の実施形態によると、特徴分析エンジンの機能の一部またはすべては、マルウェア対策素子２０６によって実行されるとしてもよい。例えば、マルウェア対策素子２０６が全てコンピュータ可読媒体２０８に格納されている構成では、マルウェア対策素子２０６は、ルール２１４を格納すると共に、ルール２１４をプロセス２１０に適用するように構成されているとしてよい。
【００３１】
ルール２１４を適用した結果は、一部の実施形態によると、重み付けされて、所定のしきい値２１８と比較されるとしてよい。一部の実施形態によると、ルール２１４に適用される重み２１６は、マルウェア対策素子２０６によって格納され、特徴分析エンジン１０４によって適用されるとしてよい。同一または異なる実施形態によると、重み２１６は、コンピュータ可読媒体２０８のデータベース１０６に格納されているとしてよい。さらに別の実施形態によると、重み２１６は、マルウェア対策素子２０６によってルール２１４に適用されるとしてもよい。
【００３２】
図３を参照しつつより詳細に後述するが、各プロセスカテゴリの各ルール２１４には、重み２１６が割り当てられているとしてよい。ルールを適用した結果に重み付けした後、特徴分析エンジン１０４によって統計学的分析を実行して、合計重み付け脅威スコアを決定するとしてよい。これについては、図３を参照しつつより詳細に後述する。例えば、「バックドア」プロセスは、プロセス２１０を当該カテゴリに分類するために用いられるルール群を持つとしてよい。このルール群に対応付けられている各ルール２１４は、重み２１６が対応付けられているとしてよい。統計学的分析の一例として、特徴分析エンジン１０４は、ルール群をプロセス２１０に適用した結果に重み付けしたものを合算して、当該プロセス２１０をバックドアプロセスとして分類すべきか否かを判断するとしてよい。他の実施形態によると、マルウェア対策素子２０６がこの統計学的分析を実行するとしてもよい。
【００３３】
ルールを適用した結果に重み付けした後、特徴分析エンジン１０４によって、重み付けされた結果としきい値群２１８とを比較するとしてよい。しきい値２１８はそれぞれ、プロセス２１０の特定のカテゴリに対応するとしてよい。説明のための一例を挙げると、しきい値２１８は、悪意プロセスしきい値、「バックドア」マルウェアしきい値、「フェイクアラート」マルウェアしきい値、および／または、「ダウンローダ」マルウェアしきい値を含むとしてよい。上記の例および他の例については、図３を参照しつつより詳細に後述する。他の実施形態によると、マルウェア対策素子２０６は、重み付けされた結果と、しきい値２１８群とを比較するとしてよい。
【００３４】
電子デバイス１００はさらに、コンピュータ可読媒体２０８を備えるとしてよい。コンピュータ可読媒体２０８は、任意の適切なコンピュータ可読媒体を含むとしてよく、例えば、ハードディスクドライブ、ＲＡＭ、ＲＯＭ、光媒体、ネットワークストレージデバイス、分散型ストレージデバイス、クラスタ化ストレージデバイス、仮想ディスク、または、任意のその他の適切なコンピュータ可読媒体であってよい。電子デバイス１００は、コンピュータ可読媒体２０８の１以上のインスタンスを含むとしてよい。一部の実施形態によると、コンピュータ可読媒体２０８は、特徴収集モジュール１０２、特徴分析エンジン１０４およびデータベース１０６を含むとしてよい。これについては、図２を参照しつつより詳細に上述している。
【００３５】
一部の実施形態によると、コンピュータ可読媒体２０８はさらに、プロセス情報モジュール２２０を含むとしてよい。プロセス情報モジュール２２０は、電子デバイス１００で実行されているプロセス２１０の特定の特徴を表現するデータを含むとしてよい。図２に図示した例によると、プロセス情報モジュール２２０は、プロセス２１０の２つの特徴を表現しているデータを含む。第１の特徴は、隠れ特徴２２６である。隠れ特徴２２６は、プロセス２１０がエンドユーザおよび／またはオペレーティングシステム２０４から隠れているか否かを示すとしてよい。第２の特徴は、署名済み特徴２２４である。署名済み特徴２２４は、プロセス２１０が、プロセス２１０の製造者および／または販売者によって署名されているか否かを示すとしてよい。例えば、プロセス２１０Ａは、隠れており署名されているとしてよく、プロセス２１０Ｂは、可視であり署名されているとしてよく、プロセス２１０Ｃは、可視であり署名されていないとしてよい。以下同様である。コンピュータ可読媒体２０８に対応付けられているプロセス２１０が５個であると図示しているが、任意の所与のタイミングで実行されているプロセス２１０の数は増減するとしてもよいし、異なるプロセス２１０を実行するとしてもよい。一部の実施形態によると、アクティブなプロセス２１０で構成されるサブ群のみを分析しているとしてよい。このため、このサブ群についての情報のみ収集するとしてよい。図３を参照しつつより詳細に後述するが、分析している各プロセス２１０に対応付けられている属性値は、各プロセス２１０を悪意プロセスまたは安全プロセスとして分類するために用いられるとしてよく、および／または、プロセス２１０を１以上の悪意プロセスカテゴリに分類するために用いられるとしてよい。
【００３６】
一部の実施形態によると、電子デバイス１００は、プロセッサ２０２に通信可能に結合されているネットワークインターフェース２１２を備えるとしてよい。ネットワークインターフェース２１２は、任意のハードウェア、ファームウェア、コンピュータ可読媒体に格納されていてハードウェアおよび／もしくはファームウェアによって実行可能なソフトウェア、または、これらの任意の組み合わせであるとしてよい。一部の実施形態によると、ネットワークインターフェース２１２は、ネットワークインターフェースカード（ＮＩＣ）に対応付けられているアプリケーションであるとしてよく、ＮＩＣに対応付けられているデータの一部またはすべてを監視するとしてよい。他の実施形態によると、ネットワークインターフェース２１２は、ＮＩＣに対応付けられているハードウェアおよび／またはファームウェアの一部分であってよく、ＮＩＣに対応付けられている一部またはすべてのデータと通信するとしてよい。さらに別の実施形態によると、ネットワークインターフェース２１２は、複数のサブ素子、ならびに／または、ＮＩＣデバイス自体に対応付けられているファームウェアおよび／もしくはハードウェアを含むとしてよく、一部のサブ素子は、コンピュータ可読媒体に格納されハードウェアおよび／またはファームウェアで実行可能なソフトウェアとしてオペレーティングシステム２０４の内部で実行されており、一部のサブ素子は、コンピュータ可読媒体に格納されハードウェアおよび／またはファームウェアで実行可能なソフトウェアとしてオペレーティングシステム２０４の外部で実行されているとしてよい。説明のための例を挙げると、ネットワークインターフェース２１２は、ネットワークトラフィックを監視するオペレーティングシステム２０４内で実行されているエージェント、ネットワークトラフィックを監視するオペレーティングシステム２０４（例えば、プリブート環境内）の外部で実行されているエージェント、および、ＮＩＣデバイスに現在インストールされているファームウェアのうち一部またはすべてであってよい。
【００３７】
一部の実施形態によると、ネットワークインターフェース２１２は、電子デバイス１００で実行されている特定のプロセス２１０に対応付けられているデータを通信するように構成されているとしてよい。例えば、ネットワークインターフェース２１２は、ネットワーク特徴２２６を通信するように構成されているとしてよい。ネットワーク特徴２２６は、所与のプロセス２１０がオープンネットワークポートを持つか否かを示す特徴であるとしてよい。説明のため図２に示す例によると、ネットワークインターフェース２１２は、プロセス２１０Ａ、２１０Ｂ、２１０Ｃおよび２１０Ｅはオープンネットワークポートを持つがプロセス２１０Ｄは持たないことを伝達しているとしてよい。図３を参照しつつより詳細に後述するが、このような情報は特定のプロセス２１０が悪意プロセスまたは安全プロセスのいずれとして分類されるのかを判断する上で、および／または、プロセス２１０がどの悪意プロセス２１０カテゴリに属するか否かを判断する上で有用であるとしてよい。ネットワークインターフェース２１２に対応付けられているプロセス２１０として５個のプロセス２１０を図示しているが、任意の所与のタイミングで実行されているプロセス２１０の数は増減させるとしてもよい。一部の実施形態によると、アクティブなプロセス２１０のサブセットのみを分析対象としているとしてよい。このため、このサブセットに関する情報のみを収集するとしてよい。
【００３８】
図３は、本開示の特定の実施形態に応じた、電子デバイス１００で実行されている悪意プロセスを検出する方法３００の一例を示すフローチャートである。方法３００は、特定のプロセスの特徴を収集して、これらの特徴の分析に基づいてプロセスを分類し、特定した悪意プロセスに対して対策を取ることを含む。
【００３９】
一実施形態によると、方法３００は、ステップ３０２で開始されることが好ましい。本開示の教示内容は、電子デバイス１００のさまざまな構成で実現されるとしてよい。このため、方法３００の好ましい初期化点および方法３００を構成するステップ３０２−３１４の順序は、選択する実施例に応じて決まるとしてよい。
【００４０】
ステップ３０２において、電子デバイス１００は、電子デバイス１００で現在実行されている全てのプロセスを特定するとしてよい。一部の構成によると、現在実行されているプロセスの数は、一から数千の範囲内であってよい。現在実行されているプロセスをすべて特定した後、方法３００はステップ３０４に進むとしてよい。
【００４１】
ステップ３０４において、電子デバイス１００の特徴収集モジュール１０２は、選択されたプロセス２１０の説明となる特徴を収集するとしてよい。図２を参照しつつより詳細に上述したが、この処理は、一部の実施形態では、オペレーティングシステム２０４、マルウェア対策素子２０６、コンピュータ可読媒体２０８、および／または、ネットワークインターフェース２１２からデータを集めることを含むとしてよい。後述するが、この処理は、所与のプロセス２１０がオペレーティングシステム２０４のスタートメニューまたはタスクバーに対応付けられているか否か、プロセス２１０が隠れているか可視であるか、署名されているか否か、および／または、プロセス２１０がオープンネットワークポートを持つか否かを判断することを含むとしてよい。より詳細に後述するが、集めるデータは増減させるとしてもよく、異なるデータを集めるとしてもよい。
【００４２】
一部の実施形態によると、収集した特徴には、分析対象のプロセスについての挙動属性および構造属性が含まれるとしてよい。収集した特徴は、一部の実施形態によると、特定の特徴の有無を表す一連のバイナリ値を含む特徴ベクトルとして表現するとしてよい。例えば、特徴収集モジュール１０２は、１００個のプロセスを分析するとしてもよい。各プロセスについて、特徴収集モジュール１０２は８個の特徴を収集するとしてよい。各プロセスはこの後、８ビットの特徴ベクトルを持つとしてよい。他の例では、分析対象のプロセスの数は増減させるとしてよく、および／または、収集する特徴を増減させるとしてもよい。説明のための例を挙げると、収集する特徴には、以下が含まれるとしてよい。
（Ａ）ブラックリストに挙げられているセクション名、つまり、マルウェアで発見されることが分かっているセクション名のリスト（「ＣｏｎｔａｉｎｓＢｌａｃｋＬｉｓｔＳｅｃｔｉｏｎＮａｍｅｓ」）
（Ｂ）プロセスのウィンドウが可視状態であるか否か（「ＩｓＷｉｎｄｏｗＩｎｖｉｓｉｂｌｅ」）
（Ｃ）プロセスがオープンネットワークポートを持つか否か（「ＮｅｔｗｏｒｋＵｓａｇｅ」）
（Ｄ）プロセスのアイコンがシステムトレイにあるか否か（「ＩｓＩｎＳｙｓｔｅｍＴｒａｙＩｃｏｎ」）
（Ｅ）プロセスが対応するＡＰＩについてインポートテーブルエントリを持つか否か（「ＩｓＤｅｂｕｇｇｅｒＰｒｅｓｅｎｔ」）
（Ｆ）プロセス画像に署名があるか否か（「ＩｓＳｉｇｎｅｄ」）
（Ｇ）プロセスがスタートメニュー内にショートカットを持つか否か（「ＩｓＩｎＳｔａｒｔＭｅｎｕＥｎｔｒｙ」）
（Ｈ）プロセス画像がパック（圧縮）されているか否か（「ＩｓＰａｃｋｅｄ」）このような説明のための一例によると、特徴収集モジュール１０２は、プロセスに関するこれらの収集した特徴を持ち、このプロセスの特徴ベクトルは、＜１１１１００１１＞のようになるとしてよい。このような特徴ベクトルは、ブラックリストに載っているセクション名を含み、不可視状態で、オープンネットワークポートを持ち、システムトレイ内にアイコンがあり、デバッガが存在せず、署名されておらず、スタートメニューに含まれており、および、パック（圧縮）されているプロセスを表すとしてよい。図１および図２を参照しつつより詳細に上述したが、電子デバイス１００は、これらの特徴を収集するべくさまざまなソースからデータを収集するとしてよい。選択したプロセスから関連する特徴を収集した後、方法３００は、ステップ３０８に進むとしてよい。
【００４３】
ステップ３０８において、方法３００は、プロセスを悪意プロセスまたは安全プロセスとして分類するとしてよい。一部の実施形態によると、特徴分析エンジン１０４は、電子デバイス１００の特徴収集モジュール１０２が収集した特徴に統計学的分析を適用するとしてよい。重要な点として、特徴分析エンジン１０４は、一の所与のプロセスが悪意プロセスまたは安全プロセスのいずれであるかの判断を最適化するべく、一度に複数の特徴群に対して統計学的分析を適用するとしてよい。一部の実施形態によると、特徴分析エンジン１０４は、一連のルール２１４を作成するとしてよい。各ルール２１４には、重み２１６が対応付けられている。ルール２１４は、大規模な一連の適用可能特徴に対して逆次元縮小アルゴリズムを適用して、分析のための小規模な一連の特徴群を作成することで、作成するとしてよい。例えば、このようなアルゴリズムは、複数の悪意プロセスカテゴリに属するデータサンプルを含む一連のテストデータに適用されるとしてよい。
【００４４】
一部の実施形態によると、悪意プロセスカテゴリは１以上のルール２１４を含むとしてよく、各ルール２１４には重み２１６が対応付けられている。一部の構成によると、重み２１６は、悪意プロセスカテゴリの分類の履歴に基づいて、割り当てられているとしてよい。他の構成によると、重み２１６は、サンプルデータに適用される機械学習技術を利用して設定されるとしてよい。１以上のルール２１４に加えて、悪意プロセスカテゴリには、しきい値２１８が対応付けらえているとしてよい。一部の実施形態によると、しきい値２１８は、悪意プロセスカテゴリの分類の履歴に基づいて割り当てられるとしてよい。他の構成によると、しきい値２１８は、サンプルデータに適用される機械学習技術を利用して設定されるとしてよい。説明のための一例として、サポートベクターマシン技術を利用して、所与のカテゴリのしきい値２１８を設定するとしてよい。
【００４５】
特徴分析エンジン１０４が実行している分類アルゴリズムの一例を、以下に記載する式１および式２で再現する。式１は、所与のプロセスが特定の悪意プロセスカテゴリに属する信頼度を算出するべく特徴分析エンジン１０４が実行するアルゴリズムの一例である。式２は、プロセスをカテゴリに分類するべく特徴分析エンジン１０４が実行するアルゴリズムの一例を示す図である。式１および式２は、疑似コードとして図示されており、式１および式２が適用される構成を制限するものとして解釈されるべきではない。また、式１および式２は、説明のための例に過ぎず、本開示の範囲から逸脱することなく他のアルゴリズムを用いるとしてもよい。
【表１】
0005713478.tif 000002
尚、表１中のＲｊＸは、以下の数１を表す。
【数１】
0005713478.tif 000003
【００４６】
上記の疑似コードが示すように、アルゴリズムの一例では、分析対象の各プロセスについての信頼値を算出するとしてよい。この信頼値は、プロセスの合計重み付け脅威スコアと、プロセスを含むと考えられているプロセスカテゴリのしきい値２１８とを比較した結果であるとしてよい。より詳細に後述するが、これらのプロセスカテゴリは、バックドア悪意プロセス、フェイクアラート悪意プロセスおよび／またはダウンローダ悪意プロセスと、安全プロセスとを含むとしてよい。合計重み付け脅威スコアは、カテゴリルール２１４の統計学的分析に対する複数の重み２１６を、プロセスの特徴ベクトルに適用することによって、算出されるとしてよい。一部の実施形態によると、所与のプロセスカテゴリの各ルール２１４は、独自の重みがあるとしてよい。より詳細に後述する。一部の構成によると、信頼値が決定されると、一例である式２のアルゴリズムを呼び出して、プロセスカテゴリを決定するとしてよい。
【表２】
0005713478.tif 000004
【００４７】
方法３００のステップ３０８に戻ると、一部の実施形態において、悪意プロセスカテゴリは、プロセスを当該カテゴリに分類するために用いられる１以上のルール２１４を含むとしてよい。各ルール２１４には、重み２１６が割り当てられているとしてよい。重み付けされた複数のルール２１４を組み合わせることによって、方法３００は、プロセスを１以上の悪意プロセスカテゴリに分類するとしてよい。上記の式１および式２は、このような分類を実現するためのアルゴリズムの１つを説明している。さらに、簡略化した説明のための例を用いて、説明するとしてよい。
【００４８】
一部の構成によると、悪意プロセスカテゴリは、「バックドア」プロセスを含むとしてよい。一般的に、バックドアプロセスは、通常の認証手順に含まれないシステムリソースへのアクセスを許可するプロセスであってよい。バックドアプロセスとしてプロセスを分類するか否か判断するべく、以下の特徴を収集するとしてよい。
（Ａ）ファイルが隠れている
（Ｂ）プロセスウィンドウが不可視である
（Ｃ）プロセスＩＤが隠れている
（Ｄ）プロセスは一時的メモリ位置から実行されている
（Ｅ）プロセスはブラックリストに含まれているセクション名を含む
（Ｆ）プロセスはネットワークポートを利用している
（Ｇ）プロセスはデジタル署名されているこの説明は簡略されており、実施例に応じて、特徴の数は増減するとしてもよく、他の特徴を収集するとしてもよい。
【００４９】
この例に基づき、以下の表３は電子デバイス１００で実行されている３個のプロセスのデータを一例として示す。このデータ例では、値が「１」の場合に特徴が存在していることを示し、値が「０」の場合に特徴が存在しないことを示す。例えば、表３は一例であるプロセス１について、隠れておらず（０）、不可視で（１）、プロセスＩＤが隠れており（１）、一時的メモリ位置から実行されており（１）、ブラックリストに挙げられているセクション名は含んでおらず（０）、ネットワークポートを利用しており（１）、デジタル署名が無い（０）、としている。図示している特徴は７個でプロセスは３個であるが、特徴および／またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ３０６を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは＜０１１１０１０＞になるとしてよい。同様に、プロセス２−３の特徴ベクトルは、プロセス２が＜１０１１００１＞、プロセス３が＜１１１１１１１＞になるとしてよい。
【表３】
0005713478.tif 000005
【００５０】
これらの特徴を利用して、以下のルール２１４を適用するとしてよい。
（Ａ）ファイルが隠れており、プロセスウィンドウが不可視である
（Ｂ）プロセスＩＤが隠れている
（Ｃ）プロセスウィンドウが不可視であり、プロセスが一時的メモリ位置から実行されている
（Ｄ）プロセスウィンドウが不可視であり、プロセスはブラックリストに挙げられているセクション名を含む
（Ｅ）プロセスウィンドウが不可視であり、プロセスがネットワークポートを利用しており、プロセスがデジタル署名を持つ
この例から分かるように、ルール２１４は、１以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【００５１】
一部の実施形態によると、このルール群２１４を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み２１６を持つとしてよい。例えば、ルール２１４（Ａ）は、１５の重み２１６が割り当てられているとしてよく、ルール２１４（Ｂ）には、１５の重み２１６が割り当てられているとしてよく、ルール２１４（Ｃ）は、２の重み２１６が割り当てられているとしてよく、ルール２１４（Ｄ）は、３の重み２１６が割り当てられているとしてよく、ルール２１４（Ｅ）は、３の重み２１６が割り当てられているとしてよい。ルール２１４を適用した場合の重み２１６の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、バックドアカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール２１４の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス１の重み付け脅威スコアを計算すると、［１５（ルール２１４Ａに割り当てられた重み２１６）］×０（プロセス１はルール２１４Ａを満たさない）］＋［１５（ルール２１４Ｂに割り当てられた重み２１６）×１（プロセス１はルール２１４Ｂを満たしている）］＋［２（ルール２１４Ｃに割り当てられた重み２１６）×１（プロセス１はルール２１４Ｃを満たしている）］＋［３（ルール２１４Ｄに割り当てられている重み２１６）×１（プロセス１はルール２１４Ｄを満たす）］＋［３（ルール２１４Ｅに割り当てる重み２１６）×０（プロセス１はルール２１４Ｅを満たさない）］＝２０となるとしてよい。
【００５２】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値２１８と比較するとしてよい。一部の実施形態によると、本明細書で用いている説明のための例も含め、重み付け脅威スコアはしきい値２１８よりも高くなければならない。他の実施形態によると、重み付け脅威スコアは、しきい値２１８を満たせばよく、または、しきい値２１８より大きくなればそれでよい。例えば、本例においてバックドアプロセスとして分類するためのしきい値２１８が２０である場合、上記の重み付けルール２１４を適用することによって、以下の状況でプロセスがバックドアプロセスであるか否かを判断するとしてよい。詳細は表４に示す。
【表４】
0005713478.tif 000006
【００５３】
別の例を挙げると、一部の構成において、悪意プロセスカテゴリは「フェイクアラート」プロセスを含むとしてよい。一般的に、フェイクアラートプロセスは、例えば、危険物の購入等のユーザ動作を引き起こすべく、ユーザに対して認証されていない警告を発生させるプロセスであってよい。プロセスをフェイクアラートプロセスとして分類するか否か判断する場合には、以下の特徴を収集するとしてよい。
（Ａ）プロセスがホワイトリストに挙げられているセクション名を含まない
（Ｂ）プロセスがパック（圧縮）されている
（Ｃ）プロセスメモリに悪意のあるワードが存在する
（Ｄ）既存のプロセスの親プロセスである
（Ｅ）プロセスウィンドウが不可視である
（Ｆ）プロセスがシステムトレイにある
（Ｇ）プロセスファイルが隠れている
この説明は簡略化されており、実施例に応じて、利用する特徴の数は増減するとしてよく、異なる特徴を利用するとしてもよい。尚、特定の特徴は、プロセスを他の悪意プロセスカテゴリに分類する際に利用される特徴と同じであってもよいし、異なるとしてもよい。
【００５４】
この例に基づき、以下の表５は電子デバイス１００で実行されている３個のプロセスのデータを一例として示す。例えば、表５は一例であるプロセス１について、ホワイトリストに挙げられているセクション名を含んでおらず（０）、パック（圧縮）されており（１）、プロセスメモリに悪意のあるワードがあり（１）、既存プロセスの親プロセスであり（１）、不可視ではなく（０）、システムトレイにあり（１）、隠れていない（０）、としている。図示している特徴は７個でプロセスは３個であるが、特徴および／またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ３０６を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは＜０１１１０１０＞になるとしてよい。同様に、プロセス２−３の特徴ベクトルは、プロセス２が＜１０１１００１＞、プロセス３が＜１１１１１１１＞になるとしてよい。
【表５】
0005713478.tif 000007
【００５５】
これらの特徴を利用して、以下のルール２１４を適用するとしてよい。
（Ａ）プロセスはホワイトリストに挙げられているセクション名を含んでおらず、プロセスはパック（圧縮）されていない
（Ｂ）プロセスはプロセスメモリに悪意あるワードを持っており、親プロセスが存在しない
（Ｃ）プロセスウィンドウが不可視であり、プロセスがシステムトレイにあり、プロセスがプロセスメモリに悪意あるワードを持つ
（Ｄ）プロセスがシステムトレイにあり、ファイルが隠れている
この例から分かるように、ルール２１４は１以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【００５６】
一部の実施形態によると、このルール群２１４を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み２１６を持つとしてよい。例えば、ルール２１４（Ａ）は、１０の重み２１６が割り当てられているとしてよく、ルール２１４（Ｂ）には、５の重み２１６が割り当てられているとしてよく、ルール２１４（Ｃ）は、１５の重み２１６が割り当てられているとしてよく、ルール２１４（Ｄ）は、５の重み２１６が割り当てられているとしてよい。ルール２１４を適用した場合の重み２１６の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、バックドアカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール２１４の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス１の重み付け脅威スコアを計算すると、例えば、［１０（ルール２１４Ａに割り当てられた重み２１６）］×０（プロセス１はルール２１４Ａを満たさない）］＋［５（ルール２１４Ｂに割り当てられた重み２１６）×１（プロセス１はルール２１４Ｂを満たしている）］＋［１５（ルール２１４Ｃに割り当てられた重み２１６）×０（プロセス１はルール２１４Ｃを満たしていない）］＋［５（ルール２１４Ｄに割り当てられている重み２１６）×０（プロセス１はルール２１４Ｄを満たさない）］＝５となる。
【００５７】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値２１８と比較するとしてよい。例えば、本例においてフェイクアラートプロセスとして分類するためのしきい値２１８が２０である場合、上記の重み付けルール２１４を適用することによって、以下の状況でプロセスがフェイクアラートプロセスであるか否かを判断するとしてよい。詳細は表６に示す。
【表６】
0005713478.tif 000008
【００５８】
別の例を挙げると、一部の構成において、悪意プロセスカテゴリは「ダウンローダ」プロセスを含むとしてよい。一般的に、ダウンローダプロセスは、ユーザが知らないうちに、および／または、ユーザの許可無しに、電子デバイスにソフトウェアをダウンロードするプロセスであってよい。プロセスをダウンローダプロセスとして分類するか否か判断する場合には、以下の特徴を収集するとしてよい。
（Ａ）プロセスがブラックリストに挙げられているセクション名を含む
（Ｂ）プロセスがネットワークポートを利用する
（Ｃ）親プロセスが存在しない
（Ｄ）プロセスがプログラムファイルから実行されていない
（Ｅ）ファイルが隠れている
（Ｆ）プロセスウィンドウが不可視であるこの説明は簡略化されており、実施例に応じて、利用する特徴の数は増減するとしてよく、異なる特徴を利用するとしてもよい。尚、特定の特徴は、プロセスを他の悪意プロセスカテゴリに分類する際に利用される特徴と同じであってもよいし、異なるとしてもよい。
【００５９】
この例に基づき、以下の表７は電子デバイス１００で実行されている３個のプロセスのデータを一例として示す。例えば、表７は一例であるプロセス１について、ブラックリストに挙げられているセクション名を含んでおらず（０）、ネットワークポートを利用しており（１）、親プロセスが存在せず（１）、プログラムファイルから実行されておらず（１）、隠れておらず（０）、不可視である（１）、としている。図示している特徴は６個でプロセスは３個であるが、特徴および／またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ３０６を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは＜０１１１０１＞になるとしてよい。同様に、プロセス２−３の特徴ベクトルは、プロセス２が＜１０１１００＞、プロセス３が＜１１１１１１＞になるとしてよい。
【表７】
0005713478.tif 000009
【００６０】
これらの特徴を利用して、以下のルール２１４を適用するとしてよい。
（Ａ）プロセスはブラックリストに挙げられているセクション名を含んでおり、ネットワークポートを利用している
（Ｂ）親プロセスが存在せず、プロセスはプログラムファイルから実行されておらず、ファイルが隠れている
（Ｃ）親プロセスが存在しておらず、プロセスはネットワークポートを利用しており、プロセスウィンドウが不可視である
この例から分かるように、ルール２１４は１以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【００６１】
一部の実施形態によると、このルール群２１４を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み２１６を持つとしてよい。例えば、ルール２１４（Ａ）は、１の重み２１６が割り当てられているとしてよく、ルール２１４（Ｂ）には、１５の重み２１６が割り当てられているとしてよく、ルール２１４（Ｃ）は、１０の重み２１６が割り当てられているとしてよい。ルール２１４を適用した場合の重み２１６の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、ダウンローダカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール２１４の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス１の重み付け脅威スコアを計算すると、例えば、［１（ルール２１４Ａに割り当てられた重み２１６）］×０（プロセス１はルール２１４Ａを満たさない）］＋［１５（ルール２１４Ｂに割り当てられた重み２１６）×０（プロセス１はルール２１４Ｂを満たしていない）］＋［１０（ルール２１４Ｃに割り当てられた重み２１６）×１（プロセス１はルール２１４Ｃを満たしている）］＝１０となる。
【００６２】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値２１８と比較するとしてよい。例えば、本例においてダウンローダプロセスとして分類するためのしきい値２１８が１０である場合、上記の重み付けルール２１４を適用することによって、以下の状況でプロセスがダウンローダプロセスであるか否かを判断するとしてよい。詳細は表８に示す。
【表８】
0005713478.tif 000010
【００６３】
最後の例として、一部の構成において、方法３００はプロセスを安全プロセスと分類するとしてもよい。つまり、プロセスは悪意プロセスではない場合がある。プロセスを安全プロセスとして分類するか否か判断する場合には、以下の特徴を収集するとしてよい。
（Ａ）プロセスに署名がある
（Ｂ）プロセスが「プログラムの追加／削除」に存在する
（Ｃ）プロセスウィンドウが可視である
（Ｄ）ぶら下がりスレッドが無い本例では、「プログラムの追加／削除」は、ユーザが新しいプログラムを追加および／または削除できるようにするためのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムの特徴であるとしてよい。この説明は簡略化されており、実施例に応じて、利用する特徴の数は増減するとしてよく、異なる特徴を利用するとしてもよい。尚、特定の特徴は、プロセスを他の悪意プロセスカテゴリに分類する際に利用される特徴と同じであってもよいし、異なるとしてもよい。
【００６４】
この例に基づき、以下の表９は電子デバイス１００で実行されている３個のプロセスのデータを一例として示す。例えば、表９は一例であるプロセス１について、署名が無く（０）、「プログラムの追加／削除」に存在し（１）、可視であり（１）、ぶら下がりスレッドがない（１）、としている。図示している特徴は４個でプロセスは３個であるが、特徴および／またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ３０６を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは＜０１１１＞になるとしてよい。同様に、プロセス２−３の特徴ベクトルは、プロセス２が＜１０１１＞、プロセス３が＜１１１１＞になるとしてよい。
【表９】
0005713478.tif 000011
【００６５】
これらの特徴を利用して、以下のルール２１４を適用するとしてよい。
（Ａ）プロセスに署名がある
（Ｂ）プロセスに署名があり、プロセスが「プログラムの追加／削除」に存在する
（Ｃ）プロセスに署名があり、プロセスウィンドウが可視であり、ぶら下がりスレッドが無い  この例から分かるように、ルール２１４は１以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【００６６】
一部の実施形態によると、このルール群２１４を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み２１６を持つとしてよい。例えば、ルール２１４（Ａ）は、３０の重み２１６が割り当てられているとしてよく、ルール２１４（Ｂ）には、１５の重み２１６が割り当てられているとしてよく、ルール２１４（Ｃ）は、１５の重み２１６が割り当てられているとしてよい。ルール２１４を適用した場合の重み２１６の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、バックドアカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール２１４の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス１の重み付け脅威スコアを計算すると、例えば、［３０（ルール２１４Ａに割り当てられた重み２１６）］×０（プロセス１はルール２１４Ａを満たさない）］＋［１５（ルール２１４Ｂに割り当てられた重み２１６）×０（プロセス１はルール２１４Ｂを満たしていない）］＋［１５（ルール２１４Ｃに割り当てられた重み２１６）×０（プロセス１はルール２１４Ｃを満たしていない）］＝０となる。
【００６７】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値２１８と比較するとしてよい。例えば、本例において安全プロセスとして分類するためのしきい値２１８が３０である場合、上記の重み付けルール２１４を適用することによって、以下の状況でプロセスが安全プロセスであるか否かを判断するとしてよい。詳細は表１０に示す。
【表１０】
0005713478.tif 000012
【００６８】
図３に戻って、ステップ３０８においてプロセスを分類した後、方法３００はステップ３１０に進むとしてよい。ステップ３１０において、方法３００は、ステップ３０８における分類が疑わしいプロセスを特定したか否かを判断するとしてよい。一部の実施形態によると、この判断ステップは、プロセスが１以上の悪意プロセスカテゴリに分類されたか否かを判断することを含むとしてよい。他の実施形態によると、この判断ステップは、上記の判断ステップと、特定したプロセスの分類の信頼度が低いか否かを特定することを含むとしてよい。ステップ３０８を参照しつつ上述したが、分類ステップは、信頼値を決定することを含むとしてよい。説明のための一例を挙げると、信頼値は、ルール２１４を特徴ベクトルに適用した結果を重み付けした値の合計値と、ルール２１４についての所定のしきい値２１８との差分を求めることで、算出されるとしてよい。信頼値が高い程、プロセスが悪意プロセスカテゴリに属する可能性が高くなる。
【００６９】
一部の実施形態によると、プロセスの分類手順は、信頼値が十分に高い場合に限り、進めるとしてよい。説明のための一例を挙げると、必要な信頼値は所定のしきい値に対する割合として定義されるとしてよい。例えば、信頼値は、分類手順を進めるためには、しきい値２１８の２５％に到達している必要があるとしてよい。他の実施形態によると、プロセスの分類手順は、信頼値が正の値である限りにおいて、進むとしてよい。つまり、ルール２１４を適用した結果を重み付けした値の合計が所定のしきい値よりも高い限り、プロセスは１以上の悪意プロセスカテゴリに分類されるとしてよい。さらに別の実施形態によると、信頼値が負の値でない限りにおいて、プロセスは分類されるとしてよい。このような判断ステップは、所与の構成に大きく左右されるとしてよく、例えば、誤って肯定的に分類する場合についての所与の構成の誤差に左右されるとしてよい。一部の構成によると、これらのうち１以上を実現するとしてよい。つまり、所与の構成では、悪意プロセスである可能性を持つプロセスを階層的に特定するとしてよく、例えば、特定のカテゴリに確実に所属するプロセス（つまり、信頼値＞しきい値２１８の２５％）、おそらく特定のカテゴリに所属するプロセス（つまり、信頼値＞しきい値２１８であるが信頼値≦しきい値２１８の２５％）、および、特定のカテゴリに所属するプロセス（つまり、信頼値＝０）を特定するとしてよい。
【００７０】
ステップ３１０において、方法３００が疑わしいプロセスがあると判断すると、方法３００はステップ３１２に進むとしてよい。ステップ３１２において、電子デバイス１００は、特定された悪意プロセスに対して何らかの対策を取るとしてよい。対策は、さらに分析を行うべくプロセスにフラグを立てることから、プロセスを隔離すること、ユーザが手動で悪意プロセスにどう対処するかを判断するまでシステム動作を停止させることに至るまで、多岐にわたるとしてよい。対策が取られると、方法３００はステップ３１４に進むとしてよい。また、プロセスが疑わしくないと判断されると、方法３００はステップ３１４に進むとしてよい。
【００７１】
ステップ３１４において、方法３００は、分類を必要とする別のプロセスが存在するか否かを判断するとしてよい。このようなプロセスが存在する場合、方法３００はステップ３０８に戻り、当該プロセスには分類手順が実施されるとしてよい。このようなプロセスが存在しない場合、方法３００はステップ３０２に戻り、実行されている全てのプロセスを特定するとしてよい。
【００７２】
図３は、方法３００を構成する特定の数のステップを開示しているが、図３で図示したステップに比べて、方法３００を構成するステップ数を増減するとしてもよい。また、図３は所定の順序で方法３００を構成しているステップを開示しているが、方法３００は、任意の適切な順序でステップを実行して完了するとしてよい。例えば、図示した方法３００の実施形態では、プロセスを悪意プロセスに分類する手順は、プロセス単位で順次実行されるものとして図示されている。しかし、一部の構成によると、全てでなければ、複数のプロセスを同時に分析することが必要または所望される場合があるとしてよい。また、ステップ３１０に関してより詳細に上述したように、プロセスが疑わしいか否かを判断する手順に含まれるステップおよび疑わしいプロセスを特定する手順に含まれるステップが追加されるとしてもよい。さらに、ステップ３１２では一の対策が取られているものと図示されているが、特定した疑わしいプロセスに対処するために電子デバイス１００の複数の構成要素によって複数の対策が実行する必要になる場合があるとしてよい。
【００７３】
本明細書で開示した方法およびシステムを利用して、署名を利用することなく悪意プロセスを検出することに関する問題が、改善され、低減され、または、解消されるとしてよい。例えば、本明細書に開示した方法およびシステムは、署名および／または挙動に基づいた特徴の組み合わせを参照することにより、悪意プロセスを検出することを可能にする。
【００７４】
本開示は詳細に説明してきたが、特許請求の範囲で定義される開示内容の意図および範囲から逸脱することなく、さまざまな点で本明細書の内容を変更、置換および変形することが可能であると理解されたい。
【図１】
0005713478.tif 000013
【図２】
0005713478.tif 000014
【図３】
0005713478.tif 000015