JP2018129019A - 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法 - Google Patents

仮想マシンにおける悪意のあるファイルを分析するシステム及び方法 Download PDF

Info

Publication number
JP2018129019A
JP2018129019A JP2017126206A JP2017126206A JP2018129019A JP 2018129019 A JP2018129019 A JP 2018129019A JP 2017126206 A JP2017126206 A JP 2017126206A JP 2017126206 A JP2017126206 A JP 2017126206A JP 2018129019 A JP2018129019 A JP 2018129019A
Authority
JP
Japan
Prior art keywords
file
thread
processor
execution
context
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017126206A
Other languages
English (en)
Other versions
JP6588945B2 (ja
Inventor
ブイ. ピンティスキー ウラディスラフ
V Pintiysky Vladislav
ブイ. ピンティスキー ウラディスラフ
ブイ. アニキン デニス
V Anikin Denis
ブイ. アニキン デニス
ワイ. コビチェフ デニス
Y Kobychev Denis
ワイ. コビチェフ デニス
ワイ. ゴロフキン マキシム
Y Golovkin Maxim
ワイ. ゴロフキン マキシム
ブイ. ブツゾフ ヴィタリ
V Butuzov Vitaly
ブイ. ブツゾフ ヴィタリ
ブイ. カラソフスキー ドミトリー
V Karasovsky Dmitry
ブイ. カラソフスキー ドミトリー
エー. キルサノフ ドミトリー
A Kirsanov Dmitry
エー. キルサノフ ドミトリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2018129019A publication Critical patent/JP2018129019A/ja
Application granted granted Critical
Publication of JP6588945B2 publication Critical patent/JP6588945B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】悪意のあるファイルの有害な活動をより明らかにするための、仮想マシンにおける悪意のあるファイルを分析するシステム及び方法を提供する。【解決手段】傍受モジュールは、ファイルのオープン時に作成されたプロセスのスレッドの実行プロセスで発生するイベントを傍受し、プロセスのスレッドの実行を停止する310。傍受モジュールは、プロセッサのコンテキストを読み取り、イベント及びコンテキストをログに保存する320。分析モジュールは、ログに保存されたデータを、少なくとも1つのルールを含む1つ又は複数のテンプレートと比較する。比較の結果として、ファイルを悪意があると認識する決定と、プロセスの実行を中止する決定と、プロセッサのコンテキストを変更する決定と、次のイベントを待つ決定とのうち、少なくとも1つを実行する330。分析モジュールによって行われた決定が傍受モジュールに提供され、アクションを実行する340。【選択図】図3

Description

本開示は、概して、サイバーセキュリティの分野に関し、より詳細には、仮想マシンにおける悪意のあるファイルを分析するシステム及び方法に関するものである。
現在、ユーザのデータと悪意のあるプログラムに感染した電子デバイスの実際のユーザの両方に悪影響を与えるように設計されたコンピュータウイルス、トロイの木馬、ネットワークワーム等の悪意のあるプログラムが増加している。このような問題は、暗号化通信の「マイニング」のための計算機器のリソースを用いることにより、ユーザファイルの破損又は削除、電子及び機密ユーザデータの盗難(対応、画像、ログイン、パスワード、銀行カード情報)及びその他の措置によって引き起こされる。更に、悪意のあるソフトウェアは、クリエイターが常にセキュリティアプリケーションに対する攻撃と防御の新しいメカニズムを採用しているため、絶えず変化している。難読化(言い換えれば、プログラムのソーステキスト又は実行可能コードをその機能を保持する形式に変換するが、分析に抵抗する、作業アルゴリズムを理解する、及び逆コンパイル時に変更する等)や、悪意のあるコードやエミュレーション抵抗メカニズムの使用(例えば、悪意のあるプログラムはエミュレータで実行されているときを認識し、その有害な活動を明らかにしない)等様々なメカニズムが使用される。
更に、悪意のあるプログラムは、しばしばその悪意のあるアクティビティを一度に明らかにするのではなく、その代わりに、数百万のオーダーのAPI関数呼び出し、膨大なサイクル(数十億回のオーダー)を実行し、(例えば「Sleep()」機能を使用して1時間というように)開始直後から測って一定の時間停止する。ユーザの現代の計算機器は、高性能なマルチコアプロセッサ(マルチプロセッサシステムも含む)を有しているため、ユーザはコアのうちの1つの作業負荷に注意を払うことも注意を払わないこともある。更に、ユーザは通常、デバイスを1時間以上オンにした後にそのデバイスを使用する。したがって、起動されていれば、悪意のあるプログラムがその活動をすぐに明らかにする必要はない。
前述の技術に対処するために、セキュリティアプリケーションのメーカ(ウイルス対策アプリケーション等)は、ファイルの安全な実行のために隔離された環境下で仮想マシンを使用するという検出方法を採用している。多くの場合、そのような仮想マシンはサンドボックスとして知られている。そのような仮想マシンがその制御下で作動するようなハイパーバイザは、その中で実行されているアプリケーションによって実行される機能を傍受するためのメカニズムを含む。
セキュリティアプリケーションは、シグネチャ及び/又はヒューリスティックな分析技術等、悪意のあるプログラムを決定するための様々な方法を採用していることに留意されたい。分析中にファイルが悪意のあるものであると判断されなかった場合、そのファイルは前述の仮想マシンへの動作の分析のためにセキュリティアプリケーションによって後述の仮想マシン(例えば、信頼できるソフトウェアメーカのデジタル署名がない場合)へと引き渡されることがある。引き渡されたファイルはその後仮想マシン内で実行され、実行中に異なる関数呼び出しによって実行されるアクション及びイベントが傍受され、傍受されたイベント及びアクションがログに保存された後、セキュリティアプリケーション又は情報セキュリティの専門家により分析される。
したがって、イベント及びアクションの傍受並びに集約のための既知のシステムは、2つのステップで動作する。最初のステップでは、情報が収集され、第二ステップでは、それらの情報が分析される。
既知のシステム及び方法の欠点は、それらがファイルの実行中に実行プロセスに影響を与えないことである。例えば、分析中のファイル(又は分析中のファイルを開いたアプリケーション)から起動されたプロセスが1時間実行を停止した場合、又はそのファイルが特定の電子メールクライアント若しくはメッセンジャー(メッセージの交換用プログラム)を攻撃している場合、攻撃されたプログラムは仮想マシン内に存在しなくなり、更にファイルの動作の悪意は発見されない(パスワードで必要なファイルが見つからないため、悪意のあるファイルが単独で実行を終了し、その悪意のある行為は明らかにされない)。
本発明によれば、悪意のあるファイルを分析する方法であって、実行ステップと、傍受ステップと、停止ステップと、読み取りステップと、比較ステップと、最終実行ステップと、を備え、前記実行ステップでは、仮想マシン内のプロセッサがファイルを開いて実行し、前記傍受ステップでは、前記ファイルを開く際に作成されたプロセスのスレッドの実行プロセスで発生するイベントを前記プロセッサから傍受し、前記停止ステップでは、前記イベントの傍受する際にプロセスのスレッドの実行を停止し、前記読み取りステップでは、前記ファイルを開く際に作成されたプロセスのスレッドが実行されているプロセッサのコンテキストを読み取り、前記比較ステップでは、前記プロセッサのコンテキストを、前記ファイルのパス、前記ファイルのタイプ、前記ファイルの拡張子、(ファイルの属性が前記プロセスのスレッドにより変更されることで)前記ファイルを開く際に生成される前記プロセスのスレッドの挙動、及び前記プロセスのスレッドのインターネットへのアクセスをチェックする1つ又は複数のルールと比較し、前記最終実行ステップでは、前記比較結果に基づいて、前記ファイルを悪意のあるファイルであると認識するステップと、ファイルのオープン時に作成されたプロセスの実行を停止するステップと、プロセッサのコンテキストを変更するステップと、次の傍受されたイベントを待つステップのうち少なくとも1つを実行する、方法が提供される。
好ましくは、前記傍受されたイベントは、前記スレッドによるAPI関数呼び出し、API関数からの戻り値、システムコール、システムコールからの戻り値、オペレーティング・システムからの通知のうち1つ又は複数を含む。
好ましくは、前記傍受ステップは、規則決定ステップを更に備え、
前記規則決定ステップは、前記スレッドによって呼び出されるAPI関数のコーディング規則を決定する。
好ましくは、前記プロセッサのコンテキストは、少なくとも前記プロセッサのレジスタ値を含む。
好ましくは、前記傍受されたイベント及び前記読み取られたコンテキストは、ログに保存される。
好ましくは、前記ルールは、前記分析の深さ又は前記イベントの集約の深さに関する条件を含む。
好ましくは、前記ルールは、サイクルの変数を増加させるための条件を含む。
本発明の別の態様によれば、悪意のあるファイルを分析するシステムであって、ハードウェアプロセッサを備え、前記ハードウェアプロセッサは、実行ステップと、傍受ステップと、停止ステップと、読み取りステップと、比較ステップと、最終実行ステップと、を実行するように構成され、前記実行ステップでは、仮想マシン内のプロセッサがファイルを開いて実行し、前記傍受ステップでは、前記ファイルを開く際に作成されたプロセスのスレッドの実行プロセスで発生するイベントを前記プロセッサから傍受し、前記停止ステップでは、前記イベントの傍受する際にプロセスのスレッドの実行を停止し、前記読み取りステップでは、前記ファイルを開く際に作成されたプロセスのスレッドが実行されているプロセッサのコンテキストを読み取り、前記比較ステップでは、前記プロセッサのコンテキストを、前記ファイルのパス、前記ファイルのタイプ、前記ファイルの拡張子、(ファイルの属性が前記プロセスのスレッドにより変更されることで)前記ファイルを開く際に生成される前記プロセスのスレッドの挙動、及び前記プロセスのスレッドのインターネットへのアクセスをチェックする1つ又は複数のルールと比較し、前記最終実行ステップでは、前記比較結果に基づいて、前記ファイルを悪意のあるファイルであると認識するステップと、ファイルのオープン時に作成されたプロセスの実行を停止するステップと、プロセッサのコンテキストを変更するステップと、次の傍受されたイベントを待つステップのうち少なくとも1つを実行する、システムが提供される。
本発明の別の態様によれば、仮想マシンにおける悪意のあるファイルを分析するための、コンピュータで実行可能な命令を格納する、コンピュータ上で読み取り可能な不揮発性媒体であって、前記命令は、実行ステップと、傍受ステップと、停止ステップと、読み取りステップと、比較ステップと、最終実行ステップと、を備え、前記実行ステップでは、仮想マシン内のプロセッサがファイルを開いて実行し、前記傍受ステップでは、前記ファイルを開く際に作成されたプロセスのスレッドの実行プロセスで発生するイベントを前記プロセッサから傍受し、前記停止ステップでは、前記イベントの傍受する際にプロセスのスレッドの実行を停止し、前記読み取りステップでは、前記ファイルを開く際に作成されたプロセスのスレッドが実行されているプロセッサのコンテキストを読み取り、前記比較ステップでは、前記プロセッサのコンテキストを、前記ファイルのパス、前記ファイルのタイプ、前記ファイルの拡張子、(ファイルの属性が前記プロセスのスレッドにより変更されることで)前記ファイルを開く際に生成される前記プロセスのスレッドの挙動、及び前記プロセスのスレッドのインターネットへのアクセスをチェックする1つ又は複数のルールと比較し、前記最終実行ステップでは、前記比較結果に基づいて、前記ファイルを悪意のあるファイルであると認識するステップと、ファイルのオープン時に作成されたプロセスの実行を停止するステップと、プロセッサのコンテキストを変更するステップと、次の傍受されたイベントを待つステップのうち少なくとも1つを実行する、媒体が提供される。
本発明の例示的な側面に係る上述の簡略化した概要は、本発明の基本的な理解を提供するように機能するものである。この概要は、全ての企図された側面の広範な概要ではなく、全ての側面の重要な又は重要な要素を特定することも本発明の任意の又は全ての側面の範囲を描写することも意図されていない。唯一の目的は、以下の本発明のより詳細な説明の前置きとして、1つ又は複数の側面を簡略化した形で提示することである。前述の目的を達成するために、本発明の1つ又は複数の側面が記載され、これは特に特許請求の範囲において主張される特徴を含むものである。
添付の図面は本明細書に組み込まれ、本明細書の一部を構成し本開示の1つ以上の例示的な態様を示し、詳細な説明と共にそれらの原理及び実施形態を説明する役割を果たす。
仮想マシンにおける悪意のあるファイルの分析例を示す。 仮想マシンにおける悪意のあるファイルを分析するための例示的なシステムを示す。 仮想マシンにおける悪意のあるファイルを分析するための例示的な方法を示す。 仮想マシンにおける悪意のあるファイルのシステム及び方法の態様を実装することができる汎用コンピュータ・システムの一例を示す。
本発明に関する例示的な側面は、計算機器上の保護されたアプリケーションへのアクセスを阻止するためのシステム、方法、及びコンピュータプログラム製品に関連して本明細書で説明される。当業者であれば、以下の説明は例示的なものに過ぎず、決して限定するものではないことを理解するであろう。他の側面は、本発明の利益を有する当業者には容易に示唆されるであろう。以下、添付の図面に例示されている例示的な実施形態を詳細に参照する。同一の符号は、図面全体にわたって可能な範囲で使用され、以下の説明は、同じ又は同様の項目を参照するために使用される。
図1は、仮想マシンにおける悪意のあるファイルの分析例を示す。一般的なケースでは、悪意のある分析のために、ファイル100はファイルの実行のための隔離された環境下で仮想マシン120内において開かれる。セキュリティモジュール110は、ファイル100を仮想マシン120へと引き渡す。1つの例示的な態様では、仮想マシン120は、セキュリティモジュール110によって作成される。別の例示的な態様では、仮想マシン120は、以前に作成された仮想マシンからセキュリティモジュール110によって選択される。仮想マシンは、ホストオペレーティング・システムのリソースをゲストオペレーティング・システムに提供するソフトウェア及びハードウェアを含むことができ、ゲストオペレーティング・システムはホストオペレーティング・システムへのリンクを有さない。
尚、ファイル100は、以下のものを含み得るが、これらのものに限定されない:即ち、実行可能なファイル、動的ライブラリ、特定のインタプリタによって実行されるスクリプト(Microsoft PowerShellファイル等)。実行のためのスクリプトを含むファイル(Microsoft Office又はAdobe Acrobat形式のファイル等)、ウェブページ、画像、そしてリンク(URL等)等であり、これらは他のアプリケーションによって実行又は開かれた際に計算機器のユーザのデータに害を及ぼす可能性がある。
一般的なケースでは、ファイル100の分析は、仮想マシン120のオペレーティング・システムにおいてファイル100が開かれた後に行われる。ファイル100のオープンには、実行可能ファイル100の実行又はアプリケーションによる非実行可能ファイル100のオープンが含まれるが、これに限定されない。
ファイル100のオープンの結果は、仮想マシン120におけるプロセスの作成及びその実行の起動と、1つ又は複数の実行スレッドの作成である。
1つの例示的な態様では、その制御下で仮想マシン120が動作しているセキュリティモジュール110及び仮想マシン115のモニタ(以下「ハイパーバイザ」)は、ユーザの計算機器上で実行される。所与の場合において、セキュリティモジュール110は、セキュリティアプリケーション(例えば、アンチウィルスアプリケーション等)である。別の場合では、セキュリティモジュール110及びハイパーバイザ115は、リモートサーバ(または異なるサーバ)上で、又はクラウドサービスとして実行される。この場合、セキュリティモジュール110は、(例えば、ユーザの計算機器上で動作するセキュリティモジュール110から)第三者のソースからファイル100を取得し、それを仮想マシン120へと引き渡し、そこでファイル100が開かれる。
一般的なケースでは、ハイパーバイザ115は、傍受モジュール130(傍受モジュール130は、ハイパーバイザ115のモジュール、コンポーネント又は機能的な部分である)を含む。傍受モジュール130は、仮想マシン120内のファイル100を開く際に生成されたプロセスのスレッドによるAPI関数呼び出しを傍受し、API関数呼び出しを行っているスレッドが実行されているプロセッサのコンテキストを読み取る。プロセッサのコンテキストは少なくともプロセッサのレジスタ値を含むことに留意されたい。1つの例示的な態様では、傍受モジュール130は同様に、スタックに対応するプロセッサレジスタに含まれる以前に読み取られたデータ(例えば、ESP及びEBPレジスタからのアドレスのメモリ)を使用することによってスタックを読み取る。更に、傍受モジュール130は、ファイル100を開いたときに作成されたプロセスの実行後に、前述のデータを集約し、それを(例えば、データベースまたはログ150に)保存し、セキュリティモジュール110へと引き渡す。セキュリティモジュール110は、傍受モジュール130からのデータに基づいて、ファイル100が悪意のあるものかどうかの判断を順に宣告する。一般的なケースでは、例えば、ファイル100を開く際に作成されたプロセスのスレッドによるAPI関数呼び出しにおけるシーケンス及びパラメータに応じて、保存されたデータの分析の後に上記の判断が下される。1つの例示的な態様では、判断が下されない場合、傍受モジュール130によって保存されたデータは、分析のためにセキュリティモジュール110によって情報セキュリティの専門家(図1には図示せず)へと引き渡される。
図2は、仮想マシンにおける悪意のあるファイルを分析するための例示的なシステムを示す。図1のシステムとは対照的に、図2のシステムでは、傍受モジュール130は分析モジュール140も含む。1つの例示的な態様では、ハイパーバイザ115は分析モジュール140を含む。別の例示的な態様では、分析モジュール140は、セキュリティモジュール110のコンポーネント(モジュール、機能部品)である。一般的なケースでは、傍受モジュール130は、ファイル100を開くときに作成されたプロセスのスレッド内のイベントを傍受する。
傍受されたイベントには、以下のものが含まれるが、これらに限定されない:即ち、スレッドによるAPI関数呼び出し、API関数からの戻り値、システムコール(即ち、特定のオペレーション(システムコール)を実行するスレッドによるオペレーティング・システムのカーネルへのアクセス、システムコールからの戻り値、及びオペレーティング・システムからのメッセージ(通知)(例えばスレッドの作成、プロセスの作成、モジュールの読み込み等)等である。
イベントが傍受されると、傍受モジュール130によってスレッドの実行が停止される。傍受は、仮想マシン120のオペレーティング・システムの異なる保護リングにおいて可能であり、システムのハードウェアの区画化及びユーザレベルの特権を実現し、カーネルレベル(カーネルモード)及び/又はアプリケーションレベル(ユーザーモード)でのイベントの傍受を可能にすることに留意されたい。1つの例示的な態様では、スレッドの命令の実行を停止することによって、スレッドの実行を停止することができる。
ファイル100を開く際に作成されるプロセスのスレッドの実行中、傍受モジュール130は、スレッドによって呼び出されるAPI関数のコーディング規則を決定することに留意されたい。これは、呼び出されているAPI関数へのパラメータの転送のためのプロセッサのレジスタの使用の明確な決定を可能にする。したがって、例えば、呼び出しのパラメータはレジスタECX(第一パラメータ)、EDX(第二パラメータ)にあり、残りのパラメータはスタック(ESPレジスタ)に格納される。更に、コーディング規則により、戻り値の明確な決定が可能になる。例えば、API関数が値「0」を返す場合、これはレジスタEAXで行われる。
傍受されたイベント及びプロセッサのコンテキストは、傍受モジュールによってログ150に保存される。保存された後、ログ150は、傍受モジュール130によって分析モジュール140へと引き渡される。分析モジュール140は、一組のテンプレートを使用する。1つの例示的な態様では、テンプレートはデータ構造(ツリー等)に格納される。テンプレートは、仮想マシン120のブート中に分析モジュール140によってデータ構造に追加することができる。別の例示的な態様では、テンプレートは、分析モジュール140によってデータベース中から選択される。
一般的なケースでは、テンプレートには1つ以上のルールが含まれている。1つの態様では、各ルールに優先度が割り当てられている。別の態様では、ルールは特別な順序でテンプレートに追加される。
ルールは、論理オペランド(「if」又は「logical or」等)の使用に基づく論理条件である。更に、これらのルールは互いに関連していてもよい。1つの例示的な態様では、ルールはプロセッサの保存されたコンテキストを利用する。別の例示的な態様では、ルールは、プロセッサのコンテキストの変更のロジックと、プロセッサのコンテキストを変更するためのデータとを含む。更に別の例示的な態様では、ルールは、分析モジュール140が開かれたファイル100を悪意があるものであると認識するロジックを含む。
上記のルールの例は次の通りである:
ルール1:「FileOpen("$SytemDrive:¥<random name>)」が呼び出された場合、実行を継続する。
ルール2:ルール1と「FileWrite("$ SytemDrive:¥<random name>",text name)」が呼び出された場合、実行を継続する。
上記の例では、ファイル100を開く際に作成されたプロセスのスレッドが、システムディスクのルートにランダム(所望の)ファイルを要求している。必要なファイルの作成(または読み込み)という単なるイベントは悪意のあるものではないが、多くの場合悪意のある機能の兆候である。したがって、ルールに基づいて、分析モジュール140は上記のスレッドの実行を継続する決定を下す。その後で、要求されたファイルが書き込まれる。要求されたファイルの種類と書き込まれた情報によっては、要求されたファイルが悪意のある機能を持つ可能性がある。
システムとルールの作業のより詳細な例を次に示す。
ルール10:ファイル100が署名されていない場合、実行を続行する。
ルール11:ルール10とファイル100がFileOpen("$ SytemDrive:¥<random name>")を呼び出した場合、値を「成功」に変更して実行を継続する。
ルール12:ルール11及びファイル100がFileWrite("$SytemDrive:¥<random name>",ファイル100を開く際に作成されたプロセスにより使用されるメモリクリップボード)を呼び出した場合、ファイル100を悪意のあるものと認識し、実行を終了する。
提示されたルールの例では、「ファイル100」は、ルールのより明瞭で分かりやすい表現のために使用されることに留意されたい。一般的なケースでは、ルールは、ファイル100を開く際に作成されたプロセスのスレッドを使用する。
上記の例では、ファイル100は署名されていない、即ち、ファイル100の供給者(作成者)は未知である。その後、ファイル100を開く際に作成されたプロセスのスレッドは、その実行プロセスにおいて、システムディスクのルート内のランダムファイルにもアクセスする。しかし、オペレーティング・システムは、通常、システムディスクのルートにファイルを作成することを禁止する(悪意のあるファイルは、ファイルが作成されるまで他のパスを試すことができる)。したがって、分析モジュール140は、ルールに基づいて、結果が「成功」に戻されるような決定を下し、傍受モジュール130の助けを借りて結果は置き換えられ、次いで、ファイル100の実行の際に作成されたプロセスのスレッドの実行を継続する。次に、作成されたファイルが書き込まれる。作成されたファイルにメモリクリップボードが書き込まれている場合、そのファイルは悪意のある(悪意のある機能を持つ)可能性がある。ファイル100の分析を中止し、次いで、作成されたファイルの分析を行い、作成されたファイルの分析の結果から、ファイル100が悪意のあるものかどうかについての判定を行うことが意味を持つ。
上記に記載されているのは、ルールのうちの一例のみであることに留意されたい。一般的なケースでは、ルールはより大量になる可能性がある。例えば、異なるパスに沿ったファイルの作成を追跡したり、作成されるファイルの拡張子を追跡したり、作成されたファイルの種類を分析したり、ファイルの作成を許可しファイル100のオープン時に作成されたプロセスのスレッドのさらなる挙動を追跡したり(例えば、既知の方法でオペレーティング・システムのスタートアップリストに作成されたファイルを追加しようとするだろうか)、ファイル100又は他のファイルのいずれかの属性のスレッドによる変化を追跡したり、スレッドのインターネットへのアクセスを追跡したりする。
1つの例示的な態様では、分析モジュール140は、別個のデータベースに格納された(検査の)エキスパートデータでも動作する。このデータは、テンプレートのルールでも使用することができる。このようなルールの例は次の通りである。
ルール21:「ファイル100がWebリソースにアクセスする場合」及び「Webリソースに悪意のあるカテゴリが割り当てられている場合」、ファイル100はファイルが悪意のあるものであると認識する。
尚、上記の例では、仮想マシン上でファイル100を開く際に作成されたプロセスのスレッドがアクセスしているWebリソースのカテゴリは、予めノウハウで決定(割り当て)されており、別のデータベース内に保存されていることに留意されたい。
1つの例示的な態様では、ルールは、分析の深さの条件又はイベントの集約の深さを含むことができる。例えば、
ルール31:「ファイル100がサイクルを実行している場合」及び「API関数呼び出しのイベントのコンテキストが変更されない場合」、API関数からの戻り値のイベントを傍受してはならない。
このルールの例は、イベントの傍受数を減少させ、コンテキストを読み取ることによって、ファイル100の実行を高速化することを可能にする。ファイル100を開くときに作成されたプロセスのスレッドが、「CreateWindow()」及び「CloseWindow()」の呼び出しからなる10億回のオーダーの周期で呼び出された場合、それらを傍受することは意味がなく、各イベントのコンテキストを保存する。上記のような傍受モジュール130は、少なくとも40億回(このサイクルでは、2つのAPI関数が呼び出され、イベントは呼び出しであり、API関数からの戻り値である)トリガされ、プロセッサのコンテキストを同じ回数分読み取る。
1つの例示的な態様では、ルールは、サイクルの変数を増加させるための条件を含むことができる。例えば、
ルール41:「ファイル100がサイクルを実行している場合」及び「API関数呼び出しのイベントのコンテキストが変更されない場合」、サイクル変数の値を10回の繰り返しごとに5回増加させる。
上記の例は、ファイル100の仮想マシン120のオープン時に作成されたプロセスのスレッドによるサイクルの実行を高速化するために使用することができる。分析モジュールは、実行中のスレッドが周期的に特定のイベントを呼び出すと判断する。アンチエミュレーションのための既知のスクリプトの1つである、このプロセス中に何も起こらない。ファイル100のオープン時に作成されたプロセスのスレッドがその機能を最も完全に表示するためには、できるだけ早くサイクルを完了し、実行を続ける必要がある。上記のルールのために、サイクルは数倍速く完了する。
このように、傍受モジュール130からログ150を取得した後に、分析モジュール140は、発生したイベント、即ちログ150に保存されているイベント(現在および以前に発生したもの)と発生したイベントのデータ(例えば、特定のイベントに対応するプロセッサのコンテキスト)とを分析する。分析は、発生したイベントをテンプレートと比較することから成る。イベントは、テンプレート内に保存された各ルール(テンプレート内のルールの順序または優先順位に応じて)として一貫して比較される。上記の比較に基づいて、分析モジュール140は、ファイル100を悪意のあるものであると認識する決定、ファイル100のオープン時に作成されたプロセスの実行を中止する決定、プロセッサのコンテキストを変更する決定、及び次のイベントを待つ決定のうち少なくとも1つの決定を下す。
分析モジュール140は、上述の決定を組み合わせても良いことに留意されたい。例えば、ファイル100が悪意のあるものであると認識された場合、1つの例示的な態様では、ファイル100を開く際に作成されたプロセスの実行を停止することが可能である。別の例示的な態様では、ファイル100のオープン時に作成されたプロセスの実行を継続すること、即ち、プロセスのスレッドの動作の更なる分析又はログ150の作成のために、次のイベントを待つことが可能である。1つの例示的な態様では、ファイル100は悪意のあるものであると認識されるが、プロセッサのコンテキストが変更され、次のイベントが待たれる。このような一連の動作は、ファイル100の機能のより完全な開示のために必要である。例えば、ファイル100は、悪意のあるコードを含む更に別のファイルが分析プロセスで作成された後に悪意のあるものであると認識されている。しかし、ある種のイベント(例えば、あるスレッドが悪意のあるWebリソースから何かをダウンロードしようとする等)では、イベントの傍受を継続し、ログ150を埋めることで、ファイル100のオープン時に作成されたプロセスのスレッドの更なる振る舞いを分析することが意味を持つ。また、ファイル100が悪意あるものとして認識されなくても(例えば、実行中のウィンドウが開いてユーザからのデータ入力を待っている状態等)、ファイル100のオープン時に作成されるプロセスの実行を停止する命令がなされる。
行われた決定は、分析モジュール140によって傍受モジュール130へと引き渡される。傍受モジュール130は、行われた決定にしたがってアクションを実行する。分析モジュール140が次のイベントを待つことを決定した場合、傍受モジュール130によって中断されたスレッドの実行が再開される。
1つの例示的な態様では、分析モジュール140は、仮想マシン120の再起動を開始する。例えば、分析モジュール140は、ファイル100の分析中に、仮想マシン120のオペレーティング・システムの起動リストに追加された新しいファイルが作成された場合、作成されたファイルの機能性又は悪意のあるものかをチェックするために再起動を開始する。
一般的なケースでは、仮想マシン120内のファイル100の分析を終了した後、傍受モジュール130は、ログ150をセキュリティモジュール110へと引き渡す。ファイル100の分析は、通常の方法(ファイル100自体のオープン時に作成されたプロセスのスレッド自体が実行を終了する)又は分析モジュール140の決定(この時までに分析モジュール140は、ファイル100のオープン時に作成されるプロセスを停止する命令を発している)によって完遂される。
したがって、このシステムは、分析モジュール140からの決定に基づいて、即ち、ファイル100を悪意のあるものであると認識する決定がなされたかどうかに基づいて、ファイル100の善悪を明らかにすることができる。
図3は、仮想マシンにおける悪意のあるファイルを分析する例示的な方法を示す。一般的なケースでは、セキュリティモジュール110は、悪意のあるファイルかどうかの分析のためにファイル100を仮想マシン120へと送信する。ファイル100の分析は、仮想マシン120のオペレーティング・システムでファイルが開かれた後に行われる。開始ステップ310において、傍受モジュール130は、ファイル100のオープン時に作成されたプロセスのスレッドの実行プロセスで発生するイベントを傍受するために使用される。このイベントは、スレッドによるAPI関数呼び出し、API関数からの戻り値、システムコール、システムコールからの戻り値、及びオペレーティング・システムからの通知のうち少なくとも1つである。イベントの傍受に加えて、傍受モジュール130は、ファイル100のオープン時に作成されたプロセスのスレッドの実行を停止することもできる。
次に、ステップ320において、傍受モジュール130は、ファイル100のオープン時に作成されたプロセスのスレッドが実行されている少なくとも1つのプロセッサのコンテキストを読み取る。この場合のプロセッサのコンテキストは、少なくともプロセッサのレジスタ値を含む。傍受されたイベント及びプロセッサの読み取られたコンテキストは、傍受モジュール130によってログ150に保存される。
次に、ステップ330において、分析モジュール140は、ログ150に保存されたデータを、少なくとも1つのルールを含む1つ又は複数のテンプレートと比較する。1つの例示的な態様では、ルールは少なくとも1つのイベントを含む。更に別の例示的な態様では、ルールは少なくとも1つのプロセッサのコンテキストを含む。ログ150に保存されたデータとテンプレートに含まれるルールとの比較の結果として、分析モジュール140は、ファイル100を悪意があると認識する決定と、ファイル100のオープン時に作成されたプロセスの実行を中止する決定と、プロセッサのコンテキストを変更する決定と、次のイベントを待つ決定とのうち、少なくとも1つを実行するために使用される。
次に、ステップ340において、分析モジュール140によって行われた決定が傍受モジュール130に提供され、傍受モジュール130が、行われた決定にしたがってアクションを実行する。
図4は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータ・システム(パーソナル・コンピュータやサーバ等)の例を示している。図示の通り、コンピュータ・システム20は、CPU21と、システムメモリ22と、CPU21と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス23とを含み得る。システムバス23は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来から公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ(ROM)24及びランダムアクセスメモリ(RAM)25を含む。基本的な入出力システム(BIOS)26は、ROM24の使用によってオペレーティング・システムをロードする際等、コンピュータ・システム20の要素間の情報の伝達を担う基本的な手順を含む。
コンピュータ・システム20は、データの読み書きのためのハードディスク27、取り外し可能な磁気ディスク29の読み書きのための磁気ディスクドライブ28、及びCD−ROM、DVD−ROM、その他の光学メディア等の光学ディスク31の読み書きのための光学式ドライブ30を含む。ハードディスク27、磁気ディスクドライブ28、及び光学式ドライブ30は、ハードディスクインターフェース32、磁気ディスクインターフェース33、及び光学式ドライブインターフェース34それぞれを横切るシステムバス23と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びコンピュータ・システム20の他のデータのストレージのための電源依存のモジュールである。
本発明は、ハードディスク27、取り外し可能な磁気ディスク29及び取り外し可能な光学ディスク31を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ(RAM)等の他のタイプのコンピュータ情報メディア56を使用してもよいことに留意されたし。また、これはコントローラ55を介してシステムバス23に接続される。
コンピュータ・システム20は、ファイルシステム36を有し、記録されたオペレーティング・システム35を保持する。また追加のプログラムアプリケーション37、他のプログラムモジュール38、及びプログラムデータ39を有する。ユーザは、入力機器(キーボード40、マウス42)を用いてコマンドと情報をコンピュータ・システム20に入力することができる。他の入力機器(不図示):マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力機器は、通常、システムバスに次々接続しているシリアルポート46を通じてコンピュータ・システム20に差し込まれるが、それらは、他の方法例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス(USB)に接続される。ディスプレイ機器のモニタ47又は他のタイプは、また、ビデオアダプタ48等のインターフェースと交差するシステムバス23に接続している。モニタ47に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力機器(不図示)を接続できる。
コンピュータ・システム20は、1つ又は複数のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ(又はコンピュータ)49は、図4に示すように、コンピュータ・システム20の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク(LAN)50及びワイドエリアコンピュータ・ネットワーク(WAN)を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていインターネットにアクセスすることができる。LAN又はWANネットワークにおいて、パソコン20は、ネットワークアダプタ又はネットワークインターフェース51に交差するローカルエリアネットワーク50に接続されている。ネットワークが用いられる時には、パソコン20は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム54又は他のモジュールを使用することができる。内部又は外部の機器であるモデム54は、シリアルポート46によりシステムバス23と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法もあることに留意されたい。
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及び方法を実施し得る。ソフトウェアにおいて実装される場合は、方法は不揮発性コンピュータ可読メディアの1つ又は複数の指示又はコードとして保存され得る。コンピュータ可読メディアは、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読メディアは、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
様々な実施形態で、本発明のシステム及び方法が、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや指示セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という2つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる(図3において詳述したもの等)。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。本明細書で開示された様々な側面は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、側面及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。

Claims (21)

  1. 悪意のあるファイルを分析する方法であって、
    実行ステップと、傍受ステップと、停止ステップと、読み取りステップと、比較ステップと、最終実行ステップと、を備え、
    前記実行ステップでは、仮想マシン内のプロセッサがファイルを開いて実行し、
    前記傍受ステップでは、前記ファイルを開く際に作成されたプロセスのスレッドの実行プロセスで発生するイベントを前記プロセッサから傍受し、
    前記停止ステップでは、前記イベントの傍受する際にプロセスのスレッドの実行を停止し、
    前記読み取りステップでは、前記ファイルを開く際に作成されたプロセスのスレッドが実行されているプロセッサのコンテキストを読み取り、
    前記比較ステップでは、前記プロセッサのコンテキストを、前記ファイルのパス、前記ファイルのタイプ、前記ファイルの拡張子、(ファイルの属性が前記プロセスのスレッドにより変更されることで)前記ファイルを開く際に生成される前記プロセスのスレッドの挙動、及び前記プロセスのスレッドのインターネットへのアクセスをチェックする1つ又は複数のルールと比較し、
    前記最終実行ステップでは、前記比較結果に基づいて、前記ファイルを悪意のあるファイルであると認識するステップと、ファイルのオープン時に作成されたプロセスの実行を停止するステップと、プロセッサのコンテキストを変更するステップと、次の傍受されたイベントを待つステップのうち少なくとも1つを実行する、
    方法。
  2. 前記傍受されたイベントは、前記スレッドによるAPI関数呼び出し、API関数からの戻り値、システムコール、システムコールからの戻り値、オペレーティング・システムからの通知のうち1つ又は複数を含む、
    請求項1に記載の方法。
  3. 前記傍受ステップは、規則決定ステップを更に備え、
    前記規則決定ステップは、前記スレッドによって呼び出されるAPI関数のコーディング規則を決定する、
    請求項1に記載の方法。
  4. 前記プロセッサのコンテキストは、少なくとも前記プロセッサのレジスタ値を含む、
    請求項1に記載の方法。
  5. 前記傍受されたイベント及び前記読み取られたコンテキストは、ログに保存される、
    請求項1に記載の方法。
  6. 前記ルールは、前記分析の深さ又は前記イベントの集約の深さに関する条件を含む、
    請求項1に記載の方法。
  7. 前記ルールは、サイクルの変数を増加させるための条件を含む、
    請求項1に記載の方法。
  8. 悪意のあるファイルを分析するシステムであって、ハードウェアプロセッサを備え、
    前記ハードウェアプロセッサは、実行ステップと、傍受ステップと、停止ステップと、読み取りステップと、比較ステップと、最終実行ステップと、を実行するように構成され、
    前記実行ステップでは、仮想マシン内のプロセッサがファイルを開いて実行し、
    前記傍受ステップでは、前記ファイルを開く際に作成されたプロセスのスレッドの実行プロセスで発生するイベントを前記プロセッサから傍受し、
    前記停止ステップでは、前記イベントの傍受する際にプロセスのスレッドの実行を停止し、
    前記読み取りステップでは、前記ファイルを開く際に作成されたプロセスのスレッドが実行されているプロセッサのコンテキストを読み取り、
    前記比較ステップでは、前記プロセッサのコンテキストを、前記ファイルのパス、前記ファイルのタイプ、前記ファイルの拡張子、(ファイルの属性が前記プロセスのスレッドにより変更されることで)前記ファイルを開く際に生成される前記プロセスのスレッドの挙動、及び前記プロセスのスレッドのインターネットへのアクセスをチェックする1つ又は複数のルールと比較し、
    前記最終実行ステップでは、前記比較結果に基づいて、前記ファイルを悪意のあるファイルであると認識するステップと、ファイルのオープン時に作成されたプロセスの実行を停止するステップと、プロセッサのコンテキストを変更するステップと、次の傍受されたイベントを待つステップのうち少なくとも1つを実行する、
    システム。
  9. 前記傍受されたイベントは、前記スレッドによるAPI関数呼び出し、API関数からの戻り値、システムコール、システムコールからの戻り値、オペレーティング・システムからの通知のうち1つ又は複数を含む、
    請求項8に記載のシステム。
  10. 前記傍受ステップは、規則決定ステップを更に備え、
    前記規則決定ステップは、前記スレッドによって呼び出されるAPI関数のコーディング規則を決定する、
    請求項8に記載のシステム。
  11. 前記プロセッサのコンテキストは、少なくとも前記プロセッサのレジスタ値を含む、
    請求項8に記載のシステム。
  12. 前記傍受されたイベント及び前記読み取られたコンテキストは、ログに保存される、
    請求項8に記載のシステム。
  13. 前記ルールは、前記分析の深さ又は前記イベントの集約の深さに関する条件を含む、
    請求項8に記載のシステム。
  14. 前記ルールは、サイクルの変数を増加させるための条件を含む、
    請求項8に記載のシステム。
  15. 仮想マシンにおける悪意のあるファイルを分析するための、コンピュータで実行可能な命令を格納する、コンピュータ上で読み取り可能な不揮発性媒体であって、
    前記命令は、実行ステップと、傍受ステップと、停止ステップと、読み取りステップと、比較ステップと、最終実行ステップと、を備え、
    前記実行ステップでは、仮想マシン内のプロセッサがファイルを開いて実行し、
    前記傍受ステップでは、前記ファイルを開く際に作成されたプロセスのスレッドの実行プロセスで発生するイベントを前記プロセッサから傍受し、
    前記停止ステップでは、前記イベントの傍受する際にプロセスのスレッドの実行を停止し、
    前記読み取りステップでは、前記ファイルを開く際に作成されたプロセスのスレッドが実行されているプロセッサのコンテキストを読み取り、
    前記比較ステップでは、前記プロセッサのコンテキストを、前記ファイルのパス、前記ファイルのタイプ、前記ファイルの拡張子、(ファイルの属性が前記プロセスのスレッドにより変更されることで)前記ファイルを開く際に生成される前記プロセスのスレッドの挙動、及び前記プロセスのスレッドのインターネットへのアクセスをチェックする1つ又は複数のルールと比較し、
    前記最終実行ステップでは、前記比較結果に基づいて、前記ファイルを悪意のあるファイルであると認識するステップと、ファイルのオープン時に作成されたプロセスの実行を停止するステップと、プロセッサのコンテキストを変更するステップと、次の傍受されたイベントを待つステップのうち少なくとも1つを実行する、
    媒体。
  16. 前記傍受されたイベントは、前記スレッドによるAPI関数呼び出し、API関数からの戻り値、システムコール、システムコールからの戻り値、オペレーティング・システムからの通知のうち1つ又は複数を含む、
    請求項15に記載の媒体。
  17. 前記傍受ステップは、規則決定ステップを更に備え、
    前記規則決定ステップは、前記スレッドによって呼び出されるAPI関数のコーディング規則を決定する、
    請求項15に記載の媒体。
  18. 前記プロセッサのコンテキストは、少なくとも前記プロセッサのレジスタ値を含む、
    請求項15に記載の媒体。
  19. 前記傍受されたイベント及び前記読み取られたコンテキストは、ログに保存される、
    請求項15に記載の媒体。
  20. 前記ルールは、前記分析の深さ又は前記イベントの集約の深さに関する条件を含む、
    請求項15に記載の媒体。
  21. 前記ルールは、サイクルの変数を増加させるための条件を含む、
    請求項15に記載の媒体。
JP2017126206A 2017-02-08 2017-06-28 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法 Active JP6588945B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2017104135A RU2665911C2 (ru) 2017-02-08 2017-02-08 Система и способ анализа файла на вредоносность в виртуальной машине
RU2017104135 2017-02-08
US15/451,850 US10339301B2 (en) 2017-02-08 2017-03-07 System and method of analysis of files for maliciousness in a virtual machine
US15/451,850 2017-03-07

Publications (2)

Publication Number Publication Date
JP2018129019A true JP2018129019A (ja) 2018-08-16
JP6588945B2 JP6588945B2 (ja) 2019-10-09

Family

ID=63037270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017126206A Active JP6588945B2 (ja) 2017-02-08 2017-06-28 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法

Country Status (4)

Country Link
US (2) US10339301B2 (ja)
JP (1) JP6588945B2 (ja)
CN (1) CN108399332B (ja)
RU (1) RU2665911C2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7442313B2 (ja) 2018-12-28 2024-03-04 エーオー カスペルスキー ラボ 仮想マシンにおいて脆弱性を有するファイルを実行するときにログを作成するためのシステムおよび方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201708340D0 (en) * 2017-05-24 2017-07-05 Petagene Ltd Data processing system and method
US10382468B2 (en) * 2017-07-03 2019-08-13 Juniper Networks, Inc. Malware identification via secondary file analysis
RU2708355C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде
US11070632B2 (en) * 2018-10-17 2021-07-20 Servicenow, Inc. Identifying computing devices in a managed network that are involved in blockchain-based mining
CN111723361A (zh) * 2019-03-21 2020-09-29 北京京东尚科信息技术有限公司 一种恶意用户拦截方法和系统
US11080394B2 (en) * 2019-03-27 2021-08-03 Webroot Inc. Behavioral threat detection virtual machine
CN112395593B (zh) * 2019-08-15 2024-03-29 奇安信安全技术(珠海)有限公司 指令执行序列的监测方法及装置、存储介质、计算机设备
CN112579249A (zh) * 2019-09-30 2021-03-30 奇安信安全技术(珠海)有限公司 多cpu虚拟机的运行方法及装置、存储介质、计算机设备
US11531755B2 (en) * 2020-11-25 2022-12-20 Microsoft Technology Licensing, Llc Detecting ransomware among files using information that is not included in content of the files

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008500653A (ja) * 2004-06-29 2008-01-10 インテル・コーポレーション サンドボックス法によるコンピュータセキュリティ向上方法
US8290763B1 (en) * 2008-09-04 2012-10-16 Mcafee, Inc. Emulation system, method, and computer program product for passing system calls to an operating system for direct execution
US8479276B1 (en) * 2010-12-29 2013-07-02 Emc Corporation Malware detection using risk analysis based on file system and network activity
JP2014516191A (ja) * 2011-06-08 2014-07-07 マカフィー, インコーポレイテッド 仮想パーティションを監視するためのシステムおよび方法
JP2015166952A (ja) * 2014-03-04 2015-09-24 順子 杉中 情報処理装置、情報処理監視方法、プログラム、及び記録媒体

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3085899B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 マルチプロセッサシステム
JP3688773B2 (ja) * 1995-10-31 2005-08-31 株式会社東芝 Mri装置
US7779472B1 (en) 2005-10-11 2010-08-17 Trend Micro, Inc. Application behavior based malware detection
US9594656B2 (en) * 2009-10-26 2017-03-14 Microsoft Technology Licensing, Llc Analysis and visualization of application concurrency and processor resource utilization
US8479286B2 (en) 2009-12-15 2013-07-02 Mcafee, Inc. Systems and methods for behavioral sandboxing
US9501644B2 (en) 2010-03-15 2016-11-22 F-Secure Oyj Malware protection
US20120144489A1 (en) 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
US8555385B1 (en) * 2011-03-14 2013-10-08 Symantec Corporation Techniques for behavior based malware analysis
US9177146B1 (en) 2011-10-11 2015-11-03 Trend Micro, Inc. Layout scanner for application classification
CN102750475B (zh) * 2012-06-07 2017-08-15 中国电子科技集团公司第三十研究所 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
US9619346B2 (en) 2013-10-31 2017-04-11 Assured Information Security, Inc. Virtual machine introspection facilities
US9262635B2 (en) * 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
RU2580030C2 (ru) 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
US20150379268A1 (en) * 2014-06-27 2015-12-31 Prabhat Singh System and method for the tracing and detection of malware
US9984230B2 (en) * 2015-06-26 2018-05-29 Mcafee, Llc Profiling event based exploit detection
CN106682513A (zh) * 2016-11-28 2017-05-17 北京奇虎科技有限公司 一种目标样本文件的检测方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008500653A (ja) * 2004-06-29 2008-01-10 インテル・コーポレーション サンドボックス法によるコンピュータセキュリティ向上方法
US8290763B1 (en) * 2008-09-04 2012-10-16 Mcafee, Inc. Emulation system, method, and computer program product for passing system calls to an operating system for direct execution
US8479276B1 (en) * 2010-12-29 2013-07-02 Emc Corporation Malware detection using risk analysis based on file system and network activity
JP2014516191A (ja) * 2011-06-08 2014-07-07 マカフィー, インコーポレイテッド 仮想パーティションを監視するためのシステムおよび方法
JP2015166952A (ja) * 2014-03-04 2015-09-24 順子 杉中 情報処理装置、情報処理監視方法、プログラム、及び記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7442313B2 (ja) 2018-12-28 2024-03-04 エーオー カスペルスキー ラボ 仮想マシンにおいて脆弱性を有するファイルを実行するときにログを作成するためのシステムおよび方法

Also Published As

Publication number Publication date
US20180225447A1 (en) 2018-08-09
CN108399332B (zh) 2022-03-08
JP6588945B2 (ja) 2019-10-09
RU2017104135A3 (ja) 2018-08-08
US10642973B2 (en) 2020-05-05
CN108399332A (zh) 2018-08-14
RU2017104135A (ru) 2018-08-08
US20190272371A1 (en) 2019-09-05
RU2665911C2 (ru) 2018-09-04
US10339301B2 (en) 2019-07-02

Similar Documents

Publication Publication Date Title
JP6588945B2 (ja) 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法
JP6259862B2 (ja) ランダムアクセスメモリ内の悪質なコードを検出するためのシステムおよび方法
JP6706273B2 (ja) インタープリタ仮想マシンを用いた挙動マルウェア検出
US9405899B2 (en) Software protection mechanism
US9336390B2 (en) Selective assessment of maliciousness of software code executed in the address space of a trusted process
JP6568564B2 (ja) ファイルのウイルス対策スキャン実行のため仮想マシン上にログを生成するシステム及び方法
US9223964B2 (en) Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking
US20170090929A1 (en) Hardware-assisted software verification and secure execution
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
RU2649794C1 (ru) Система и способ формирования журнала в виртуальной машине для проведения антивирусной проверки файла
CN113821297B (zh) 仿真器和仿真方法
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
EP3361406A1 (en) System and method of analysis of files for maliciousness in a virtual machine
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти
EP4312401A1 (en) Methods and systems for analyzing environment-sensitive malware with coverage-guided fuzzing
Nguyen et al. Pushdown model generation of malware

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190913

R150 Certificate of patent or registration of utility model

Ref document number: 6588945

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250