JP2017215954A - アンチウイルススキャンを実行するために分散システムを構成する仮想マシン間でファイルを配布するシステム及び方法 - Google Patents

アンチウイルススキャンを実行するために分散システムを構成する仮想マシン間でファイルを配布するシステム及び方法 Download PDF

Info

Publication number
JP2017215954A
JP2017215954A JP2017093979A JP2017093979A JP2017215954A JP 2017215954 A JP2017215954 A JP 2017215954A JP 2017093979 A JP2017093979 A JP 2017093979A JP 2017093979 A JP2017093979 A JP 2017093979A JP 2017215954 A JP2017215954 A JP 2017215954A
Authority
JP
Japan
Prior art keywords
virtual machine
scan
time
virtual machines
file
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
JP2017093979A
Other languages
English (en)
Other versions
JP6469165B2 (ja
Inventor
オー. フラッツネフ デニス
O Vlaznev Denis
オー. フラッツネフ デニス
エム. ヴォイトフ ニキータ
M Voitov Nikita
エム. ヴォイトフ ニキータ
エー. ヴァシリエフ マキシム
A Vasilyev Maxim
エー. ヴァシリエフ マキシム
イー. ナウモフ マキシム
E Naumov Maxim
イー. ナウモフ マキシム
エス. セメノフ エフゲニー
S Semenov Evgeny
エス. セメノフ エフゲニー
ワイ. オニシュチェンコ アレクサンダー
Y Onishchenko Alexander
ワイ. オニシュチェンコ アレクサンダー
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 JP2017215954A publication Critical patent/JP2017215954A/ja
Application granted granted Critical
Publication of JP6469165B2 publication Critical patent/JP6469165B2/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/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
    • 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/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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
    • 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/45591Monitoring or debugging support
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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/033Test or assess software
    • 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
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】複数の仮想マシンを有する分散ネットワーク内の悪意のあるファイルを検出する方法及びシステムを提供する。【解決手段】アンチウイルススキャンを実行するための少なくとも1つのファイルを仮想マシンが決定し211、各仮想マシンの計算資源の特性に関連するデータを収集し212アンチウィルススキャンに関連するパラメータを収集し214、計算資源の特性近似時間関数を決定し213、アンチウィルススキャンの有効性近似時間関数を決定する216ために1つ以上のパラメータ近似関数を決定し215、アンチウィルススキャンの有効性近似時間関数に少なくとも基いて、少なくとも1つのファイルが悪意のあるものか否かを決定するために、アンチウィルススキャンを実行し221、少なくとも1つの仮想マシンを選択する。【選択図】図2

Description

本発明は、概してサイバーセキュリティの分野に関し、より具体的には、仮想マシンの分散システムにおける悪意のあるファイルを検出するシステム及び方法に関する。
クラウド技術を含むコンピュータ技術の過去10年の急速な発展、そして様々なコンピュータデバイス(パーソナルコンピュータ、ノートブック、タブレット、スマートフォン等)の普及は、人間活動のあらゆる領域においてこれらデバイスの使用や膨大な量のタスク(インターネットを介したインターネットサーフィンやコミュニケーションから銀行振込や電子文書トラフィックまで)を強力に後押ししている。コンピュータデバイスの数の増加と並行して、これらのデバイスで実行されるソフトウェアの量も、悪意のあるソフトウェアを含めて急速に増加している。
現在、膨大な種類の悪意のあるプログラムが存在している。その中には、ユーザのデバイスから個人情報や機密データ(ログイン、パスワード、銀行情報、電子文書等)を盗むものがある。また、ブルートフォース方式によってユーザの機器からパスワードを推測する、いわゆるボットネットを形成するものや、他のコンピュータ又はコンピュータ・ネットワークに対してDDOS(Distributed Denial Service)のような攻撃を始めるものもある。更に、攻撃的な広告、有料契約、有料電話番号へのテキストメッセージ送信等を介して、ユーザに有料コンテンツを押し付けるといったものもある。
アンチウイルスプログラムは、悪意のあるプログラムを撃退するために使用され得る。効果的な解決には、何よりもまず悪意のあるプログラムのコードを含むファイルを適時に検出する必要があり、これにはシグネチャ、ヒューリスティック及びプロアクティブ分析、ブラックリスト・ホワイトリスト等のさまざまなテクノロジをアンチウイルスプログラムは採用し得る。これらの各テクノロジは、特定の悪意のあるファイルを検出する潜在的な能力と、そのテクノロジを実行しているコンピュータシステムの計算資源の要件に基づいて、悪意のあるファイルを検出する独自の効果を持ち得る。
現在、コンピュータシステムによって処理されるデータ(ファイルを含む)の量は非常に膨大であり、アンチウイルスプログラムによるアンチウイルススキャンに時間がかかり、パーソナルコンピュータのユーザにとって特に重要な計算資源を必要とすることがある。従って、悪意のあるファイルの検出の有効性を高めるために、悪意のあるファイルの検索が行われるコンピュータシステムの計算資源を増加させる方法を利用することができる。例えば、分散システムを利用して悪意のあるファイルを検索することができる。そのようなシステムは複数のサーバから構成され、各サーバ上で、スキャンされる必要のある一部のファイルのみがスキャンされ得る。
既知の運用方法では、ファイルのウイルススキャンを実行しているコンピュータシステムに大きな負荷がかかっている場合、またはファイルのウイルススキャンに関与しているコンピュータシステムの一部が機能していない場合には有効ではない。
本開示は、仮想マシンの分散システムにおける悪意のあるファイルを検出するシステム及び方法である。1つの例示的な態様では、複数の仮想マシンを有する分散ネットワークにおける悪意のあるファイルを検出する方法であって、決定及び取得工程と、収集工程と、関数決定工程1と、関数決定工程2と、選択工程と、を備え、上記決定及び取得工程では、アンチウイルススキャンを実行するために、上記複数の仮想マシンのうちの1つの仮想マシンに格納された少なくとも1つのファイルを、上記仮想マシンが決定して取得し、上記収集工程では、上記複数の仮想マシンの計算資源の特性に関するデータと、上記アンチウイルススキャンに関連する1つ以上のパラメータを、上記仮想マシンが収集し、上記関数決定工程1では、少なくとも収集されたデータに基いて、上記複数の仮想マシンの計算資源の特性近似時間関数と上記アンチウィルススキャンに関連する1つ以上のパラメータ近似関数を決定し、上記関数決定工程2では、少なくとも上記計算資源の特性近似時間関数と上記1つ以上のパラメータ近似関数に基いて、上記アンチウィルススキャンの有効性近似時間関数を決定し、上記選択工程では、少なくとも上記アンチウィルススキャンの有効性近似時間関数に基いて、上記少なくとも1つのファイルが悪意のあるものか否かを決定するために、上記複数の仮想マシンから上記アンチウィルススキャンを実行する少なくとも1つの仮想マシンを選択する。
別の例示的な態様においては、上記選択工程は、以下の基準(1)〜(5)のうちの少なくとも1つを満たすことによって、上記アンチウイルススキャンの実行に際し最も効果的な開始時間を決定する工程を備え、
上記基準(1)は、上記アンチウィルススキャンにかかる時間が最も少ないことであり、
上記基準(2)は、上記アンチウィルススキャンにかかる時間が予定されていたものよりも短いことであり、
上記基準(3)は、上記アンチウィルススキャンが予定されていた時間までに完了することであり、
上記基準(4)は、上記アンチウィルススキャンを実行するために必要とする上記仮想マシンの計算資源が最小であることであり、
上記基準(5)は、上記アンチウィルススキャンを実行するために必要とする上記仮想マシンの計算資源が予定されていたものより少ないことである。
更に別の例示的な態様では、上記選択工程は、
予定されたタイムスロットで利用可能な計算資源を用いて、上記少なくとも1つの仮想マシンが、上記少なくとも1つのファイルのアンチウィルススキャンを少なくとも実行することができることを検出する工程、
上記分散ネットワーク内の複数の仮想マシンの中で計算された作業負荷レベルが最も低い上記少なくとも1つの仮想マシンを検出する工程、
上記計算された作業負荷レベルが設定された閾値よりも低い上記少なくとも1つの仮想マシンを検出する工程、又は
上記複数の仮想マシンのうち2つ以上の仮想マシンであって、それらの結合作業負荷レベルが、上記複数の仮想マシンの残りの仮想マシンの結合された作業負荷レベルよりも小さいものを検出する工程、のいずれかを備える。
別の例示的な態様では、上記収集工程は、上記少なくとも1つのファイルの取得と、上記少なくとも1つのファイルが悪意のあるものかの決定との間の時間間隔を検出する工程、上記アンチウィルススキャンのために上記仮想マシンへ転送されたファイルの数を検出する工程、上記複数の仮想マシンの各々の計算能力を検出する工程、の少なくともいずれか1つを備える。
別の例示的な態様では、上記アンチウィルススキャンに関連する1つ以上のパラメータは、上記複数の仮想マシンによって利用される上記悪意のあるファイルを検出する方法であって、シグネチャ解析、ヒューリスティック分析、エミュレーション結果の分析、ホワイトリスト・ブラックリストによる分析、のうちの少なくとも1つを含む方法か、上記アンチウイルススキャンを実行するために利用される上記複数の仮想マシンの上記計算資源の特性、の少なくともいずれか1つを備える。上記悪意のあるファイルを検出する方法は、少なくとも上記アンチウイルススキャンが行われる最長時間とスキャンされるファイルのエミュレーションの深度、に基づいて決定される。
更に別の例示的な態様では、上記複数の仮想マシンの計算資源の特性に関する近似時間関数は、少なくとも各仮想マシンの上記計算資源の特性に関する収集されたデータに基づいて決定され、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、上記時間は各仮想マシンの上記計算資源の特性の決定時間、及び上記時間は各仮想マシンの上記計算資源の特性を決定するために必要な時間、である。
更に別の例示的な態様では、上記アンチウイルススキャンに関連する上記1つ以上のパラメータ近似関数は、少なくとも上記計算資源の特性に対する上記アンチウイルススキャンの推定パラメータに関するデータ及び上記アンチウイルススキャンを実行するための各仮想マシンの上記計算資源の特性、に基づいて決定される。
別の例示的な態様では、上記アンチウイルススキャンの上記有効性近似時間関数が、上記少なくとも1つのファイルのタイプ及びサイズを定義するパラメータに基づいて決定される。
本発明の例示的な態様によれば、複数の仮想マシンを有する分散ネットワークにおいて悪意のあるファイルを検出するシステムは、少なくとも1つのシンクライアントが動作している複数の仮想マシンのうちの1つの仮想マシンを備え、上記仮想マシンは、アンチウイルススキャンを実行するために、上記仮想マシンに格納された少なくとも1つのファイルを決定して取得し、上記複数の仮想マシンの計算資源の特性に関連するデータと上記アンチウイルススキャンに関連する1つ以上のパラメータを収集し、収集されたデータに少なくとも基いて、上記複数の仮想マシンの計算資源の特性近似時間関数と上記アンチウィルススキャンに関連する上記1つ以上のパラメータ近似関数を決定し、上記計算資源の特性近似時間関数と上記1つ以上のパラメータ近似関数に少なくとも基いて、上記アンチウィルススキャンの有効性近似時間関数を決定し、上記アンチウィルススキャンの上記有効性近似時間関数に少なくとも基いて、上記少なくとも1つのファイルが悪意のあるものか否かを決定するために、上記複数の仮想マシンから上記アンチウィルススキャンを実行する少なくとも1つの仮想マシンを選択するように構成されている。
更に、本発明の他の例示的な態様によれば、複数の仮想マシンを有する分散ネットワーク内の悪意のあるファイルを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、命令には、決定及び取得命令と、収集命令と、関数決定命令1と、関数決定命令2と、選択命令と、を含み、上記決定及び取得命令は、アンチウイルススキャンを実行するために、上記複数の仮想マシンのうちの1つの仮想マシンに格納された少なくとも1つのファイルを決定して取得することを命令し、上記収集命令は、上記複数の仮想マシンの計算資源の特性に関連するデータと上記アンチウイルススキャンに関連する1つ以上のパラメータを収集させ、上記関数決定命令1では、収集されたデータに少なくとも基いて、上記複数の仮想マシンの計算資源の特性近似時間関数と上記アンチウィルススキャンに関連する上記1つ以上のパラメータ近似関数を決定させ、上記関数決定命令2は、上記計算資源の特性近似時間関数と上記1つ以上のパラメータ近似関数に少なくとも基いて、上記アンチウィルススキャンの有効性近似時間関数を決定させ、上記選択命令は、上記アンチウィルススキャンの上記有効性近似時間関数に少なくとも基いて、上記少なくとも1つのファイルが悪意のあるものか否かを決定するために、上記複数の仮想マシンから上記アンチウィルススキャンを実行する上記少なくとも1つの仮想マシンを選択させる。
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本発明の1つ以上の例示的な態様を示し、詳細な説明とともに、それらの原理及び実施形態を説明する役割を果たす。
図1は、本発明の態様による、仮想マシン上の悪意のあるファイルを検出するための例示的なシステムを示す。 図2は、本発明の態様による、仮想マシン上の悪意のあるファイルを検出する例示的な方法を示す。 図3は、本発明の態様による、保護する仮想マシンの計算資源の特性近似時間関数を示す。 図4は、本発明の態様による、いくつかの保護する仮想マシンの計算資源の特性近似時間関数を示す。 図5は、開示されたシステム及び方法を実施することができるコンピュータシステム、パーソナルコンピュータまたはサーバを示す。
発明の詳細な説明
例示する態様は以下、複数の仮想マシンを有する分散ネットワーク内の悪意のあるファイルを検出するためのシステム、方法、及びコンピュータプログラム製品に関連して説明される。当業者であれば、以下の説明は例示的なものに過ぎず、決して限定するものではないことを理解するであろう。他の態様は、本開示の利益を享受する当業者に容易に示唆されるであろう。以下、添付の図面に示されている例示的な態様の実装について詳細に述べる。同一の参照符号は、同一またはそれに相当するものを参照するため、図面及び以下の説明全体を通じて、可能な限り使用される。
以下の定義は、本発明の様々な態様を説明する際に使用される。
保護された仮想マシンは、シンクライアントが実行されているコンピュータ環境内において、ハイパーバイザの制御下で、インストールされたゲストオペレーティングシステムによって動作する仮想マシンを含むことができる。
保護する仮想マシンは、保護サーバが動作している環境において、ハイパーバイザの制御下で、インストールされたオペレーティングシステムによって動作する仮想マシンであってもよい。
シンクライアントには、保護された仮想マシンを悪意のあるプログラムやコンピュータの脅威から保護し、ネットワーク内のアンチウイルススキャンのためにファイルを保護する仮想マシンに送信するように構成されたソフトウェアが含まれていてもよい。
保護サーバは、保護された仮想マシンから受信したファイルのアンチウイルススキャンを実行するように構成されたソフトウェアを含むことができる。
図1は、本発明の態様による仮想マシン上の悪意のあるファイルの検出のための例示的なシステムを示す。仮想マシン上の悪意のあるファイルを検出するためのシステムの構造図は、保護された仮想マシン100、アンチウイルススキャンを必要とするファイルストレージ101、シンクライアントモジュール110、収集モジュール111、動的コンピューティングモジュール112、 選択モジュール113、タスク形成モジュール114、保護する仮想マシン120と、スキャンモジュール121とを含む。
仮想マシン上の悪意のあるファイルを検出するためのシステムは、シンクライアント110が動作している環境内において、ハイパーバイザの制御下で、インストールされたゲストオペレーティングシステムによって動作する保護された仮想マシン100、及び、スキャンモジュール121が各々動作している環境において、ハイパーバイザの制御下で、インストールされたゲストオペレーティングシステムによって動作する保護する仮想マシン120を含むことができる。
保護する仮想マシン120は、シンクライアント110から受信したファイルに対してアンチウイルススキャンを実行するように構成することができ、これにはスキャンモジュール121を含むことができる。
スキャンモジュール121は以下のように構成することができる。
・タスク形成モジュール114から受信したファイルに対してアンチウイルススキャンを実行する。
・悪意のあるファイルの検出に関する判定を提示する。
保護された仮想マシン100は、ファイルストレージ101内でアンチウイルススキャンを必要とするファイルを検出し、アンチウイルススキャンを実行するためにこれらをシンクライアントモジュール110に転送するように構成することができる。
シンクライアントモジュール110は、保護された仮想マシン100を悪意のあるファイルから保護するように構成することができ、これには収集モジュール111、動的コンピューティングモジュール112、選択モジュール113、及びタスク形成モジュール114を含むことができる。
収集モジュール111は、以下のように構成することができる。
・保護する仮想マシン120の計算資源の特性を収集する。
・スキャンモジュール121のアンチウイルススキャンのパラメータを収集し、スキャンモジュール121は、対応している保護する仮想マシン120にインストールすることができ、上記パラメータは、対応している保護する仮想マシン120の計算資源のスキャンモジュール121によって利用の規則を命令し、上記利用の規則は、アンチウイルススキャンを含む特定のアクションを実行するために、保護する仮想マシン120のどの計算資源がスキャンモジュール121に提供されるかを命令する。
・計算資源の収集された特性及びアンチウイルススキャンのパラメータを動的コンピューティングモジュール112に送信する。
保護する仮想マシン120の計算資源の特性は以下を含むことができる。
・タスク形成モジュール114からのファイル受信から、スキャンモジュール121による判定の提示までの間に経過した時間。
・アンチウイルススキャンのためにスキャンモジュール121に送信されたファイルの数。
・スキャンモジュール121が動作している保護する仮想マシン120の計算能力。
例えば、本発明の一態様によれば、スキャンモジュール121が動作している保護する仮想マシン120の計算資源の収集された特性は、保護する仮想マシン120の計算資源の単一の特性を形成するように一般化することができ、それは一連の数{Δ, N, {M, B}}を含むことができ、
当該一連の数は、動的コンピューティングモジュール112へ収集されたデータを送信する各時点tにおける数を示す。
ここで、
Δは、タスク形成モジュール114によるファイルストレージ101からのファイル受信から、スキャンモジュール121によって判定が提示されるまでにかかった経過時間である。
Nは、上記時点tiにおいてアンチウイルススキャンを実行するためにスキャンモジュール121へ送信されたファイルの数である。
Mは、上記時点tにおける保護する仮想マシン120の空きメモリの量である。
Bは、上記時点tにおける保護する仮想マシン120のCPU負荷である。
上記一連の数は、多次元近似関数(そのうちの1つの係数は時間)を計算するのに十分であり、スキャンモジュール121の動作を定義することができる。
スキャンモジュール121によって実行される上記アンチウイルススキャンのパラメータは以下を含むことができる。
・上記アンチウィルススキャンを実行するためにスキャンモジュール121によって用いられる悪意のあるファイルを検出する方法であって、上記悪意のあるファイルを検出する方法には以下を含むことができる。
−シグネチャ解析
−ヒューリスティック分析
−エミュレーション結果の分析
−ブラックリストとホワイトリストの分析
・上記アンチウイルススキャンを実行するためにスキャンモジュール121によって利用されている上記計算資源の特性。
上記悪意のあるファイルの検出方法を定義することのできる上記パラメータには、以下を含むことができる。
・上記アンチウイルススキャンが実行される最大時間。
・スキャンされるファイルの上記エミュレーションの深度。
スキャンモジュール121が動作している保護する仮想マシン120の上記計算能力は以下を含むことができる。
・スキャンモジュール121が動作している上記保護する仮想マシン120の上記RAM。
・上記保護する仮想マシン120のCPUパフォーマンス。
上記ファイルのアンチウイルススキャンを実行するためにスキャンモジュール121によって利用される上記パラメータは、スキャンモジュール121によって提示される判定の精度に影響を及ぼすおそれがある。例えば、悪意のあるファイルの中で悪意のあるファイルを検出しない可能性や、逆に、アンチウイルススキャンを実行するときに正当なファイルの中で悪意のあるファイルを検出する可能性がある。例をあげると、保護する仮想マシン#1 120.1のスキャンモジュール121が、0.01秒以内にシグネチャ解析を用いてタスク形成モジュール114から受信した各ファイルのスキャンを実行し、保護する仮想マシン#2 120.2のスキャンモジュール121は、10個に相当するスキャンされたファイルのエミュレーションの深度(ネストされたコールの最大数)について0.1秒以内にヒューリスティック分析を使用し、そして、保護する仮想マシン#3 120.3のスキャンモジュール121は、1000個に相当するスキャンされたファイルのエミュレーションの深度について0.04秒以内にヒューリスティック分析を使用することができる。その結果、最も速いのは、保護する仮想マシン#1 120.1上で動作するスキャンモジュール121を利用することを含むかもしれないが、最も効果的なスキャン手段、すなわち、保護する仮想マシンの最大量の計算資源を利用するスキャン手段は、保護する仮想マシン#3 120.3上で動作するスキャンモジュール121を利用することを含み得ることが分かる。
動的コンピューティングモジュール112は、以下のような要素(A)〜(D)を行うように構成され得る。
要素(A):収集モジュール111によって収集された計算資源の特性の分析に基づいて、各々の保護する仮想マシン120の計算資源の特性近似時間関数を決定する。
なお、当該近似関数は次のように表され得る。

ここで、
charは、近似時間関数であり、
{C}ti,jは、収集モジュール111によって収集された保護する仮想マシン120の計算資源の特性であり、
{C}tは、時点tにおいてアクセス可能な保護する仮想マシン120の計算資源の特性であり、
、tは、保護する仮想マシン120の計算資源の特性の決定時間であり、
は、保護する仮想マシン120の計算資源の特性を決定するために必要な時間である。
そして、当該近似関数が以下の形式で示されるように、パラメータa、a、...ai、によって定義することができる。

要素(B):収集モジュール111によって収集されたアンチウイルススキャンのパラメータの分析に基づき、対応する保護する仮想マシン120の計算資源の特性に応じて、各スキャンモジュール121のアンチウイルススキャンのパラメータ近似関数を決定する。
なお、この近似関数は、以下の形式を有することができる。

ここで、
Fparamsは、近似関数であり、
{P}ci,jは、収集モジュール111によって収集されたアンチウイルススキャンのパラメータであって、計算資源Cの特性に依存しており、
{P}cは、計算資源cの特性に対するアンチウイルススキャンの推定パラメータであり、
i,jは、保護する仮想マシン120の計算資源の特性であって、アンチウイルススキャンを実行するときにスキャンモジュール121によって使用されるものである。
そして、当該近似関数が以下の形式で示されるように、パラメータb、b、...bによって定義することができる。

要素(C):決定された関数の合成(関数合成)として、各々の保護する仮想マシン120上のアンチウイルススキャンの有効性近似時間関数を決定する。ここで、関数合成は、ある関数を別の関数の結果に適用することによって得られる関数であり、アンチウイルススキャンの有効性は、アンチウイルススキャンで確定された結果を達成するために、保護する仮想マシン120が必要とする計算資源の量を特性づけるものであり、当該近似関数は以下の形式を有する。

ここで、
efficiencyは、近似関数であり、
{F}は、タスク形成モジュール114によって受信されたファイルを特性付けるパラメータであり、当該パラメータは以下を定義することができ、
・ファイルタイプ
・ファイルサイズ
{C}は、保護する仮想マシン120の計算資源の特性近似時間関数を示すパラメータであり、
{P}は、 保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウイルススキャンのパラメータ近似関数を示すパラメータである。
そして、当該近似関数が以下の形式で示されるように、パラメータe、e、...eによって定義すことができる。

要素(D):各々の保護する仮想マシン120上のアンチウイルススキャンの有効性のために、決定された近似時間関数を選択モジュール113に送信する。
保護する仮想マシン120の計算資源の特性近似時間関数を定義するパラメータは、近似関数の数値係数といったものでもよい。

ここで、
{C}tは、収集モジュール111によって収集された保護する仮想マシン120の計算資源の特性であり、
は、保護する仮想マシン120の計算資源の特性を集める時間であり、
は、 近似関数を示す数値係数である。
保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウイルススキャンのパラメータ近似関数を定義するパラメータは、近似関数の数値係数といったものを含んでもよい。

ここで、
{P}cは、スキャンモジュール121によって実行されたアンチウィルススキャンのパラメーターであって、収集モジュール111によって収集されたものであり、
は、保護する仮想マシン120の計算資源の特性であり、
は、 近似関数を定義づける数値係数である。
保護する仮想マシン120のスキャンモジュール121の作業負荷レベルは、保護する仮想マシン120上のアンチウイルススキャンの有効性としての役割を果たすことができる。
保護する仮想マシン120のスキャンモジュール121の作業負荷レベルは、保護する仮想マシン120の計算資源の特性近似時間関数を定義づけるパラメータのセットと、保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウィルススキャンのパラメータの近似時間関数を定義するパラメータのセットとの累積として計算することができ、以下の形式を有する。

ここで、
{F}は、タスク形成モジュール114によって受信されたファイルを特性づけるパラメータであり、
{C}は、保護する仮想マシン120の計算資源の特性近似時間関数を定義づけるパラメータであり、
{P}は、保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウィルススキャンのパラメータ近似時間関数を表すパラメータである。
回帰分析法を使用して、近似時間関数を定義する際のパラメータを計算することができる。
例えば、ファイルのアンチウイルススキャンを実行するために利用されるRAM容量が、保護する仮想マシン120の計算資源の特性である場合には、以下の式の通り、線形関数を近似関数として決定することができる。

この場合、パラメータa、aは、 次のように計算することができる。

ここで、
nは、アンチウイルススキャンの実行に利用されているRAM容量の値が取得されたタイムスタンプの数であり、
は、アンチウイルススキャンを実行するために利用されているRAM容量Xの値を取得するタイムスタンプであり、
は、時点tにおいてアンチウイルススキャンを実行するために利用されているRAM容量の値Xである。
選択モジュール113は、以下のように構成することができる。
・動的コンピューティングモジュール112から得られたアンチウイルススキャンの有効性機能に基づいてスキャンモジュール121を選択する。
・以下の基準の少なくとも1つが満たされるように、選択されたスキャンモジュール121に対して、アンチウイルススキャンの実行の開始時間を決定する。
−アンチウィルススキャンにかかる時間が最も少ない
−アンチウィルススキャンにかかる時間が予定されていたものよりも少ない
−アンチウィルススキャンが予定されていた時間までに完了する
−アンチウィルススキャンを実行するために必要とする上記仮想マシンの計算資源が最小である
−アンチウィルススキャンを実行するために必要とする前記仮想マシンの計算資源が予定されていたものより少ない
・選択されたスキャンモジュール121によるアンチウィルススキャンの実行に最も効果的な開始時間を含んでいる、選択されたスキャンモジュール121に関する情報を、タスク形成モジュール114に送る。
選択されたスキャンモジュール121は以下を含むことができる。
・予定されたタイムスロットで利用可能な計算資源を用いて、少なくともタスク形成モジュール114によって決定されたファイルのアンチウイルススキャンを実行することができるスキャン手段と、
・計算された作業負荷レベルが最も低いスキャンモジュール121と、
・計算された作業負荷レベルが設定された閾値より低いスキャンモジュール121と、
・2つ以上のファイルのアンチウイルススキャンが必要な場合、一連のスキャンモジュール121のうち少なくとも2つ以上のスキャンモジュール121であって、それらの計算された作業負荷レベルの合計が、残りのスキャンモジュール121の作業負荷レベルの合計よりも小さいもの。
例えば、スキャンモジュール121の作業負荷レベルは、次のように決定され、計算されてもよい。
アンチウイルススキャンを実行する必要のある、各々10MB、20MB、50MBの3つのファイルが存在する。スキャンモジュール121は、アンチウイルススキャンを説明するパラメータを、最大0.01秒を要するシグネチャ解析として提示する一方、スキャンモジュール121が実行されている保護する仮想マシン120の特性は、60MBの利用可能なRAM容量を有することができる。シグネチャ解析は、ファイルがそのままRAMに置かれる、すなわち、そのファイルサイズと同じ容量を占めることを意味する。 スキャンモジュール121の負荷が最大になるためには、2段階で上記3つのファイルを送信する必要がある。第1段階ではファイル#1とファイル#3、第2段階ではファイル#2となる。その結果、3つのファイルすべてのアンチウイルススキャンには0.02秒かかり、スキャンモジュール121の作業負荷レベルは各々1と0.3(3)になり、結果として得られる上記3つのファイルの作業負荷は0.6(6)になる。これは、ファイル#2のスキャンの間、スキャンモジュール121が新しいファイルを処理するのに十分な計算資源を有することを考慮すると、最適な結果である。
この場合、作業負荷レベルは次のように計算される。
タスク形成モジュール114は以下のように構成することができる。
・アンチウイルススキャンの実行のためにシンクライアントモジュール110が実行されている保護された仮想マシン100のファイルを決定する。
・収集モジュール111にコマンドを送信して、保護する仮想マシン120の計算資源の特性及びスキャンモジュール121のアンチウイルススキャンのパラメータの収集を実行する。
・選択モジュール113によって決定されたスキャン時間に従って、選択モジュール113によって提供された情報である、スキャンモジュール121に決定されたファイルを転送する。
例えば、保護する仮想マシン120のスキャンモジュール121が選択された場合には、ファイルのアンチウイルススキャンを即座に行ってもよいし、一定時間後に行ってもよい。スキャンモジュール121がこれに先立ってタスク形成モジュール113から受信したファイルのアンチウイルススキャンを既に実行している場合、新しいファイルのアンチウイルススキャンは行われず、ファイルがハードドライブからメモリにロードされ、スキャンモジュール121がアンチウイルススキャンを実行し、実行中のアンチウイルススキャンが終了するまで、ファイルは保存されてもよい(例えば、保護する仮想マシン120のハードドライブ上)。前述のスキャンモジュール121の動作論理において、(作業が適切に構成されていれば)時間はかかるが必須ではない2つの作業が実行されてもよい。すなわち、ディスクへのファイルの書き込み及びディスクからのファイルの読み取りである。しかし、前述のファイルがスキャンモジュール121に送信されたのが、スキャンモジュール121の選択の直後ではなく、スキャンモジュール121がその前のタスクを実行した後の時間の間だった場合、ファイルのアンチウイルススキャンは、より早く実行され得る。
1つの例示的な態様では、3つの保護する仮想マシン120(120.1、120.2及び120.3)のうち保護された仮想マシン100のシンクライアント110による総容量1GBの1000個のファイルの分布について、悪意のあるファイルの検出が実行される。アンチウイルススキャンを実行するためのスキャンモジュール121は、シグネチャ解析、ヒューリスティック分析、及びホワイトリスト・ブラックリストによる分析を各々使用することができる。前述の分析方法の各々のタイプは、それ自身の有効性(各々0.6、0.95及び0.1)を有することができ、独自の計算資源(200MBの空きRAM、100MFLOPS以上の動作速度のCPU、50MBの空きRAM、10MFLOPS以上の空きRAMを備えたCPU)を必要とする。これは、平均して各スキャンモジュール121が0.01、0.1、0.002秒でファイルを処理することができることを意味する。
最初に、保護する仮想マシン120の動作に関する統計が利用可能でない場合、所与の保護する仮想マシン120がどの程度速くアンチウイルススキャンを実行できるかに従って、ファイルは、タスク形成モジュール114によって一様に分散されてもよい。時間の経過とともに、動的コンピューティングモジュール112は、計算資源の特性に関する統計と、異なる時点における全ての保護する仮想マシン120のアンチウイルススキャンのパラメータとを蓄積することができ、特性及びパラメータの近似関数を計算することが可能になる。
保護する仮想マシン#1 120.1の場合、空きRAM容量のみが重要となり、これは線形時間法則M(t)=a×t+aに従う変更である。収集されたデータ{M,t}に基づいて、最小二乗解析によりパラメータa及びaを計算することで、保護する仮想マシン#1 120.1のスキャンモジュール121へアンチウイルススキャンの実行のためにファイルを送信する時点tにおいて、保護する仮想マシン#1 120.1がどれぐらいの空きRAMを有するのか予測することが可能になる。タスク形成モジュール114は、任意の時点においてどれぐらいのRAMが利用可能であるかを知っているため、スキャンモジュール121にどのファイルを送信すればそれらのファイルを最小時間で処理できるのかを推測することができる。
保護する仮想マシン#2 120.2及び#3 120.3についても同様のステップがとられ、RAMの他にCPU動作速度も利用される。法則B(t)=a×t+a×t+a×t+aに従う保護する仮想マシン120のCPU負荷を推定することにより、パラメータa、a、a、aを計算することができる。その後、保護する仮想マシン#2 120.2(または#3 120.3)のスキャンモジュール121にアンチウイルススキャンの実行のためのファイルを送信する時間tにおける保護する仮想マシン120のCPU負荷を予測する。このようにして、保護する仮想マシン120のCPUが最大有効負荷を有するという効果が得られる。
様々な保護する仮想マシン120のスキャンモジュール121の間におけるタスクの分散の結果として、保護する仮想マシン120間でファイルが均一またはランダムに分布される場合よりも保護する仮想マシン120が高い有効性で使用され得ることから、保護された仮想マシン100のファイルに対するアンチウイルススキャンのパフォーマンス速度の増加を達成することができる。
図2は、本発明の態様による仮想マシン上の悪意のあるファイルを検出する例示的な方法を示す。仮想マシン上の悪意のあるファイルの検出方法の構造図は、アンチウイルススキャンを実行するファイルを決定することができるステップ211と、計算資源の特性を収集するステップ212と、計算資源の特性のために近似時間関数を決定することができるステップ213と、アンチウイルススキャンのパラメータを収集することができるステップ214と、計算資源の特性に応じてアンチウイルススキャンのパラメータについて近似関数を決定することができるステップ215と、アンチウイルススキャンの有効性のために近似時間関数を決定することができるステップ216と、スキャンモジュール121を選択することができるステップ217と、アンチウィルススキャン実行を実行するための最も効果的な開始時間を決定することのできるステップ218と、アンチウイルススキャンが実行されるステップ221と、悪意のあるファイルの検出に関して判定を提示することのできるステップ222とを含む。
ステップ211では、上記のシンクライアント110が動作している保護された仮想マシン100のファイル保管場所101に格納されているファイルを、アンチウイルススキャンの実行のために決定することができる。
ステップ212では、スキャンモジュール121が動作している保護する仮想マシン120の計算資源の特性を決定し、収集することができる。
1つの例示的な態様では、ステップ212は、ステップ214と同時に実行されてもよい。
保護する仮想マシン120の計算資源の特性は以下を含むことができる。
・タスク形成モジュール114からのファイルの受信と、スキャンモジュール121による判定の提示との間に経過した時間。
・アンチウイルススキャンのためにスキャンモジュール121に送信されるファイルの数。
・スキャンモジュール121が動作している保護する仮想マシン120の計算能力。
スキャンモジュール121が動作している保護する仮想マシン120の計算能力は以下を含むことができる。
・スキャンモジュール121が実行されている保護する仮想マシン120のRAM。
・保護する仮想マシン120のCPUパフォーマンス。
ステップ213において、各々の保護する仮想マシン120の計算資源の特性近似時間関数は、ステップ212で収集された計算資源の特性の分析に基づいて決定することができ、 当該近似関数は次の形式を有する。

ここで、
charは、近似時間関数であり、
{C}ti,jは、ステップ212で収集された保護する仮想マシン120の計算資源の特性であり、
{C}tは、時点tにおいてアクセス可能な保護する仮想マシン120の計算資源の特性であり、
、tは、保護する仮想マシン120の計算資源の特性の決定の時間であり、
は、 保護する仮想マシン120の計算資源の特性を決定するために必要な時間である。
そしてこれは、当該近似関数が次の形式で示されるようにa、a、...a、などのパラメータで定義することができる。
保護する仮想マシン120の計算資源の特性近似時間関数を定義するパラメータは、近似関数といったもののための数値係数を含むことができる。

ここで、
{C}tは、収集モジュール111によって収集された保護する仮想マシン120の計算資源の特性であり、
は、保護する仮想マシン120の計算資源の特性を収集す時間であり、
は、 近似関数を表す数値係数である。
近似時間関数を表すパラメータを計算するために、回帰分析法を用いることができる。
ステップ214において、対応する保護する仮想マシン120上にインストールすることができるスキャンモジュール121のアンチウイルススキャンのパラメータが決定されてもよく、これらのパラメータは、対応する保護する仮想マシン120の計算資源のスキャンモジュール121によって計算資源の利用規則を決定する。
例示的な一態様では、ステップ214は、ステップ212と同時に実行されてもよい。
スキャンモジュール121によって実行されるアンチウイルススキャンのパラメータは以下を含むことができる。
・ウイルススキャンを実行するためにスキャンモジュール121によって利用される悪意のあるファイルを検出する方法であって、悪意のあるファイルを検出する方法には以下を含むことができる。
−シグネチャ解析
−ヒューリスティック分析
−エミュレーション結果の分析
−ブラックリスト・ホワイトリストの分析
・計算資源の特性であって、アンチウイルススキャンを実行するためにスキャンモジュール121によって利用される特性。
悪意のあるファイルの検出方法を定義するパラメータには以下を含むことができる。
・アンチウイルススキャンが実行される最大時間。
・スキャンされるファイルのエミュレーションの深度。
ステップ215において、対応する保護する仮想マシン120の計算資源の特性に応じて、各スキャンモジュール121のアンチウイルススキャンのパラメータ近似関数を、ステップ214で収集されたアンチウイルススキャンパラメータの分析に基づいて決定することができ、この近似関数は以下の形式を有する。

ここで、
Fparams は、近似関数であり、
{P}ci,jは、 収集モジュール111によって収集されたアンチウイルススキャンのパラメータであって、計算資源cの特性に応じているものであり、
{P}cは、 計算資源cの特性に対するアンチウイルススキャンの推定パラメータであり、
i,jは、保護する仮想マシン120の計算資源の特性であって、アンチウイルススキャンを実行するときにスキャンモジュール121によって利用されるものである。
そして、当該近似関数が以下の形式で表されるようにb、b、...b、というパラメータで定義される。
保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウイルススキャンのパラメータ近似関数を定義するパラメータは、近似関数といったものの数値係数を含むことができる。

ここで、
{P}cは、収集モジュール111によって収集されたスキャンモジュール121によって実行されるアンチウイルススキャンのパラメータであり、
は、保護する仮想マシン120の計算資源の特性であり、
は、近似関数を定義する数値係数である。
ステップ216において、各々の保護する仮想マシン120に対するアンチウイルススキャンの有効性近似時間関数は、ステップ213及びステップ215で決定された関数の合成として決定されてもよい。ここで、この関数合成は、ある関数を別の関数の結果に適用することによって得られる関数を含むことができ、アンチウイルススキャンの有効性は、アンチウイルススキャンで確定された結果を達成するために、保護する仮想マシン120が必要とする計算資源の量を特性づけるものであり、当該近似関数は以下の形式を有する。

ここで、
efficiencyは、近似関数であり、
{F}は、 タスク形成モジュール114によって受信されたファイルを特性付けるパラメータであり、このパラメータは以下を含むことができ、
・ファイルタイプ
・ファイルサイズ
{C}は、保護する仮想マシン120の計算資源の特性近似時間関数を表すパラメータであり、
{P} は、保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウイルススキャンのパラメータ近似関数を表すパラメータであり、
そして、当該近似関数が次の形式で示されるようにe、e、...e、といったパラメータで定義することができる。
保護する仮想マシン120のスキャンモジュール121の作業負荷レベルは、保護する仮想マシン120上のアンチウイルススキャンの有効性としての役割を果たすことができる。
保護する仮想マシン120のスキャンモジュール121の作業負荷レベルは、保護する仮想マシン120の計算資源の特性近似時間関数を定義づけるパラメータのセットと、保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウィルススキャンのパラメータの近似時間関数を定義するパラメータのセットとの累積として計算することができ、以下の形式を有する。

ここで、
{F}は、タスク形成モジュール114によって受信されたファイルを特性づけるパラメータであり、
{C}は、保護する仮想マシン120の計算資源の特性近似時間関数を定義づけるパラメータであり、
{P}は、保護する仮想マシン120の計算資源の特性に応じてスキャンモジュール121によって実行されるアンチウィルススキャンのパラメータの近似時間関数を表すパラメータである。
ステップ217において、スキャンモジュール121は、ステップ216で取得されたアンチウィルススキャンの有効性機能に基づいて、複数の保護された仮想マシン及び保護する仮想マシンを有する分散ネットワーク内で適切なスキャンモジュールを選択するように構成することができる。
選択されたスキャンモジュール121は以下を決定するように構成することができる。
・予定されたタイムスロットにおいて利用可能な計算資源を用いて、少なくともタスク形成モジュール114によって決定されたファイルのアンチウイルススキャンを実行することができる、分散ネットワーク内の複数の保護する仮想マシンのうちの1つのスキャンモジュールと、
・計算された作業負荷レベルが最も低いスキャンモジュール121と、
・計算された作業負荷レベルが設定された閾値よりも低い1つのスキャンモジュール121と、
・一連のスキャンモジュール121のうちの2つ以上のスキャンモジュール121であって、それらの計算された作業負荷レベルの合計が、一連のスキャンモジュール121のうちの残りのスキャンモジュール121の作業負荷レベルの合計よりも小さいもの。
ステップ218では、ステップ217で選択されたスキャンモジュール121についてアンチウイルススキャンを実行する開始時間を決定し、以下の基準の少なくとも1つが満たされるようにする。
・アンチウイルススキャンに最も時間がかからない。
・アンチウイルススキャンに予定よりも時間がかからない。
・アンチウイルススキャンの完了が予定された時間よりも遅くならない。
・アンチウイルススキャンを実行するために必要とする上記保護する仮想マシン120の計算資源が最小である。
・アンチウイルススキャンを実行するために必要とする上記保護する仮想マシン120の計算資源が予定されていたものより少ない。
ステップ221では、ステップ211で決定されたファイルに対してアンチウイルススキャンを実行することができる。
ステップ222では、悪意のあるファイルの検出に関して判定が提示される。
図3は、本発明の態様による保護する仮想マシンの計算資源の特性近似時間関数を示す。保護する仮想マシン301の計算資源の特性近似時間関数のグラフは、保護する仮想マシン302の計算資源の時間特性及びプロットされた近似関数303を含むことができる。
保護する仮想マシン120の計算資源の特性近似時間関数301は、シンクライアント110の一部として機能する収集モジュール111から得られた、保護する仮想マシン120を特性付けるデータに基いて、保護された仮想マシン100上のシンクライアント110の一部として動作する動的コンピューティングモジュール112によって、決定することができる。
保護する仮想マシン302の計算資源の時間特性は、時間に応じて(秒で表される、0から50)保護する仮想マシンのCPUの作業負荷レベル(パーセントで表される、0%から100%)を含むことができる。
保護する仮想マシン302の計算資源の特性は、49のタイムスタンプ{X}tで利用可能である。問題は、時間t50において保護する仮想マシンの推定作業負荷を計算するための近似関数303を構築することである。この目的のために、最小二乗法のような回帰分析方法の1つを採用することができる。
最初のステップでは、近似関数を定義する関数の1つ、例えば6次の多項式関数を選択することができる。
次のステップでは、条件を満たす事ができるよう、式FCHAR(X)a1...の係数を計算するための連立方程式を解くことができる。
係数a1...が計算された後、時間t50の値を知ることにより、保護する仮想マシンの推定CPU負荷の値を計算することができる。グラフ301に表されている時間t50=50sのデータの場合、これはX50=85%に達し得る。
図4は、本発明の態様による、いくつかの保護する仮想マシンの計算資源の特性近似時間関数を示す。いくつかの保護する仮想マシン400の計算資源の特性近似時間関数のグラフは、保護する仮想マシン401、411、421の計算資源の時間特性、保護する仮想マシンの計算資源の時間特性の分析に基づいて各々プロットされた近似関数402、412、422、及び、その結果として生じる結合近似関数430とを含むことができる。
各々の保護する仮想マシン120.1、120.2及び120.3の計算資源の特性近似時間関数402、412及び422は、保護する仮想マシン120.1、120.2及び120.3を特性付けるデータ及びシンクライアント110の一部として動作している収集モジュール111から取得されたデータに基いて、保護された仮想マシン100上のシンクライアント110の一部として動作している動的コンピューティングモジュール112によって決定されることができる。
保護する仮想マシン401、411及び421の計算資源の特性近似時間関数は、図3の説明で述べた方法によって得ることができる。
保護する仮想マシン401、411及び421の計算資源の時間特性は、時間(0から25まで、秒で表される)に依存して、各々の保護する仮想マシンのCPUの作業負荷レベル(0%から100%まで、パーセンテージで表される)を含むことができる。
保護する仮想マシン各々のCPU負荷の近似時間関数を計算した後、全ての保護する仮想マシンのシステムのCPUの結合負荷430の近似関数を計算することができる。
保護する仮想マシンのうちの1つの保護サーバ120にスキャン用ファイルを送信する時間を選択するために、全ての保護する仮想マシンのCPUの結合負荷がいつ最小であるかの決定が必要な場合があり得る。保護する仮想マシンのCPUの最小結合負荷の時間を知ることにより、利用可能なすべての保護する仮想マシンの中から最小限のCPU負荷を有する保護する仮想マシンを選択することができ、その保護サーバ120はアンチウイルススキャンの実行のためにファイルを送信することができる。
図5は、開示されたシステム及び方法が本発明の態様に従って実装され得る例示的なコンピュータシステム(パーソナルコンピュータまたはサーバでもよい)を示す。図示のように、コンピュータシステム20(パーソナルコンピュータまたはサーバでもよい)は、中央処理装置21、システムメモリ22及び中央処理装置21に関連するメモリを含む様々なシステム構成要素に接続されるシステムバス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の他のデータを格納するための電源独立モジュールである。
例示的な態様では、コントローラ55を介してシステムバス23に接続されたハードディスク27、リムーバブル磁気ディスク29及びリムーバブル光ディスク31を利用するシステムを含む。コンピュータによって読み取り可能な形式で保存することができる如何なるタイプのメディア56(ソリッド・ステート・ドライブ、フラッシュ・メモリ・カード、デジタル・ディスク、ランダム・アクセス・メモリ(RAM)、その他)も利用できることが当業者によって理解される。
コンピュータシステム20は、オペレーティングシステム35が格納されるファイルシステム36と、追加のプログラムアプリケーション37と、他のプログラムモジュール38と、プログラムデータ39とを有する。コンピュータシステム20のユーザは、キーボード40、マウス42、または当業者に知られている任意の他の入力デバイス、例えばマイクロホン、ジョイスティック、ゲームコントローラ、スキャナだがこれらに限らない、を利用してコマンド及び情報を入力することができる。そのような入力デバイスは、典型的には、シリアルポート46を介してコンピュータシステム20に接続され、シリアルポート46は、システムバスに接続されるが、入力デバイスを他の方法、例えば、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)だがこれらに限定されない、を介して接続することもできることが当業者であれば理解できる。モニタ47または他のタイプのディスプレイ装置も、ビデオアダプタ48などのインタフェースを介してシステムバス23に接続することができる。モニタ47に加えて、パーソナルコンピュータは、ラウドスピーカ、プリンタ等その他の周辺出力装置(図示せず)を備えることもできる。
コンピュータシステム20は、1つまたは複数のリモートコンピュータ49へのネットワーク接続を利用して、ネットワーク環境で動作することができる。上記1つのリモートコンピュータ(または複数のリモートコンピュータ)49は、コンピュータシステム20の性質を説明する上で前述した要素のほとんどまたはすべてを含むローカルコンピュータワークステーションまたはサーバであってもよい。ルータ、ネットワークステーション、ピアデバイス、または他のネットワークノードなどの他のデバイスも、コンピュータネットワークに存在することができるが、これに限定されるものではない。
ネットワーク接続は、ローカルエリアコンピュータネットワーク(LAN)50及びワイドエリアコンピュータネットワーク(WAN)を形成することができる。このようなネットワークは、企業のコンピュータネットワーク及び社内ネットワークで利用され、一般的にインターネットへアクセスできる。LANまたはWANネットワークでは、パーソナルコンピュータ20は、ネットワークアダプタまたはネットワークインタフェース51を介してローカルエリアネットワーク50に接続される。ネットワークが利用される場合、コンピュータシステム20は、モデム54、またはインターネットなどのワイドエリアコンピュータネットワークとの通信を可能にする当業者に周知の他のモジュールを利用することができる。モデム54は、内部または外部の装置であってもよく、シリアルポート46によってシステムバス23に接続されてもよい。上記ネットワーク接続は、通信モジュールを利用して1つのコンピュータによって別のコンピュータへの接続を確立する多くの周知の方法の非限定的な例であることは、当業者には理解されるであろう。
様々な態様において、本明細書に記載のシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実施されてもよい。ソフトウェアで実施される場合、これらの方法は、非一過性のコンピュータ可読媒体上に1つ以上の命令またはコードとして格納されてもよい。コンピュータ可読媒体は、データストレージを含む。限定ではない例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、若しくは他のタイプの電気、磁気、または光学記憶媒体、又は命令若しくはデータ構造の形態で所望のプログラムコードを実行または格納するために利用することができ、汎用コンピュータのプロセッサによってアクセスすることができる他の媒体を含む。
様々な態様において、本開示で説明されたシステム及び方法は、モジュールに関して扱うことができる。本明細書で使用される「モジュール」という用語は、実世界のデバイス、コンポーネント、又は、例えば、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)等の、ハードウェアを利用して実装されたコンポーネントの配置、若しくは、(実行されている間に)マイクロプロセッサシステムを特殊用途の装置に変換するモジュールの機能を実装するためのマイクロプロセッサシステム及び命令の集合によるものといった、ハードウェアとソフトウェアの組み合わせ、のことを示す。モジュールは、これら2つの組み合わせとして実装されてもよく、特定の機能はハードウェア単体によって促進され、他の機能はハードウェアとソフトウェアの組み合わせによって促進されてもよい。特定の実施例では、モジュールの少なくとも一部、場合によっては全てが、汎用コンピュータのプロセッサ上で実行されてもよい(例えば、上記図4に詳細に記載されたものなど)。従って、各モジュールは、様々な適切な構成で実現されてもよく、ここに例示される特定の実装に限定されるべきではない。
明確化のために、本態様の所定の特徴の全てが本明細書に開示されるわけではない。本開示のいかなる実際の実施形態の開発においても、開発者の特定の目標を達成するために多数の実施に係る特有の決定がなされなければならず、これらの具体的な目標は異なる実施形態及び異なる開発者によって変わるであろう。そのような開発努力は複雑で時間がかかるが、それにもかかわらず、この開示の恩恵を受ける当業者にとって通常の工学的な取り組みであることが理解される。
更に、本明細書で使用される表現または用語は、限定ではなく説明のためのものであり、本明細書に開示される教示及び指針に照らして、関連技術における当業者の知識と組み合わせて、これら表現または用語が当業者によって解釈されると理解されたい。更に、本明細書または特許請求の範囲における任意の用語が、明示的に記載されていない限り、一般的でないまたは特別な意味であるとみなされることを意図するものではない。
本明細書で開示される様々な態様は、説明のために本明細書で言及される既知のモジュールに対する現在及び将来の既知の等価物を包含する。更に、態様及び用途が示され、記載されているが、本開示の利益を有する当業者には、本明細書に開示された発明概念から逸脱することなく上述したより多くの改変が可能であることが明らかであろう。

Claims (20)

  1. 複数の仮想マシンを有する分散ネットワークにおける悪意のあるファイルを検出する方法であって、
    決定及び取得工程と、収集工程と、関数決定工程1と、関数決定工程2と、選択工程と、を備え、
    前記決定及び取得工程では、アンチウイルススキャンを実行するために、前記複数の仮想マシンのうちの1つの仮想マシンに格納された少なくとも1つのファイルを、前記仮想マシンが決定して取得し、
    前記収集工程では、前記複数の仮想マシンの計算資源の特性に関するデータと、前記アンチウイルススキャンに関連する1つ以上のパラメータを、前記仮想マシンが収集し、
    前記関数決定工程1では、少なくとも収集されたデータに基いて、前記複数の仮想マシンの計算資源の特性近似時間関数と前記アンチウィルススキャンに関連する1つ以上のパラメータ近似関数を決定し、
    前記関数決定工程2では、少なくとも前記計算資源の特性近似時間関数と前記1つ以上のパラメータ近似関数に基いて、前記アンチウィルススキャンの有効性近似時間関数を決定し、
    前記選択工程では、少なくとも前記アンチウィルススキャンの有効性近似時間関数に基いて、前記少なくとも1つのファイルが悪意のあるものか否かを決定するために、前記複数の仮想マシンから前記アンチウィルススキャンを実行する少なくとも1つの仮想マシンを選択する、
    方法。
  2. 前記選択工程は、基準(1)〜(5)のうちの少なくとも1つを満たすことによって、前記アンチウイルススキャンの実行に際し最も効果的な開始時間を決定する工程を備え、
    前記基準(1)は、前記アンチウィルススキャンにかかる時間が最も少ないことであり、
    前記基準(2)は、前記アンチウィルススキャンにかかる時間が予定されていたものよりも短いことであり、
    前記基準(3)は、前記アンチウィルススキャンが予定されていた時間までに完了することであり、
    前記基準(4)は、前記アンチウィルススキャンを実行するために必要とする前記仮想マシンの計算資源が最小であることであり、
    前記基準(5)は、前記アンチウィルススキャンを実行するために必要とする前記仮想マシンの計算資源が予定されていたものより少ないことである、
    請求項1に記載の方法。
  3. 前記選択工程は、
    予定されたタイムスロットで利用可能な計算資源を用いて、前記少なくとも1つの仮想マシンが前記少なくとも1つのファイルのアンチウィルススキャンを少なくとも実行することができることを検出する工程、
    前記分散ネットワーク内の複数の仮想マシンの中で計算された作業負荷レベルが最も低い前記少なくとも1つの仮想マシンを検出する工程、
    前記計算された作業負荷レベルが設定された閾値よりも低い前記少なくとも1つの仮想マシンを検出する工程、又は
    前記複数の仮想マシンのうち2つ以上の仮想マシンであって、それらの結合作業負荷レベルが、前記複数の仮想マシンの残りの仮想マシンの結合された作業負荷レベルよりも小さいものを検出する工程、
    のいずれかを備える、請求項1に記載の方法。
  4. 前記収集工程は、
    前記少なくとも1つのファイルの取得と、前記少なくとも1つのファイルが悪意のあるものかの決定との間の時間間隔を検出する工程、
    前記アンチウィルススキャンのために前記仮想マシンへ転送されたファイルの数を検出する工程、
    前記複数の前記仮想マシンの各々の計算能力を検出する工程、
    の、少なくともいずれか1つを備える、請求項1に記載の方法。
  5. 前記アンチウィルススキャンに関連する1つ以上のパラメータは、
    前記複数の仮想マシンによって利用される前記悪意のあるファイルを検出する方法であって、シグネチャ解析、ヒューリスティック分析、エミュレーション結果の分析、ホワイトリスト・ブラックリストによる分析、のうちの少なくとも1つを含む方法か、
    前記アンチウイルススキャンを実行するために利用される前記複数の仮想マシンの計算資源の特性、
    の少なくともいずれか1つを備える、請求項1に記載の方法。
  6. 前記悪意のあるファイルを検出する方法は、少なくとも前記アンチウイルススキャンが行われる最長時間とスキャンされるファイルのエミュレーションの深度、に基づいて決定される、請求項5に記載の方法。
  7. 前記複数の仮想マシンの計算資源の特性に関する近似時間関数は、少なくとも各仮想マシンの前記計算資源の特性に関する収集データに基づいて決定され、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、前記時間は各仮想マシンの前記計算資源の特性の決定時間、及び前記時間は各仮想マシンの前記計算資源の特性を決定するために必要な時間である、請求項1に記載の方法。
  8. 前記アンチウイルススキャンに関連する1つ以上のパラメータ近似関数は、少なくとも前記計算資源の特性に対する前記アンチウイルススキャンの推定パラメータに関するデータ及び前記アンチウイルススキャンを実行するための各仮想マシンの前記計算資源の特性、に基づいて決定される、請求項1に記載の方法。
  9. 前記アンチウイルススキャンの前記有効性近似時間関数が、前記少なくとも1つのファイルのタイプ及びサイズを定義するパラメータに基づいて決定される、請求項1に記載の方法。
  10. 複数の仮想マシンを有する分散ネットワークにおいて悪意のあるファイルを検出するシステムであって、
    少なくとも1つのシンクライアントが動作している複数の仮想マシンのうちの1つの仮想マシンを備え、
    前記仮想マシンは、
    アンチウイルススキャンを実行するために、前記仮想マシンに格納された少なくとも1つのファイルを決定して取得し、
    前記複数の仮想マシンの計算資源の特性に関連するデータと前記アンチウイルススキャンに関連する1つ以上のパラメータを収集し、
    収集されたデータに少なくとも基いて、前記複数の仮想マシンの計算資源の特性近似時間関数と前記アンチウィルススキャンに関連する前記1つ以上のパラメータ近似関数を決定し、
    前記計算資源の特性近似時間関数と前記1つ以上のパラメータ近似関数に少なくとも基いて、前記アンチウィルススキャンの有効性近似時間関数を決定し、
    前記アンチウィルススキャンの前記有効性近似時間関数に少なくとも基いて、前記少なくとも1つのファイルが悪意のあるものか否かを決定するために、前記複数の仮想マシンから前記アンチウィルススキャンを実行する少なくとも1つの仮想マシンを選択するように構成されている、
    システム。
  11. 前記仮想マシンが、基準(1)〜(5)のうちの少なくとも1つを満たすことによって、アンチウイルススキャンの実行に際し最も効果的な開始時間を決定するように構成されており、
    前記基準(1)は、前記アンチウィルススキャンにかかる時間が最も少ないことであり、
    前記基準(2)は、前記アンチウィルススキャンにかかる時間が予定されていたものよりも少ないことであり、
    前記基準(3)は、前記アンチウィルススキャンが予定されていた時間までに完了することであり、
    前記基準(4)は、前記アンチウィルススキャンを実行するために、前記仮想マシンの計算資源を最小限でしか必要としないことであり、
    前記基準(5)は、前記アンチウィルススキャンを実行するために、前記仮想マシンの計算資源を予定されていたものより少ない量しか必要としないことである、
    請求項10に記載のシステム。
  12. 前記1つの仮想マシンが、
    予定されたタイムスロットで利用可能な計算資源を用いて、前記少なくとも1つの仮想マシンが前記少なくとも1つのファイルのアンチウィルススキャンを少なくとも実行することができることを検出し、
    前記分散ネットワーク内の複数の仮想マシンの中で計算された作業負荷レベルが最も低い前記少なくとも1つの仮想マシンを検出し、
    前記計算された作業負荷レベルが設定された閾値よりも低い前記少なくとも1つの仮想マシンを検出し、又は
    前記複数の仮想マシンのうち2つ以上の仮想マシンであって、それらの結合作業負荷レベルが、前記複数の仮想マシンの残りの仮想マシンの結合された作業負荷レベルよりも小さいものを検出する、
    請求項10に記載のシステム。
  13. 前記仮想マシンが、
    前記少なくとも1つのファイルを取得することと、前記少なくとも1つのファイルが悪意のあるものかどうかを決定することとの間の時間を検出するか、
    前記アンチウィルススキャンのために前記仮想マシンへ転送されたファイルの数を検出するか、
    前記複数の仮想マシンの各々の計算能力を検出するか、
    の、少なくともいずれか1つを用いる、請求項10に記載のシステム。
  14. 前記アンチウィルススキャンに関する1つ以上のパラメータは、
    前記複数の仮想マシンによって利用される悪意のあるファイルを検出する方法であって、シグネチャ解析、ヒューリスティック分析、エミュレーション結果の分析、ホワイトリスト・ブラックリストによる分析、のうちの少なくとも1つを含む方法か、
    前記アンチウイルススキャンを実行するために利用される前記複数の仮想マシンの計算資源の特性、
    の、少なくともいずれか1つを備える、請求項10に記載のシステム。
  15. 前記悪意のあるファイルを検出する方法は、少なくとも前記アンチウイルススキャンが行われる最長時間とスキャンされるファイルのエミュレーションの深度、に基づいて決定される、請求項14に記載のシステム。
  16. 前記複数の仮想マシンの計算資源の特性近似時間関数は、少なくとも各仮想マシンの前記計算資源の特性に関する収集データに基づいて決定されるシステムであって、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、前記時間は各仮想マシンの前記計算資源の特性の決定時間、及び前記時間は各仮想マシンの前記計算資源の特性を決定するために必要な時間である、請求項10に記載のシステム。
  17. 前記アンチウイルススキャンに関連する1つ以上のパラメータ近似関数は、前記計算資源の特性に対する前記アンチウイルススキャンの推定パラメータに関するデータ及び前記アンチウイルススキャンを実行するための各仮想マシンの前記計算資源の特性、
    に少なくとも基づいて決定される、請求項10に記載のシステム。
  18. 前記アンチウイルススキャンの有効性近似時間関数が、前記少なくとも1つのファイルのタイプ及びサイズを定義するパラメータに基づいて決定される、請求項10に記載のシステム。
  19. 複数の仮想マシンを有する分散ネットワーク内の悪意のあるファイルを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、命令には、決定及び取得命令と、収集命令と、関数決定命令1と、関数決定命令2と、選択命令と、を含み、
    前記決定及び取得命令は、アンチウイルススキャンを実行するために、前記複数の仮想マシンのうちの1つの仮想マシンに格納された少なくとも1つのファイルを決定して取得させ、
    前記収集命令は、前記複数の仮想マシンの計算資源の特性に関連するデータと前記アンチウイルススキャンに関連する1つ以上のパラメータを収集させ、
    前記関数決定命令1は、収集されたデータに少なくとも基いて、前記複数の仮想マシンの計算資源の特性近似時間関数と前記アンチウィルススキャンに関連する前記1つ以上のパラメータ近似関数を決定させ、
    前記関数決定命令2は、前記計算資源の特性近似時間関数と前記1つ以上のパラメータ近似関数に少なくとも基いて、前記アンチウィルススキャンの有効性近似時間関数を決定させ、
    前記選択命令は、前記アンチウィルススキャンの前記有効性近似時間関数に少なくとも基いて、前記少なくとも1つのファイルが悪意のあるものか否かを決定するために、前記複数の仮想マシンから前記アンチウィルススキャンを実行する少なくとも1つの仮想マシンを選択させる、
    非一時的なコンピュータ可読媒体。
  20. 前記複数の仮想マシンの計算資源の特性近似時間関数は、各仮想マシンの前記計算資源の特性に関する前記収集されたデータに少なくとも基づいて決定される非一時的なコンピュータ可読媒体であって、各仮想マシンの計算資源の特性は選択された時間にアクセス可能であり、前記時間は各仮想マシンの前記計算資源の特性の決定時間、及び前記時間は各仮想マシンの前記計算資源の特性を決定するために必要な時間であり、並びに、
    前記アンチウイルススキャンに関連する前記1つ以上のパラメータ近似関数は、前記計算資源の特性に対する前記アンチウイルススキャンの推定パラメータに関するデータ及び前記アンチウイルススキャンを実行するための各仮想マシンの前記計算資源の特性、に少なくとも基づいて決定される、
    請求項19に記載の非一時的なコンピュータ可読媒体。
JP2017093979A 2016-05-20 2017-05-10 アンチウイルススキャンを実行するために分散システムを構成する仮想マシン間でファイルを配布するシステム及び方法 Active JP6469165B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2016119518 2016-05-20
RU2016119518A RU2628923C1 (ru) 2016-05-20 2016-05-20 Система и способ распределения файлов между виртуальными машинами, входящими в распределённую систему виртуальных машин, для выполнения антивирусной проверки
US15/432,068 2017-02-14
US15/432,068 US10496819B2 (en) 2016-05-20 2017-02-14 System and method of distributing files between virtual machines forming a distributed system for performing antivirus scans

Publications (2)

Publication Number Publication Date
JP2017215954A true JP2017215954A (ja) 2017-12-07
JP6469165B2 JP6469165B2 (ja) 2019-02-13

Family

ID=59744878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017093979A Active JP6469165B2 (ja) 2016-05-20 2017-05-10 アンチウイルススキャンを実行するために分散システムを構成する仮想マシン間でファイルを配布するシステム及び方法

Country Status (4)

Country Link
US (1) US10496819B2 (ja)
JP (1) JP6469165B2 (ja)
CN (1) CN107403094B (ja)
RU (1) RU2628923C1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496819B2 (en) 2016-05-20 2019-12-03 AO Kaspersky Lab System and method of distributing files between virtual machines forming a distributed system for performing antivirus scans

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108337232A (zh) * 2017-12-26 2018-07-27 努比亚技术有限公司 网络异常检测方法、网络安全设备及计算机可读存储介质
US10831520B2 (en) * 2018-01-11 2020-11-10 Nicira, Inc. Object to object communication between hypervisor and virtual machines
US10862922B2 (en) * 2018-07-03 2020-12-08 Emc Corporation Server selection for optimized malware scan on NAS
US11593480B2 (en) * 2018-07-24 2023-02-28 EMC IP Holding Company LLC Predictive scheduled anti-virus scanning
RU2739865C2 (ru) * 2018-12-28 2020-12-29 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного файла
RU2724801C1 (ru) * 2019-02-07 2020-06-25 Акционерное общество "Лаборатория Касперского" Способ балансировки нагрузки на виртуальных машинах защиты при условии ограничении области выбора виртуальных машин защиты
US11340964B2 (en) * 2019-05-24 2022-05-24 International Business Machines Corporation Systems and methods for efficient management of advanced functions in software defined storage systems
CN112579249A (zh) * 2019-09-30 2021-03-30 奇安信安全技术(珠海)有限公司 多cpu虚拟机的运行方法及装置、存储介质、计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120192276A1 (en) * 2011-01-21 2012-07-26 International Business Machines Corporation Selecting one of a plurality of scanner nodes to perform scan operations for an interface node receiving a file request
US8370943B1 (en) * 2009-10-28 2013-02-05 Netapp, Inc. Load balancing of scan requests to all antivirus servers in a cluster
US9088618B1 (en) * 2014-04-18 2015-07-21 Kaspersky Lab Zao System and methods for ensuring fault tolerance of antivirus protection realized in a virtual environment
JP2015536003A (ja) * 2012-10-21 2015-12-17 マカフィー, インコーポレイテッド 仮想クラウドインフラストラクチャへの仮想セキュリティ装置アーキテクチャの提供

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016546A (en) * 1997-07-10 2000-01-18 International Business Machines Corporation Efficient detection of computer viruses and other data traits
US8544096B2 (en) * 2003-12-30 2013-09-24 Emc Corporation On-access and on-demand distributed virus scanning
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US9104871B2 (en) * 2006-04-06 2015-08-11 Juniper Networks, Inc. Malware detection system and method for mobile platforms
US20080301796A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Adjusting the Levels of Anti-Malware Protection
US7797748B2 (en) * 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
US9152789B2 (en) * 2008-05-28 2015-10-06 Zscaler, Inc. Systems and methods for dynamic cloud-based malware behavior analysis
US8516478B1 (en) * 2008-06-12 2013-08-20 Mcafee, Inc. Subsequent processing of scanning task utilizing subset of virtual machines predetermined to have scanner process and adjusting amount of subsequest VMs processing based on load
JP5446167B2 (ja) * 2008-08-13 2014-03-19 富士通株式会社 ウイルス対策方法、コンピュータ、及びプログラム
GB0822619D0 (en) 2008-12-11 2009-01-21 Scansafe Ltd Malware detection
US8914527B2 (en) 2009-06-30 2014-12-16 Citrix Systems, Inc. Methods and systems for load balancing using forecasting and overbooking techniques
CN101587527B (zh) * 2009-07-08 2011-12-28 北京东方微点信息技术有限责任公司 病毒程序扫描方法及装置
US8243598B2 (en) 2010-04-26 2012-08-14 International Business Machines Corporation Load-balancing via modulus distribution and TCP flow redirection due to server overload
US9009668B2 (en) * 2010-05-27 2015-04-14 Red Hat Israel, Ltd. Software testing using test entity
CN102685069A (zh) * 2011-03-09 2012-09-19 北京网秦天下科技有限公司 利用sim卡结合云计算进行杀毒的方法和系统
US9047441B2 (en) * 2011-05-24 2015-06-02 Palo Alto Networks, Inc. Malware analysis system
CN102254120B (zh) * 2011-08-09 2014-05-21 华为数字技术(成都)有限公司 恶意代码的检测方法、系统及相关装置
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
RU2494453C2 (ru) * 2011-11-24 2013-09-27 Закрытое акционерное общество "Лаборатория Касперского" Способ распределенного выполнения задач компьютерной безопасности
RU2477520C1 (ru) * 2012-03-14 2013-03-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ динамической адаптации функционала антивирусного приложения на основе конфигурации устройства
US9165142B1 (en) * 2013-01-30 2015-10-20 Palo Alto Networks, Inc. Malware family identification using profile signatures
US9495180B2 (en) * 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9563455B2 (en) * 2013-10-28 2017-02-07 Intel Corporation Virtualization exceptions
CN104750536B (zh) * 2013-12-30 2018-08-21 华为技术有限公司 一种实现虚拟机自省的方法和装置
US9489516B1 (en) * 2014-07-14 2016-11-08 Palo Alto Networks, Inc. Detection of malware using an instrumented virtual machine environment
CN104298918B (zh) * 2014-09-12 2018-08-21 北京云巢动脉科技有限公司 一种在虚拟机中基于数据块的病毒扫描方法和系统
RU2599945C2 (ru) * 2015-02-20 2016-10-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ пополнения базы данных при одновременной антивирусной проверке объектов на множестве виртуальных машин
RU2628923C1 (ru) 2016-05-20 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ распределения файлов между виртуальными машинами, входящими в распределённую систему виртуальных машин, для выполнения антивирусной проверки

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370943B1 (en) * 2009-10-28 2013-02-05 Netapp, Inc. Load balancing of scan requests to all antivirus servers in a cluster
US20120192276A1 (en) * 2011-01-21 2012-07-26 International Business Machines Corporation Selecting one of a plurality of scanner nodes to perform scan operations for an interface node receiving a file request
JP2015536003A (ja) * 2012-10-21 2015-12-17 マカフィー, インコーポレイテッド 仮想クラウドインフラストラクチャへの仮想セキュリティ装置アーキテクチャの提供
US9088618B1 (en) * 2014-04-18 2015-07-21 Kaspersky Lab Zao System and methods for ensuring fault tolerance of antivirus protection realized in a virtual environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496819B2 (en) 2016-05-20 2019-12-03 AO Kaspersky Lab System and method of distributing files between virtual machines forming a distributed system for performing antivirus scans

Also Published As

Publication number Publication date
CN107403094A (zh) 2017-11-28
JP6469165B2 (ja) 2019-02-13
US10496819B2 (en) 2019-12-03
RU2628923C1 (ru) 2017-08-22
US20170337377A1 (en) 2017-11-23
CN107403094B (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
JP6469165B2 (ja) アンチウイルススキャンを実行するために分散システムを構成する仮想マシン間でファイルを配布するシステム及び方法
US10474817B2 (en) Dynamically optimizing performance of a security appliance
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US9135443B2 (en) Identifying malicious threads
JP5976020B2 (ja) アンチマルウェアメタデータのルックアップを行うためのシステム及び方法
JP6353498B2 (ja) ユーザ機器上でマルウェアを検出するためにアンチウィルス記録セットを生成するシステム及び方法
JP6482510B2 (ja) 分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するシステム及び方法
RU2624552C2 (ru) Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
JP6400758B2 (ja) 不正リモート管理からのコンピュータを保護するためのシステム及び方法
US11470097B2 (en) Profile generation device, attack detection device, profile generation method, and profile generation computer program
RU2701842C1 (ru) Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты)
RU2531565C2 (ru) Система и способ анализа событий запуска файлов для определения рейтинга их безопасности
JP6341964B2 (ja) 悪意のあるコンピュータシステムを検出するシステム及び方法
RU2750627C2 (ru) Способ поиска образцов вредоносных сообщений
US10055579B2 (en) System resources for sandboxing
EP3246842B1 (en) System and method of distributing files between virtual machines forming a distributed system for performing antivirus scans
JP6322240B2 (ja) フィッシング・スクリプトを検出するためのシステム及び方法
RU2614929C1 (ru) Способ передачи антивирусных записей, используемых для обнаружения вредоносных файлов
US9154519B1 (en) System and method for antivirus checking of objects from a plurality of virtual machines
RU2587424C1 (ru) Способ контроля приложений
RU2628919C1 (ru) Система и способ обнаружения вредоносных файлов на распределённой системе виртуальных машин
JP6708575B2 (ja) 分類装置、分類方法および分類プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181003

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181221

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: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190115

R150 Certificate of patent or registration of utility model

Ref document number: 6469165

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250