(57)【特許請求の範囲】
【請求項１】
マルウェア検出方法であって、
サンドボックスの中で被検出ソフトウェアを実行し、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録するステップと、
前記少なくとも１つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出するステップと、
任意の１つの前記インタフェースが呼び出されるとき、前記呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するステップと、
前記第１の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに調整するステップであって、前記第２の遅延長パラメータに対応する遅延期間は、０より大きく且つ前記所定期間より小さい、ステップと、
前記少なくとも１つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、
を含む方法。
【請求項２】
前記所定期間が終わる前の予め決定された瞬間に、前記予め決定された瞬間の前に記録された少なくとも1つの記録された動作を前記悪意挙動の前記動作と比較するステップと、
前記悪意挙動の前記動作に一致する動作が前記予め決定された瞬間の前に記録された前記少なくとも１つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するステップと、
前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも１つの動作を記録するステップと、
前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの記録された動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、
を更に含む請求項１に記載の方法。
【請求項３】
前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに前記調整するステップは、
前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと所定調整パラメータとの積に調整するステップであって、前記調整パラメータは、０より大きく且つ１より小さい、ステップと、
を含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記所定調整パラメータは、第１の調整パラメータ及び第２の調整パラメータを有し、前記第１の調整パラメータは前記第２の調整パラメータより大きく、
前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに前記調整するステップは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、
前記の得られた使用率を所定使用率閾と比較するステップと、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと前記第１の調整パラメータとの積に調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと前記第２の調整パラメータとの積に調整するステップ、
を含む、請求項３に記載の方法。
【請求項５】
前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに前記調整するステップは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、
前記の得られた使用率を所定使用率閾と比較するステップと、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを前記第２の遅延長パラメータに調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを第３の遅延長パラメータに調整するステップと、
を有し、
前記第３の遅延長パラメータに対応する遅延期間は、前記第２の遅延長パラメータに対応する前記遅延期間より小さい、
請求項１又は請求項２に記載の方法。
【請求項６】
前記インタフェースは、以下のインタフェース、
１つのプロセスを遅延するインタフェース、複数のプロセスを遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース、
のうちの１つ又は組合せを有する、請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
マルウェア検出装置であって、
サンドボックスの中で被検出ソフトウェアを実行するよう構成される実行ユニットと、
前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録するよう構成される記録ユニットと、
前記少なくとも１つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出するよう構成される検出ユニットと、
任意の１つの前記インタフェースが呼び出されるとき、前記呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するよう構成される決定ユニットと、
前記第１の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに調整するよう構成される調整ユニットであって、前記第２の遅延長パラメータに対応する遅延期間は、０より大きく且つ前記所定期間より小さい、調整ユニットと、
前記少なくとも１つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう構成される比較ユニットと、
を有する装置。
【請求項８】
前記比較ユニットは、
前記所定期間が終わる前の予め決定された瞬間に、前記決定された瞬間の前に記録された少なくとも１つの記録された動作を前記悪意挙動の前記動作と比較する、よう更に構成され、
前記装置は、前記悪意挙動の前記動作に一致する動作が前記決定された瞬間の前に記録された前記少なくとも１つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するよう構成される送信ユニット、を更に有し、
前記記録ユニットは、前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも１つの動作を記録するよう更に構成され、
前記比較ユニットは、前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの記録された動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう更に構成される、
請求項７に記載の装置。
【請求項９】
前記調整ユニットは、
前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと所定調整パラメータとの積に調整し、前記調整パラメータは０より大きく且つ１より小さい、
ように構成される、請求項７又は請求項８に記載の装置。
【請求項１０】
前記所定調整パラメータは、第１の調整パラメータ及び第２の調整パラメータを有し、前記第１の調整パラメータは前記第２の調整パラメータより大きく、
前記調整ユニットは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
前記の得られた使用率を所定使用率閾と比較し、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと前記第１の調整パラメータとの積に調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと前記第２の調整パラメータとの積に調整する、
よう構成される、請求項９に記載の装置。
【請求項１１】
前記調整ユニットは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
前記の得られた使用率を所定使用率閾と比較し、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを前記第２の遅延長パラメータに調整し、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを第３の遅延長パラメータに調整する、
よう構成され、
前記第３の遅延長パラメータに対応する遅延期間は、前記第２の遅延長パラメータに対応する前記遅延期間より小さい、
請求項７又は請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、参照によりその全体がここに組み込まれる中国特許出願番号２０１４１０６６７６４８.４、２０１４年１１月２０日に中国特許庁に出願、名称「MALWARE  DETECTION  METHOD  AND  MALWARE  DETECTION  APPARATUS」の優先権を主張する。
【０００２】
＜技術分野＞
本発明は、コンピュータ技術の分野に関し、特にマルウェア検出方法及びマルウェア検出装置に関する。
【背景技術】
【０００３】
コンピュータソフトウェア（Software）は、特定順序に組織化される一連のコンピュータデータ及び命令のセットを表す。マルウェアは、コンピュータソフトウェアの出現の直後に現れる。合法ソフトウェアの開発目的は、コンピュータの動作能力を向上し及び拡張することである。しかしながら、マルウェアの開発目的は、コンピュータデータを盗み及び破壊することである。従来のマルウェア検出方法は、特徴コード比較に基づき実装される。しかしながら、マルウェアは、通常、モーフィング、パッキング、等の手段により特徴コード比較から巧みに逃れる。モーフィングは、元の特徴コードを無効にするために、大量の難読化コードをソフトウェアのプログラムコードに追加することを表す。パッキングは、元の特徴コードを無効にするために、ソフトウェアのプログラムコードを暗号化し及びパッキングすることを表す。
【０００４】
前述の欠点を回避するために、サンドボックス（Sandbox）技術を用いることによりマルウェアを検出する方法が提案される。サンドボックスは、ソフトウェア分離及び実行メカニズムであり、サンドボックスの目的は、信頼できないソフトウェアの許可を限定することである。サンドボックス技術は、未検査の又は信頼できないソフトウェアを実行するために使用される場合が多い。信頼できないソフトウェアが他のソフトウェアの実行を破壊し得る場合を回避するために、サンドボックス技術は、オペレーティングシステムの元の状態を保護するために、信頼できないソフトウェアのために仮想ディスク、メモリ、及びネットワークリソースを提供する。サンドボックス技術の特定の実装処理において、信頼できないソフトウェアがサンドボックスの中で実行しているときに信頼できないソフトウェアにより生成され、変更され、及び削除される全てのファイル及びレジストリエントリは、仮想化され、仮想オペレーティングシステムにリダイレクトされる。したがって、信頼できないソフトウェアの全ての動作は仮であり、実際のファイルシステム及び実際のレジストリは変更されない。これは、ウイルスを運ぶマルウェアがオペレーティングシステムの主要部分を変更できない及びオペレーティングシステムを破壊できないことを保証できる。
【０００５】
サンドボックス技術を用いることによりマルウェアを検出する特定の動作原理は、信頼できないソフトウェアの実行する完全な通常環境をシミュレートし、信頼できないソフトウェアが実行するとき信頼できないソフトウェアにより実行される全ての動作を記録することである。動作は、悪意挙動データベースと照合される。一致する悪意挙動が識別される場合、信頼できないソフトウェアはマルウェアであると考えられる。方法は、直接にマルウェアをサンドボックスの中で実行させることができるので、マルウェアがモーフィング、パッキング、等の手段により検出から逃れることを防止できる。これは、マルウェア検出の精度を向上できる。従来の検出方法と比べて、サンドボックスを用いることによりマルウェアを検出する方法の検出能力は、大幅に向上される。さらに、サンドボックスを用いることによりマルウェアを検出する方法は、照合方法として汎用悪意挙動データベースを使用するので、同一種類の悪意サンプルの基本量が極めて多いという問題を回避できる。
【０００６】
しかしながら、実際の適用では、ハードウェアリソース及びソフトウェア仕様の制限により、非常に長時間の監視は実用的ではない。サンドボックスは、概して、信頼できないソフトウェアが実行を開始した後の数分以内に実行される挙動のみを監視できる。この制限により、マルウェアは、悪意挙動の暴動の前に遅延動作を追加する。例えば、長時間Ｓｌｅｅｐ文が追加される。この文は、検出から逃れるために、数十分又は数時間でもソフトウェア実行処理の中で幾つかの動作を遅延させることができる。したがって、現在のマルウェア検出方法には比較的低い精度の欠点が存在する。
【発明の概要】
【０００７】
本発明の実施形態は、マルウェア検出方法及びマルウェア検出装置を提供し、従来技術に存在する比較的低い精度の欠点を解決する。
【０００８】
本発明の実施形態において提供される特定の技術的解決策は以下の通りである。
【０００９】
第１の態様によると、マルウェア検出方法であって、サンドボックスの中で被検出ソフトウェアを実行し、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録するステップと、前記少なくとも１つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出するステップと、任意の１つの前記インタフェースが呼び出されることが検出されるとき、前記呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するステップと、前記第１の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに調整するステップであって、前記第２の遅延長パラメータに対応する遅延期間は、前記所定期間より小さい、ステップと、前記少なくとも１つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、を含む方法が提供される。
【００１０】
第１の態様を参照して、第１の可能な実装方法では、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに前記調整するステップは、具体的には、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと所定調整パラメータとの積に調整するステップであって、前記調整パラメータは、０より大きく且つ１より小さい、ステップと、を含む。
【００１１】
第１の態様の第１の可能な実装方法を参照して、第２の可能な実装方法では、前記所定調整パラメータは、第１の調整パラメータ及び第２の調整パラメータを有し、前記第１の調整パラメータは前記第２の調整パラメータより大きく、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに前記調整するステップは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、前記の得られた使用率を所定使用率閾と比較するステップと、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと前記第１の調整パラメータとの積に調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと前記第２の調整パラメータとの積に調整するステップ、を含む。
【００１２】
第１の態様を参照して、第３の可能な実装方法では、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに前記調整するステップは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、前記の得られた使用率を所定使用率閾と比較するステップと、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを前記第２の遅延長パラメータに調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを第３の遅延長パラメータに調整するステップと、を含み、前記第３の遅延長パラメータに対応する遅延期間は、前記第２の遅延長パラメータに対応する前記遅延期間より小さい。
【００１３】
第１の態様、又は第１の態様の第１乃至第３の可能な実装方法のうちのいずれか１つを参照して、第４の可能な実装方法では、前記方法は、前記所定期間が終わる前の予め決定された瞬間に、前記少なくとも１つの記録された動作を前記悪意挙動の前記動作と比較するステップと、前記悪意挙動の前記動作に一致する動作が前記少なくとも１つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するステップと、前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも１つの動作を記録するステップと、前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、を更に含む。
【００１４】
第１の態様、又は第１の態様の第１乃至第４の可能な実装方法のうちのいずれか１つを参照して、第５の可能な実装方法では、前記インタフェースは、以下のインタフェース、１つのプロセスを遅延するインタフェース、複数のプロセスを遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース、のうちの１つ又は組合せを有する。
【００１５】
第２の態様によると、マルウェア検出装置であって、サンドボックスの中で被検出ソフトウェアを実行するよう構成される実行ユニットと、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録するよう構成される記録ユニットと、前記少なくとも１つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出するよう構成される検出ユニットと、任意の１つの前記インタフェースが呼び出されることが検出されるとき、前記呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するよう構成される決定ユニットと、前記第１の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに調整するよう構成される調整ユニットであって、前記第２の遅延長パラメータに対応する遅延期間は、前記所定期間より小さい、調整ユニットと、前記少なくとも１つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう構成される比較ユニットと、を有する装置が提供される。
【００１６】
第２の態様を参照し、第１の可能な実装方法では、前記調整ユニットは、具体的には、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、前記第１の遅延長パラメータと所定調整パラメータとの積に調整し、前記調整パラメータは０より大きく且つ１より小さい、ように構成される。
【００１７】
第２の態様の第１の可能な実装方法を参照し、第２の可能な実装方法では、前記所定調整パラメータは、第１の調整パラメータ及び第２の調整パラメータを有し、前記第１の調整パラメータは前記第２の調整パラメータより大きく、前記調整ユニットは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、前記の得られた使用率を所定使用率閾と比較し、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを前記第１の遅延長パラメータと前記第１の調整パラメータとの積に調整し、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを前記第１の遅延長パラメータと前記第２の調整パラメータとの積に調整する、よう構成される。
【００１８】
第２の態様を参照して、第３の可能な実装方法では、前記調整ユニットは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、前記の得られた使用率を所定使用率閾と比較し、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを前記第２の遅延長パラメータに調整し、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第１の遅延長パラメータを第３の遅延長パラメータに調整する、よう構成され、前記第３の遅延長パラメータに対応する遅延期間は、前記第２の遅延長パラメータに対応する前記遅延期間より小さい。
【００１９】
第２の態様、又は第２の態様の第１乃至第３の可能な実装方法を参照して、第４の可能な実装方法では、前記比較ユニットは、前記所定期間が終わる前の予め決定された瞬間に、前記少なくとも１つの記録された動作を前記悪意挙動の前記動作と比較する、よう更に構成され、前記装置は、前記悪意挙動の前記動作に一致する動作が前記少なくとも１つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するよう構成される送信ユニット、を更に有し、前記記録ユニットは、前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも１つの動作を記録するよう更に構成され、前記比較ユニットは、前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの記録された動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう更に構成される。
【００２０】
第２の態様、又は第２の態様の第１乃至第４の可能な実装方法のうちのいずれか１つを参照して、第５の可能な実装方法では、前記検出ユニットにより検出される前記インタフェースは、以下のインタフェース、１つのプロセスを遅延するインタフェース、複数のプロセスを遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース、のうちの１つ又は組合せを有する。
【００２１】
従来技術では、悪意動作を遅延することによる検出の回避が、比較的低い検出精度をもたらす。本発明の本実施形態では、被検出ソフトウェアがサンドボックスの中で実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作が記録される。少なくとも１つの動作を記録する処理の中で、サンドボックスの中の遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かが検出される。インタフェースの任意の１つが呼び出されることが検出されると、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かが決定される。第１の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第１の遅延長パラメータは、第２の遅延長パラメータに調整される。ここで、第２の遅延長パラメータに対応する遅延期間は所定期間より小さい。少なくとも１つの記録された動作は、悪意挙動の動作と比較される。悪意挙動の動作と一致する動作が少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアはマルウェアであることが決定される。解決方法では、少なくとも１つの動作を記録する処理において、サンドボックスの中で遅延属性を有するインタフェースの任意の１つが呼び出されることが検出されるとき、及び第１の遅延長パラメータに対応する遅延期間が所定期間より大きいことが決定されるとき、悪意挙動の実行は遅延されるべきであると考えられる。この場合、遅延実行の遅延期間は、前記被検出ソフトウェアが実行を開始した後の前記所定期間のうちに実行される前記少なくとも１つの動作を記録する処理の中で、前記悪意挙動が実行可能なように、減少される。したがって、前記悪意挙動は予め露呈される。これは、効果的な監視を実施でき、したがって、マルウェア検出の精度を向上できる。
【図面の簡単な説明】
【００２２】
【図１Ａ】本発明の一実施形態によるマルウェア検出方法のフローチャートである。
【図１Ｂ】本発明の一実施形態によるマルウェア検出の概略図である。
【図２Ａ】本発明の特定のマルウェア検出実施形態のフローチャートである。
【図２Ｂ】本発明の特定のマルウェア検出実施形態のフローチャートである。
【図３】本発明の一実施形態によるマルウェア検出装置の第１の概略的構造図である。
【図４】本発明の一実施形態によるマルウェア検出装置の第２の概略的構造図である。
【発明を実施するための形態】
【００２３】
本発明の目的、技術的解決策、及び利点を明確にするために、以下に、本発明の実施形態における技術的解決策を本発明の実施形態における添付の図面を参照して明確且つ完全に記載する。明らかに、記載される実施形態は、本発明の実施形態の一部であり、全てではない。本発明の実施形態に基づき創造的労力を有しないで当業者により得られる全ての他の実施形態は、本発明の保護範囲に包含される。
【００２４】
さらに、本願明細書では、用語「システム」及び「ネットワーク」は、同義的に用いられることがある。本願明細書において用語「及び／又は」は、関連するオブジェクト間の関連付け関係を記載するだけでなく、３つの関係が存在し得ることを表す。例えば、Ａ及び／又はＢは、以下の３つの場合を表すことがある。Ａのみが存在する、ＡとＢの両方が存在する、並びに、Ｂのみが存在する。さらに、本願明細書中の記号「／」は、概して、関連するオブジェクト間の「又は」の関係を示す。
【００２５】
以下では、本発明の好適な実装方法が、添付の図面を参照して詳細に記載される。本願明細書に記載される好適な実施形態は、単に本発明を示し及び説明するために用いられるが、本発明を制限することを意図しないことが理解されるべきである。さらに、本発明の実施形態及び実施形態の中の特徴は、それらが互いに矛盾しない場合に、相互に結合されても良い。
【００２６】
以下では、本発明の好適な実装方法が、添付の図面を参照して詳細に記載される。
【００２７】
図１Ａに示すように、本発明の本実施形態では、マルウェア検出方法の概略フローチャートが提供される。
【００２８】
ステップ１００：サンドボックスの中で被検出ソフトウェアを実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録する。
【００２９】
ステップ１１０：少なくとも１つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出する。
【００３０】
ステップ１２０：インタフェースの任意の１つが呼び出されることが検出されると、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かを決定する。
【００３１】
ステップ１３０：第１の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第１の遅延長パラメータを第２の遅延長パラメータに調整する。ここで、第２の遅延長パラメータに対応する遅延期間は所定期間より小さい。
【００３２】
ステップ１４０：少なくとも１つの記録された動作を悪意挙動の動作と比較し、悪意挙動の動作に一致する動作が少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する。
【００３３】
本発明の本実施形態で記載されるインタフェースは、オペレーティングシステムプロバイダ及びユーザを除く第三者アプリケーションソフトウェア開発者のオペレーティングシステムにより提供されるプログラマブルインタフェースである。アプリケーションソフトウェアは、インタフェースを呼び出すことにより、インタフェースにより提供される特定の機能を実装できる。インタフェースは、実際のアプリケーションで記載される物理インタフェースと異なり、例えばＥｔｈｅｒｎｅｔインタフェースと異なる。
【００３４】
インタフェースが遅延属性を有することは、アプリケーションソフトウェアがインタフェースを呼び出すときに、アプリケーションソフトウェアにより実行される幾つかの動作の実行が遅延されることを意味する。実行が遅延される必要のある特定の時間長は、インタフェースの遅延長パラメータに対応する遅延期間に従い決定されても良い。
【００３５】
実際には、遅延属性を有するインタフェースは、例えば以下の形式のうちの１つであっても良い。
kernel３２.dll:Sleep  指定時間の間、現在のスレッドを遅延するインタフェース関数。
kernel３２.dll:SleepEx  指定時間の間、現在のスレッドを遅延するインタフェース関数。
kernel３２.dll:WaitForSingleObject  イベントが生じるまで、現在のスレッドを遅延するインタフェース関数。
kernel３２.dll:WaitForMultipleObject  複数のイベントのうちの１つが生じるまで、現在のスレッドを遅延するインタフェース関数。
user３２.dll:SetTimer  タイマを遅延するインタフェース関数。
winmn.dll:timeSetEvent  タイマを遅延するインタフェース関数。
【００３６】
本発明の本実施形態では、遅延属性を有するインタフェースのうちの任意の１つ（例えば、前述のインタフェース）が呼び出される場合、アプリケーションソフトウェアの幾つかの動作の実行は遅延される。実行が遅延される期間は、遅延属性を有する呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間であり、実行が遅延される開始時点は被検出ソフトウェアが実行を開始する時点である。
【００３７】
本発明の本実施形態では、時間を得るためのインタフェース種類も存在する。インタフェース種類と遅延属性を有する前述のインタフェースとの間には関係が存在する。時間を得るインタフェースは、以下の形式のうちの１つであっても良い。
Kernel３２.dll:GetTickCount  （ミリ秒の単位で）時間を得るインタフェース関数。
Kernel３２.dll:GetLocalTime  現地の日付及び現在システムの時間を得るインタフェース関数。
Kernel３２.dll:GetSystemTime  システムのＵＴＣ時間を得るインタフェース関数。
Kernel３２.dll:GetSystemTimes  システムの複数種類の関連時間情報を得るインタフェース関数。
Kernel３２.dll:QueryPerformanceCounter  高精度タイマの時間を得るインタフェース関数。
User３２.dll:GetMessageTime  メッセージの時間を得るインタフェース関数。
Winmn.dll:timeGetTime  （ミリ秒の単位で）時間を得るインタフェース関数。
【００３８】
遅延属性を有する前述のリストしたインタフェースは、Ｗｉｎｄｏｗｓオペレーティングシステムの中で予め提供される幾つかの関数である。これらのインタフェースは、オペレーティングシステムに大いに関連付けられる。つまり、Ｌｉｎｕｘシステム又は別のオペレーティングシステムも、遅延属性を有する別のインタフェースを提供する場合がある。これらのＡＰＩ（Application  Programming  Interface、アプリケーションプログラミングインタフェース）は、名称、パラメータフォーマット、等において互いに異なり、それらは概して同様の関数を実装する。多くの種類のオペレーティングシステムが存在し、１つのオペレーティングシステムの異なるバージョンも互いに異なるので、遅延属性を有する全てのインタフェースをここで列挙するのは困難であり、Ｗｉｎｄｏｗｓオペレーティングシステムの中の遅延属性を有する幾つかの共通のインタフェースのみが、説明のために例として用いられる。
【００３９】
マルウェアが、遅延属性を有するこれらのインタフェースを呼び出すことにより遅延を実行する場合、インタフェースの第１の遅延長パラメータに従い決定される時点が終了すると、マルウェアは、悪意挙動を実行し始める。
【００４０】
本発明の本実施形態では、呼び出されるインタフェースの第１の遅延長パラメータは、複数の方法で第２の遅延長パラメータに調整されても良い。例えば、以下のステップが用られても良い：
呼び出されるインタフェースの第１の遅延長パラメータを、第１の遅延長パラメータと所定調整パラメータとの積に調整する。ここで、調整パラメータは０より大きく且つ１以下である。
【００４１】
例えば、遅延属性を有するインタフェースでは、第１の遅延長パラメータは、g_uiRateの倍率に従い変更される。第１の遅延長パラメータが１００である場合、第１の遅延長パラメータは、１００×g_uiRateに変更される。任意で、マルウェアが遅延属性を有するインタフェースの第１の遅延長パラメータの変化を識別することを防ぐために、オペレーティングシステム時間が、遅延属性を有するインタフェースを用いることにより遅延する手段により得られる時間と一致する必要がある場合、マルウェアにより得られるオペレーティングシステム時間は、時間を得るための前述のインタフェースを用いることにより同期して変更されても良い。具体的には、現在のオペレーティングシステム時間が１００である場合、マルウェアが時間を得るためのインタフェースを呼び出すと、呼び出し結果は、インタフェース種類の戻り値を用いることにより１００／g_uiRateに変更される必要がある。
【００４２】
実際のアプリケーションでは、マルウェアが悪意挙動の暴発を遅延することにより検出を逃れる方法は、概して、遅延属性を有するインタフェースを呼び出すことにより実施される必要がある。前述の実施形態によると、マルウェアが遅延属性を有するインタフェースを呼び出しても、インタフェースの第１の遅延長パラメータが第２の遅延長パラメータに調整され、且つ第２の遅延長パラメータに対応する遅延期間が所定期間より小さいので、悪意挙動は所定期間内に依然として暴露される。これは、検出精度を向上する。
【００４３】
本発明の本実施形態では、任意で、所定調整パラメータは、第１の調整パラメータ及び第２の調整パラメータを含み、第１の調整パラメータは第２の調整パラメータより大きい。
【００４４】
さらに、サンドボックスが置かれている装置の中の別の処理がマルウェア検出により影響されることを防ぐために、呼び出されるインタフェースの第１の遅延長パラメータが第２の遅延長パラメータに調整されるとき、以下の動作が具体的に実行されても良い：
サンドボックスが置かれている装置の中央処理ユニットの使用率を得る、
得られた使用率を所定使用率閾と比較する、及び
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを、第１の遅延長パラメータと第１の調整パラメータとの積に調整し、つまり、第２の遅延長パラメータは第１の遅延長パラメータと第１の調整パラメータの積である、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを、第１の遅延長パラメータと第２の調整パラメータとの積に調整し、つまり、第２の遅延長パラメータは、第１の遅延長パラメータと第２の調整パラメータとの積である。
【００４５】
第１の調整パラメータは、第２の調整パラメータより大きい。
【００４６】
本発明の本実施形態では、呼び出されるインタフェースの第１の遅延長パラメータが第２の遅延長パラメータに調整されるとき、以下の方法が更に使用されても良い：
サンドボックスが置かれている装置の中央処理ユニットの使用率を得る、
得られた使用率を所定使用率閾と比較する、及び
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを、第２の遅延長パラメータに調整する、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを第３の遅延長パラメータに調整する、ここで、
第３の遅延長パラメータに対応する遅延期間は、第２の遅延長パラメータに対応する遅延期間より小さい。
【００４７】
本発明の本実施形態では、前述の処理において、サンドボックスが置かれている装置の中央処理ユニットの使用率が得られているとき、Nt  Query  System  Informationインタフェースが、中央処理ユニットの使用率を得るために使用されても良い。もちろん、１つずつここで詳細に記載されない他の方法も使用されて良い。
【００４８】
前述の処理において、使用率が所定使用率閾より大きい又は等しいとき、システムはビジーであると決定される。この場合、調整された遅延長パラメータに対応する遅延期間は、実行中サンドボックスの中央処理ユニットの使用率に与える影響を低減するために、延長される。使用率が所定使用率閾より小さいとき、システムはビジーではないと決定される。この場合、調整された遅延長パラメータに対応する遅延期間は、被検出ソフトウェアの挙動の暴露を加速させるために、短縮されて、サンドボックスの実行中に、中央処理ユニットの使用率を増大するようにする。
【００４９】
実際のアプリケーションでは、幾つかの悪意挙動が、指定期間の遅延の後に実行される。この場合、被検出ソフトウェアがマルウェアであるか否かは、遅延属性を有するインタフェースの第１の遅延長パラメータを調整することにより検出できる。しかしながら、幾つかの悪意挙動は、マルウェアの実行が終了するときに実行され、遅延属性を有するインタフェースが呼び出される必要がない。したがって、本発明の本実施形態では、以下の動作が更に含まれても良い：
所定期間が終了する前の予め決定された瞬間に、前記予め決定された瞬間の前に記録された少なくとも１つの記録された動作を悪意挙動の動作と比較し、
悪意挙動の動作と一致する動作が前記予め決定された瞬間の前に記録された少なくとも１つの記録された動作の中に存在しないという比較結果に基づき、サンドボックスにソフトウェア実行終了メッセージを送信し、
予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの動作を記録し、
悪意挙動の動作を、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの記録された動作と比較し、悪意挙動の動作に一致する動作が、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する。
【００５０】
例えば、所定期間は５分である。しかしながら、被検出ソフトウェアが４分５０秒間、サンドボックスの中で実行され、悪意挙動の動作に一致する動作が少なくとも１つの記録された動作の中に存在しないとき、ソフトウェア実行終了メッセージがサンドボックスに送信される。次に、４分５０秒から５分が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの動作が記録される。４分５０秒から５分が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの動作は、悪意挙動の動作と比較される。悪意挙動の動作と一致する動作が、４分５０秒から５分が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの動作の中に存在する場合、被検出ソフトウェアはマルウェアであることが決定される。このように、悪意サンプルに悪意挙動を強制的に暴露させる目的が達成できる。
【００５１】
本発明の本実施形態では、インタフェースは、以下のインタフェースのうちの１つ又は組合せである。１つの処理を遅延するインタフェース、複数の処理を遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース。
【００５２】
本発明の本実施形態では、悪意挙動の動作に一致する動作が少なくとも１つの記録された動作の中に存在することは、少なくとも１つの記録された動作の中の動作に対応する挙動シーケンス（例えば、ＡＰＩ呼び出しシーケンス）が、悪意挙動の動作に対応する挙動シーケンス（例えば、ＡＰＩ呼び出しシーケンス）と完全に同じであることを意味し、又は、少なくとも１つの記録された動作の中の動作に対応する挙動シーケンスが悪意挙動の動作に対応する挙動シーケンスと部分的に同じであることを意味する。
【００５３】
本発明の本実施形態では、遅延属性を有するインタフェースは、ＡＰＩレイヤに位置しても良く、又はＮＴＡＰＩレイヤに位置しても良い。インタフェースがＡＰＩレイヤに位置する場合、インタフェースの第１の遅延長パラメータを調整するために、ドライバレイヤが使用されても良く、又はドライバレイヤが使用されなくても良い。インタフェースがＮＴＡＰＩレイヤに位置する場合、インタフェースの第１の遅延長パラメータを調整するために、ドライバレイヤが使用される必要がある。被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される動作は、本例ではネットワーク監視の手段により実装され得るネットワーク動作であっても良く、本例ではファイル監視の手段により実装され得るファイル動作であっても良く、又は、本例ではレジストリ監視の手段により実装され得るレジストリ動作であっても良い。幾つかの動作は、前述の監視の手段により実装できず、したがって、図１Ｂに示すようにシステム監視の手段により実装されても良い。
【００５４】
本発明の本実施形態を一層良好に理解するために、以下は、特定のアプリケーションシナリオを提供し、図２Ａ及び図２Ｂに示すように、マルウェア検出の処理を更に詳細に記載する。
【００５５】
ステップ２００：サンドボックスの中で被検出ソフトウェアを実行し、被検出ソフトウェアが実行を開始した後の５分のうちに実行される少なくとも１つの動作を記録する。
【００５６】
ステップ２１０：少なくとも１つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出する。
【００５７】
ステップ２２０：遅延属性を有するインタフェースの任意の１つが呼び出されることが決定されると、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が５分より大きいか否かを決定し、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が５分より大きい場合、ステップ２３０を実行し、又は、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が５分より大きくない場合、ステップ２１０に戻る。
【００５８】
ステップ２３０：呼び出されるインタフェースの第１の遅延長パラメータを、第２の遅延長パラメータに調整する。ここで、第２の遅延長パラメータに対応する遅延期間は、５分より小さい。
【００５９】
ステップ２４０：被検出ソフトウェアが４分５０秒間実行したとき、悪意挙動の動作に一致する動作が、４分５０秒間のうちの少なくとも１つの記録された動作の中に存在するか否かを決定し、悪意挙動の動作と一致する動作が４分５０秒間のうちの少なくとも１つの記録された動作の中に存在する場合、被検出ソフトウェアはマルウェアであることを決定し、又は、悪意挙動の動作と一致する動作が４分５０秒間のうちの少なくとも１つの記録された動作の中に存在しない場合、ステップ２５０を実行する。
【００６０】
ステップ２５０：サンドボックスにソフトウェア実行終了メッセージを送信し、被検出ソフトウェアが４分５０秒間実行された瞬間から５分間が終了する瞬間までの時間期間に実行される少なくとも１つの動作を記録する。
【００６１】
ステップ２６０：悪意挙動の動作を、被検出ソフトウェアが４分５０秒間実行された瞬間から５分間が終了する瞬間までの時間期間に実行される少なくとも１つの動作と比較する。
【００６２】
ステップ２７０：悪意挙動の動作と一致する動作が、被検出ソフトウェアが４分５０秒間実行された瞬間から５分間が終了する瞬間までの時間期間に実行された少なくとも１つの記録された動作の中に存在するか否かを決定し、悪意挙動の動作と一致する動作が、被検出ソフトウェアが４分５０秒間実行された瞬間から５分間が終了する瞬間までの時間期間に実行された少なくとも１つの記録された動作の中に存在する場合、被検出ソフトウェアはマルウェアであることを決定し、又は、悪意挙動の動作と一致する動作が、被検出ソフトウェアが４分５０秒間実行された瞬間から５分間が終了する瞬間までの時間期間に実行された少なくとも１つの記録された動作の中に存在しない場合、被検出ソフトウェアはマルウェアではないことを決定する。
【００６３】
結論として、本発明の本実施形態では、被検出ソフトウェアがサンドボックスの中で実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作が記録される。少なくとも１つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かが検出される。インタフェースの任意の１つが呼び出されることが検出されると、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かが決定される。第１の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第１の遅延長パラメータは、第２の遅延長パラメータに調整される。ここで、第２の遅延長パラメータに対応する遅延期間は所定期間より小さい。少なくとも１つの記録された動作は、悪意挙動の動作と比較される。悪意挙動の動作と一致する動作が少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアはマルウェアであることが決定される。解決方法では、少なくとも１つの動作を記録する処理において、サンドボックスの中で遅延属性を有するインタフェースの任意の１つが呼び出されることが検出されるとき、及び第１の遅延長パラメータに対応する遅延期間が所定期間より大きいことが決定されるとき、悪意挙動の実行は遅延されるべきであると考えられる。この場合、遅延実行の遅延期間は、前記被検出ソフトウェアが実行を開始した後の前記所定期間のうちに実行される前記少なくとも１つの動作を記録する処理の中で、前記悪意挙動が実行可能なように、減少される。したがって、前記悪意挙動は予め露呈される。これは、効果的な監視を実施でき、したがって、マルウェア検出の精度を向上できる。
【００６４】
対応する方法の前述の技術的解決策に基づき、図３に示すように、本発明の一実施形態は、マルウェア検出装置３０００を提供する。マルウェア検出装置３０００は、実行ユニット３０、記録ユニット３１、検出ユニット３２、決定ユニット３３、調整ユニット３４、及び比較ユニット３５を有する。
【００６５】
実行ユニット３０は、被検出ソフトウェアをサンドボックスの中で実行するよう構成される。
【００６６】
記録ユニット３１は、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録するよう構成される。
【００６７】
検出ユニット３２は、少なくとも１つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出するよう構成される。
【００６８】
決定ユニット３３は、インタフェースの任意の１つが呼び出されることが検出されると、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かを決定するよう構成される。
【００６９】
調整ユニット３４は、第１の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第１の遅延長パラメータを第２の遅延長パラメータに調整するよう構成され、第２の遅延長パラメータに対応する遅延期間は所定期間より小さい。
【００７０】
比較ユニット３５は、少なくとも１つの記録された動作を悪意挙動の動作と比較し、悪意挙動の動作に一致する動作が少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定するよう構成される。
【００７１】
本発明の本実施形態では、任意で、調整ユニット３４は、具体的には、
呼び出されるインタフェースの第１の遅延長パラメータを、第１の遅延長パラメータと所定調整パラメータとの積に調整するよう構成され、調整パラメータは０より大きく且つ１より小さい。
【００７２】
本発明の本実施形態では、任意で、所定調整パラメータは、第１の調整パラメータ及び第２の調整パラメータを含み、第１の調整パラメータは第２の調整パラメータより大きい。
【００７３】
調整ユニット３４は、具体的には、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを、第２の遅延長パラメータに調整する、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを第１の遅延長パラメータと第２の遅延長パラメータとの積に調整する、よう構成される。
【００７４】
本発明の本実施形態では、任意で、調整ユニット３４は、具体的には、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを、第２の遅延長パラメータに調整し、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを第３の遅延長パラメータに調整する、よう構成され、
第３の遅延長パラメータに対応する遅延期間は、第２の遅延長パラメータに対応する遅延期間より小さい。
【００７５】
本発明の本実施形態では、さらに、比較ユニット３５は、
所定期間が終了する前の予め決定された瞬間に、前記予め決定された瞬間の前に記録された少なくとも１つの記録された動作を悪意挙動の動作と比較する、よう更に構成される。
【００７６】
マルウェア検出装置３０００は、悪意挙動の動作と一致する動作が前記予め決定された瞬間の前に記録された少なくとも１つの記録された動作の中に存在しないという比較結果に基づき、サンドボックスにソフトウェア実行終了メッセージを送信するよう構成される送信ユニット、を更に有する。
【００７７】
記録ユニット３１は、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの動作を記録するよう更に構成される。
【００７８】
記録ユニット３５は、悪意挙動の動作を、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの記録された動作と比較し、悪意挙動の動作に一致する動作が、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する、よう更に構成される。
【００７９】
この装置の実施形態で提供されるマルウェア検出装置は、方法の実施形態においてサンドボックスが置かれる装置であっても良く、又は、装置の中の機能モジュールであっても良い。装置は、ファイアウォール又はゲートウェイ装置のようなネットワーク装置に統合されても良く、又は、ファイルサーバ又はウェブページサーバに統合されても良い。マルウェア検出装置により実装され得る別の追加機能については、方法の実施形態の中の説明を参照する。詳細事項は、ここで再び記載されない。
【００８０】
本発明の本実施形態で提供されるマルウェア検出装置は、サンドボックスの中で被検出ソフトウェアを実行し、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録し、前記少なくとも１つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出し、任意の１つの前記インタフェースが呼び出されることが検出されるとき、前記呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定し、前記第１の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第１の遅延長パラメータを、第２の遅延長パラメータに調整し、前記第２の遅延長パラメータに対応する遅延期間は、前記所定期間より小さく、前記少なくとも１つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも１つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定する。遅延属性を有するインタフェースが呼び出されるとき、装置は、前記被検出ソフトウェアが実行を開始した後の前記所定期間のうちに実行される前記少なくとも１つの動作を記録する処理の中で、前記悪意挙動が実行可能なように、遅延実行の遅延期間を減少する。したがって、前記悪意挙動は予め露呈される。これは、効果的な監視を実施でき、したがって、マルウェア検出の効率及び精度を向上できる。
【００８１】
図４に示すように、図４は、本発明の一実施形態によるマルウェア検出装置３０００の別の構造図である。マルウェア検出装置３０００は、少なくとも１つのプロセッサ４０１、通信バス４０２、メモリ４０３、及び少なくとも１つの通信インタフェース４０４を有する。
【００８２】
通信バス４０２は、前述のコンポーネントの間の接続及び通信を実施するよう構成され、通信インタフェース４０４は、外部装置と接続され及び通信するよう構成される。
【００８３】
メモリ４０３は、実行可能プログラムコードを格納するよう構成される。プログラムコードを実行することにより、プロセッサ４０１は、
サンドボックスの中で被検出ソフトウェアを実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも１つの動作を記録し、
少なくとも１つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも１つのインタフェースが呼び出されるか否かを検出し、
インタフェースの任意の１つが呼び出されることが検出されると、呼び出されるインタフェースの第１の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かを決定し、
第１の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第１の遅延長パラメータを第２の遅延長パラメータに調整し、第２の遅延長パラメータに対応する遅延期間は所定期間より小さく、
少なくとも１つの記録された動作を悪意挙動の動作と比較し、悪意挙動の動作に一致する動作が少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する、よう構成される。
【００８４】
プロセッサ４０１は、
呼び出されるインタフェースの第１の遅延長パラメータを、第１の遅延長パラメータと所定調整パラメータとの積に調整するよう更に構成され、調整パラメータは０より大きく且つ１より小さい。
【００８５】
所定調整パラメータは、第１の調整パラメータ及び第２の調整パラメータを含み、第１の調整パラメータは第２の調整パラメータより大きい。
【００８６】
プロセッサ４０１は、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを、第２の遅延長パラメータに調整する、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを第１の遅延長パラメータと第２の遅延長パラメータとの積に調整する、よう更に構成される。
【００８７】
プロセッサ４０１は、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを、第２の遅延長パラメータに調整し、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第１の遅延長パラメータを第３の遅延長パラメータに調整し、
第３の遅延長パラメータに対応する遅延期間は、第２の遅延長パラメータに対応する遅延期間より小さい、ように更に構成される。
【００８８】
プロセッサ４０１は、
所定期間が終了する前の予め決定された瞬間に、少なくとも１つの記録された動作を悪意挙動の動作と比較し、
悪意挙動の動作と一致する動作が少なくとも１つの記録された動作の中に存在しないという比較結果に基づき、サンドボックスにソフトウェア実行終了メッセージを送信し、
予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの動作を記録し、
悪意挙動の動作を、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの記録された動作と比較し、悪意挙動の動作に一致する動作が、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも１つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する、よう更に構成される。
【００８９】
本発明の本実施形態では、インタフェースは、以下のインタフェースのうちの１つ又は組合せを含む。
１つの処理を遅延するインタフェース、複数の処理を遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース。
【００９０】
この装置の実施形態で提供されるマルウェア検出装置は、方法の実施形態においてサンドボックスが置かれる装置であっても良い。装置は、ファイアウォール又はゲートウェイ装置のようなネットワーク装置に統合されても良く、又は、ファイルサーバ又はウェブページサーバであっても良い。マルウェア検出装置により実装され得る別の追加機能については、方法の実施形態の中の説明を参照する。詳細事項は、ここで再び記載されない。
【００９１】
本発明は、本発明の実施形態による方法、装置（システム）及びコンピュータプログラム製品のフローチャート及び／又はブロック図を参照して記載される。理解されるべきことに、コンピュータプログラム命令は、フローチャート及び／又はブロック図の中の各々の処理及び／又は各々のブロック、及び／又はフローチャート及び／又はブロック図の中の処理及び／又はブロックの組合せを実施するために使用されても良い。これらのコンピュータプログラム命令は、機械を生成するために、汎用コンピュータ、専用コンピュータ、内蔵プロセッサ、又は任意の他のプログラマブルデータ処理装置のプロセッサに対して提供されても良く、したがって、コンピュータ又は任意の他のプログラマブルデータ処理装置のプロセッサにより実行される命令は、フローチャートの中の１又は複数の処理及び／又はブロック図の中の１又は複数のブロックの中の特定の機能を実装する装置を生成できるようにする。
【００９２】
これらのコンピュータプログラム命令は、コンピュータ又は任意の他のプログラマブルデータ処理装置に特定の方法で動作するよう指示できるコンピュータ可読メモリに格納されても良く、したがって、コンピュータ可読メモリに格納された命令は、命令装置を含む製品を生成できる。命令装置は、フローチャートの中の１又は複数の処理の中の及び／又はブロック図の中の１又は複数のブロックの中の特定の機能を実装する。
【００９３】
これらのコンピュータプログラム命令は、コンピュータ又は別のプログラマブルデータ処理装置にロードされても良く、したがって、一連の動作及びステップが該コンピュータ又は別のプログラマブル装置で実行され、それによりコンピュータにより実施される処理を生成する。したがって、コンピュータ又は別のプログラマブル装置で実行される命令は、フローチャートの中の１又は複数の処理の中の及び／又はブロック図の中の１又は複数のブロックの中の特定の機能を実施するステップを提供する。
【００９４】
本発明の幾つかの好適な実施形態が記載されたが、当業者は、基本的な発明の概念を学習すると、これらの実施形態に変化及び変更を行うことができる。したがって、以下の請求項は、好適な実施形態及び本発明の範囲に包含される全ての変化及び変更をカバーするものと考えられるべきである。
【００９５】
明らかに、当業者は、本発明の実施形態の精神及び範囲から逸脱することなく本発明の実施形態に種々の変更及び変形をなし得る。本発明は、これらの変更及び変形が以下の請求項により定められる保護範囲及びそれらの等価技術に包含される場合、これらの変更及び変形をカバーすることを意図する。
【図１Ａ】
0006306265.tif 000002
【図１Ｂ】
0006306265.tif 000003
【図２Ａ】
0006306265.tif 000004
【図２Ｂ】
0006306265.tif 000005
【図３】
0006306265.tif 000006
【図４】
0006306265.tif 000007