(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
好ましい実施形態およびその利点は、
図1から
図3を参照すると最も分かり易い。
図1から
図3では、同様および対応する構成要素を示す場合には同様の番号を用いる。
【0010】
本開示において、電子デバイスシステムは、デジタル形式で格納されているデータ、例えば、コンピュータ読出可能媒体に格納されているデータの格納、処理、送信、受信、利用または取扱いが可能な任意のデバイス、サブデバイス、または、デバイスおよび/もしくはサブデバイスの組み合わせを含むとしてよい。コンピュータ読出可能媒体は、デジタルデータを格納する任意のデバイス、サブデバイス、または、デバイスおよび/もしくはサブデバイスの組み合わせを含み、これらに限定されないが、ハードディスクドライブ、フラッシュメモリ、リードオンリーメモリ、ランダムアクセスメモリ、光メモリ、ソリッドステートメモリ、または、デジタルデータを格納するために用いられる任意のその他の種類の取り外し可能な媒体および/もしくは固定媒体としてよい。
【0011】
図1は、本開示の特定の実施形態に係る電子デバイス100で実行されている悪意プロセスを検出するための電子デバイス100を示す高位図である。電子デバイス100は、複数のプロセスを実行するように構成されているとしてよい。一般的に、プロセスは、電子デバイス100で現在実行されているコンピュータプログラムのインスタンスであるとしてよい。電子デバイスは、任意の数のプロセスを同時に実行するとしてよい。説明のための一例として、プロセスは、ワードプロセッシングプログラム、ウェブブラウザ、プリントスプーラまたはタスクマネージャ等のオペレーティングシステムプロセス、ネットワークアクティビティモニタ、または、電子デバイス100で現在実行されているコンピュータプログラムの任意のその他のインスタンスのうち、現在実行されている一部分であってよい。一部の実施形態によると、これらのプロセスは1以上のプロセスカテゴリに分類可能であるとしてよい。プロセスカテゴリは、安全プロセスおよび悪意プロセスを含むとしてよい。安全プロセスは、電子デバイス100で実行されているプロセスのうち、ユーザまたはシステム操作者が分かっており、および/または、ユーザまたはシステム操作者の権限が与えられているプロセスであってよい。悪意プロセスは、電子デバイス100で実行されているプロセスのうち、ユーザまたはシステム操作者が不明で、および/または、ユーザまたはシステム操作者の権限が与えられていないプロセスであってよい。または、電子デバイス100、または、電子デバイス100のユーザもしくは操作者に有害な挙動を持つプロセスであってよい。一部の構成によると、悪意プロセスは、「マルウェア」と一般的に呼ばれるとしてよい。
【0012】
電子デバイス100は、任意の種類の電子デバイスであってよく、ラップトップコンピュータ、デスクトップコンピュータ、および/または、携帯電話であってよい。一部の実施形態によると、電子デバイス100はさらに、サーバ、サーバクラスタ、仮想マシン、または、その他のコンピューティングハードウェア、ファームウェア、および/または、ハードウェアおよび/またはファームウェアで実行されるべく構成されているソフトウェアであってよい。
【0013】
一部の実施形態によると、電子デバイス100は、プロセッサ202およびコンピュータ可読媒体208を備えるとしてよい。プロセッサ202は、電子デバイス用の命令を実行するよう構成されている任意の適切なマイクロプロセッサであってよい。説明のための例を挙げると、プロセッサ202は、パーソナルコンピュータプロセッサであってよく(例えば、Intel Core 2 Duo、Intel Core i3、または、AMD Turionプロセッサ)、または、携帯電話プロセッサであってよく(例えば、Samsung S5PC110)、または、任意のその他の適切なマイクロプロセッサであってよい。
【0014】
プロセッサ202は、通信可能にコンピュータ可読媒体208に結合されているとしてよい。コンピュータ可読媒体208は、任意の適切なコンピュータ可読媒体を含むとしてよい。例えば、ハードディスクドライブ、RAM、ROM、光媒体、ネットワークストレージデバイス、分散型ストレージデバイス、クラスタ化ストレージデバイス、仮想ディスク、または、任意のその他の適切なコンピュータ可読媒体であってよい。
【0015】
一部の実施形態によると、電子デバイス100は、ハードウェア素子として実現されるか、または、コンピュータ可読媒体208に格納されプロセッサ202で実行可能なものとして実現されている1以上のモジュールを含むとしてよい。例えば、特徴収集モジュール102、特徴分析エンジン104、および、データベース106がある。
図1に図示した実施形態によると、特徴収集モジュール102、特徴分析エンジン104、および、データベース106は、コンピュータ可読媒体208に格納されているものとして図示されている。しかし、一部の実施形態によると、これらのモジュールは、同一または異なるコンピュータ可読媒体208に格納されているとしてよく、同一または異なる電子デバイス100に格納されているとしてもよく、または、ハードウェア、ファームウェア、または、一部のこれらの組み合わせで実現されるとしてよい。
【0016】
一部の実施形態によると、特徴収集モジュール102は、電子デバイス100で実行されているプロセスについての特徴を収集するように構成されているとしてよい。説明のための一例を挙げると、プロセスの特徴は、Windows(登録商標)オペレーティングシステムのスタートメニューに対応付けられているか否かであってよい。特徴分析エンジン104は概して、分析中のプロセスが悪意プロセスまたは安全プロセスのいずれであるかを判断するべく、および/または、さらに当該プロセスを1以上の悪意プロセスサブカテゴリに分類するべく、特徴収集モジュール102が収集する特徴を分析するように構成されているとしてよい。
【0017】
特徴収集モジュール102、特徴分析エンジン104、および、データベース106は同じ電子デバイス100内にあるものとして図示されているが、一部の実施形態では、同一または異なる電子デバイス100にあるとしてもよい。例えば、データベース106が中央サーバ上にある一方、特徴収集モジュール102および特徴分析エンジン104はローカルクライアントマシン上にあるとしてもよい。別の例を挙げると、データベース106は、電子デバイス上に存在するハイパーバイザ内にあるとしてもよい。この場合、データベース106は、ハイパーバイザに通信可能に結合されている複数のゲストオペレーティングシステムに存在する複数の特徴収集モジュール102および複数の特徴分析エンジン104に対してサービスを提供するとしてよい。さらに別の例を挙げると、特徴収集モジュール102、特徴分析エンジン104、および、データベース106は、コンピュータ可読媒体上で実行可能な統合されたソフトウェアプログラムの一部であってよく、または、コンピュータ可読媒体上で実行可能な大規模ソフトウェアプログラムに含まれるそれぞれ別のソフトウェアプログラムおよび/もしくはそれぞれ別の素子、関数もしくはルーチンであってよい。
【0018】
一部の実施形態によると、特徴収集モジュール102は概して、電子デバイス100で実行されている一連のプロセスの複数の特徴を、これらのプロセスを悪意プロセスまたは安全プロセスとして分類するべく、収集することが可能であるとしてよい。この処理については、
図2および
図3を参照しつつより詳細に後述する。一般的に、プロセス特徴は、電子デバイス100で実行されているプロセスの挙動、ステータス、ファイルサイズ、ファイル種類、または、その他の属性を記述している属性である。例えば、特徴には、プロセスが電子デバイス100のオペレーティングシステムのスタートメニューに対応付けられているか否か、オペレーティングシステムのタスクバーに対応付けられているか否か、隠れているかまたは見えないようになっているか、署名が有るか無いか、および/または、オープンネットワークポートを要求しているか否かが含まれるとしてよい。
【0019】
特徴分析エンジン104は概して、収集した特徴を分析することが可能であるとしてよい。一部の実施形態によると、これには、収集した特徴に対して複数の分類ルール214を適用することを含むとしてよい。分類ルール214は、収集した特徴に重みを割り当てること、重み付けされた合計値に対して統計学的分析を実行すること、および、各プロセスについて重み付け脅威スコアを生成することを含むとしてよい。このことについては、
図2および
図3を参照しつつより詳細に後述する。一部の実施形態によると、特徴分析エンジン104はさらに、重み付け脅威スコアをデータベース106に格納されている一連の所定のしきい値と比較して、プロセスを悪意プロセスまたは安全プロセスとして分類するとしてよい。同一または異なる実施形態によると、特徴分析エンジン104はさらに、重み付け脅威スコアに少なくとも基づいて、プロセスを1以上のマルウェアファミリーに分類することが可能であるとしてよい。これについては
図2および
図3を参照しつつより詳細に後述する。
【0020】
動作について説明すると、電子デバイス100は概して、複数のプロセスを1以上のプロセスカテゴリに分類するとしてよい。プロセスは、電子デバイス100で現在実行されているコンピュータプログラムのインスタンスであってよい。電子デバイスは、任意の数のプロセスを同時に実行するとしてよい。説明のため一例を挙げると、プロセスは、ワードプロセッシングプログラム、ウェブブラウザ、プリントスプーラまたはタスクマネージャ等のオペレーティングシステムプロセス、ネットワークアクティビティモニタ、または、電子デバイス100で現在実行されているコンピュータプログラムの任意のその他のインスタンスのうち、現在実行されている一部分であってよい。一部の実施形態によると、これらのプロセスは1以上のプロセスカテゴリに分類可能であるとしてよい。これらのカテゴリには、安全プロセスおよび悪意プロセスが含まれるとしてよい。安全プロセスは、電子デバイス100で実行されているプロセスのうちユーザまたはシステム操作者が分かっているプロセス、および/または、ユーザまたはシステム操作者の権限が付与されているプロセスであってよい。悪意プロセスは、電子デバイス100で実行されているプロセスのうち、ユーザまたはシステム操作者が分かっていないプロセスおよび/またはユーザまたはシステム操作者の権限が付与されていないプロセスであってよく、または、電子デバイス100または電子デバイス100のユーザもしくは操作者に対して有害な挙動を実行するプロセスであってよい。一部の構成によると、これらの悪意プロセスは概して、「マルウェア」と呼ばれるとしてよい。
【0021】
同一または他の実施形態によると、悪意プロセスはさらに、サブカテゴリに分類されるとしてよい。これについては、
図2および
図3を参照しつつより詳細に後述する。これらのサブカテゴリは、特定の種類のマルウェア、例えば、バックドアプロセス、フェイクアラートプロセスおよびダウンローダプロセス等を含むとしてよい。さらに、本開示の範囲から逸脱することなく、所与の構成で実現する悪意プロセスのカテゴリの数を減らすか、または、変更するとしてよい。
【0022】
図2および
図3を参照しつつより詳細に後述するが、電子デバイス100は概して、分類用の一連のルール214を作成し、電子デバイス100で実行されている各プロセスから特徴を収集して、収集した特徴に対して一連のルール214を適用し、適用した結果を適切に重み付けして、重み付けした結果を一連のしきい値と比較することによって、プロセスを1以上のプロセスカテゴリに分類するとしてよい。
【0023】
一部の実施形態によると、電子デバイス100は概して、電子デバイス100で実行されているプロセスから、電子デバイス100に通信可能に結合されているか、電子デバイス100の一部であるさまざまなハードウェア、ファームウェア、ソフトウェア、または、ハードウェアファームウェアおよび/もしくはソフトウェアの組み合わせから当該プロセスについてのデータを集めることによって、特徴を収集するとしてよい。
【0024】
図2は、本開示の特定の実施形態に応じた、
図1に示した電子デバイス100をより詳細に示す図である。一部の実施形態によると、電子デバイス100は、オペレーティングシステム204に通信可能に結合されているプロセッサ202と、マルウェア対策素子206と、コンピュータ可読媒体208と、ネットワークインターフェース212とを備えるとしてよい。
図1を参照してより詳細に上述し、
図3を参照しつつより詳細に後述するが、電子デバイス100は、全て通信可能に互いに結合されている特徴収集モジュール102、特徴分析エンジン104、および、データベース106を格納しているコンピュータ可読媒体208を備えるとしてよい。コンピュータ可読媒体208はさらに、特徴収集モジュール102に通信可能に結合されているプロセス情報モジュール220を含むとしてよい。同一または別の実施形態によると、電子デバイス100は、特徴収集モジュール102、特徴分析エンジン104および/またはデータベース106が提供する命令を実行するプロセッサ202を備えるとしてよい。
【0025】
一部の実施形態によると、プロセッサ202は、複数のプロセス210を実行するように構成されているとしてよい。一般的に、一のプロセス210は、電子デバイス100で現在実行されているコンピュータプログラムのインスタンスであってよい。電子デバイスは、任意の数のプロセス210を同時に実行するとしてよい。説明のための一例として、分かりやすいように、プロセッサ202は、5個のプロセス210、つまり、プロセス210A、210B、210C、210Dおよび210Eを実行しているものとして図示されている。5個のプロセス210を図示しているが、本開示の範囲から逸脱することなく、所与の構成ではプロセスを増減するとしてもよいし、または、異なるプロセスとしてもよい。
【0026】
プロセッサ202は、オペレーティングシステム204、マルウェア対策素子206、コンピュータ可読媒体208および/またはネットワークインターフェース212からデータを取得するように構成されているとしてよい。一部の実施形態によると、オペレーティングシステム204は、電子デバイス100または他の電子デバイス100のプロセッサ202または他のプロセッサ202で実行されている任意のオペレーティングシステムであってよい。説明のための一例を挙げると、オペレーティングシステム204は、Windows(登録商標) XP、Windows(登録商標) 7、Linux(登録商標)、UNIX(登録商標)、Mac OS(登録商標)の実際のインスタンスまたは仮想インスタンスであってよく、または、電子デバイス100で実行する任意のその他のオペレーティングシステムであってよい。オペレーティングシステム204は、プロセス210を悪意プロセスまたは安全プロセスと分類するために有用な情報を提供する、オペレーティングシステム204で実行されている特定のプログラム、ルーチン、または、サブルーチンを持つように構成されているとしてよい。例えば、オペレーティングシステム204は、エンドユーザが一部のアプリケーションに容易にアクセスできるように「スタートメニュー」を含むとしてよい。電子デバイス100上で実行されている一部のプロセス210はスタートメニューに対応付けられているが、対応付けられていないプロセスもあるとしてよい。
図2に図示した例では、プロセス210A、210B、210Dおよび210Eがスタートメニューに対応付けられている。例えば、プロセス210は、現在実行されているMicrosoft Word(登録商標)等のワードプロセッシングアプリケーションのインスタンスであってよい。一部の構成によると、当該アプリケーションは、スタートメニューに対応するショートカットが含まれているとしてよい。あるプロセスがスタートメニューに対応付けられているか否かの情報は、悪意プロセスに対応付けられているアプリケーションはスタートメニューに含まれる可能性が低いので、悪意プロセスまたは安全プロセスとしてプロセスを分類する上で有用であるとしてよい。
【0027】
また、オペレーティングシステム204は、電子デバイス100で実行されている特定のプロセス210のステータスを提供する「タスクバー」を含むとしてよい。
図2に図示した例によると、プロセス210A、210C、210Dおよび210Eがタスクバーに対応付けられている。例えば、プロセス210は、Windows(登録商標)オペレーティングシステムが利用しているようなネットワークステータスアプリケーションの現在実行されているインスタンスであってよい。プロセスがタスクバーに対応付けられていることに関する情報は、特定の種類の悪意プロセスはタスクバーを悪用してエンドユーザを悪意プロセスに関与させようとするので、プロセスを悪意プロセスまたは安全プロセスと分類する上で有用であるとしてよい。しかし、ネットワークステータスアプリケーション等の多くの種類の安全プログラムも同様に、ステータスバーを利用する。
図3を参照しつつより詳細に後述するが、複数のプロセスの特徴をまとめて考慮する方が、特定の種類の挙動のみを考慮するよりも有用性が高いことが多い。
【0028】
説明のための「スタートメニュー」および「タスクバー」の例はオペレーティングシステム204内で実行されているルーチンとして図示されているが、オペレーティングシステム204で実行および/または分析されているルーチンは、増減させるとしてもよいし、異なるルーチンであってもよい。これについては、
図3を参照しつつより詳細に後述する。
【0029】
一部の実施形態によると、電子デバイス100はさらに、プロセッサ202に通信可能に結合されているマルウェア対策素子206を備えるとしてよい。マルウェア対策素子は、任意のハードウェア、ファームウェア、コンピュータ可読媒体に格納されておりハードウェアおよび/もしくはファームウェアで実行可能なソフトウェア、または、これらの任意の組み合わせであってよい。一部の実施形態によると、マルウェア対策素子206は、オペレーティングシステム204内で実行されているアプリケーションであってよい。他の実施形態によると、マルウェア対策素子206は、例えば、プリブート環境でオペレーティングシステム204の外部で実行されるアプリケーションであってよい。さらに別の実施形態によると、マルウェア対策素子206は、複数のサブ素子を有するとしてよく、一部のサブ素子はオペレーティングシステム204の内部で実行され、一部のサブ素子はオペレーティングシステム204の外部で実行される。説明のための一例を挙げると、マルウェア対策素子206は、オペレーティングシステム204の内部で実行されるエージェントおよびオペレーティングシステム204の外部で実行される分析エンジンのうち一部またはすべてを含むとしてよい。
【0030】
一部の実施形態によると、マルウェア対策素子206は、複数のルール214を格納するとしてもよい。ルール214は、プロセス210の各カテゴリについての一連のルール214を含むとしてよい。例えば、悪意プロセス、バックドアプロセス、フェイクアラートプロセス、ダウンローダプロセスおよび安全プロセスはそれぞれ、独自のルール群を持つとしてよい。一部の実施形態によると、これらのルール群は、プロセス210を1以上のカテゴリに分類する場合に検査するべき特定の特徴および特徴群を記述しているとしてよい。一部の実施形態によると、特徴分析エンジン104は、収集した特徴に対してルール214を適用して、プロセス210を悪意プロセスまたは安全プロセスとして分類するとしてもよい。他の実施形態によると、特徴分析エンジンの機能の一部またはすべては、マルウェア対策素子206によって実行されるとしてもよい。例えば、マルウェア対策素子206が全てコンピュータ可読媒体208に格納されている構成では、マルウェア対策素子206は、ルール214を格納すると共に、ルール214をプロセス210に適用するように構成されているとしてよい。
【0031】
ルール214を適用した結果は、一部の実施形態によると、重み付けされて、所定のしきい値218と比較されるとしてよい。一部の実施形態によると、ルール214に適用される重み216は、マルウェア対策素子206によって格納され、特徴分析エンジン104によって適用されるとしてよい。同一または異なる実施形態によると、重み216は、コンピュータ可読媒体208のデータベース106に格納されているとしてよい。さらに別の実施形態によると、重み216は、マルウェア対策素子206によってルール214に適用されるとしてもよい。
【0032】
図3を参照しつつより詳細に後述するが、各プロセスカテゴリの各ルール214には、重み216が割り当てられているとしてよい。ルールを適用した結果に重み付けした後、特徴分析エンジン104によって統計学的分析を実行して、合計重み付け脅威スコアを決定するとしてよい。これについては、
図3を参照しつつより詳細に後述する。例えば、「バックドア」プロセスは、プロセス210を当該カテゴリに分類するために用いられるルール群を持つとしてよい。このルール群に対応付けられている各ルール214は、重み216が対応付けられているとしてよい。統計学的分析の一例として、特徴分析エンジン104は、ルール群をプロセス210に適用した結果に重み付けしたものを合算して、当該プロセス210をバックドアプロセスとして分類すべきか否かを判断するとしてよい。他の実施形態によると、マルウェア対策素子206がこの統計学的分析を実行するとしてもよい。
【0033】
ルールを適用した結果に重み付けした後、特徴分析エンジン104によって、重み付けされた結果としきい値群218とを比較するとしてよい。しきい値218はそれぞれ、プロセス210の特定のカテゴリに対応するとしてよい。説明のための一例を挙げると、しきい値218は、悪意プロセスしきい値、「バックドア」マルウェアしきい値、「フェイクアラート」マルウェアしきい値、および/または、「ダウンローダ」マルウェアしきい値を含むとしてよい。上記の例および他の例については、
図3を参照しつつより詳細に後述する。他の実施形態によると、マルウェア対策素子206は、重み付けされた結果と、しきい値218群とを比較するとしてよい。
【0034】
電子デバイス100はさらに、コンピュータ可読媒体208を備えるとしてよい。コンピュータ可読媒体208は、任意の適切なコンピュータ可読媒体を含むとしてよく、例えば、ハードディスクドライブ、RAM、ROM、光媒体、ネットワークストレージデバイス、分散型ストレージデバイス、クラスタ化ストレージデバイス、仮想ディスク、または、任意のその他の適切なコンピュータ可読媒体であってよい。電子デバイス100は、コンピュータ可読媒体208の1以上のインスタンスを含むとしてよい。一部の実施形態によると、コンピュータ可読媒体208は、特徴収集モジュール102、特徴分析エンジン104およびデータベース106を含むとしてよい。これについては、
図2を参照しつつより詳細に上述している。
【0035】
一部の実施形態によると、コンピュータ可読媒体208はさらに、プロセス情報モジュール220を含むとしてよい。プロセス情報モジュール220は、電子デバイス100で実行されているプロセス210の特定の特徴を表現するデータを含むとしてよい。
図2に図示した例によると、プロセス情報モジュール220は、プロセス210の2つの特徴を表現しているデータを含む。第1の特徴は、隠れ特徴226である。隠れ特徴226は、プロセス210がエンドユーザおよび/またはオペレーティングシステム204から隠れているか否かを示すとしてよい。第2の特徴は、署名済み特徴224である。署名済み特徴224は、プロセス210が、プロセス210の製造者および/または販売者によって署名されているか否かを示すとしてよい。例えば、プロセス210Aは、隠れており署名されているとしてよく、プロセス210Bは、可視であり署名されているとしてよく、プロセス210Cは、可視であり署名されていないとしてよい。以下同様である。コンピュータ可読媒体208に対応付けられているプロセス210が5個であると図示しているが、任意の所与のタイミングで実行されているプロセス210の数は増減するとしてもよいし、異なるプロセス210を実行するとしてもよい。一部の実施形態によると、アクティブなプロセス210で構成されるサブ群のみを分析しているとしてよい。このため、このサブ群についての情報のみ収集するとしてよい。
図3を参照しつつより詳細に後述するが、分析している各プロセス210に対応付けられている属性値は、各プロセス210を悪意プロセスまたは安全プロセスとして分類するために用いられるとしてよく、および/または、プロセス210を1以上の悪意プロセスカテゴリに分類するために用いられるとしてよい。
【0036】
一部の実施形態によると、電子デバイス100は、プロセッサ202に通信可能に結合されているネットワークインターフェース212を備えるとしてよい。ネットワークインターフェース212は、任意のハードウェア、ファームウェア、コンピュータ可読媒体に格納されていてハードウェアおよび/もしくはファームウェアによって実行可能なソフトウェア、または、これらの任意の組み合わせであるとしてよい。一部の実施形態によると、ネットワークインターフェース212は、ネットワークインターフェースカード(NIC)に対応付けられているアプリケーションであるとしてよく、NICに対応付けられているデータの一部またはすべてを監視するとしてよい。他の実施形態によると、ネットワークインターフェース212は、NICに対応付けられているハードウェアおよび/またはファームウェアの一部分であってよく、NICに対応付けられている一部またはすべてのデータと通信するとしてよい。さらに別の実施形態によると、ネットワークインターフェース212は、複数のサブ素子、ならびに/または、NICデバイス自体に対応付けられているファームウェアおよび/もしくはハードウェアを含むとしてよく、一部のサブ素子は、コンピュータ可読媒体に格納されハードウェアおよび/またはファームウェアで実行可能なソフトウェアとしてオペレーティングシステム204の内部で実行されており、一部のサブ素子は、コンピュータ可読媒体に格納されハードウェアおよび/またはファームウェアで実行可能なソフトウェアとしてオペレーティングシステム204の外部で実行されているとしてよい。説明のための例を挙げると、ネットワークインターフェース212は、ネットワークトラフィックを監視するオペレーティングシステム204内で実行されているエージェント、ネットワークトラフィックを監視するオペレーティングシステム204(例えば、プリブート環境内)の外部で実行されているエージェント、および、NICデバイスに現在インストールされているファームウェアのうち一部またはすべてであってよい。
【0037】
一部の実施形態によると、ネットワークインターフェース212は、電子デバイス100で実行されている特定のプロセス210に対応付けられているデータを通信するように構成されているとしてよい。例えば、ネットワークインターフェース212は、ネットワーク特徴226を通信するように構成されているとしてよい。ネットワーク特徴226は、所与のプロセス210がオープンネットワークポートを持つか否かを示す特徴であるとしてよい。説明のため
図2に示す例によると、ネットワークインターフェース212は、プロセス210A、210B、210Cおよび210Eはオープンネットワークポートを持つがプロセス210Dは持たないことを伝達しているとしてよい。
図3を参照しつつより詳細に後述するが、このような情報は特定のプロセス210が悪意プロセスまたは安全プロセスのいずれとして分類されるのかを判断する上で、および/または、プロセス210がどの悪意プロセス210カテゴリに属するか否かを判断する上で有用であるとしてよい。ネットワークインターフェース212に対応付けられているプロセス210として5個のプロセス210を図示しているが、任意の所与のタイミングで実行されているプロセス210の数は増減させるとしてもよい。一部の実施形態によると、アクティブなプロセス210のサブセットのみを分析対象としているとしてよい。このため、このサブセットに関する情報のみを収集するとしてよい。
【0038】
図3は、本開示の特定の実施形態に応じた、電子デバイス100で実行されている悪意プロセスを検出する方法300の一例を示すフローチャートである。方法300は、特定のプロセスの特徴を収集して、これらの特徴の分析に基づいてプロセスを分類し、特定した悪意プロセスに対して対策を取ることを含む。
【0039】
一実施形態によると、方法300は、ステップ302で開始されることが好ましい。本開示の教示内容は、電子デバイス100のさまざまな構成で実現されるとしてよい。このため、方法300の好ましい初期化点および方法300を構成するステップ302−314の順序は、選択する実施例に応じて決まるとしてよい。
【0040】
ステップ302において、電子デバイス100は、電子デバイス100で現在実行されている全てのプロセスを特定するとしてよい。一部の構成によると、現在実行されているプロセスの数は、一から数千の範囲内であってよい。現在実行されているプロセスをすべて特定した後、方法300はステップ304に進むとしてよい。
【0041】
ステップ304において、電子デバイス100の特徴収集モジュール102は、選択されたプロセス210の説明となる特徴を収集するとしてよい。
図2を参照しつつより詳細に上述したが、この処理は、一部の実施形態では、オペレーティングシステム204、マルウェア対策素子206、コンピュータ可読媒体208、および/または、ネットワークインターフェース212からデータを集めることを含むとしてよい。後述するが、この処理は、所与のプロセス210がオペレーティングシステム204のスタートメニューまたはタスクバーに対応付けられているか否か、プロセス210が隠れているか可視であるか、署名されているか否か、および/または、プロセス210がオープンネットワークポートを持つか否かを判断することを含むとしてよい。より詳細に後述するが、集めるデータは増減させるとしてもよく、異なるデータを集めるとしてもよい。
【0042】
一部の実施形態によると、収集した特徴には、分析対象のプロセスについての挙動属性および構造属性が含まれるとしてよい。収集した特徴は、一部の実施形態によると、特定の特徴の有無を表す一連のバイナリ値を含む特徴ベクトルとして表現するとしてよい。例えば、特徴収集モジュール102は、100個のプロセスを分析するとしてもよい。各プロセスについて、特徴収集モジュール102は8個の特徴を収集するとしてよい。各プロセスはこの後、8ビットの特徴ベクトルを持つとしてよい。他の例では、分析対象のプロセスの数は増減させるとしてよく、および/または、収集する特徴を増減させるとしてもよい。説明のための例を挙げると、収集する特徴には、以下が含まれるとしてよい。
(A)ブラックリストに挙げられているセクション名、つまり、マルウェアで発見されることが分かっているセクション名のリスト(「ContainsBlackListSectionNames」)
(B)プロセスのウィンドウが可視状態であるか否か(「IsWindowInvisible」)
(C)プロセスがオープンネットワークポートを持つか否か(「NetworkUsage」)
(D)プロセスのアイコンがシステムトレイにあるか否か(「IsInSystemTrayIcon」)
(E)プロセスが対応するAPIについてインポートテーブルエントリを持つか否か(「IsDebuggerPresent」)
(F)プロセス画像に署名があるか否か(「IsSigned」)
(G)プロセスがスタートメニュー内にショートカットを持つか否か(「IsInStartMenuEntry」)
(H)プロセス画像がパック(圧縮)されているか否か(「IsPacked」)このような説明のための一例によると、特徴収集モジュール102は、プロセスに関するこれらの収集した特徴を持ち、このプロセスの特徴ベクトルは、<11110011>のようになるとしてよい。このような特徴ベクトルは、ブラックリストに載っているセクション名を含み、不可視状態で、オープンネットワークポートを持ち、システムトレイ内にアイコンがあり、デバッガが存在せず、署名されておらず、スタートメニューに含まれており、および、パック(圧縮)されているプロセスを表すとしてよい。
図1および
図2を参照しつつより詳細に上述したが、電子デバイス100は、これらの特徴を収集するべくさまざまなソースからデータを収集するとしてよい。選択したプロセスから関連する特徴を収集した後、方法300は、ステップ308に進むとしてよい。
【0043】
ステップ308において、方法300は、プロセスを悪意プロセスまたは安全プロセスとして分類するとしてよい。一部の実施形態によると、特徴分析エンジン104は、電子デバイス100の特徴収集モジュール102が収集した特徴に統計学的分析を適用するとしてよい。重要な点として、特徴分析エンジン104は、一の所与のプロセスが悪意プロセスまたは安全プロセスのいずれであるかの判断を最適化するべく、一度に複数の特徴群に対して統計学的分析を適用するとしてよい。一部の実施形態によると、特徴分析エンジン104は、一連のルール214を作成するとしてよい。各ルール214には、重み216が対応付けられている。ルール214は、大規模な一連の適用可能特徴に対して逆次元縮小アルゴリズムを適用して、分析のための小規模な一連の特徴群を作成することで、作成するとしてよい。例えば、このようなアルゴリズムは、複数の悪意プロセスカテゴリに属するデータサンプルを含む一連のテストデータに適用されるとしてよい。
【0044】
一部の実施形態によると、悪意プロセスカテゴリは1以上のルール214を含むとしてよく、各ルール214には重み216が対応付けられている。一部の構成によると、重み216は、悪意プロセスカテゴリの分類の履歴に基づいて、割り当てられているとしてよい。他の構成によると、重み216は、サンプルデータに適用される機械学習技術を利用して設定されるとしてよい。1以上のルール214に加えて、悪意プロセスカテゴリには、しきい値218が対応付けらえているとしてよい。一部の実施形態によると、しきい値218は、悪意プロセスカテゴリの分類の履歴に基づいて割り当てられるとしてよい。他の構成によると、しきい値218は、サンプルデータに適用される機械学習技術を利用して設定されるとしてよい。説明のための一例として、サポートベクターマシン技術を利用して、所与のカテゴリのしきい値218を設定するとしてよい。
【0045】
特徴分析エンジン104が実行している分類アルゴリズムの一例を、以下に記載する式1および式2で再現する。式1は、所与のプロセスが特定の悪意プロセスカテゴリに属する信頼度を算出するべく特徴分析エンジン104が実行するアルゴリズムの一例である。式2は、プロセスをカテゴリに分類するべく特徴分析エンジン104が実行するアルゴリズムの一例を示す図である。式1および式2は、疑似コードとして図示されており、式1および式2が適用される構成を制限するものとして解釈されるべきではない。また、式1および式2は、説明のための例に過ぎず、本開示の範囲から逸脱することなく他のアルゴリズムを用いるとしてもよい。
【表1】
尚、表1中のR
jXは、以下の数1を表す。
【数1】
【0046】
上記の疑似コードが示すように、アルゴリズムの一例では、分析対象の各プロセスについての信頼値を算出するとしてよい。この信頼値は、プロセスの合計重み付け脅威スコアと、プロセスを含むと考えられているプロセスカテゴリのしきい値218とを比較した結果であるとしてよい。より詳細に後述するが、これらのプロセスカテゴリは、バックドア悪意プロセス、フェイクアラート悪意プロセスおよび/またはダウンローダ悪意プロセスと、安全プロセスとを含むとしてよい。合計重み付け脅威スコアは、カテゴリルール214の統計学的分析に対する複数の重み216を、プロセスの特徴ベクトルに適用することによって、算出されるとしてよい。一部の実施形態によると、所与のプロセスカテゴリの各ルール214は、独自の重みがあるとしてよい。より詳細に後述する。一部の構成によると、信頼値が決定されると、一例である式2のアルゴリズムを呼び出して、プロセスカテゴリを決定するとしてよい。
【表2】
【0047】
方法300のステップ308に戻ると、一部の実施形態において、悪意プロセスカテゴリは、プロセスを当該カテゴリに分類するために用いられる1以上のルール214を含むとしてよい。各ルール214には、重み216が割り当てられているとしてよい。重み付けされた複数のルール214を組み合わせることによって、方法300は、プロセスを1以上の悪意プロセスカテゴリに分類するとしてよい。上記の式1および式2は、このような分類を実現するためのアルゴリズムの1つを説明している。さらに、簡略化した説明のための例を用いて、説明するとしてよい。
【0048】
一部の構成によると、悪意プロセスカテゴリは、「バックドア」プロセスを含むとしてよい。一般的に、バックドアプロセスは、通常の認証手順に含まれないシステムリソースへのアクセスを許可するプロセスであってよい。バックドアプロセスとしてプロセスを分類するか否か判断するべく、以下の特徴を収集するとしてよい。
(A)ファイルが隠れている
(B)プロセスウィンドウが不可視である
(C)プロセスIDが隠れている
(D)プロセスは一時的メモリ位置から実行されている
(E)プロセスはブラックリストに含まれているセクション名を含む
(F)プロセスはネットワークポートを利用している
(G)プロセスはデジタル署名されているこの説明は簡略されており、実施例に応じて、特徴の数は増減するとしてもよく、他の特徴を収集するとしてもよい。
【0049】
この例に基づき、以下の表3は電子デバイス100で実行されている3個のプロセスのデータを一例として示す。このデータ例では、値が「1」の場合に特徴が存在していることを示し、値が「0」の場合に特徴が存在しないことを示す。例えば、表3は一例であるプロセス1について、隠れておらず(0)、不可視で(1)、プロセスIDが隠れており(1)、一時的メモリ位置から実行されており(1)、ブラックリストに挙げられているセクション名は含んでおらず(0)、ネットワークポートを利用しており(1)、デジタル署名が無い(0)、としている。図示している特徴は7個でプロセスは3個であるが、特徴および/またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ306を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは<0111010>になるとしてよい。同様に、プロセス2−3の特徴ベクトルは、プロセス2が<1011001>、プロセス3が<1111111>になるとしてよい。
【表3】
【0050】
これらの特徴を利用して、以下のルール214を適用するとしてよい。
(A)ファイルが隠れており、プロセスウィンドウが不可視である
(B)プロセスIDが隠れている
(C)プロセスウィンドウが不可視であり、プロセスが一時的メモリ位置から実行されている
(D)プロセスウィンドウが不可視であり、プロセスはブラックリストに挙げられているセクション名を含む
(E)プロセスウィンドウが不可視であり、プロセスがネットワークポートを利用しており、プロセスがデジタル署名を持つ
この例から分かるように、ルール214は、1以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【0051】
一部の実施形態によると、このルール群214を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み216を持つとしてよい。例えば、ルール214(A)は、15の重み216が割り当てられているとしてよく、ルール214(B)には、15の重み216が割り当てられているとしてよく、ルール214(C)は、2の重み216が割り当てられているとしてよく、ルール214(D)は、3の重み216が割り当てられているとしてよく、ルール214(E)は、3の重み216が割り当てられているとしてよい。ルール214を適用した場合の重み216の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、バックドアカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール214の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス1の重み付け脅威スコアを計算すると、[15(ルール214Aに割り当てられた重み216)]×0(プロセス1はルール214Aを満たさない)]+[15(ルール214Bに割り当てられた重み216)×1(プロセス1はルール214Bを満たしている)]+[2(ルール214Cに割り当てられた重み216)×1(プロセス1はルール214Cを満たしている)]+[3(ルール214Dに割り当てられている重み216)×1(プロセス1はルール214Dを満たす)]+[3(ルール214Eに割り当てる重み216)×0(プロセス1はルール214Eを満たさない)]=20となるとしてよい。
【0052】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値218と比較するとしてよい。一部の実施形態によると、本明細書で用いている説明のための例も含め、重み付け脅威スコアはしきい値218よりも高くなければならない。他の実施形態によると、重み付け脅威スコアは、しきい値218を満たせばよく、または、しきい値218より大きくなればそれでよい。例えば、本例においてバックドアプロセスとして分類するためのしきい値218が20である場合、上記の重み付けルール214を適用することによって、以下の状況でプロセスがバックドアプロセスであるか否かを判断するとしてよい。詳細は表4に示す。
【表4】
【0053】
別の例を挙げると、一部の構成において、悪意プロセスカテゴリは「フェイクアラート」プロセスを含むとしてよい。一般的に、フェイクアラートプロセスは、例えば、危険物の購入等のユーザ動作を引き起こすべく、ユーザに対して認証されていない警告を発生させるプロセスであってよい。プロセスをフェイクアラートプロセスとして分類するか否か判断する場合には、以下の特徴を収集するとしてよい。
(A)プロセスがホワイトリストに挙げられているセクション名を含まない
(B)プロセスがパック(圧縮)されている
(C)プロセスメモリに悪意のあるワードが存在する
(D)既存のプロセスの親プロセスである
(E)プロセスウィンドウが不可視である
(F)プロセスがシステムトレイにある
(G)プロセスファイルが隠れている
この説明は簡略化されており、実施例に応じて、利用する特徴の数は増減するとしてよく、異なる特徴を利用するとしてもよい。尚、特定の特徴は、プロセスを他の悪意プロセスカテゴリに分類する際に利用される特徴と同じであってもよいし、異なるとしてもよい。
【0054】
この例に基づき、以下の表5は電子デバイス100で実行されている3個のプロセスのデータを一例として示す。例えば、表5は一例であるプロセス1について、ホワイトリストに挙げられているセクション名を含んでおらず(0)、パック(圧縮)されており(1)、プロセスメモリに悪意のあるワードがあり(1)、既存プロセスの親プロセスであり(1)、不可視ではなく(0)、システムトレイにあり(1)、隠れていない(0)、としている。図示している特徴は7個でプロセスは3個であるが、特徴および/またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ306を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは<0111010>になるとしてよい。同様に、プロセス2−3の特徴ベクトルは、プロセス2が<1011001>、プロセス3が<1111111>になるとしてよい。
【表5】
【0055】
これらの特徴を利用して、以下のルール214を適用するとしてよい。
(A)プロセスはホワイトリストに挙げられているセクション名を含んでおらず、プロセスはパック(圧縮)されていない
(B)プロセスはプロセスメモリに悪意あるワードを持っており、親プロセスが存在しない
(C)プロセスウィンドウが不可視であり、プロセスがシステムトレイにあり、プロセスがプロセスメモリに悪意あるワードを持つ
(D)プロセスがシステムトレイにあり、ファイルが隠れている
この例から分かるように、ルール214は1以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【0056】
一部の実施形態によると、このルール群214を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み216を持つとしてよい。例えば、ルール214(A)は、10の重み216が割り当てられているとしてよく、ルール214(B)には、5の重み216が割り当てられているとしてよく、ルール214(C)は、15の重み216が割り当てられているとしてよく、ルール214(D)は、5の重み216が割り当てられているとしてよい。ルール214を適用した場合の重み216の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、バックドアカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール214の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス1の重み付け脅威スコアを計算すると、例えば、[10(ルール214Aに割り当てられた重み216)]×0(プロセス1はルール214Aを満たさない)]+[5(ルール214Bに割り当てられた重み216)×1(プロセス1はルール214Bを満たしている)]+[15(ルール214Cに割り当てられた重み216)×0(プロセス1はルール214Cを満たしていない)]+[5(ルール214Dに割り当てられている重み216)×0(プロセス1はルール214Dを満たさない)]=5となる。
【0057】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値218と比較するとしてよい。例えば、本例においてフェイクアラートプロセスとして分類するためのしきい値218が20である場合、上記の重み付けルール214を適用することによって、以下の状況でプロセスがフェイクアラートプロセスであるか否かを判断するとしてよい。詳細は表6に示す。
【表6】
【0058】
別の例を挙げると、一部の構成において、悪意プロセスカテゴリは「ダウンローダ」プロセスを含むとしてよい。一般的に、ダウンローダプロセスは、ユーザが知らないうちに、および/または、ユーザの許可無しに、電子デバイスにソフトウェアをダウンロードするプロセスであってよい。プロセスをダウンローダプロセスとして分類するか否か判断する場合には、以下の特徴を収集するとしてよい。
(A)プロセスがブラックリストに挙げられているセクション名を含む
(B)プロセスがネットワークポートを利用する
(C)親プロセスが存在しない
(D)プロセスがプログラムファイルから実行されていない
(E)ファイルが隠れている
(F)プロセスウィンドウが不可視であるこの説明は簡略化されており、実施例に応じて、利用する特徴の数は増減するとしてよく、異なる特徴を利用するとしてもよい。尚、特定の特徴は、プロセスを他の悪意プロセスカテゴリに分類する際に利用される特徴と同じであってもよいし、異なるとしてもよい。
【0059】
この例に基づき、以下の表7は電子デバイス100で実行されている3個のプロセスのデータを一例として示す。例えば、表7は一例であるプロセス1について、ブラックリストに挙げられているセクション名を含んでおらず(0)、ネットワークポートを利用しており(1)、親プロセスが存在せず(1)、プログラムファイルから実行されておらず(1)、隠れておらず(0)、不可視である(1)、としている。図示している特徴は6個でプロセスは3個であるが、特徴および/またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ306を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは<011101>になるとしてよい。同様に、プロセス2−3の特徴ベクトルは、プロセス2が<101100>、プロセス3が<111111>になるとしてよい。
【表7】
【0060】
これらの特徴を利用して、以下のルール214を適用するとしてよい。
(A)プロセスはブラックリストに挙げられているセクション名を含んでおり、ネットワークポートを利用している
(B)親プロセスが存在せず、プロセスはプログラムファイルから実行されておらず、ファイルが隠れている
(C)親プロセスが存在しておらず、プロセスはネットワークポートを利用しており、プロセスウィンドウが不可視である
この例から分かるように、ルール214は1以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【0061】
一部の実施形態によると、このルール群214を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み216を持つとしてよい。例えば、ルール214(A)は、1の重み216が割り当てられているとしてよく、ルール214(B)には、15の重み216が割り当てられているとしてよく、ルール214(C)は、10の重み216が割り当てられているとしてよい。ルール214を適用した場合の重み216の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、ダウンローダカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール214の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス1の重み付け脅威スコアを計算すると、例えば、[1(ルール214Aに割り当てられた重み216)]×0(プロセス1はルール214Aを満たさない)]+[15(ルール214Bに割り当てられた重み216)×0(プロセス1はルール214Bを満たしていない)]+[10(ルール214Cに割り当てられた重み216)×1(プロセス1はルール214Cを満たしている)]=10となる。
【0062】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値218と比較するとしてよい。例えば、本例においてダウンローダプロセスとして分類するためのしきい値218が10である場合、上記の重み付けルール214を適用することによって、以下の状況でプロセスがダウンローダプロセスであるか否かを判断するとしてよい。詳細は表8に示す。
【表8】
【0063】
最後の例として、一部の構成において、方法300はプロセスを安全プロセスと分類するとしてもよい。つまり、プロセスは悪意プロセスではない場合がある。プロセスを安全プロセスとして分類するか否か判断する場合には、以下の特徴を収集するとしてよい。
(A)プロセスに署名がある
(B)プロセスが「プログラムの追加/削除」に存在する
(C)プロセスウィンドウが可視である
(D)ぶら下がりスレッドが無い本例では、「プログラムの追加/削除」は、ユーザが新しいプログラムを追加および/または削除できるようにするためのWindows(登録商標)オペレーティングシステムの特徴であるとしてよい。この説明は簡略化されており、実施例に応じて、利用する特徴の数は増減するとしてよく、異なる特徴を利用するとしてもよい。尚、特定の特徴は、プロセスを他の悪意プロセスカテゴリに分類する際に利用される特徴と同じであってもよいし、異なるとしてもよい。
【0064】
この例に基づき、以下の表9は電子デバイス100で実行されている3個のプロセスのデータを一例として示す。例えば、表9は一例であるプロセス1について、署名が無く(0)、「プログラムの追加/削除」に存在し(1)、可視であり(1)、ぶら下がりスレッドがない(1)、としている。図示している特徴は4個でプロセスは3個であるが、特徴および/またはプロセスの数は増減するとしてもよいし、変更するとしてもよい。また、特定の特徴の有無を特定する体系は別の体系を利用するとしてもよい。ステップ306を参照しつつより詳細に上述しているが、このようなデータの例の特徴ベクトルは<0111>になるとしてよい。同様に、プロセス2−3の特徴ベクトルは、プロセス2が<1011>、プロセス3が<1111>になるとしてよい。
【表9】
【0065】
これらの特徴を利用して、以下のルール214を適用するとしてよい。
(A)プロセスに署名がある
(B)プロセスに署名があり、プロセスが「プログラムの追加/削除」に存在する
(C)プロセスに署名があり、プロセスウィンドウが可視であり、ぶら下がりスレッドが無い この例から分かるように、ルール214は1以上の特徴を一度に検査するとしてよい。これは、個々の特徴は、それだけでは、悪意ある挙動であると特定しないか、または、十分に高い信頼度で悪意ある挙動であると特定されないためであるとしてよい。一方、複数の特徴をまとめて考慮すると、十分に高い信頼度で悪意ある挙動であると特定するとしてよい。
【0066】
一部の実施形態によると、このルール群214を特徴ベクトルに適用して、一連の脅威スコアを生成するとしてよい。これらの脅威スコアは、対応する重み216を持つとしてよい。例えば、ルール214(A)は、30の重み216が割り当てられているとしてよく、ルール214(B)には、15の重み216が割り当てられているとしてよく、ルール214(C)は、15の重み216が割り当てられているとしてよい。ルール214を適用した場合の重み216の合計値が所定のしきい値を超えると、考慮しているプロセスが悪意プロセスであり、バックドアカテゴリに属すると特定されるとしてよい。また、しきい値より高くなるほど、分類の信頼度も高くなる。合計重み付け脅威スコアは、ルール214の適用結果に基づいて、各プロセスに割り当てられるとしてよい。上記のデータの例を用いて、プロセス1の重み付け脅威スコアを計算すると、例えば、[30(ルール214Aに割り当てられた重み216)]×0(プロセス1はルール214Aを満たさない)]+[15(ルール214Bに割り当てられた重み216)×0(プロセス1はルール214Bを満たしていない)]+[15(ルール214Cに割り当てられた重み216)×0(プロセス1はルール214Cを満たしていない)]=0となる。
【0067】
一部の実施形態によると、この重み付け脅威スコアはさらに、各プロセスカテゴリに対応付けられているしきい値218と比較するとしてよい。例えば、本例において安全プロセスとして分類するためのしきい値218が30である場合、上記の重み付けルール214を適用することによって、以下の状況でプロセスが安全プロセスであるか否かを判断するとしてよい。詳細は表10に示す。
【表10】
【0068】
図3に戻って、ステップ308においてプロセスを分類した後、方法300はステップ310に進むとしてよい。ステップ310において、方法300は、ステップ308における分類が疑わしいプロセスを特定したか否かを判断するとしてよい。一部の実施形態によると、この判断ステップは、プロセスが1以上の悪意プロセスカテゴリに分類されたか否かを判断することを含むとしてよい。他の実施形態によると、この判断ステップは、上記の判断ステップと、特定したプロセスの分類の信頼度が低いか否かを特定することを含むとしてよい。ステップ308を参照しつつ上述したが、分類ステップは、信頼値を決定することを含むとしてよい。説明のための一例を挙げると、信頼値は、ルール214を特徴ベクトルに適用した結果を重み付けした値の合計値と、ルール214についての所定のしきい値218との差分を求めることで、算出されるとしてよい。信頼値が高い程、プロセスが悪意プロセスカテゴリに属する可能性が高くなる。
【0069】
一部の実施形態によると、プロセスの分類手順は、信頼値が十分に高い場合に限り、進めるとしてよい。説明のための一例を挙げると、必要な信頼値は所定のしきい値に対する割合として定義されるとしてよい。例えば、信頼値は、分類手順を進めるためには、しきい値218の25%に到達している必要があるとしてよい。他の実施形態によると、プロセスの分類手順は、信頼値が正の値である限りにおいて、進むとしてよい。つまり、ルール214を適用した結果を重み付けした値の合計が所定のしきい値よりも高い限り、プロセスは1以上の悪意プロセスカテゴリに分類されるとしてよい。さらに別の実施形態によると、信頼値が負の値でない限りにおいて、プロセスは分類されるとしてよい。このような判断ステップは、所与の構成に大きく左右されるとしてよく、例えば、誤って肯定的に分類する場合についての所与の構成の誤差に左右されるとしてよい。一部の構成によると、これらのうち1以上を実現するとしてよい。つまり、所与の構成では、悪意プロセスである可能性を持つプロセスを階層的に特定するとしてよく、例えば、特定のカテゴリに確実に所属するプロセス(つまり、信頼値>しきい値218の25%)、おそらく特定のカテゴリに所属するプロセス(つまり、信頼値>しきい値218であるが信頼値≦しきい値218の25%)、および、特定のカテゴリに所属するプロセス(つまり、信頼値=0)を特定するとしてよい。
【0070】
ステップ310において、方法300が疑わしいプロセスがあると判断すると、方法300はステップ312に進むとしてよい。ステップ312において、電子デバイス100は、特定された悪意プロセスに対して何らかの対策を取るとしてよい。対策は、さらに分析を行うべくプロセスにフラグを立てることから、プロセスを隔離すること、ユーザが手動で悪意プロセスにどう対処するかを判断するまでシステム動作を停止させることに至るまで、多岐にわたるとしてよい。対策が取られると、方法300はステップ314に進むとしてよい。また、プロセスが疑わしくないと判断されると、方法300はステップ314に進むとしてよい。
【0071】
ステップ314において、方法300は、分類を必要とする別のプロセスが存在するか否かを判断するとしてよい。このようなプロセスが存在する場合、方法300はステップ308に戻り、当該プロセスには分類手順が実施されるとしてよい。このようなプロセスが存在しない場合、方法300はステップ302に戻り、実行されている全てのプロセスを特定するとしてよい。
【0072】
図3は、方法300を構成する特定の数のステップを開示しているが、
図3で図示したステップに比べて、方法300を構成するステップ数を増減するとしてもよい。また、
図3は所定の順序で方法300を構成しているステップを開示しているが、方法300は、任意の適切な順序でステップを実行して完了するとしてよい。例えば、図示した方法300の実施形態では、プロセスを悪意プロセスに分類する手順は、プロセス単位で順次実行されるものとして図示されている。しかし、一部の構成によると、全てでなければ、複数のプロセスを同時に分析することが必要または所望される場合があるとしてよい。また、ステップ310に関してより詳細に上述したように、プロセスが疑わしいか否かを判断する手順に含まれるステップおよび疑わしいプロセスを特定する手順に含まれるステップが追加されるとしてもよい。さらに、ステップ312では一の対策が取られているものと図示されているが、特定した疑わしいプロセスに対処するために電子デバイス100の複数の構成要素によって複数の対策が実行する必要になる場合があるとしてよい。
【0073】
本明細書で開示した方法およびシステムを利用して、署名を利用することなく悪意プロセスを検出することに関する問題が、改善され、低減され、または、解消されるとしてよい。例えば、本明細書に開示した方法およびシステムは、署名および/または挙動に基づいた特徴の組み合わせを参照することにより、悪意プロセスを検出することを可能にする。
【0074】
本開示は詳細に説明してきたが、特許請求の範囲で定義される開示内容の意図および範囲から逸脱することなく、さまざまな点で本明細書の内容を変更、置換および変形することが可能であると理解されたい。