(57)【特許請求の範囲】
【請求項１】
第1コンピュータによって、オブジェクトに向かうターゲットパスを含む第1ファイルの生成を監視する段階と、
前記第1ファイルの前記生成の監視に応じて、
前記第1コンピュータによって、前記第1ファイルを生成させたプロセスを識別する段階と、
前記第1コンピュータによって、前記プロセスが禁止されたプロセスであるか否かを判断する段階と、
前記プロセスが禁止されたプロセスであるとの判断に応じて、前記第1コンピュータによって、前記プロセスおよび前記第1ファイルに対して1つまたは複数の対策プロセスを実行する段階と、
前記プロセスが禁止されたプロセスではないとの判断に応じて、前記第1コンピュータによって、前記第1ファイルがユニフォームリソースロケータへのリクエストを生成するか否かを判断する段階と、
前記第1ファイルがユニフォームリソースロケータへのリクエストを生成するとの判断に応じて、前記第1コンピュータによって、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断する段階と、
前記ユニフォームリソースロケータが悪意あるリソースであるとの判断に応じて、前記第1コンピュータによって、前記第1ファイルに対して1つまたは複数の対策プロセスを実行する段階と
を含む、コンピュータ実施方法。
【請求項２】
前記第1コンピュータによって、前記プロセスが禁止されたプロセスであるか否かを判断する段階が、
前記第1コンピュータによって、前記プロセスを記述しているデータを生成する段階と、
前記第1コンピュータによって、前記プロセスを記述している前記データを第2コンピュータに送信する段階と、
前記第1コンピュータによって、前記プロセスが禁止されたプロセスであるか否かを示すデータを前記第2コンピュータから受信する段階と、
前記第1コンピュータによって、前記第2コンピュータから受信した前記データに応じて、前記プロセスが禁止されたプロセスであるか否かを判断する段階と
を含む、請求項1に記載のコンピュータ実施方法。
【請求項３】
前記プロセスを記述しているデータが前記第1プロセスに関連するシグネチャを含む、請求項2に記載のコンピュータ実施方法。
【請求項４】
前記第1コンピュータによって、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断する段階が、
前記第1コンピュータによって、前記ユニフォームリソースロケータを記述しているデータを生成する段階と、
前記第1コンピュータによって、前記ユニフォームリソースロケータを記述している前記データを第2コンピュータに送信する段階と、
前記第1コンピュータによって、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを示すデータを前記第2コンピュータから受信する段階と、
前記第1コンピュータによって、前記第2コンピュータから受信した前記データに応じて、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断する段階と
を含む、請求項1に記載のコンピュータ実施方法。
【請求項５】
前記プロセスに対して実行される前記1つまたは複数の対策プロセスが、
前記第1コンピュータによって、前記プロセスを終了させる段階、
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルを削除する段階、
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルの名称変更を行う段階、
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルを隔離する段階、および
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルを分析のため第2コンピュータに送信する段階
のうちの1つまたは複数を含む、請求項1に記載のコンピュータ実施方法。
【請求項６】
前記第1ファイルに対して実行される前記1つまたは複数の対策プロセスが、
前記第1コンピュータによって、前記第1ファイルに関連する1つまたは複数のファイルを削除する段階、
前記第1コンピュータによって、前記第1ファイルに関連する1つまたは複数のファイルの名称変更を行う段階、および
前記第1コンピュータによって、前記第1ファイルに関連する1つまたは複数のファイルを隔離する段階
のうちの1つまたは複数を含む、請求項1に記載のコンピュータ実施方法。
【請求項７】
前記第1ファイルがリンクファイルである、請求項1に記載のコンピュータ実施方法。
【請求項８】
第1コンピュータによって、オブジェクトに向かうターゲットパスを含む第1ファイルの生成を監視する段階と、
前記第1ファイルの前記生成の監視に応じて、
前記第1コンピュータによって、前記第1ファイルがユニフォームリソースロケータへのリクエストを生成するか否かを判断する段階と、
前記第1ファイルがユニフォームリソースロケータへのリクエストを生成するとの判断に応じて、前記第1コンピュータによって、前記第1ファイルを生成させたプロセスを識別する段階と、
前記第1コンピュータによって、前記プロセスが禁止されたプロセスであるか否かを判断する段階と、
前記プロセスが禁止されたプロセスであるとの判断に応じて、前記第1コンピュータによって、前記プロセスおよび前記第1ファイルに対して1つまたは複数の対策プロセスを実行する段階と、
前記プロセスが禁止されたプロセスではないとの判断に応じて、前記第1コンピュータによって、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断する段階と、
前記ユニフォームリソースロケータが悪意あるリソースであるとの判断に応じて、前記第1コンピュータによって、前記プロセスおよび前記第1ファイルに対して1つまたは複数の対策プロセスを実行する段階と
を含む、コンピュータ実施方法。
【請求項９】
前記第1コンピュータによって、前記プロセスが禁止されたプロセスであるか否かを判断する段階が、
前記第1コンピュータによって、前記プロセスを記述しているデータを生成する段階と、
前記第1コンピュータによって、前記プロセスを記述している前記データを第2コンピュータに送信する段階と、
前記第1コンピュータによって、前記プロセスが禁止されたプロセスであるか否かを示すデータを前記第2コンピュータから受信する段階と、
前記第1コンピュータによって、前記第2コンピュータから受信した前記データに応じて、前記プロセスが禁止されたプロセスであるか否かを判断する段階と
を含む、請求項8に記載のコンピュータ実施方法。
【請求項１０】
前記プロセスを記述しているデータが前記プロセスに関連するシグネチャを含む、請求項9に記載のコンピュータ実施方法。
【請求項１１】
前記第1コンピュータによって、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断する段階が、
前記第1コンピュータによって、前記ユニフォームリソースロケータを記述しているデータを生成する段階と、
前記第1コンピュータによって、前記ユニフォームリソースロケータを記述している前記データを第2コンピュータに送信する段階と、
前記第1コンピュータによって、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを示すデータを前記第2コンピュータから受信する段階と、
前記第1コンピュータによって、前記第2コンピュータから受信した前記データに応じて、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断する段階と
を含む、請求項8に記載のコンピュータ実施方法。
【請求項１２】
前記プロセスに対して実行される前記1つまたは複数の対策プロセスが、
前記第1コンピュータによって、前記プロセスを終了させる段階、
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルを削除する段階、
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルの名称変更を行う段階、
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルを隔離する段階、および
前記第1コンピュータによって、前記プロセスに関連する1つまたは複数のファイルを分析のため第2コンピュータに送信する段階
のうちの1つまたは複数を含む、請求項8に記載のコンピュータ実施方法。
【請求項１３】
前記第1ファイルに対して実行される前記1つまたは複数の対策プロセスが、
前記第1コンピュータによって、前記第1ファイルに関連する1つまたは複数のファイルを削除する段階、
前記第1コンピュータによって、前記第1ファイルに関連する1つまたは複数のファイルの名称変更を行う段階、および
前記第1コンピュータによって、前記第1ファイルに関連する1つまたは複数のファイルを隔離する段階
のうちの1つまたは複数を含む、請求項8に記載のコンピュータ実施方法。
【請求項１４】
前記第1ファイルがリンクファイルである、請求項8に記載のコンピュータ実施方法。
【請求項１５】
コンピュータプログラムと共に符号化されたコンピュータ記憶媒体であって、前記プログラムは、データ処理装置によって実行されるときに、
ユニフォームリソースロケータへのリクエストを生成する第1ファイルの生成を監視することと、
前記第1ファイルの前記生成の監視に応じて、
前記第1ファイルを生成させたプロセスを識別することと、
前記プロセスが禁止されたプロセスであるか否かを判断することと、
前記プロセスが禁止されたプロセスであるとの判断に応じて、前記プロセスおよび前記第1ファイルに対して1つまたは複数の対策プロセスを実行することと、
前記プロセスが禁止されたプロセスではないとの判断に応じて、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断することと、
前記ユニフォームリソースロケータが悪意あるリソースであるとの判断に応じて、前記プロセスおよび前記第1ファイルに対して1つまたは複数の対策プロセスを実行することと
を含むオペレーションを前記データ処理装置に実行させる命令を含む、コンピュータ記憶媒体。
【請求項１６】
前記プロセスが禁止されたプロセスであるか否かを判断することを含むオペレーションを前記データ処理装置に実行させる命令が、
前記プロセスを記述しているデータを生成することと、
前記プロセスを記述している前記データを第2コンピュータに送信することと、
前記プロセスが禁止されたプロセスであるか否かを示すデータを前記第2コンピュータから受信することと、
前記第2コンピュータから受信した前記データに応じて、前記プロセスが禁止されたプロセスであるか否かを判断することと
を含むオペレーションを前記データ処理装置に実行させる命令をさらに含む、請求項15に記載のコンピュータ記憶媒体。
【請求項１７】
前記プロセスを記述しているデータが前記プロセスに関連するシグネチャを含む、請求項16に記載のコンピュータ記憶媒体。
【請求項１８】
前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断することを含むオペレーションを前記データ処理装置に実行させる命令が、
前記ユニフォームリソースロケータを記述しているデータを生成することと、
前記ユニフォームリソースロケータを記述している前記データを第2コンピュータに送信することと、
前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを示すデータを前記第2コンピュータから受信することと、
前記第2コンピュータから受信した前記データに応じて、前記ユニフォームリソースロケータが悪意あるリソースに関連しているか否かを判断することと
を含むオペレーションを前記データ処理装置に実行させる命令をさらに含む、請求項15に記載のコンピュータ記憶媒体。
【請求項１９】
前記プロセスに対して実行される前記1つまたは複数の対策プロセスが、
前記プロセスを終了させること、
前記プロセスに関連する1つまたは複数のファイルを削除すること、
前記プロセスに関連する1つまたは複数のファイルの名称変更を行うこと、
前記プロセスに関連する1つまたは複数のファイルを隔離すること、および
前記プロセスに関連する1つまたは複数のファイルを分析のために第2コンピュータに送信すること
のうちの1つまたは複数を含む、請求項15に記載のコンピュータ記憶媒体。
【請求項２０】
前記第1ファイルに対して実行される前記1つまたは複数の対策プロセスが、
前記第1ファイルに関連する1つまたは複数のファイルを削除すること、
前記第1ファイルに関連する1つまたは複数のファイルの名称変更を行うこと、および
前記第1ファイルに関連する1つまたは複数のファイルを隔離すること
のうちの1つまたは複数を含む、請求項15に記載のコンピュータ記憶媒体。
【請求項２１】
前記第1ファイルがリンクファイルである、請求項15に記載のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、マルウェア対策ソフトウェアに関する。
【０００２】
本出願は、2009年10月15日に出願された米国特許出願第12/579,679号の優先権を主張する。
【背景技術】
【０００３】
マルウェアは、例えばコンピュータウィルス、トロイの木馬、スパイウェア、および悪意あるアクティブコンテンツといったあらゆる種類の悪意あるソフトウェアのことである。マルウェアは、ウィルス感染した電子メールの添付ファイル、共有ファイル、または悪意あるウェブサイトを介して拡散することがある。マルウェアは、マルウェアをダウンロードするなど、悪意ある活動を実行させるリンクファイルを介して目立たない形で拡散することもある。
【０００４】
マルウェアはファイルに添付されることがあり、そのためウィルス感染したファイルが実行されると、マルウェアも実行され、例えば、ユーザによる認識や承諾なしに自己複製する。他のマルウェアはコンピュータのメモリをターゲットとし、コンピュータがファイルを開いたとき、修正したとき、または作成したときにファイルを感染させる。一部のマルウェアは、潜伏して存在し、存在の気配をまったく示さないことがある。例えば、キーキャプチャソフトウェア(key capture software)、モニタリングソフトウェアなどである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
マルウェア対策ソフトウェアは通常、悪意あるコードがないかコンピュータのメモリおよびディスクドライブをスキャンすることによって動作する。スキャンは、ファイルのシグネチャを既知のマルウェアのシグネチャと比較することによって実行できる。だが、マルウェア対策ソフトウェアが最新のシグネチャを欠いている場合、悪意あるプロセスおよびリンクが検出されない可能性がある。さらに、リンクを使用して、シグネチャが存在しない新たなマルウェアを、危険であることが分かっていない場所からダウンロードする恐れもある。こうした状況などでは、マルウェア対策ソフトウェアはコンピュータシステムへの損害を防止できない。
【課題を解決するための手段】
【０００６】
本明細書は、リンクファイルおよびリンクファイルを作成するプロセスの監視に基づく、マルウェアの検出およびマルウェアによる損害の防止に関する技術について説明する。
【０００７】
一般に、本明細書で説明する主題の革新的な一態様は、オブジェクトに向かうターゲットパスを含む第1ファイルの生成を監視するアクションと、第1ファイルの生成の監視に応じて、第1ファイルを生成させたプロセスを識別するアクションと、プロセスが禁止されたプロセスであるか否かを判断するアクションと、プロセスが禁止されたプロセスであるとの判断に応じて、禁止されたプロセスおよび第1ファイルに対して1つまたは複数の対策プロセスを実行するアクションと、プロセスが禁止されたプロセスではないとの判断に応じて、ターゲットパスがユニフォームリソースロケータ(uniform resource locator : URL)であるか否かを判断するアクションと、ターゲットパスがユニフォームリソースロケータであるとの判断に応じて、ユニフォームリソースロケータが禁止されたユニフォームリソースロケータであるか否かを判断するアクションと、ユニフォームリソースロケータが禁止されたユニフォームリソースロケータであるとの判断に応じて、第1ファイルに対して1つまたは複数の対策プロセスを実行するアクションとを含む方法で具現化されうる。本態様の他の実施態様は、コンピュータ可読記憶デバイス上に符号化された、本方法のアクションを実行するように構成された、対応するシステム、装置およびコンピュータプログラムを含む。
【０００８】
本明細書で説明する主題の別の革新的な態様は、オブジェクトに向かうターゲットパスを含む第1ファイルの生成を監視するアクションと、第1ファイルの生成の監視に応じて、ターゲットパスがユニフォームリソースロケータであるか否かを判断するアクションと、ターゲットパスがユニフォームリソースロケータであるとの判断に応じて、第1ファイルを生成させたプロセスを識別するアクションと、プロセスが禁止されたプロセスであるか否かを判断するアクションと、プロセスが禁止されたプロセスであるとの判断に応じて、プロセスおよび第1ファイルに対して1つまたは複数の対策プロセスを実行するアクションと、プロセスが禁止されたプロセスではないとの判断に応じて、ユニフォームリソースロケータが禁止されたユニフォームリソースロケータであるか否かを判断するアクションと、ユニフォームリソースロケータが禁止されたユニフォームリソースロケータであるとの判断に応じて、プロセスおよび第1ファイルに対して1つまたは複数の対策プロセスを実行するアクションとを含む方法で具現化されうる。本態様の他の実施態様は、コンピュータ可読記憶デバイス上に符号化された、本方法のアクションを実行するように構成された、対応するシステム、装置およびコンピュータプログラムを含む。
【０００９】
本明細書で説明する主題の別の革新的な態様は、コンピュータプログラムと共に符号化されたコンピュータ記憶媒体で具現化することができ、このコンピュータプログラムは、データ処理装置によって実行されるとき、ユニフォームリソースロケータに基づきリクエストを生成する第1ファイルの生成を監視することと、第1ファイルの生成の監視に応じて、第1ファイルを生成させたプロセスを識別することと、プロセスが禁止されたプロセスであるか否かを判断することと、プロセスが禁止されたプロセスであるとの判断に応じて、プロセスおよび第1ファイルに対して1つまたは複数の対策プロセスを実行することと、プロセスが禁止されたプロセスではないとの判断に応じて、ユニフォームリソースロケータが禁止されたユニフォームリソースロケータであるか否かを判断することと、ユニフォームリソースロケータが禁止されたユニフォームリソースロケータであるとの判断に応じて、プロセスおよび第1ファイルに対して1つまたは複数の対策プロセスを実行することとを含むオペレーションをデータ処理装置に実行させる命令を含む。
【００１０】
本明細書で説明する主題の特定の実施態様を実施して、以下の利点のうちの1つまたは複数を実現できる。コンピュータプロセスによって生成されたリンクファイルが検出され、リンクファイルまたはそれを生成したコンピュータプロセスがマルウェアであるか否かが判断される。かかるマルウェアがコンピュータシステムに損害をもたらすのを防止する。マルウェアをターゲットとするが、マルウェアではないコンピュータプロセスによって別途生成されるリンクファイルがコンピュータシステムに損害をもたらすのも防止する。
【００１１】
本明細書で説明する主題の1つまたは複数の実施態様の詳細を、添付の図面および以下の説明で示す。対象の他の特徴、態様および利点は、説明、図面および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】コンピュータプロセスによるリンクファイルの生成に対する監視および対応を行うマルウェア対策プログラムの例を示すブロック図である。
【図２】リンクファイルの生成に対する監視および対応を行い、対策プロセスを実行する例示的なプロセスを示す流れ図である。
【図３】リンクファイルの生成に対する監視および対応を行い、対策プロセスを実行する別の例示的なプロセスを示す流れ図である。
【図４】リンクファイルを生成したコンピュータプロセスが禁止されたプロセスであるか否かを判断するため、リモートコンピュータと通信するマルウェア対策プログラムの例のブロック図である。
【図５】リンクファイルが向かうオブジェクトが禁止されたオブジェクトであるか否かを判断するため、リモートコンピュータと通信するマルウェア対策プログラムの例のブロック図である。
【発明を実施するための形態】
【００１３】
様々な図面における同じ参照番号および表示は、同じ要素を示す。
【００１４】
図1は、コンピュータプロセスによるリンクファイルの生成に対する監視および対応を行うマルウェア対策プログラムの例を示すブロック図である。本明細書で使用する「マルウェア対策プログラム」は、任意の種類のマルウェア対策ソフトウェアであり、例えばウィルス対策ソフトウェアを含む。
【００１５】
図1に示すように、ドロッパープロセス104は、リンクファイル108を生成する。ドロッパープロセス104は、ドロッパーファイル102のインスタンスであるコンピュータプロセスである。本明細書で使用する「ドロッパーファイル」は、リンクファイルなどの別のファイルを生成するよう求める命令を含むコンピュータ実行可能命令を含む任意の種類のファイルまたは2進コードである。本明細書で使用する「リンクファイル」は、別のオブジェクトに向かうターゲットパスを包含するか、選択、アクセスまたはインスタンス化されるときに別のオブジェクトへのリクエストを生成する任意の種類のファイルまたは2進コードである。リンクファイル108に包含されるターゲットパス110は、ユニフォームリソースロケータ(URL)でありうる。ユニフォームリソースロケータは、コンピュータ上に位置するファイルなどのリソースの位置を識別する。URLが対応するリソースは、ネットワーク116上に位置するコンピュータ上に位置することがある。ネットワーク116は、インターネットなどの外部ネットワークまたはコンピュータデバイス100が位置するローカルエリアネットワークでありうる。したがって、リンクファイル108は、インターネット上またはコンピュータデバイス100が位置するローカルネットワーク116上に位置するファイルに対応するURLを含むターゲットパス110を包含することができる。あるいは、ターゲットパス110は、コンピュータデバイス100に保存されているローカルファイルに対応するURLを含むことができる。
【００１６】
図1にさらに示すように、マルウェア対策プログラム112は監視対策モジュール114を包含する。監視対策モジュール114はリンクファイルの108の生成がないか106を監視する。監視対策モジュール114はソフトウェアコードで具現化することができ、例えば、マルウェア対策プログラムの一部となるか、独自のプロセス、サービスなどを含む別個のプログラムとして独立して作動することができる。リンクファイル108の生成を検出したこと106に応じて、監視対策モジュール114はドロッパープロセス104およびドロッパーファイル102に関する情報を収集する。この情報はドロッパープロセス104の正体、ドロッパーファイル102の位置、およびリンクファイル108の位置を含む。
【００１７】
監視対策モジュール114は、ドロッパープロセス104、またはリンクファイル108が向かうか、リンクファイルがリクエストを生成するオブジェクトが禁止されている否かを判断し、これは図2および図3に例示されている。監視対策モジュール114は、例えばドロッパープロセス104に関連するドロッパーファイル102である実行可能機械コードを記述しているデータを含め、ドロッパープロセスを記述しているデータに基づき、ドロッパープロセス104が禁止されているか否かを判断する。監視対策モジュール114は判断を、ドロッパープロセスを記述しているデータと既知の禁止されたプロセスまたファイルを記述しているデータとの比較に基づいたものとすることができ、これは図4に例示されている。
【００１８】
さらに、監視対策モジュール114は、例えばURLなどのオブジェクトを記述しているデータに基づき、リンクファイル108が向かうか、リンクファイルがリクエストを生成するオブジェクトが禁止されているか否かを判断する。監視対策モジュール114は判断を、オブジェクトを記述しているデータと既知の禁止されたオブジェクトを記述しているデータとの比較に基づいたものとすることができ、これは図5に例示されている。こうした判断の結果に依拠して、監視対策モジュール114はドロッパープロセス104を終了させ、ドロッパーファイル102およびリンクファイル108に対して他の対策プロセスを実行することができ、これは図2および図3にさらに例示されている。
【００１９】
図2は、リンクファイルの生成に対する監視および対応を行い、対策プロセスを実行する例示的なプロセスを示す流れ図である。例示的なプロセス200は、マルウェア対策プログラム112、例えばウィルス対策ソフトウェアで実施すること、または独自のプロセス、サービスなどを備えた別個のプログラムとして独立して作動するソフトウェアコードで具現化することができる。
【００２０】
プロセス200はリンクファイルの生成を検出する(202)。例えば、コンピュータプロセスによるリンクファイルの生成は、「.lnk」拡張子を伴うファイルの生成に対する監視によって検出されることがある。例えばWindows(登録商標)では、プロセス200はWindows(登録商標) API(アプリケーションプログラミングインターフェース)ファイル生成呼び出しを傍受する「フック」を導入することができる。プロセスがファイルを生成すると、プロセス200はWindows(登録商標) API「CreateFile」呼び出しを傍受することによって生成を検出することができる(202)。
【００２１】
プロセス200は、リンクファイルを生成したプロセスを識別する(204)。プロセス200は、上記の例のように、Windows(登録商標) API呼び出しを傍受し、Windows(登録商標) API呼び出しを生成したプロセスに関する情報を収集することによって、リンクファイルを生成したプロセスを識別することができる。例えば、プロセス200は、プロセスのID、名称、ファイルパスなど、「CreateFile」Windows(登録商標) API呼び出しを生成したプロセスに関する情報を収集することができる。
【００２２】
プロセス200は、プロセスが禁止されたプロセスであるか否かを判断し(206)、これは図4にさらに例示されている。プロセスは、プロセスの作成元のファイルが禁止されているか否かに基づき、禁止されたプロセスであると確認されることがある。
【００２３】
プロセスが禁止されているとの判断に応じて、プロセス、プロセスに関連するファイル、およびプロセスによって生成されたリンクファイルに対して、1つまたは複数の対策プロセスが実行される(212)。対策プロセスは、例えばプロセスを終了させること、ならびにプロセスに関連する1つまたは複数のファイルおよびリンクファイルの削除、名称変更または隔離を含むことができる。プロセスを終了させることは、当該プロセスのみを終了させること、または当該プロセスおよび当該プロセスによって直接的および/または間接的に開始されたその他すべてのプロセスを終了させることを含みうる。プロセスに関連するファイルは、プロセスのインスタンス元の実行可能機械コードを包含するファイルを含むことができる。このファイルおよびリンクファイルは、削除に加えて名称変更も可能であり、それにより手動でクリーニング、削除またはその他の方法で処理されるまで使用不可になる。隔離は、プロセスのインスタンス元のファイルおよびリンクファイルを、将来のアクション実行まで安全に分離し、無効にすることを含むことができる。隔離の一例として、ファイルの暗号化、ファイルの名称変更、隔離用ディレクトリまたはフォルダへのファイルの移動がある。
【００２４】
あるいは、プロセスが禁止されていないと判断された場合、リンクファイルがターゲットURLをターゲットとしているか否かについての判断が行われる(208)。プロセス200はリンクファイルがターゲットURLをターゲットにしているか否かを、例えば、リンクファイルを構文解析し、URLを示すテキスト列またコードを検索することによって判断する。URLを示すテキスト列は、例えば「http://」で始まることがある。
【００２５】
別の実施態様では、プロセスが禁止されていないと判断された場合、リンクファイルがURLに対する、またはURLに基づくリクエストを生成するか否かについての判断が行われる。例えば、上記のようにファイルが構文解析されること、またはファイルが選択、アクセスもしくはインスタンス化されること、例えば保護されたエミュレーション領域で実行されることで、リンクファイルがURLに対する、またはURLに基づくリクエストを生成するか否かの判断が可能である。
【００２６】
リンクファイルがターゲットURLを包含しているとの判断に応じて、プロセス200は、URLが禁止されているか、または禁止されたオブジェクトを参照しているかを判断し(210)、これは図5にさらに例示されている。URLが禁止されるのは、例えば、URLが悪意あるウェブサイトまたはファイルのアドレスを指定している場合である。URLが禁止されているか、禁止されたオブジェクトを参照しているとプロセス200が判断した場合、上記のように1つまたは複数の対策プロセスが実行される(212)。
【００２７】
図3は、リンクファイルの生成に対する監視および対応を行い、対策プロセスを実行する別の例示的なプロセスを示す流れ図である。例示的なプロセス300は、マルウェア対策プログラム112、例えばウィルス対策ソフトウェアで実施すること、または独自のプロセス、サービスなどを備えた別個のプログラムとして独立して作動するソフトウェアコードで具現化することができる。
【００２８】
プロセス300はリンクファイルの生成を検出する(302)。リンクファイルの生成は、上記の例のように「.lnk」拡張子を伴うファイルの生成に対する監視によって、またはURLに対するリクエストもしくはURLに基づくリクエストを生成するファイルの位置に対する監視によって検出されることがある。リンクファイルの生成の検出(302)に応じて、プロセス300は、リンクファイルがターゲットURLを含むか否かを判断する(304)。リンクファイルがターゲットURLを含むとの判断に応じて、プロセス300は、リンクファイルを生成したプロセスを識別する(306)。プロセス300は、上記の例のように、「CreateFile」Windows(登録商標) API呼び出しを傍受し、Windows(登録商標) API呼び出しを生成したプロセスに関する情報を収集することによって、リンクファイルを生成したプロセスを識別することができる。
【００２９】
プロセス300は、プロセスが禁止されたプロセスであるか否かを判断し(308)、これは図4にさらに例示されている。プロセスは、プロセスの作成元のファイルが禁止されているか否かに基づき、禁止されたプロセスであると確認されることがある。プロセスが禁止されているとプロセス300が判断した場合、プロセスおよびリンクファイルに対して、1つまたは複数の対策プロセスが実行される。リンクファイルを生成したプロセスに対して実行される対策プロセスは、例えばプロセスを終了させること、ならびにプロセスのインスタンス元のファイルおよびプロセスに関連する1つまたは複数の他のファイルの削除、名称変更および隔離を含むことができる。リンクファイルに対して実行される対策プロセスは、例えばリンクファイルの削除、名称変更および隔離を含むことができる。
【００３０】
プロセス300は、プロセスが禁止されていないと判断した場合、URLが禁止されているか、または禁止されたオブジェクトを参照しているかを判断し(310)、これは図5にさらに例示されている。URLが禁止されている、または禁止されたオブジェクトを参照しているとプロセス300が判断した場合、リンクファイルを生成したプロセスおよびリンクファイルに対して1つまたは複数の対策プロセスが実行される(312)。
【００３１】
図4は、リンクファイルを生成したコンピュータプロセスが禁止されたプロセスであるか否かを判断するため、リモートコンピュータと通信するマルウェア対策プログラムの例のブロック図である。判断は、マルウェア対策プログラム112など、コンピュータデバイス100で実行されるプログラムによって行うことができる。例えば、監視対策モジュール114は、リンクファイルを生成したプロセスを識別し、プロセスを記述しているデータを生成してリモートコンピュータに送信し、プロセスが禁止されているか否かを示すデータを受信することができる。
【００３２】
この例示的な実施態様では、プロセスを記述しているデータ402が、禁止されたプロセスを記述しているデータのデータベースまたはその他の保存済み編集物406を包含するリモートコンピュータ404に送信される。リモートコンピュータ404は、マルウェア対策プログラムの提供者によって維持されうる。リモートコンピュータ404は、プロセスが禁止されたプロセスであるか否かを示すデータ408を返す。監視対策モジュール114は、リモートコンピュータ404から受信したデータ408に基づき、プロセスが禁止されたプロセスであるか否かを判断する。
【００３３】
シグネチャ402は、本発明の1つの例示的な実施態様によるプロセスを記述しているデータの一例である。シグネチャはデータパターンであり、単純な文字列またはバイト列であることが多く、特定のファイル、プロセス、その他の電子データを識別するために使用できる。シグネチャの例として、ファイルのハッシュやファイルの一部のハッシュがある。マルウェア対策プログラムは、例えばウィルスなどの特定のマルウェアの検出および位置特定、またはその他の方法によるサービス、プロセスもしくはファイルの識別のためにシグネチャを使用することができる。
【００３４】
図4に示すように、プロセスを記述しているシグネチャ402は、監視対策モジュール114によって生成され、リモートコンピュータ404に送信される。リモートコンピュータ404は受信したシグネチャ402を、データベースまたはその他の保存済み編集物406に包含されている禁止されたプロセスを記述しているデータと比較し、プロセスが禁止されたプロセスであるか否かを示すデータ408を返す。データベースまたはその他の保存済み編集物に包含されている禁止されたプロセスを記述しているデータは、禁止されたファイルのシグネチャを含みうる。受信したデータ408に基づき、監視対策モジュール114によって、リンクファイルを生成したプロセスが禁止されたプロセスであるか否かについて判断が行われる。
【００３５】
シグネチャ402は、リンクファイルを生成したプロセスを記述しているデータの一例である。例えば、プロセスのインスタンス元のファイルのようなプロセスに関連する実行可能機械コードなど、プロセスに関連する1つまたは複数のファイルのさらに完全なデータのコピーを含め、他のデータを生成し、使用して、プロセスが禁止されたプロセスであるか否かの判断を行うこともできる。
【００３６】
他の実施態様では、承認されたプロセスを記述しているデータのデータベースまたはその他の保存済み編集物406は、プロセスおよびマルウェア対策プログラムが作動しているコンピュータデバイス100にローカル保存されうる。すなわち、シグネチャ402を生成し、既知のマルウェアのような禁止されたプロセスのシグネチャのローカル保存済みデータベースまたはその他のローカル保存済み編集物と比較することができる。
【００３７】
図5は、リンクファイルが向かうオブジェクトが禁止されたオブジェクトであるか否かを判断するため、リモートコンピュータと通信するマルウェア対策プログラムの例のブロック図である。判断は、マルウェア対策プログラム112など、コンピュータデバイス100で実行されるプログラムによって行うことができる。例えば、監視対策モジュール114は、生成されているリンクファイルを識別し、リンクファイルのターゲットオブジェクトを記述しているデータを生成してリモートコンピュータに送信し、オブジェクトが禁止されているか否かを示すデータを受信することができる。
【００３８】
この例示的な実施態様では、プロセスを記述しているデータ502が、禁止されたオブジェクトを記述しているデータのデータベースまたはその他の保存済み編集物506を包含するリモートコンピュータ504に送信される。リモートコンピュータ504は、マルウェア対策プログラムの提供者によって維持されうる。リモートコンピュータ504は、オブジェクトが禁止されたオブジェクトであるか否かを示すデータ508を返す。リモートコンピュータ504から受信したデータ508に基づき、オブジェクトが禁止されたプロセスであるか否かについて判断が行われる。
【００３９】
URL502は、本発明の1つの例示的な実施態様によるオブジェクトを記述しているデータの一例である。図5に示すように、URL502は、監視対策モジュール114によってリモートコンピュータ504に送信される。リモートコンピュータ504は受信したURL502を、データベースまたはその他の保存済み編集物506に包含されている禁止されたオブジェクトを記述しているデータと比較し、オブジェクトが禁止されたオブジェクトであるか否かを示すデータ508を返す。データベースまたはその他の保存済み編集物に包含されている禁止されたオブジェクトを記述しているデータは、URLを含むことができる。受信したデータ508に基づき、監視対策モジュール114によって、リンクファイルによってターゲットにされているオブジェクトが禁止されているか否かについて判断が行われる。
【００４０】
他の実施態様では、承認されたプロセスを記述しているデータのデータベースまたはその他の保存済み編集物506は、リンクファイルを生成したプロセスおよびマルウェア対策プログラムが作動しているコンピュータデバイス100にローカル保存されうる。すなわちURL502を、禁止されたURLのローカル保存済みデータベースまたはその他のローカル保存済み編集物と比較することができる。
【００４１】
本明細書で説明する主題およびオペレーションの実施態様は、デジタル電子回路において、または本明細書で開示される構造およびその構造の同等物を含む、コンピュータソフトウェア、ファームウェアもしくはハードウェアにおいて、またはこれらのうちの1つもしくは複数の組み合わせで実施できる。本明細書で説明する主題の実施態様は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のため、またはデータ処理装置のオペレーションを制御するため、コンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施できる。代替的にまたは追加として、プログラム命令は、人工生成の伝搬信号、例えば、データ処理装置による実行のため適切な受信機装置に送信する情報を符号化するため生成される、機械生成の電気信号、光信号または電磁信号に符号化できる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくは順次アクセスメモリアレイもしくはデバイス、またはこれらのうちの1つもしくは複数の組み合わせであること、またはこれらに含まれることがある。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工生成の伝搬信号に符号化されたコンピュータプログラム命令の発信元または宛先でありうる。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体(例えば、複数のCD、ディスクまたはその他の記憶デバイス)であること、またはこれらに含まれることがある。
【００４２】
本明細書で説明するオペレーションは、1つまたは複数のコンピュータ可読記憶デバイスに保存されているか、他の発信元から受信したデータに対してデータ処理装置によって実行されるオペレーションとして実施できる。
【００４３】
「データ処理装置」という用語は、例えばプログラム可能プロセッサ、コンピュータ、チップ上のシステム、またはこれらの複数もしくは組み合わせを含む、データを処理するすべての種類の装置、デバイスおよび機械を包含する。装置は、専用論理回路、例えばFPGA(書き換え可能ゲートアレイ)またはASIC(アプリケーション専用集積回路)を含むことができる。この装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想機械またはこれらの1つもしくは複数の組み合わせを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、グリッドコンピューティングインフラストラクチャなど様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００４４】
本明細書で説明するプロセスおよび論理フローを具現化するコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても知られている)は、コンパイルまたは翻訳された言語、宣言形または手続き形の言語を含む任意の形式のプログラミング言語で書かれてよく、独立プログラムとしての形式、またはモジュール、コンポーネント、サブルーチン、オブジェクトもしくはコンピューティング環境での使用に適したその他のユニットとしての形式など、任意の形式で展開されてよい。コンピュータプログラムは、ファイルシステム内のファイルに対応しうるが、対応する必要はない。プログラムは、他のプログラムもしくはデータ(例えば、マーク付け言語文書に記憶される1つもしくは複数のスクリプト)を保持するファイルの一部、問題のプログラム専用の1つのファイル、または複数の調整されたファイル(例えば、1つもしくは複数のモジュール、サブプログラムもしくはコードの一部を記憶するファイル)に記憶できる。コンピュータプログラムは、1つのコンピュータ、または1つの場所に位置するか、もしくは複数の場所に分布し、通信ネットワークで相互接続された複数のコンピュータで実行されるよう展開できる。
【００４５】
本明細書で説明するプロセスおよび論理フローは、入力データに対するオペレーションおよび出力の生成によってアクションを実行する1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサによって実行できる。プロセスおよび論理フローはまた、専用論理回路、例えばFPGA(書き換え可能ゲートアレイ)またはASIC(アプリケーション専用集積回路)によって実行可能であり、装置はまた、専用論理回路、例えばFPGAまたはASICとして実装可能である。
【００４６】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータのうちの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの基本的要素は、命令に従いアクションを実行するプロセッサ、ならびに命令およびデータを記憶する1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶する1つもしくは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスクもしくは光ディスクを含み、またはかかる大容量記憶デバイスからデータを受信し、もしくはかかる大容量記憶デバイスにデータを転送し、もしくはその両方を行うように動作可能に結合される。しかし、コンピュータはかかるデバイスを備えている必要はない。さらに、コンピュータは、別のデバイス、例えば携帯電話、携帯情報端末(PDA)、携帯音声もしくは映像プレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)などに組み込まれうる。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、あらゆる形式の不揮発性メモリ、媒体およびメモリデバイス、例えば、半導体メモリデバイス、例えば、EPROM、EEPROMおよびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたは取り外し可能ディスク、光磁気ディスクならびにCD-ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは専用論理回路によって補完され、または専用論理回路に組み込まれてよい。
【００４７】
ユーザとの対話を提供するため、本明細書で説明する主題の実施態様は、ユーザに情報を表示するための表示デバイス、例えば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータにインプットを提供できるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールとを有するコンピュータで実施できる。他の種類のデバイスを使用してユーザと対話することも可能で、例えば、ユーザに提供されるフィードバックは、任意の形式の知覚フィードバック、例えば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってよく、ユーザからのインプットは、音響、音声または触覚インプットを含む任意の形式で受信できる。また、コンピュータは、ユーザによって使用されているデバイスにドキュメントを送信し、かかるデバイスからドキュメントを受信することによって、例えばユーザのクライアントデバイス上のウェブブラウザに、ウェブブラウザから受信したリクエストに応じてウェブページを送信することによって、ユーザと対話することができる。
【００４８】
本明細書で説明する主題の実施態様は、クライアントおよびサーバを含むコンピューティングシステムで実施できる。クライアントおよびサーバは、一般に互いに離れており、通常は通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータで稼動し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【００４９】
本明細書は多くの特定の実施詳細を含んでいるが、かかる詳細を、いずれかの発明または請求内容の範囲の限定と解釈すべきではなく、特定の発明の特定の実施態様に固有の特徴の説明と解釈すべきである。また、個別の実施態様との関連で本明細書において説明する一定の特徴はまた、1つの実施態様において組み合わせで実施できる。反対に、1つの実施態様との関連で説明する様々な特徴は、複数の実施態様で個別に、または任意の適切な副組み合わせで実施できる。さらに、特徴は一定の組み合わせで機能するものとして上述され、当初はそういうものとして請求されることもあるが、請求される組み合わせによる1つまたは複数の特徴は、場合によっては、当該組み合わせから取り除くことが可能であり、請求される組み合わせは副組み合わせまたは副組み合わせの変形を対象にしうる。
【００５０】
同様に、オペレーションは特定の順序で図面に示されているが、これについては、所望の結果を達成するために、かかるオペレーションを示された特定の順序でもしくは順次に実行すること、またはすべての示されたオペレーションを実行することを要求するものとして理解すべきではない。ある特定の状況では、多重タスク処理および並列処理が有利なこともある。また、上述の実施態様における様々なシステム構成要素の分離については、すべての実施態様でかかる分離を要求するものとして理解すべきではなく、説明されるプログラム構成要素およびシステムは一般に1つのソフトウェア製品への統合、または複数のソフトウェア製品へのパッケージ化が可能であると理解すべきである。
【００５１】
以上、対象の特定の実施態様について説明してきた。他の実施態様も、以下の特許請求の範囲内に入る。場合によっては、特許請求の範囲で列挙されるアクションは、異なる順序で実行可能であり、その場合でも所望の結果を達成できる。また、添付の図に記載のプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または順次であることを要求しているわけではない。ある特定の実施態様では、多重タスク処理および並列処理が有利なこともある。
【符号の説明】
【００５２】
100  コンピュータデバイス
102  ドロッパーファイル
104  ドロッパープロセス
108  リンクファイル
110  ターゲットパス
112  マルウェア対策プログラム
114  監視対策モジュール
116  ネットワーク
200  プロセス
300  プロセス
402  データ、シグネチャ
404  リモートコンピュータ
406  データベースまたはその他の保存済み編集物
408  データ
502  データ、URL
504  リモートコンピュータ
506  データベースまたはその他の保存済み編集物
508  データ
【図２】
0005599892.tif 000002
【図３】
0005599892.tif 000003
【図１】
0005599892.tif 000004
【図４】
0005599892.tif 000005
【図５】
0005599892.tif 000006