【文献】
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名)
前記所定期間が終わる前の予め決定された瞬間に、前記予め決定された瞬間の前に記録された少なくとも1つの記録された動作を前記悪意挙動の前記動作と比較するステップと、
前記悪意挙動の前記動作に一致する動作が前記予め決定された瞬間の前に記録された前記少なくとも1つの記録された動作の中に存在しないという比較結果に基づき、ソフトウェア実行終了メッセージを前記サンドボックスへ送信するステップと、
前記予め決定された瞬間から前記所定期間が終了する瞬間までの時間期間に、前記被検出ソフトウェアにより実行される少なくとも1つの動作を記録するステップと、
前記悪意挙動の前記動作を、前記予め決定された瞬間から前記所定期間が終了する瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作と比較し、前記悪意挙動の前記動作に一致する動作が、前記予め決定された瞬間から前記所定期間が終了する前記瞬間までの前記時間期間に、前記被検出ソフトウェアにより実行される前記少なくとも1つの記録された動作の中に存在するという比較結果に基づき、前記被検出ソフトウェアがマルウェアであることを決定するステップと、
を更に含む請求項1に記載の方法。
【発明を実施するための形態】
【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】
明らかに、当業者は、本発明の実施形態の精神及び範囲から逸脱することなく本発明の実施形態に種々の変更及び変形をなし得る。本発明は、これらの変更及び変形が以下の請求項により定められる保護範囲及びそれらの等価技術に包含される場合、これらの変更及び変形をカバーすることを意図する。