特許第6306265号(P6306265)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 華為技術有限公司の特許一覧

特許6306265マルウェア検出方法、及びマルウェア検出装置
<>
  • 特許6306265-マルウェア検出方法、及びマルウェア検出装置 図000002
  • 特許6306265-マルウェア検出方法、及びマルウェア検出装置 図000003
  • 特許6306265-マルウェア検出方法、及びマルウェア検出装置 図000004
  • 特許6306265-マルウェア検出方法、及びマルウェア検出装置 図000005
  • 特許6306265-マルウェア検出方法、及びマルウェア検出装置 図000006
  • 特許6306265-マルウェア検出方法、及びマルウェア検出装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6306265
(24)【登録日】2018年3月16日
(45)【発行日】2018年4月4日
(54)【発明の名称】マルウェア検出方法、及びマルウェア検出装置
(51)【国際特許分類】
   G06F 21/56 20130101AFI20180326BHJP
   G06F 21/53 20130101ALI20180326BHJP
【FI】
   G06F21/56 360
   G06F21/53
【請求項の数】11
【全頁数】21
(21)【出願番号】特願2017-514330(P2017-514330)
(86)(22)【出願日】2015年4月22日
(65)【公表番号】特表2017-531257(P2017-531257A)
(43)【公表日】2017年10月19日
(86)【国際出願番号】CN2015077213
(87)【国際公開番号】WO2016078323
(87)【国際公開日】20160526
【審査請求日】2017年3月13日
(31)【優先権主張番号】201410667648.4
(32)【優先日】2014年11月20日
(33)【優先権主張国】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】▲劉▼ 歩
【審査官】 金木 陽一
(56)【参考文献】
【文献】 特開2013−171556(JP,A)
【文献】 特開2015−130008(JP,A)
【文献】 国際公開第2014/147618(WO,A1)
【文献】 国際公開第2014/209914(WO,A1)
【文献】 米国特許出願公開第2013/0117848(US,A1)
【文献】 KRUEGEL, C.,Full System Emulation: Achieving Successful Automated Dynamic Analysis of Evasive Malware,Black Hat USA 2014,[online],2014年 8月,[Retrieved on 2017-09-28.] Retrieved from the Internet,URL,http://blackhat.com/docs/us-14/materials/us-14-Kruegel-Full-System-Emulation-Achieving-Successful-Automated-Dynamic-Analysis-Of-Evasive-Malware.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
G06F 21/53
(57)【特許請求の範囲】
【請求項1】
マルウェア検出方法であって、
サンドボックスの中で被検出ソフトウェアを実行し、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録するステップと、
前記少なくとも1つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出するステップと、
任意の1つの前記インタフェースが呼び出されるとき、前記呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するステップと、
前記第1の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに調整するステップであって、前記第2の遅延長パラメータに対応する遅延期間は、0より大きく且つ前記所定期間より小さい、ステップと、
前記少なくとも1つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、
を含む方法。
【請求項2】
前記所定期間が終わる前の予め決定された瞬間に、前記予め決定された瞬間の前に記録された少なくとも1つの記録された動作を前記悪意挙動の前記動作と比較するステップと、
前記悪意挙動の前記動作に一致する動作が前記予め決定された瞬間の前に記録された前記少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するステップと、
前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも1つの動作を記録するステップと、
前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、
を更に含む請求項1に記載の方法。
【請求項3】
前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに前記調整するステップは、
前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと所定調整パラメータとの積に調整するステップであって、前記調整パラメータは、0より大きく且つ1より小さい、ステップと、
を含む、請求項1又は請求項2に記載の方法。
【請求項4】
前記所定調整パラメータは、第1の調整パラメータ及び第2の調整パラメータを有し、前記第1の調整パラメータは前記第2の調整パラメータより大きく、
前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに前記調整するステップは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、
前記の得られた使用率を所定使用率閾と比較するステップと、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと前記第1の調整パラメータとの積に調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと前記第2の調整パラメータとの積に調整するステップ、
を含む、請求項3に記載の方法。
【請求項5】
前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに前記調整するステップは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、
前記の得られた使用率を所定使用率閾と比較するステップと、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを前記第2の遅延長パラメータに調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを第3の遅延長パラメータに調整するステップと、
を有し、
前記第3の遅延長パラメータに対応する遅延期間は、前記第2の遅延長パラメータに対応する前記遅延期間より小さい、
請求項1又は請求項2に記載の方法。
【請求項6】
前記インタフェースは、以下のインタフェース、
1つのプロセスを遅延するインタフェース、複数のプロセスを遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース、
のうちの1つ又は組合せを有する、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
マルウェア検出装置であって、
サンドボックスの中で被検出ソフトウェアを実行するよう構成される実行ユニットと、
前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録するよう構成される記録ユニットと、
前記少なくとも1つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出するよう構成される検出ユニットと、
任意の1つの前記インタフェースが呼び出されるとき、前記呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するよう構成される決定ユニットと、
前記第1の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに調整するよう構成される調整ユニットであって、前記第2の遅延長パラメータに対応する遅延期間は、0より大きく且つ前記所定期間より小さい、調整ユニットと、
前記少なくとも1つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう構成される比較ユニットと、
を有する装置。
【請求項8】
前記比較ユニットは、
前記所定期間が終わる前の予め決定された瞬間に、前記決定された瞬間の前に記録された少なくとも1つの記録された動作を前記悪意挙動の前記動作と比較する、よう更に構成され、
前記装置は、前記悪意挙動の前記動作に一致する動作が前記決定された瞬間の前に記録された前記少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するよう構成される送信ユニット、を更に有し、
前記記録ユニットは、前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも1つの動作を記録するよう更に構成され、
前記比較ユニットは、前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう更に構成される、
請求項7に記載の装置。
【請求項9】
前記調整ユニットは、
前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと所定調整パラメータとの積に調整し、前記調整パラメータは0より大きく且つ1より小さい、
ように構成される、請求項7又は請求項8に記載の装置。
【請求項10】
前記所定調整パラメータは、第1の調整パラメータ及び第2の調整パラメータを有し、前記第1の調整パラメータは前記第2の調整パラメータより大きく、
前記調整ユニットは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
前記の得られた使用率を所定使用率閾と比較し、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと前記第1の調整パラメータとの積に調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと前記第2の調整パラメータとの積に調整する、
よう構成される、請求項9に記載の装置。
【請求項11】
前記調整ユニットは、
前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
前記の得られた使用率を所定使用率閾と比較し、
前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを前記第2の遅延長パラメータに調整し、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを第3の遅延長パラメータに調整する、
よう構成され、
前記第3の遅延長パラメータに対応する遅延期間は、前記第2の遅延長パラメータに対応する前記遅延期間より小さい、
請求項7又は請求項8に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、参照によりその全体がここに組み込まれる中国特許出願番号201410667648.4、2014年11月20日に中国特許庁に出願、名称「MALWARE DETECTION METHOD AND MALWARE DETECTION APPARATUS」の優先権を主張する。
【0002】
<技術分野>
本発明は、コンピュータ技術の分野に関し、特にマルウェア検出方法及びマルウェア検出装置に関する。
【背景技術】
【0003】
コンピュータソフトウェア(Software)は、特定順序に組織化される一連のコンピュータデータ及び命令のセットを表す。マルウェアは、コンピュータソフトウェアの出現の直後に現れる。合法ソフトウェアの開発目的は、コンピュータの動作能力を向上し及び拡張することである。しかしながら、マルウェアの開発目的は、コンピュータデータを盗み及び破壊することである。従来のマルウェア検出方法は、特徴コード比較に基づき実装される。しかしながら、マルウェアは、通常、モーフィング、パッキング、等の手段により特徴コード比較から巧みに逃れる。モーフィングは、元の特徴コードを無効にするために、大量の難読化コードをソフトウェアのプログラムコードに追加することを表す。パッキングは、元の特徴コードを無効にするために、ソフトウェアのプログラムコードを暗号化し及びパッキングすることを表す。
【0004】
前述の欠点を回避するために、サンドボックス(Sandbox)技術を用いることによりマルウェアを検出する方法が提案される。サンドボックスは、ソフトウェア分離及び実行メカニズムであり、サンドボックスの目的は、信頼できないソフトウェアの許可を限定することである。サンドボックス技術は、未検査の又は信頼できないソフトウェアを実行するために使用される場合が多い。信頼できないソフトウェアが他のソフトウェアの実行を破壊し得る場合を回避するために、サンドボックス技術は、オペレーティングシステムの元の状態を保護するために、信頼できないソフトウェアのために仮想ディスク、メモリ、及びネットワークリソースを提供する。サンドボックス技術の特定の実装処理において、信頼できないソフトウェアがサンドボックスの中で実行しているときに信頼できないソフトウェアにより生成され、変更され、及び削除される全てのファイル及びレジストリエントリは、仮想化され、仮想オペレーティングシステムにリダイレクトされる。したがって、信頼できないソフトウェアの全ての動作は仮であり、実際のファイルシステム及び実際のレジストリは変更されない。これは、ウイルスを運ぶマルウェアがオペレーティングシステムの主要部分を変更できない及びオペレーティングシステムを破壊できないことを保証できる。
【0005】
サンドボックス技術を用いることによりマルウェアを検出する特定の動作原理は、信頼できないソフトウェアの実行する完全な通常環境をシミュレートし、信頼できないソフトウェアが実行するとき信頼できないソフトウェアにより実行される全ての動作を記録することである。動作は、悪意挙動データベースと照合される。一致する悪意挙動が識別される場合、信頼できないソフトウェアはマルウェアであると考えられる。方法は、直接にマルウェアをサンドボックスの中で実行させることができるので、マルウェアがモーフィング、パッキング、等の手段により検出から逃れることを防止できる。これは、マルウェア検出の精度を向上できる。従来の検出方法と比べて、サンドボックスを用いることによりマルウェアを検出する方法の検出能力は、大幅に向上される。さらに、サンドボックスを用いることによりマルウェアを検出する方法は、照合方法として汎用悪意挙動データベースを使用するので、同一種類の悪意サンプルの基本量が極めて多いという問題を回避できる。
【0006】
しかしながら、実際の適用では、ハードウェアリソース及びソフトウェア仕様の制限により、非常に長時間の監視は実用的ではない。サンドボックスは、概して、信頼できないソフトウェアが実行を開始した後の数分以内に実行される挙動のみを監視できる。この制限により、マルウェアは、悪意挙動の暴動の前に遅延動作を追加する。例えば、長時間Sleep文が追加される。この文は、検出から逃れるために、数十分又は数時間でもソフトウェア実行処理の中で幾つかの動作を遅延させることができる。したがって、現在のマルウェア検出方法には比較的低い精度の欠点が存在する。
【発明の概要】
【0007】
本発明の実施形態は、マルウェア検出方法及びマルウェア検出装置を提供し、従来技術に存在する比較的低い精度の欠点を解決する。
【0008】
本発明の実施形態において提供される特定の技術的解決策は以下の通りである。
【0009】
第1の態様によると、マルウェア検出方法であって、サンドボックスの中で被検出ソフトウェアを実行し、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録するステップと、前記少なくとも1つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出するステップと、任意の1つの前記インタフェースが呼び出されることが検出されるとき、前記呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するステップと、前記第1の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに調整するステップであって、前記第2の遅延長パラメータに対応する遅延期間は、前記所定期間より小さい、ステップと、前記少なくとも1つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、を含む方法が提供される。
【0010】
第1の態様を参照して、第1の可能な実装方法では、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに前記調整するステップは、具体的には、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと所定調整パラメータとの積に調整するステップであって、前記調整パラメータは、0より大きく且つ1より小さい、ステップと、を含む。
【0011】
第1の態様の第1の可能な実装方法を参照して、第2の可能な実装方法では、前記所定調整パラメータは、第1の調整パラメータ及び第2の調整パラメータを有し、前記第1の調整パラメータは前記第2の調整パラメータより大きく、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに前記調整するステップは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、前記の得られた使用率を所定使用率閾と比較するステップと、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと前記第1の調整パラメータとの積に調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと前記第2の調整パラメータとの積に調整するステップ、を含む。
【0012】
第1の態様を参照して、第3の可能な実装方法では、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに前記調整するステップは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得るステップと、前記の得られた使用率を所定使用率閾と比較するステップと、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを前記第2の遅延長パラメータに調整するステップ、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを第3の遅延長パラメータに調整するステップと、を含み、前記第3の遅延長パラメータに対応する遅延期間は、前記第2の遅延長パラメータに対応する前記遅延期間より小さい。
【0013】
第1の態様、又は第1の態様の第1乃至第3の可能な実装方法のうちのいずれか1つを参照して、第4の可能な実装方法では、前記方法は、前記所定期間が終わる前の予め決定された瞬間に、前記少なくとも1つの記録された動作を前記悪意挙動の前記動作と比較するステップと、前記悪意挙動の前記動作に一致する動作が前記少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するステップと、前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも1つの動作を記録するステップと、前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、を更に含む。
【0014】
第1の態様、又は第1の態様の第1乃至第4の可能な実装方法のうちのいずれか1つを参照して、第5の可能な実装方法では、前記インタフェースは、以下のインタフェース、1つのプロセスを遅延するインタフェース、複数のプロセスを遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース、のうちの1つ又は組合せを有する。
【0015】
第2の態様によると、マルウェア検出装置であって、サンドボックスの中で被検出ソフトウェアを実行するよう構成される実行ユニットと、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録するよう構成される記録ユニットと、前記少なくとも1つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出するよう構成される検出ユニットと、任意の1つの前記インタフェースが呼び出されることが検出されるとき、前記呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定するよう構成される決定ユニットと、前記第1の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに調整するよう構成される調整ユニットであって、前記第2の遅延長パラメータに対応する遅延期間は、前記所定期間より小さい、調整ユニットと、前記少なくとも1つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう構成される比較ユニットと、を有する装置が提供される。
【0016】
第2の態様を参照し、第1の可能な実装方法では、前記調整ユニットは、具体的には、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、前記第1の遅延長パラメータと所定調整パラメータとの積に調整し、前記調整パラメータは0より大きく且つ1より小さい、ように構成される。
【0017】
第2の態様の第1の可能な実装方法を参照し、第2の可能な実装方法では、前記所定調整パラメータは、第1の調整パラメータ及び第2の調整パラメータを有し、前記第1の調整パラメータは前記第2の調整パラメータより大きく、前記調整ユニットは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、前記の得られた使用率を所定使用率閾と比較し、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを前記第1の遅延長パラメータと前記第1の調整パラメータとの積に調整し、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを前記第1の遅延長パラメータと前記第2の調整パラメータとの積に調整する、よう構成される。
【0018】
第2の態様を参照して、第3の可能な実装方法では、前記調整ユニットは、具体的には、前記サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、前記の得られた使用率を所定使用率閾と比較し、前記使用率が前記所定使用率閾より大きい又は等しいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを前記第2の遅延長パラメータに調整し、又は、前記使用率が前記所定使用率閾より小さいという比較結果に基づき、前記呼び出されるインタフェースの前記第1の遅延長パラメータを第3の遅延長パラメータに調整する、よう構成され、前記第3の遅延長パラメータに対応する遅延期間は、前記第2の遅延長パラメータに対応する前記遅延期間より小さい。
【0019】
第2の態様、又は第2の態様の第1乃至第3の可能な実装方法を参照して、第4の可能な実装方法では、前記比較ユニットは、前記所定期間が終わる前の予め決定された瞬間に、前記少なくとも1つの記録された動作を前記悪意挙動の前記動作と比較する、よう更に構成され、前記装置は、前記悪意挙動の前記動作に一致する動作が前記少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するよう構成される送信ユニット、を更に有し、前記記録ユニットは、前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも1つの動作を記録するよう更に構成され、前記比較ユニットは、前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するよう更に構成される。
【0020】
第2の態様、又は第2の態様の第1乃至第4の可能な実装方法のうちのいずれか1つを参照して、第5の可能な実装方法では、前記検出ユニットにより検出される前記インタフェースは、以下のインタフェース、1つのプロセスを遅延するインタフェース、複数のプロセスを遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース、のうちの1つ又は組合せを有する。
【0021】
従来技術では、悪意動作を遅延することによる検出の回避が、比較的低い検出精度をもたらす。本発明の本実施形態では、被検出ソフトウェアがサンドボックスの中で実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作が記録される。少なくとも1つの動作を記録する処理の中で、サンドボックスの中の遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かが検出される。インタフェースの任意の1つが呼び出されることが検出されると、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かが決定される。第1の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第1の遅延長パラメータは、第2の遅延長パラメータに調整される。ここで、第2の遅延長パラメータに対応する遅延期間は所定期間より小さい。少なくとも1つの記録された動作は、悪意挙動の動作と比較される。悪意挙動の動作と一致する動作が少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアはマルウェアであることが決定される。解決方法では、少なくとも1つの動作を記録する処理において、サンドボックスの中で遅延属性を有するインタフェースの任意の1つが呼び出されることが検出されるとき、及び第1の遅延長パラメータに対応する遅延期間が所定期間より大きいことが決定されるとき、悪意挙動の実行は遅延されるべきであると考えられる。この場合、遅延実行の遅延期間は、前記被検出ソフトウェアが実行を開始した後の前記所定期間のうちに実行される前記少なくとも1つの動作を記録する処理の中で、前記悪意挙動が実行可能なように、減少される。したがって、前記悪意挙動は予め露呈される。これは、効果的な監視を実施でき、したがって、マルウェア検出の精度を向上できる。
【図面の簡単な説明】
【0022】
図1A】本発明の一実施形態によるマルウェア検出方法のフローチャートである。
図1B】本発明の一実施形態によるマルウェア検出の概略図である。
図2A】本発明の特定のマルウェア検出実施形態のフローチャートである。
図2B】本発明の特定のマルウェア検出実施形態のフローチャートである。
図3】本発明の一実施形態によるマルウェア検出装置の第1の概略的構造図である。
図4】本発明の一実施形態によるマルウェア検出装置の第2の概略的構造図である。
【発明を実施するための形態】
【0023】
本発明の目的、技術的解決策、及び利点を明確にするために、以下に、本発明の実施形態における技術的解決策を本発明の実施形態における添付の図面を参照して明確且つ完全に記載する。明らかに、記載される実施形態は、本発明の実施形態の一部であり、全てではない。本発明の実施形態に基づき創造的労力を有しないで当業者により得られる全ての他の実施形態は、本発明の保護範囲に包含される。
【0024】
さらに、本願明細書では、用語「システム」及び「ネットワーク」は、同義的に用いられることがある。本願明細書において用語「及び/又は」は、関連するオブジェクト間の関連付け関係を記載するだけでなく、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、以下の3つの場合を表すことがある。Aのみが存在する、AとBの両方が存在する、並びに、Bのみが存在する。さらに、本願明細書中の記号「/」は、概して、関連するオブジェクト間の「又は」の関係を示す。
【0025】
以下では、本発明の好適な実装方法が、添付の図面を参照して詳細に記載される。本願明細書に記載される好適な実施形態は、単に本発明を示し及び説明するために用いられるが、本発明を制限することを意図しないことが理解されるべきである。さらに、本発明の実施形態及び実施形態の中の特徴は、それらが互いに矛盾しない場合に、相互に結合されても良い。
【0026】
以下では、本発明の好適な実装方法が、添付の図面を参照して詳細に記載される。
【0027】
図1Aに示すように、本発明の本実施形態では、マルウェア検出方法の概略フローチャートが提供される。
【0028】
ステップ100:サンドボックスの中で被検出ソフトウェアを実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録する。
【0029】
ステップ110:少なくとも1つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出する。
【0030】
ステップ120:インタフェースの任意の1つが呼び出されることが検出されると、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かを決定する。
【0031】
ステップ130:第1の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第1の遅延長パラメータを第2の遅延長パラメータに調整する。ここで、第2の遅延長パラメータに対応する遅延期間は所定期間より小さい。
【0032】
ステップ140:少なくとも1つの記録された動作を悪意挙動の動作と比較し、悪意挙動の動作に一致する動作が少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する。
【0033】
本発明の本実施形態で記載されるインタフェースは、オペレーティングシステムプロバイダ及びユーザを除く第三者アプリケーションソフトウェア開発者のオペレーティングシステムにより提供されるプログラマブルインタフェースである。アプリケーションソフトウェアは、インタフェースを呼び出すことにより、インタフェースにより提供される特定の機能を実装できる。インタフェースは、実際のアプリケーションで記載される物理インタフェースと異なり、例えばEthernetインタフェースと異なる。
【0034】
インタフェースが遅延属性を有することは、アプリケーションソフトウェアがインタフェースを呼び出すときに、アプリケーションソフトウェアにより実行される幾つかの動作の実行が遅延されることを意味する。実行が遅延される必要のある特定の時間長は、インタフェースの遅延長パラメータに対応する遅延期間に従い決定されても良い。
【0035】
実際には、遅延属性を有するインタフェースは、例えば以下の形式のうちの1つであっても良い。
kernel32.dll:Sleep 指定時間の間、現在のスレッドを遅延するインタフェース関数。
kernel32.dll:SleepEx 指定時間の間、現在のスレッドを遅延するインタフェース関数。
kernel32.dll:WaitForSingleObject イベントが生じるまで、現在のスレッドを遅延するインタフェース関数。
kernel32.dll:WaitForMultipleObject 複数のイベントのうちの1つが生じるまで、現在のスレッドを遅延するインタフェース関数。
user32.dll:SetTimer タイマを遅延するインタフェース関数。
winmn.dll:timeSetEvent タイマを遅延するインタフェース関数。
【0036】
本発明の本実施形態では、遅延属性を有するインタフェースのうちの任意の1つ(例えば、前述のインタフェース)が呼び出される場合、アプリケーションソフトウェアの幾つかの動作の実行は遅延される。実行が遅延される期間は、遅延属性を有する呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間であり、実行が遅延される開始時点は被検出ソフトウェアが実行を開始する時点である。
【0037】
本発明の本実施形態では、時間を得るためのインタフェース種類も存在する。インタフェース種類と遅延属性を有する前述のインタフェースとの間には関係が存在する。時間を得るインタフェースは、以下の形式のうちの1つであっても良い。
Kernel32.dll:GetTickCount (ミリ秒の単位で)時間を得るインタフェース関数。
Kernel32.dll:GetLocalTime 現地の日付及び現在システムの時間を得るインタフェース関数。
Kernel32.dll:GetSystemTime システムのUTC時間を得るインタフェース関数。
Kernel32.dll:GetSystemTimes システムの複数種類の関連時間情報を得るインタフェース関数。
Kernel32.dll:QueryPerformanceCounter 高精度タイマの時間を得るインタフェース関数。
User32.dll:GetMessageTime メッセージの時間を得るインタフェース関数。
Winmn.dll:timeGetTime (ミリ秒の単位で)時間を得るインタフェース関数。
【0038】
遅延属性を有する前述のリストしたインタフェースは、Windowsオペレーティングシステムの中で予め提供される幾つかの関数である。これらのインタフェースは、オペレーティングシステムに大いに関連付けられる。つまり、Linuxシステム又は別のオペレーティングシステムも、遅延属性を有する別のインタフェースを提供する場合がある。これらのAPI(Application Programming Interface、アプリケーションプログラミングインタフェース)は、名称、パラメータフォーマット、等において互いに異なり、それらは概して同様の関数を実装する。多くの種類のオペレーティングシステムが存在し、1つのオペレーティングシステムの異なるバージョンも互いに異なるので、遅延属性を有する全てのインタフェースをここで列挙するのは困難であり、Windowsオペレーティングシステムの中の遅延属性を有する幾つかの共通のインタフェースのみが、説明のために例として用いられる。
【0039】
マルウェアが、遅延属性を有するこれらのインタフェースを呼び出すことにより遅延を実行する場合、インタフェースの第1の遅延長パラメータに従い決定される時点が終了すると、マルウェアは、悪意挙動を実行し始める。
【0040】
本発明の本実施形態では、呼び出されるインタフェースの第1の遅延長パラメータは、複数の方法で第2の遅延長パラメータに調整されても良い。例えば、以下のステップが用られても良い:
呼び出されるインタフェースの第1の遅延長パラメータを、第1の遅延長パラメータと所定調整パラメータとの積に調整する。ここで、調整パラメータは0より大きく且つ1以下である。
【0041】
例えば、遅延属性を有するインタフェースでは、第1の遅延長パラメータは、g_uiRateの倍率に従い変更される。第1の遅延長パラメータが100である場合、第1の遅延長パラメータは、100×g_uiRateに変更される。任意で、マルウェアが遅延属性を有するインタフェースの第1の遅延長パラメータの変化を識別することを防ぐために、オペレーティングシステム時間が、遅延属性を有するインタフェースを用いることにより遅延する手段により得られる時間と一致する必要がある場合、マルウェアにより得られるオペレーティングシステム時間は、時間を得るための前述のインタフェースを用いることにより同期して変更されても良い。具体的には、現在のオペレーティングシステム時間が100である場合、マルウェアが時間を得るためのインタフェースを呼び出すと、呼び出し結果は、インタフェース種類の戻り値を用いることにより100/g_uiRateに変更される必要がある。
【0042】
実際のアプリケーションでは、マルウェアが悪意挙動の暴発を遅延することにより検出を逃れる方法は、概して、遅延属性を有するインタフェースを呼び出すことにより実施される必要がある。前述の実施形態によると、マルウェアが遅延属性を有するインタフェースを呼び出しても、インタフェースの第1の遅延長パラメータが第2の遅延長パラメータに調整され、且つ第2の遅延長パラメータに対応する遅延期間が所定期間より小さいので、悪意挙動は所定期間内に依然として暴露される。これは、検出精度を向上する。
【0043】
本発明の本実施形態では、任意で、所定調整パラメータは、第1の調整パラメータ及び第2の調整パラメータを含み、第1の調整パラメータは第2の調整パラメータより大きい。
【0044】
さらに、サンドボックスが置かれている装置の中の別の処理がマルウェア検出により影響されることを防ぐために、呼び出されるインタフェースの第1の遅延長パラメータが第2の遅延長パラメータに調整されるとき、以下の動作が具体的に実行されても良い:
サンドボックスが置かれている装置の中央処理ユニットの使用率を得る、
得られた使用率を所定使用率閾と比較する、及び
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを、第1の遅延長パラメータと第1の調整パラメータとの積に調整し、つまり、第2の遅延長パラメータは第1の遅延長パラメータと第1の調整パラメータの積である、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを、第1の遅延長パラメータと第2の調整パラメータとの積に調整し、つまり、第2の遅延長パラメータは、第1の遅延長パラメータと第2の調整パラメータとの積である。
【0045】
第1の調整パラメータは、第2の調整パラメータより大きい。
【0046】
本発明の本実施形態では、呼び出されるインタフェースの第1の遅延長パラメータが第2の遅延長パラメータに調整されるとき、以下の方法が更に使用されても良い:
サンドボックスが置かれている装置の中央処理ユニットの使用率を得る、
得られた使用率を所定使用率閾と比較する、及び
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを、第2の遅延長パラメータに調整する、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを第3の遅延長パラメータに調整する、ここで、
第3の遅延長パラメータに対応する遅延期間は、第2の遅延長パラメータに対応する遅延期間より小さい。
【0047】
本発明の本実施形態では、前述の処理において、サンドボックスが置かれている装置の中央処理ユニットの使用率が得られているとき、Nt Query System Informationインタフェースが、中央処理ユニットの使用率を得るために使用されても良い。もちろん、1つずつここで詳細に記載されない他の方法も使用されて良い。
【0048】
前述の処理において、使用率が所定使用率閾より大きい又は等しいとき、システムはビジーであると決定される。この場合、調整された遅延長パラメータに対応する遅延期間は、実行中サンドボックスの中央処理ユニットの使用率に与える影響を低減するために、延長される。使用率が所定使用率閾より小さいとき、システムはビジーではないと決定される。この場合、調整された遅延長パラメータに対応する遅延期間は、被検出ソフトウェアの挙動の暴露を加速させるために、短縮されて、サンドボックスの実行中に、中央処理ユニットの使用率を増大するようにする。
【0049】
実際のアプリケーションでは、幾つかの悪意挙動が、指定期間の遅延の後に実行される。この場合、被検出ソフトウェアがマルウェアであるか否かは、遅延属性を有するインタフェースの第1の遅延長パラメータを調整することにより検出できる。しかしながら、幾つかの悪意挙動は、マルウェアの実行が終了するときに実行され、遅延属性を有するインタフェースが呼び出される必要がない。したがって、本発明の本実施形態では、以下の動作が更に含まれても良い:
所定期間が終了する前の予め決定された瞬間に、前記予め決定された瞬間の前に記録された少なくとも1つの記録された動作を悪意挙動の動作と比較し、
悪意挙動の動作と一致する動作が前記予め決定された瞬間の前に記録された少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、サンドボックスにソフトウェア実行終了メッセージを送信し、
予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの動作を記録し、
悪意挙動の動作を、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの記録された動作と比較し、悪意挙動の動作に一致する動作が、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する。
【0050】
例えば、所定期間は5分である。しかしながら、被検出ソフトウェアが4分50秒間、サンドボックスの中で実行され、悪意挙動の動作に一致する動作が少なくとも1つの記録された動作の中に存在しないとき、ソフトウェア実行終了メッセージがサンドボックスに送信される。次に、4分50秒から5分が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの動作が記録される。4分50秒から5分が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの動作は、悪意挙動の動作と比較される。悪意挙動の動作と一致する動作が、4分50秒から5分が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの動作の中に存在する場合、被検出ソフトウェアはマルウェアであることが決定される。このように、悪意サンプルに悪意挙動を強制的に暴露させる目的が達成できる。
【0051】
本発明の本実施形態では、インタフェースは、以下のインタフェースのうちの1つ又は組合せである。1つの処理を遅延するインタフェース、複数の処理を遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース。
【0052】
本発明の本実施形態では、悪意挙動の動作に一致する動作が少なくとも1つの記録された動作の中に存在することは、少なくとも1つの記録された動作の中の動作に対応する挙動シーケンス(例えば、API呼び出しシーケンス)が、悪意挙動の動作に対応する挙動シーケンス(例えば、API呼び出しシーケンス)と完全に同じであることを意味し、又は、少なくとも1つの記録された動作の中の動作に対応する挙動シーケンスが悪意挙動の動作に対応する挙動シーケンスと部分的に同じであることを意味する。
【0053】
本発明の本実施形態では、遅延属性を有するインタフェースは、APIレイヤに位置しても良く、又はNTAPIレイヤに位置しても良い。インタフェースがAPIレイヤに位置する場合、インタフェースの第1の遅延長パラメータを調整するために、ドライバレイヤが使用されても良く、又はドライバレイヤが使用されなくても良い。インタフェースがNTAPIレイヤに位置する場合、インタフェースの第1の遅延長パラメータを調整するために、ドライバレイヤが使用される必要がある。被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される動作は、本例ではネットワーク監視の手段により実装され得るネットワーク動作であっても良く、本例ではファイル監視の手段により実装され得るファイル動作であっても良く、又は、本例ではレジストリ監視の手段により実装され得るレジストリ動作であっても良い。幾つかの動作は、前述の監視の手段により実装できず、したがって、図1Bに示すようにシステム監視の手段により実装されても良い。
【0054】
本発明の本実施形態を一層良好に理解するために、以下は、特定のアプリケーションシナリオを提供し、図2A及び図2Bに示すように、マルウェア検出の処理を更に詳細に記載する。
【0055】
ステップ200:サンドボックスの中で被検出ソフトウェアを実行し、被検出ソフトウェアが実行を開始した後の5分のうちに実行される少なくとも1つの動作を記録する。
【0056】
ステップ210:少なくとも1つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出する。
【0057】
ステップ220:遅延属性を有するインタフェースの任意の1つが呼び出されることが決定されると、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が5分より大きいか否かを決定し、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が5分より大きい場合、ステップ230を実行し、又は、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が5分より大きくない場合、ステップ210に戻る。
【0058】
ステップ230:呼び出されるインタフェースの第1の遅延長パラメータを、第2の遅延長パラメータに調整する。ここで、第2の遅延長パラメータに対応する遅延期間は、5分より小さい。
【0059】
ステップ240:被検出ソフトウェアが4分50秒間実行したとき、悪意挙動の動作に一致する動作が、4分50秒間のうちの少なくとも1つの記録された動作の中に存在するか否かを決定し、悪意挙動の動作と一致する動作が4分50秒間のうちの少なくとも1つの記録された動作の中に存在する場合、被検出ソフトウェアはマルウェアであることを決定し、又は、悪意挙動の動作と一致する動作が4分50秒間のうちの少なくとも1つの記録された動作の中に存在しない場合、ステップ250を実行する。
【0060】
ステップ250:サンドボックスにソフトウェア実行終了メッセージを送信し、被検出ソフトウェアが4分50秒間実行された瞬間から5分間が終了する瞬間までの時間期間に実行される少なくとも1つの動作を記録する。
【0061】
ステップ260:悪意挙動の動作を、被検出ソフトウェアが4分50秒間実行された瞬間から5分間が終了する瞬間までの時間期間に実行される少なくとも1つの動作と比較する。
【0062】
ステップ270:悪意挙動の動作と一致する動作が、被検出ソフトウェアが4分50秒間実行された瞬間から5分間が終了する瞬間までの時間期間に実行された少なくとも1つの記録された動作の中に存在するか否かを決定し、悪意挙動の動作と一致する動作が、被検出ソフトウェアが4分50秒間実行された瞬間から5分間が終了する瞬間までの時間期間に実行された少なくとも1つの記録された動作の中に存在する場合、被検出ソフトウェアはマルウェアであることを決定し、又は、悪意挙動の動作と一致する動作が、被検出ソフトウェアが4分50秒間実行された瞬間から5分間が終了する瞬間までの時間期間に実行された少なくとも1つの記録された動作の中に存在しない場合、被検出ソフトウェアはマルウェアではないことを決定する。
【0063】
結論として、本発明の本実施形態では、被検出ソフトウェアがサンドボックスの中で実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作が記録される。少なくとも1つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かが検出される。インタフェースの任意の1つが呼び出されることが検出されると、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かが決定される。第1の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第1の遅延長パラメータは、第2の遅延長パラメータに調整される。ここで、第2の遅延長パラメータに対応する遅延期間は所定期間より小さい。少なくとも1つの記録された動作は、悪意挙動の動作と比較される。悪意挙動の動作と一致する動作が少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアはマルウェアであることが決定される。解決方法では、少なくとも1つの動作を記録する処理において、サンドボックスの中で遅延属性を有するインタフェースの任意の1つが呼び出されることが検出されるとき、及び第1の遅延長パラメータに対応する遅延期間が所定期間より大きいことが決定されるとき、悪意挙動の実行は遅延されるべきであると考えられる。この場合、遅延実行の遅延期間は、前記被検出ソフトウェアが実行を開始した後の前記所定期間のうちに実行される前記少なくとも1つの動作を記録する処理の中で、前記悪意挙動が実行可能なように、減少される。したがって、前記悪意挙動は予め露呈される。これは、効果的な監視を実施でき、したがって、マルウェア検出の精度を向上できる。
【0064】
対応する方法の前述の技術的解決策に基づき、図3に示すように、本発明の一実施形態は、マルウェア検出装置3000を提供する。マルウェア検出装置3000は、実行ユニット30、記録ユニット31、検出ユニット32、決定ユニット33、調整ユニット34、及び比較ユニット35を有する。
【0065】
実行ユニット30は、被検出ソフトウェアをサンドボックスの中で実行するよう構成される。
【0066】
記録ユニット31は、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録するよう構成される。
【0067】
検出ユニット32は、少なくとも1つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出するよう構成される。
【0068】
決定ユニット33は、インタフェースの任意の1つが呼び出されることが検出されると、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かを決定するよう構成される。
【0069】
調整ユニット34は、第1の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第1の遅延長パラメータを第2の遅延長パラメータに調整するよう構成され、第2の遅延長パラメータに対応する遅延期間は所定期間より小さい。
【0070】
比較ユニット35は、少なくとも1つの記録された動作を悪意挙動の動作と比較し、悪意挙動の動作に一致する動作が少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定するよう構成される。
【0071】
本発明の本実施形態では、任意で、調整ユニット34は、具体的には、
呼び出されるインタフェースの第1の遅延長パラメータを、第1の遅延長パラメータと所定調整パラメータとの積に調整するよう構成され、調整パラメータは0より大きく且つ1より小さい。
【0072】
本発明の本実施形態では、任意で、所定調整パラメータは、第1の調整パラメータ及び第2の調整パラメータを含み、第1の調整パラメータは第2の調整パラメータより大きい。
【0073】
調整ユニット34は、具体的には、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを、第2の遅延長パラメータに調整する、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを第1の遅延長パラメータと第2の遅延長パラメータとの積に調整する、よう構成される。
【0074】
本発明の本実施形態では、任意で、調整ユニット34は、具体的には、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを、第2の遅延長パラメータに調整し、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを第3の遅延長パラメータに調整する、よう構成され、
第3の遅延長パラメータに対応する遅延期間は、第2の遅延長パラメータに対応する遅延期間より小さい。
【0075】
本発明の本実施形態では、さらに、比較ユニット35は、
所定期間が終了する前の予め決定された瞬間に、前記予め決定された瞬間の前に記録された少なくとも1つの記録された動作を悪意挙動の動作と比較する、よう更に構成される。
【0076】
マルウェア検出装置3000は、悪意挙動の動作と一致する動作が前記予め決定された瞬間の前に記録された少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、サンドボックスにソフトウェア実行終了メッセージを送信するよう構成される送信ユニット、を更に有する。
【0077】
記録ユニット31は、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの動作を記録するよう更に構成される。
【0078】
記録ユニット35は、悪意挙動の動作を、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの記録された動作と比較し、悪意挙動の動作に一致する動作が、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する、よう更に構成される。
【0079】
この装置の実施形態で提供されるマルウェア検出装置は、方法の実施形態においてサンドボックスが置かれる装置であっても良く、又は、装置の中の機能モジュールであっても良い。装置は、ファイアウォール又はゲートウェイ装置のようなネットワーク装置に統合されても良く、又は、ファイルサーバ又はウェブページサーバに統合されても良い。マルウェア検出装置により実装され得る別の追加機能については、方法の実施形態の中の説明を参照する。詳細事項は、ここで再び記載されない。
【0080】
本発明の本実施形態で提供されるマルウェア検出装置は、サンドボックスの中で被検出ソフトウェアを実行し、前記被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録し、前記少なくとも1つの動作を記録する処理の中で、前記サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出し、任意の1つの前記インタフェースが呼び出されることが検出されるとき、前記呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が前記所定期間より大きいか否かを決定し、前記第1の遅延長パラメータに対応する前記遅延期間が前記所定期間より大きい場合、前記呼び出されるインタフェースの前記第1の遅延長パラメータを、第2の遅延長パラメータに調整し、前記第2の遅延長パラメータに対応する遅延期間は、前記所定期間より小さく、前記少なくとも1つの記録された動作を悪意挙動の動作と比較し、前記悪意挙動の前記動作に一致する動作が前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定する。遅延属性を有するインタフェースが呼び出されるとき、装置は、前記被検出ソフトウェアが実行を開始した後の前記所定期間のうちに実行される前記少なくとも1つの動作を記録する処理の中で、前記悪意挙動が実行可能なように、遅延実行の遅延期間を減少する。したがって、前記悪意挙動は予め露呈される。これは、効果的な監視を実施でき、したがって、マルウェア検出の効率及び精度を向上できる。
【0081】
図4に示すように、図4は、本発明の一実施形態によるマルウェア検出装置3000の別の構造図である。マルウェア検出装置3000は、少なくとも1つのプロセッサ401、通信バス402、メモリ403、及び少なくとも1つの通信インタフェース404を有する。
【0082】
通信バス402は、前述のコンポーネントの間の接続及び通信を実施するよう構成され、通信インタフェース404は、外部装置と接続され及び通信するよう構成される。
【0083】
メモリ403は、実行可能プログラムコードを格納するよう構成される。プログラムコードを実行することにより、プロセッサ401は、
サンドボックスの中で被検出ソフトウェアを実行し、被検出ソフトウェアが実行を開始した後の所定期間のうちに実行される少なくとも1つの動作を記録し、
少なくとも1つの動作を記録する処理の中で、サンドボックスの中で遅延属性を有する少なくとも1つのインタフェースが呼び出されるか否かを検出し、
インタフェースの任意の1つが呼び出されることが検出されると、呼び出されるインタフェースの第1の遅延長パラメータに対応する遅延期間が所定期間より大きいか否かを決定し、
第1の遅延長パラメータに対応する遅延期間が所定期間より大きい場合、呼び出されるインタフェースの第1の遅延長パラメータを第2の遅延長パラメータに調整し、第2の遅延長パラメータに対応する遅延期間は所定期間より小さく、
少なくとも1つの記録された動作を悪意挙動の動作と比較し、悪意挙動の動作に一致する動作が少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する、よう構成される。
【0084】
プロセッサ401は、
呼び出されるインタフェースの第1の遅延長パラメータを、第1の遅延長パラメータと所定調整パラメータとの積に調整するよう更に構成され、調整パラメータは0より大きく且つ1より小さい。
【0085】
所定調整パラメータは、第1の調整パラメータ及び第2の調整パラメータを含み、第1の調整パラメータは第2の調整パラメータより大きい。
【0086】
プロセッサ401は、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを、第2の遅延長パラメータに調整する、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを第1の遅延長パラメータと第2の遅延長パラメータとの積に調整する、よう更に構成される。
【0087】
プロセッサ401は、
サンドボックスが置かれている装置の中央処理ユニットの使用率を得て、
得られた使用率を所定使用率閾と比較し、
使用率が所定使用率閾より大きい又は等しいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを、第2の遅延長パラメータに調整し、又は、使用率が所定使用率閾より小さいという比較結果に基づき、呼び出されるインタフェースの第1の遅延長パラメータを第3の遅延長パラメータに調整し、
第3の遅延長パラメータに対応する遅延期間は、第2の遅延長パラメータに対応する遅延期間より小さい、ように更に構成される。
【0088】
プロセッサ401は、
所定期間が終了する前の予め決定された瞬間に、少なくとも1つの記録された動作を悪意挙動の動作と比較し、
悪意挙動の動作と一致する動作が少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、サンドボックスにソフトウェア実行終了メッセージを送信し、
予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの動作を記録し、
悪意挙動の動作を、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの記録された動作と比較し、悪意挙動の動作に一致する動作が、予め決定された瞬間から所定期間が終了する瞬間までの時間期間に被検出ソフトウェアにより実行される少なくとも1つの記録された動作の中に存在するという比較結果に基づき、被検出ソフトウェアがマルウェアであることを決定する、よう更に構成される。
【0089】
本発明の本実施形態では、インタフェースは、以下のインタフェースのうちの1つ又は組合せを含む。
1つの処理を遅延するインタフェース、複数の処理を遅延するインタフェース、タイマを遅延するインタフェース、又はシステム時間を得るインタフェース。
【0090】
この装置の実施形態で提供されるマルウェア検出装置は、方法の実施形態においてサンドボックスが置かれる装置であっても良い。装置は、ファイアウォール又はゲートウェイ装置のようなネットワーク装置に統合されても良く、又は、ファイルサーバ又はウェブページサーバであっても良い。マルウェア検出装置により実装され得る別の追加機能については、方法の実施形態の中の説明を参照する。詳細事項は、ここで再び記載されない。
【0091】
本発明は、本発明の実施形態による方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して記載される。理解されるべきことに、コンピュータプログラム命令は、フローチャート及び/又はブロック図の中の各々の処理及び/又は各々のブロック、及び/又はフローチャート及び/又はブロック図の中の処理及び/又はブロックの組合せを実施するために使用されても良い。これらのコンピュータプログラム命令は、機械を生成するために、汎用コンピュータ、専用コンピュータ、内蔵プロセッサ、又は任意の他のプログラマブルデータ処理装置のプロセッサに対して提供されても良く、したがって、コンピュータ又は任意の他のプログラマブルデータ処理装置のプロセッサにより実行される命令は、フローチャートの中の1又は複数の処理及び/又はブロック図の中の1又は複数のブロックの中の特定の機能を実装する装置を生成できるようにする。
【0092】
これらのコンピュータプログラム命令は、コンピュータ又は任意の他のプログラマブルデータ処理装置に特定の方法で動作するよう指示できるコンピュータ可読メモリに格納されても良く、したがって、コンピュータ可読メモリに格納された命令は、命令装置を含む製品を生成できる。命令装置は、フローチャートの中の1又は複数の処理の中の及び/又はブロック図の中の1又は複数のブロックの中の特定の機能を実装する。
【0093】
これらのコンピュータプログラム命令は、コンピュータ又は別のプログラマブルデータ処理装置にロードされても良く、したがって、一連の動作及びステップが該コンピュータ又は別のプログラマブル装置で実行され、それによりコンピュータにより実施される処理を生成する。したがって、コンピュータ又は別のプログラマブル装置で実行される命令は、フローチャートの中の1又は複数の処理の中の及び/又はブロック図の中の1又は複数のブロックの中の特定の機能を実施するステップを提供する。
【0094】
本発明の幾つかの好適な実施形態が記載されたが、当業者は、基本的な発明の概念を学習すると、これらの実施形態に変化及び変更を行うことができる。したがって、以下の請求項は、好適な実施形態及び本発明の範囲に包含される全ての変化及び変更をカバーするものと考えられるべきである。
【0095】
明らかに、当業者は、本発明の実施形態の精神及び範囲から逸脱することなく本発明の実施形態に種々の変更及び変形をなし得る。本発明は、これらの変更及び変形が以下の請求項により定められる保護範囲及びそれらの等価技術に包含される場合、これらの変更及び変形をカバーすることを意図する。
図1A
図1B
図2A
図2B
図3
図4