WO2020183828A1 - ホワイトリスト生成装置、制御方法、及びプログラム - Google Patents

ホワイトリスト生成装置、制御方法、及びプログラム Download PDF

Info

Publication number
WO2020183828A1
WO2020183828A1 PCT/JP2019/048413 JP2019048413W WO2020183828A1 WO 2020183828 A1 WO2020183828 A1 WO 2020183828A1 JP 2019048413 W JP2019048413 W JP 2019048413W WO 2020183828 A1 WO2020183828 A1 WO 2020183828A1
Authority
WO
WIPO (PCT)
Prior art keywords
whitelist
configuration information
machine
virtual machine
software configuration
Prior art date
Application number
PCT/JP2019/048413
Other languages
English (en)
French (fr)
Inventor
英士 高橋
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US17/435,834 priority Critical patent/US20220156362A1/en
Priority to EP19919477.0A priority patent/EP3940529A4/en
Priority to JP2021505520A priority patent/JP7184158B2/ja
Publication of WO2020183828A1 publication Critical patent/WO2020183828A1/ja

Links

Images

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/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/54Monitoring 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 adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/45562Creating, deleting, cloning virtual machine instances

Definitions

  • a system that provides computer resources via the Internet is provided.
  • such a system is realized by utilizing virtualization technology.
  • the user of the system requests the use of a virtual machine having a desired processing performance.
  • a virtual machine with the requested processing performance is created.
  • a user can use a virtual machine having a desired processing performance (that is, a desired computer resource) by accessing the virtual machine via the Internet.
  • Patent Document 1 discloses a system in which applications and the like whose existence and operation are permitted are registered in a whitelist in advance, and file access is controlled by using the whitelist.
  • the virtual machine operating in the virtual machine providing system 10 performs file access control using the whitelist 60.
  • the whitelist 60 shows identification information of a file that is presumed to be safe from the viewpoint of security.
  • the file specified by the identification information shown in the whitelist 60 is a file that is presumed not to be software that poses a security threat such as malware.
  • the virtual machine providing system 10 when an OS or an application running on a virtual machine tries to access a file, whether or not the identification information of the file to be accessed is included in the whitelist 60. The judgment is made. For example, if the identification information of the file to be accessed is shown in the whitelist 60, the file access is permitted, and if the identification information of the file to be accessed is not shown in the whitelist 60, the file access is permitted. Is not allowed.
  • the whitelist generator 2000 generates the whitelist 60 by using the generation request 70. Specifically, the whitelist generator 2000 generates or specifies a machine 90 composed of hardware having higher performance than the hardware performance shown in the hardware configuration information 74. Further, the whitelist generator 2000 installs the software shown in the software configuration information 72 on the machine 90. Then, the whitelist generator 2000 generates the whitelist 60 based on the contents of the storage device (local disk of the machine 90) of the machine 90 after the installation is completed. More specifically, the whitelist generator 2000 scans the storage device of the machine 90 and generates a whitelist 60 showing identification information of each file stored in the storage device of the machine 90.
  • the computer 1000 has a bus 1020, a processor 1040, a memory 1060, a storage device 1080, an input / output interface 1100, and a network interface 1120.
  • the bus 1020 is a data transmission line for the processor 1040, the memory 1060, the storage device 1080, the input / output interface 1100, and the network interface 1120 to transmit and receive data to and from each other.
  • the method of connecting the processors 1040 and the like to each other is not limited to bus connection.
  • the processor 1040 is various processors such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and an FPGA (Field-Programmable Gate Array).
  • the memory 1060 is a main storage device realized by using RAM (Random Access Memory) or the like.
  • the storage device 1080 is an auxiliary storage device realized by using a hard disk, an SSD (Solid State Drive), a memory card, a ROM (Read Only Memory), or the like.
  • the whitelist generation unit 2040 makes the index value representing the CPU performance of the machine 90 higher than the index value representing the CPU performance of the target virtual machine 20.
  • the index value indicating the CPU performance is referred to as the CPU performance index value.
  • the CPU performance index value is the frequency of the CPU.
  • the whitelist generator 2040 makes the frequency of the CPU of the machine 90 higher than the frequency of the CPU of the target virtual machine 20.
  • the method of determining the performance of the hardware assigned to the machine 90 is not limited to the method of using the coefficient ⁇ described above.
  • the whitelist generator 2040 may allocate all allottable hardware resources from the physical machine to the machine 90.
  • the whitelist generation unit 2040 selects a physical machine capable of making the hardware performance of the machine 90 higher than the hardware performance of the target virtual machine 20. For example, as described above, when the CPU frequency and memory capacity of the target virtual machine 20 are F and M, the whitelist generator 2040 has the CPU frequency and memory capacity that can be allocated to the machine 90 from F and M, respectively. Also choose a large physical machine.
  • the whitelist generation unit 2040 of the second embodiment determines whether or not the cache information 100 indicating the software configuration information 102 that matches the software configuration information 72 is stored in the cache information storage device 110.
  • the whitelist generation unit 2040 uses the whitelist 104 shown in the cache information 100. Is applied to the target virtual machine 20.
  • the whitelist generation unit 2040 whitelists by the method described in the first embodiment. Generate 60.
  • a plurality of target virtual machines 20 having the same whitelist contents may be generated in parallel.
  • the management server 40 receives one generation request 70 requesting the generation of a plurality of virtual machines having the same software configuration, or receives a plurality of generation requests 70 requesting virtual machines having the same software configuration at close timing. It is a case of receiving with.
  • the former is a case where the same user 50 requests a plurality of virtual machines having the same software configuration
  • the latter is a case where different users 50 request virtual machines having the same software configuration at close timings.
  • Virtual machine providing system 20 Target virtual machine 30 Target physical machine 40 Management server 50 User 52 User terminal 60 White list 70 Generation request 72 Software configuration information 74 Hardware configuration information 80 Input screen 82 Input area 84 Input area 90 Machine 100 Cache Information 102 Software configuration information 104 Whitelist 110 Cache information Storage device 1000 Computer 1020 Bus 1040 Processor 1060 Memory 1080 Storage device 1100 Input / output interface 1120 Network interface 2000 Whitelist generator 2020 Acquisition unit 2040 Whitelist generation unit 2060 Cache information generation unit

Abstract

ホワイトリスト生成装置(2000)は生成リクエスト(70)を取得する。生成リクエスト(70)は、対象仮想マシン(20)のハードウエア性能を示すハードウエア構成情報(74)、及び対象仮想マシン(20)にインストールされるソフトウエアを示すソフトウエア構成情報(72)を含む。ホワイトリスト生成装置(2000)は、ハードウエア構成情報(74)に示されているハードウエア性能よりも性能が高いハードウエアで構成されるマシン(90)の生成又は特定を行う。さらにホワイトリスト生成装置(2000)は、ソフトウエア構成情報(72)に示されているソフトウエアをマシン(90)にインストールする。そしてホワイトリスト生成装置(2000)は、インストール完了後のマシン(90)の記憶装置の内容に基づいてホワイトリスト(60)を生成する。

Description

ホワイトリスト生成装置、制御方法、及びプログラム
 本発明は仮想マシンを提供するサービスに関する。
 インターネットを介して計算機リソースを提供するシステムが提供されている。例えばこのようなシステムは、仮想化技術を利用して実現される。まず、システムのユーザは、所望の処理性能を持つ仮想マシンの利用を要求する。要求を受け付けたシステムでは、要求された処理性能を持つ仮想マシンが生成される。ユーザは、インターネットを介してその仮想マシンにアクセスすることで、所望の処理性能を持つ仮想マシン(すなわち、所望の計算機リソース)を利用することができる。
 また、コンピュータシステムにおいて、セキュリティ上の安全性を高めるため、ファイルアクセス制御が利用されている。例えば、アクセスが許可されるファイルのリスト(ホワイトリスト)を定義しておき、ホワイトリストを用いたファイルアクセス制御を行う技術が開発されている。例えば特許文献1は、存在及び動作が許可されているアプリケーション等を予めホワイトリストに登録しておき、そのホワイトリストを利用してファイルアクセスの制御を行うシステムを開示している。
特開2017-021777号公報
 本発明者は、仮想マシンを提供するシステムに対し、ホワイトリストによるファイルアクセス制御の導入を検討した。そして、システムの利便性を向上させるために、ホワイトリストを生成する処理を効率化する必要があることを見出した。前述した先行技術文献では、仮想マシンを提供するシステムに対してホワイトリストによるファイルアクセス制御を導入することについて言及されておらず、ホワイトリストを生成する処理を効率化する必要性についても言及されていない。
 本発明は上記の課題に鑑みてなされたものであり、その目的の一つは、仮想マシンを提供するシステムの利便性を向上させる技術を提供することである。
 本発明のホワイトリスト生成装置は、1)仮想マシンのハードウエア性能を示すハードウエア構成情報、及び仮想マシンにインストールされるソフトウエアを示すソフトウエア構成情報を含む生成リクエストを取得する取得部と、2)仮想マシンにおいてアクセスが許可されるファイルを表すホワイトリストを生成するホワイトリスト生成部と、を有する。
 ホワイトリスト生成部は、ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つマシンに対し、取得したソフトウエア構成情報に示されるソフトウエアをインストールし、そのインストール後のマシンの記憶装置の内容に基づいて、ホワイトリストを生成する。
 本発明の制御方法はコンピュータによって実行される。当該制御方法は、1)仮想マシンのハードウエア性能を示すハードウエア構成情報、及び仮想マシンにインストールされるソフトウエアを示すソフトウエア構成情報を含む生成リクエストを取得する取得ステップと、2)仮想マシンにおいてアクセスが許可されるファイルを表すホワイトリストを生成するホワイトリスト生成ステップと、を有する。
 ホワイトリスト生成ステップにおいて、ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つマシンに対し、取得したソフトウエア構成情報に示されるソフトウエアをインストールし、そのインストール後のマシンの記憶装置の内容に基づいて、ホワイトリストを生成する。
 本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
 本発明によれば、仮想マシンを提供するシステムの利便性を向上させる技術が提供される。
実施形態1のホワイトリスト生成装置の利用環境を例示する図である。 実施形態1のホワイトリスト生成装置の動作の概要を例示する図である。 実施形態1のホワイトリスト生成装置の機能構成を例示する図である。 ホワイトリスト生成装置を実現するための計算機を例示する図である。 実施形態1のホワイトリスト生成装置によって実行される処理の流れを例示するフローチャートである。 ユーザが仮想マシン提供システムを利用する流れを例示する図である。 生成リクエストを生成するための入力画面を例示する図である。 実施形態2のホワイトリスト生成装置の動作の概要を例示する図である。 実施形態2のホワイトリスト生成装置の機能構成を例示する図である。 実施形態2のホワイトリスト生成装置によって実行される処理の流れを例示するフローチャートである。
 以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また各ブロック図において、特に説明がない限り、各ブロックは、ハードウエア単位の構成ではなく機能単位の構成を表している。
[実施形態1]
<概要>
 まず、図1及び図2を用いて、実施形態1のホワイトリスト生成装置2000の概要を説明する。図1及び図2は、ホワイトリスト生成装置2000に対する理解を容易にするための例示であり、ホワイトリスト生成装置2000の機能は図1及び図2に表されているものに限定されない。
 図1は、実施形態1のホワイトリスト生成装置2000の利用環境を例示する図である。ホワイトリスト生成装置2000は、仮想マシン提供システム10において利用される。仮想マシン提供システム10は、仮想マシンを利用する環境をユーザ50に提供するシステムである。仮想マシンとは、仮想マシンモニタ(VMM:Virtual Machine Monitor)や仮想化ソフトウエアなどと呼ばれる管理ソフトウエアによって管理・実行される仮想的なマシンであり、仮想的なハードウエア(仮想ハードウエア)で構成される。仮想ハードウエアには、仮想 CPU、仮想メモリ(仮想的な主記憶装置)、仮想ディスク(仮想的な補助記憶装置)、及び仮想ネットワークインタフェースなどが含まれる。仮想ハードウエアは、物理的なハードウエアの一部又は全部を用いて実現される。すなわち、仮想マシンは、物理マシンを構成する物理ハードウエアの一部又は全部を用いて動作する。以下、仮想マシンが、或る物理マシンを構成する物理ハードウエアの一部又は全部を用いて動作することを、「仮想マシンがその物理マシン上で動作する」とも表現する。
 仮想マシンには、通常の物理マシンと同様に OS をインストールすることができる。仮想マシン上の OS(以下、ゲスト OS)は、物理マシン上の OS が物理ハードウエアを認識するのと同様に、その仮想マシンの仮想ハードウエアを認識する。言い換えれば、仮想マシン上のゲスト OS は、その仮想マシンの仮想ハードウエアを、あたかも物理ハードウエアであるかのように認識して動作する。そのため、ゲスト OS 上で動作する他のアプリケーションも、仮想ハードウエアをあたかも物理ハードウエアであるかのように利用して動作することができる。なお、仮想マシンを実現する技術は既存の技術であるため、仮想マシンそのものに関するこれ以上の説明は省略する。
 ユーザ50は、ユーザ端末52を用いて、仮想マシン提供システム10に対し、利用したい仮想マシンの構成を指定する生成リクエスト70を送信する。ユーザ端末52としては、PC(Personal Computer)やスマートフォンなどの任意の計算機を利用することができる。ここで、ユーザ端末52から送信された生成リクエスト70を受信する機能を有する装置を、管理サーバ40と呼ぶ。管理サーバ40は、ホワイトリスト生成装置2000と同一の装置として実現されてもよいし、ホワイトリスト生成装置2000とは異なる装置として実現されてもよい。
 以下、既に仮想マシン提供システム10で動作している他の仮想マシンと区別するため、受信した生成リクエスト70に基づいて管理サーバ40が生成しようとしている仮想マシンを、対象仮想マシン20と表記する。
 生成リクエスト70には、対象仮想マシン20のハードウエア構成を示すハードウエア構成情報74と、対象仮想マシン20のソフトウエア構成を示すソフトウエア構成情報72が含まれる。ハードウエア構成情報74は、対象仮想マシン20を構成する各仮想ハードウエアの処理性能を特定する情報を示す。一方、ソフトウエア構成情報72は、対象仮想マシン20にインストールすべきソフトウエア(OS やアプリケーション)の識別情報を示す。ソフトウエアの識別情報は、例えば、そのソフトウエアの名称やバージョン番号である。
 生成リクエスト70を受信した管理サーバ40は、生成リクエスト70によって指定されている対象仮想マシン20を生成する。より具体的には、管理サーバ40は、対象仮想マシン20を生成可能な物理マシンを特定し、特定した物理マシンの物理ハードウエアを対象仮想マシン20に割り当てることで、対象仮想マシン20を生成する。以下、ここで特定される物理マシンを、対象物理マシン30と呼ぶ。対象物理マシン30としては、ハードウエア構成情報74によって指定されているハードウエア性能以上のハードウエア性能を持つ物理マシンが利用される。さらに管理サーバ40は、ソフトウエア構成情報72によって指定されている各ソフトウエア(OS やアプリケーション)を対象仮想マシン20にインストールする。こうすることで、ユーザ50は、生成リクエスト70で指定した構成を持つ対象仮想マシン20を利用することができるようになる。
 仮想マシン提供システム10で動作する仮想マシンは、ホワイトリスト60を利用したファイルアクセス制御を行う。ホワイトリスト60は、セキュリティ上の観点から安全であると推測されるファイルの識別情報を示す。言い換えれば、ホワイトリスト60に示される識別情報で特定されるファイルは、マルウエアなどといったセキュリティ上の脅威となるソフトウエアではないと推測されるファイルである。
 より具体的には、仮想マシン提供システム10では、仮想マシン上で動作する OS やアプリケーションがファイルにアクセスしようとすると、アクセスしようとしているファイルの識別情報がホワイトリスト60に含まれているか否かの判定が行われる。例えば、アクセスしようとしているファイルの識別情報がホワイトリスト60に示されている場合にはファイルアクセスが許可され、アクセスしようとしているファイルの識別情報がホワイトリスト60に示されていない場合にはファイルアクセスが許可されない。
 ただし、ホワイトリスト60を用いたアクセス制御の対象は、一部のファイルのみであってもよい。例えば、特定の種類のファイルのみをアクセス制御の対象としたり、特定のディレクトリ配下のファイルのみをアクセス制御の対象としたりすることが考えられる。例えば特定の種類として、実行ファイルを採用する。すなわち、実行ファイルについてのみアクセス制御が行われる。こうすることで、マルウエアなどといった危険なプログラムが仮想マシン上で実行されてしまうことを防ぐことができる。
 ホワイトリスト60は、仮想マシンごとに生成される。以下、或る仮想マシンについて生成されたホワイトリスト60を、その仮想マシンに対応するホワイトリスト60と呼ぶ。同様に、このホワイトリスト60を、その仮想マシンに対応するホワイトリスト60と呼ぶ。
 ホワイトリスト生成装置2000は、対象仮想マシン20に対応するホワイトリスト60を生成する装置である。図2は、実施形態1のホワイトリスト生成装置2000の動作の概要を例示する図である。ホワイトリスト生成装置2000は、前述した生成リクエスト70を取得する。なお、ホワイトリスト生成装置2000が管理サーバ40とは異なる装置として実現されている場合、ホワイトリスト生成装置2000は、管理サーバ40から生成リクエスト70を取得する(図1参照)。
 さらにホワイトリスト生成装置2000は、生成リクエスト70を利用してホワイトリスト60を生成する。具体的には、ホワイトリスト生成装置2000は、ハードウエア構成情報74に示されているハードウエア性能よりも性能が高いハードウエアで構成されるマシン90の生成又は特定を行う。さらにホワイトリスト生成装置2000は、ソフトウエア構成情報72に示されているソフトウエアをマシン90にインストールする。そしてホワイトリスト生成装置2000は、インストール完了後のマシン90の記憶装置(マシン90のローカルディスク)の内容に基づいてホワイトリスト60を生成する。より具体的には、ホワイトリスト生成装置2000は、マシン90の記憶装置をスキャンし、マシン90の記憶装置に記憶されている各ファイルの識別情報を示すホワイトリスト60を生成する。
 ただし、ホワイトリスト60が示すファイルは、対象仮想マシン20の記憶装置に記憶される一部のファイルであってもよい。例えば前述したように実行ファイルのみをアクセス制御の対象とする場合、ホワイトリスト60が示すファイルは実行ファイルのみでよい。同様に、特定のディレクトリ配下に格納されるファイルのみをアクセス制御の対象とする場合、そのディレクトリの配下に格納されているファイルのみをホワイトリスト60に含める。
 ホワイトリスト生成装置2000によって生成されたホワイトリスト60は、対象仮想マシン20におけるファイルアクセス制御に利用される。ここで、或る仮想マシンが或るホワイトリスト60を利用してファイルアクセス制御を行うようにすることを、「そのホワイトリスト60をその仮想マシンに適用する」とも表現する。よって、ホワイトリスト生成装置2000は、対象仮想マシン20に対応するホワイトリスト60を生成し、生成したホワイトリスト60を対象仮想マシン20に適用する装置であると言える。
<作用効果>
 前述した様に、仮想マシン提供システム10において動作する仮想マシンでは、ホワイトリスト60を利用したファイルアクセス制御が行われる。このファイルアクセス制御を実現するため、ユーザ50は、ホワイトリスト60の生成が完了するまで対象仮想マシン20を利用することができない。このことから、ホワイトリスト60の生成に長い時間を要すると、ユーザ50にとって対象仮想マシン20の利便性(仮想マシン提供システム10の利便性)が低くなってしまう。そのため、ホワイトリスト60の生成に要する時間をできる限り短くすることが好適である。
 ここで、ホワイトリスト60を生成するナイーブな方法としては、以下の方法が考えられる。まず、対象物理マシン30上で対象仮想マシン20を起動し、起動した対象仮想マシン20にソフトウエア構成情報72に示されているソフトウエアをインストールする。そして、インストール完了後に対象仮想マシン20の記憶装置をスキャンすることで、その記憶装置に記憶されている各ファイルを示すホワイトリスト60を生成する。
 これに対し、ホワイトリスト生成装置2000は、前述したナイーブな方法を利用する場合よりもホワイトリスト60の生成に要する時間が短い方法で、ホワイトリスト60の生成を行う。具体的には、ホワイトリスト生成装置2000は、対象仮想マシン20の代わりに、対象仮想マシン20よりもハードウエア性能の高いマシン90を用いて、ホワイトリスト60の生成を行う。マシン90のハードウエア性能が対象仮想マシン20よりも高いことから、マシン90に対してソフトウエアをインストールするために要する時間は、対象仮想マシン20に対してソフトウエアをインストールするために要する時間よりも短くなる。また、マシン90の記憶装置をスキャンするために要する時間も、対象仮想マシン20の記憶装置をスキャンするために要する時間よりも短くなる。
 以上のことから、マシン90を利用したホワイトリスト60の生成は、対象仮想マシン20を利用したホワイトリスト60の生成よりも高速に行うことができる。よって、ホワイトリスト生成装置2000を利用することにより、対象仮想マシン20におけるファイルアクセス制御に必要なホワイトリスト60の生成に要する時間を短くすることができる。その結果、上述したナイーブな方法を利用する場合と比較し、ユーザ50が対象仮想マシン20を利用できるようになるまでの時間を短くすることができるため、対象仮想マシン20の利便性(ひいては仮想マシン提供システム10の利便性)を高くすることができる。
 以下、本実施形態のホワイトリスト生成装置2000についてさらに詳細に説明する。
<機能構成の例>
 図3は、実施形態1のホワイトリスト生成装置2000の機能構成を例示する図である。ホワイトリスト生成装置2000は、取得部2020及びホワイトリスト生成部2040を有する。取得部2020は生成リクエスト70を取得する。前述したように、生成リクエスト70には、ハードウエア構成情報74及びソフトウエア構成情報72が含まれる。ホワイトリスト生成部2040は、ハードウエア構成情報74に示されるハードウエア性能よりも高いハードウエア性能を持つマシン90を生成又は特定する。そして、ホワイトリスト生成部2040は、ソフトウエア構成情報72に示されるソフトウエアをマシン90にインストールする。そしてホワイトリスト生成部2040は、マシン90の記憶装置に格納されているファイルを示すホワイトリスト60を生成する。
<ホワイトリスト生成装置2000のハードウエア構成の例>
 ホワイトリスト生成装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、ホワイトリスト生成装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
 図4は、ホワイトリスト生成装置2000を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、Personal Computer(PC)やサーバマシンなどの据え置き型の計算機である。その他にも例えば、計算機1000は、スマートフォンやタブレット端末などの可搬型の計算機である。なお、計算機1000は、ホワイトリスト生成装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
 計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。
 プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
 入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
 ネットワークインタフェース1120は、計算機1000を通信網に接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。例えば計算機1000は、ネットワークインタフェース1120を介して、対象仮想マシン20、対象物理マシン30、管理サーバ40、及びマシン90などといった種々のマシンと通信可能に接続される。
 ストレージデバイス1080は、ホワイトリスト生成装置2000の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
<処理の流れ>
 図5は、実施形態1のホワイトリスト生成装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は、生成リクエスト70を取得する(S102)。ホワイトリスト生成部2040は、ハードウエア構成情報74に示されているハードウエア性能よりも高いハードウエア性能を持つマシン90の生成又は特定を行う(S104)。ホワイトリスト生成部2040は、マシン90に対し、ソフトウエア構成情報72に示されているソフトウエアをインストールする(S106)。ホワイトリスト生成部2040は、マシン90の記憶装置の内容に基づいてホワイトリスト60を生成する(S108)。
<システム10を利用する流れの例>
 図6は、ユーザ50が仮想マシン提供システム10を利用する流れを例示する図である。ユーザ50は、ユーザ端末52を用いて管理サーバ40にアクセスする(S202)。例えば管理サーバ40は、仮想マシン提供システム10を利用するためのインタフェースとなる Web サイトを提供する。この場合、ユーザ50は、ユーザ端末52からこの Web サイトへアクセスする。
 管理サーバ40は、対象仮想マシン20の作成を要求するために利用できる入力画面をユーザ端末52へ送信する(S204)。管理サーバ40が Web サイトを提供する場合、この入力画面は Web ページとして実現される。ユーザ50は、ユーザ端末52に表示された入力画面に対し、対象仮想マシン20のハードウエア構成及びソフトウエア構成を指定する入力を行う(S206)。その結果、ユーザ50が指定した対象仮想マシン20のハードウエア構成を示すハードウエア構成情報74、及びユーザ50が指定した対象仮想マシン20のソフトウエア構成を示すソフトウエア構成情報72を含む生成リクエスト70がユーザ端末52から管理サーバ40へ送信される(S208)。
 管理サーバ40は、生成リクエスト70を受信する(S210)。生成リクエスト70の受信後は、ホワイトリスト60の生成と対象仮想マシン20の生成が並行して行われることが好適である。管理サーバ40は、ハードウエア構成情報74に示されているハードウエア構成を持ち、なおかつソフトウエア構成情報72に示されているソフトウエア構成を持つ対象仮想マシン20を生成する(S212)。一方、ホワイトリスト生成装置2000は、ホワイトリストを生成するための一連の処理(S102からS108)を行う。その後ホワイトリスト生成装置2000は、対象仮想マシン20の生成が完了するまで待機する(S214)。例えばホワイトリスト生成装置2000は、対象仮想マシン20の生成が完了した旨の通知を管理サーバ40から受信することで、対象仮想マシン20の生成が完了したことを検知する。
 ホワイトリスト生成装置2000は、対象仮想マシン20に対してホワイトリスト60を適用する(S216)。管理サーバ40は、対象仮想マシン20の生成が完了したことを示す通知をユーザ端末52へ送信する(S218)。この通知は、任意の方法で行うことができる。
 ここで、図6を利用した前述の説明は、仮想マシン提供システム10の利用方法をイメージしやすくするための例示であり、仮想マシン提供システム10の構成やその利用方法を限定するものではない。例えば、ユーザ50が仮想マシン提供システム10を利用する方法は、必ずしも Web サイトを介する方法に限定されない。例えば、仮想マシン提供システム10を利用するための専用のアプリケーションをユーザ端末52にインストールし、そのアプリケーションを介してユーザ端末52と管理サーバ40との間でデータのやりとりが行われるにようにしてもよい。
<生成リクエスト70の取得:S102>
 取得部2020は生成リクエスト70を取得する(S102)。生成リクエスト70は、対象仮想マシン20の生成を要求するリクエストであり、ハードウエア構成情報74及びソフトウエア構成情報72を含む。ハードウエア構成情報74は、対象仮想マシン20のハードウエア性能を指定する情報を含む。例えばハードウエア構成情報74は、CPU の性能(仮想 CPU の個数及びクロック数)、メモリの容量、及び補助記憶装置(仮想ディスク)の容量などを含む。例えばユーザ50は、管理サーバ40によって提供される前述した入力画面に CPU の性能等の情報を入力することで、対象仮想マシン20のハードウエア構成を指定する(S206)。
 ただし、各ハードウエアを個別に指定させる代わりに、ハードウエアの組み合わせを複数パターン用意しておき、そのパターンのいずれか1つをユーザ50に選択させるようにしてもよい。例えば、高性能マシンと低性能マシンという2つの選択肢を用意しておき、管理サーバ40が、これらのいずれか一方を指定可能な入力画面をユーザ50に提供する。
 ソフトウエア構成情報72は、対象仮想マシン20にインストールすべきソフトウエアを示す情報である。ソフトウエア構成情報72は、OS の識別情報及びアプリケーションの識別情報のいずれか1つ以上を含む。例えば OS の識別情報は、OS の名称及びバージョン番号によって特定される。同様に、アプリケーションの識別情報は、アプリケーションの名称及びそのバージョン番号によって特定される。例えば管理サーバ40は、OS やアプリケーションを選択可能な入力画面をユーザ50に提供し、この入力画面で選択された OS やアプリケーションを対象仮想マシン20にインストールする。
 ただし、対象仮想マシン20にインストールされる OS が固定で決まっており、ユーザ50がこれを変更できないようにしてもよい。この場合、対象仮想マシン20にインストールする1つ以上のアプリケーションをユーザ50が指定できるようにする。
 一方で、対象仮想マシン20にインストールされるアプリケーションが固定で決まっており、ユーザ50がこれを変更できないようにしてもよい。この場合、対象仮想マシン20にインストールする OS をユーザ50が指定できるようにする。
 なお、ハードウエアの指定と同様に、各ソフトウエアを個別に指定させる代わりに、ソフトウエアの組み合わせを複数パターン用意しておき、そのパターンのいずれか1つをユーザ50に選択させるようにしてもよい。さらには、ハードウエアとソフトウエアの組み合わせを複数パターン用意しておき、そのパターンのいずれか1つをユーザ50に選択させるようにしてもよい。例えば、「高性能マシン:ソフトウエア構成A」、「高性能マシン:ソフトウエア構成B」、「低性能マシン:ソフトウエア構成A」、及び「低性能マシン:ソフトウエア構成B」という4つのパターンを用意しておき、ユーザ50にいずれか1つを選択させるようにする。
 図7は、生成リクエスト70を生成するための入力画面80を例示する図である。入力画面80は、ハードウエア構成を指定するための入力エリア82と、ソフトウエア構成を指定するための入力エリア84を含む。入力エリア82では、CPU などの性能が、テキストボックスに対するキー入力で指定可能となっている。入力エリア84では、OS やアプリケーションが、ドロップボタンで選択できるようになっている。ただし、ハードウエアやソフトウエアの指定方法はここで示した例に限定されない。
 入力エリア82と入力エリア84にはそれぞれスライダが設けられており、図7では表示されていない他の要素についての指定も可能となっている。例えば、入力エリア82のスライダを下に移動させることにより、入力デバイスやネットワークに関する設定などをさらに指定できるようにする。また、入力エリア84のスライダを下に移動させることにより、3つ目以降のアプリケーションをさらに指定できるようにする。
 取得部2020が生成リクエスト70を取得する方法は様々である。ホワイトリスト生成装置2000が管理サーバ40と同一の装置で実現されるとする。この場合、取得部2020は、ユーザ端末52から送信された生成リクエスト70を受信することで、生成リクエスト70を取得する。一方、ホワイトリスト生成装置2000が管理サーバ40とは異なる装置で実現されるとする。この場合、取得部2020は、管理サーバ40がユーザ端末52から受信した生成リクエスト70を、管理サーバ40から取得する。例えば取得部2020は、管理サーバ40から送信される生成リクエスト70を受信することで、生成リクエスト70を取得する。
<マシン90の生成又は特定:S104>
 ホワイトリスト生成部2040は、マシン90の生成又は特定を行う(S104)。マシン90は、ホワイトリスト60の生成に利用されるマシンである。マシン90は物理マシンであってもよいし、仮想マシンであってもよい。また、マシン90を仮想マシンとして実現する場合、マシン90を動作させる物理マシンは、対象仮想マシン20を動作させる物理マシンと同じものであってもよいし、異なるものであってもよい。ただし、対象仮想マシン20を生成する処理に影響を及ぼすことを避けるため、対象仮想マシン20を動作させる物理マシンとは異なる物理マシンでマシン90を動作させる方が好ましい。
 ここで、ホワイトリスト生成部2040は、少なくとも、ホワイトリスト60の生成に要する時間に影響を及ぼす蓋然性が高いハードウエアに関し、マシン90の性能が対象仮想マシン20の性能よりも高くなるようにする。ホワイトリスト60の生成に要する時間に影響を及ぼす蓋然性が高いハードウエアは、例えば、CPU とメモリである。以下、マシン90においてその性能を対象仮想マシン20の性能(すなわち、ハードウエア構成情報74に示されている性能)よりも高くすべきハードウエアを、対象ハードウエアと呼ぶ。
<<ハードウエアの性能の定め方>>
<<<CPU の性能の定め方>>>
 CPU を対象ハードウエアとする場合、ホワイトリスト生成部2040は、マシン90の CPU 性能を表す指標値が、対象仮想マシン20の CPU 性能を表す指標値よりも高くなるようにする。以下、CPU の性能を表す指標値を、CPU 性能指標値と呼ぶ。例えば CPU 性能指標値は、CPU の周波数である。この場合、例えばホワイトリスト生成部2040は、マシン90の CPU の周波数が、対象仮想マシン20の CPU の周波数よりも高くなるようにする。
 ただし、仮想 CPU の場合、CPU の周波数に相当する指標が、仮想マシンを動作させる物理マシンの物理 CPU の周波数、及び仮想 CPU に割り当てる物理 CPU のシェアで定められるケースもある。この場合、例えばホワイトリスト生成部2040は、物理 CPU の周波数とその仮想マシンに割り当てられるシェアとを掛けることで得られる値(仮想 CPU の周波数の理論値)を、その仮想マシンの仮想 CPU の周波数として扱う。例えば、3GHz の物理 CPU を持つ物理マシン上で仮想マシンを動作させる場合において、その仮想マシンに物理 CPU の 1/3 のシェアを割り当てるとする。この場合、ホワイトリスト生成部2040は、その仮想マシンの仮想 CPU の周波数を、1.0GHz(3.0GHz*(1/3))とみなす。
 なお、仮想マシンや物理マシンに複数の CPU が存在することもある。例えばこの場合、ホワイトリスト生成部2040は、マシンに含まれる CPU の周波数の和を、そのマシンの CPU 性能指標値として扱う。例えば、周波数が 3GHz である物理 CPU を2つ持つ物理マシン上で仮想マシンを動作させるとする。さらにこの場合に、その仮想マシンに、物理 CPU の 1/3 のシェアを割り当てる仮想 CPU が2つ含まれるとする。この場合、ホワイトリスト生成部2040は、2つの仮想 CPU の周波数の和である 2.0GHz(1.0GHz+1.0GHz)を、その仮想マシンの CPU 性能指標値として扱う。
 ただし、CPU 性能指標値は、CPU の周波数以外も用いて定められてもよい。例えば、CPU の種々の要素(周波数、個数、コア数、及びキャッシュメモリのサイズなど)に基づいて CPU 性能指標値を算出する関数を予め定めておく。ホワイトリスト生成部2040は、この関数を用いて CPU 性能指標値を算出する。
 物理 CPU の性能指標値を算出する場合、例えばホワイトリスト生成部2040は、物理 CPU の仕様で定められている各要素の値を上記関数に代入することで、その物理 CPU の CPU 性能指標値を算出する。一方、仮想 CPU の CPU 性能指標値を算出する場合、例えばホワイトリスト生成部2040は、仮想マシンを動作させる物理マシンの物理 CPU について、上記関数を用いて CPU 性能指標値を算出し、その CPU 性能指標値に仮想 CPU のシェアを掛けることで、仮想 CPU の CPU 性能指標値を算出する。
<<<メモリの性能の定め方>>>
 メモリを対象ハードウエアとする場合、ホワイトリスト生成部2040は、マシン90のメモリ性能を表す指標値が、対象仮想マシン20のメモリ性能を表す指標値よりも高くなるようにする。以下、メモリ性能を表す指標値を、メモリ性能指標値と呼ぶ。例えばメモリ性能指標値は、メモリ容量である。この場合、例えばホワイトリスト生成部2040は、マシン90のメモリ容量が、対象仮想マシン20のメモリ容量よりも多くなるようにする。
 仮想マシンのメモリ容量は、例えば、仮想マシンを動作させる物理マシンのメモリ容量、及び仮想マシンに割り当てるメモリ容量のシェアで定められる。この場合、例えばホワイトリスト生成部2040は、物理メモリの容量とその仮想マシンに割り当てられるメモリのシェアとを掛けることで得られる値(仮想マシンのメモリ容量の理論値)を、その仮想マシンのメモリ容量として扱う。例えば、メモリ容量が 16GB である物理マシン上で仮想マシンを動作させる場合において、その仮想マシンに物理メモリの 1/4 のシェアを割り当てるとする。この場合、ホワイトリスト生成部2040は、その仮想マシンのメモリ容量を 4GB(16GB*(1/4))とみなす。
 ただし、メモリ性能指標値は、メモリ容量以外も用いて定められてもよい。例えば、メモリの各要素(メモリ容量やメモリのバンド幅など)に基づいてメモリ性能指標値を算出する関数を予め定めておく。ホワイトリスト生成部2040は、この関数を用いてメモリ性能指標値を算出する。
 物理メモリのメモリ性能指標値を算出する場合、例えばホワイトリスト生成部2040は、物理メモリの仕様で定められている各要素の値を上記関数に代入することで、その物理メモリのメモリ性能指標値を算出する。一方、仮想マシンのメモリのメモリ性能指標値を算出する場合、例えばホワイトリスト生成部2040は、仮想マシンを動作させる物理マシンのメモリについて、上記関数を用いてメモリ性能指標値を算出し、そのメモリ性能指標値に仮想マシンのメモリのシェアを掛けることで、仮想マシンのメモリ性能指標値を算出する。
<<<その他のハードウエアについて>>>
 対象ハードウエアは、CPU とメモリに限定されない。その他のハードウエアの性能についても、CPU やメモリと同様に、そのハードウエアの性能を表す指標値によって定めることができる。
<<マシン90を生成又は特定する方法>>
 前述したように、マシン90は、物理マシンとして実現されてもよいし、仮想マシンとして実現されてもよい。以下、マシン90を物理マシンとして実現させるケースと仮想マシンとして実現させるケースのそれぞれについて、マシン90を生成又は特定する方法を説明する。
<<<マシン90を物理マシンとして実現させるケース>>>
 マシン90を物理マシンとして実現させる場合、マシン90として利用可能な物理マシンを予め用意しておく。例えばこの場合、ハードウエア性能が互いに異なる複数の物理マシンを用意しておく。ホワイトリスト生成部2040は、ハードウエア構成情報74に示されているハードウエアよりも性能が高いハードウエアを持つ物理マシンを、マシン90として特定する。
 例えば、CPU とメモリを対象ハードウエアとして扱うとする。この場合、まずホワイトリスト生成部2040は、ハードウエア構成情報74を用い、対象仮想マシン20について CPU 性能指標値及びメモリ性能指標値を算出する。そしてホワイトリスト生成部2040は、CPU 性能指標値及びメモリ性能指標値のそれぞれが対象仮想マシン20について算出した CPU 性能指標値及びメモリ指標値よりも高い物理マシンを、マシン90として特定する。
 ここで、ハードウエア構成情報74に示されているハードウエアよりも性能が高いハードウエアを持つ物理マシンが、複数特定されたとする。この場合、ホワイトリスト生成部2040は、特定された複数の物理マシンのうちの1つを選択し、選択した物理マシンをマシン90として利用する。ここで、物理マシンの選択方法は任意である。例えばホワイトリスト生成部2040は、特定された複数の物理マシンの中からランダムに1つを選択する。その他にも例えば、ホワイトリスト生成部2040は、ハードウエア性能が最も低い物理マシンを選択する。その他にも例えば、ホワイトリスト生成部2040は、ハードウエア性能が最も高い物理マシンを選択する。
 また、マシン90として利用可能な全ての物理マシンのハードウエア性能を、指定可能な最大の性能を持つ対象仮想マシン20のハードウエア性能よりも高くしておいてもよい。この場合、どの物理マシンをマシン90として選択したとしても、マシン90のハードウエア性能が対象仮想マシン20のハードウエア性能よりも高くなる。そのためこの場合、ホワイトリスト生成部2040は、前述した CPU 性能指標値などを算出することなく、用意されている物理マシンのうちの任意の物理マシンを、マシン90として特定することができる。
<<<マシン90を仮想マシンとして実現させるケース>>>
 マシン90を仮想マシンとして実現させる場合、ホワイトリスト生成部2040は、対象仮想マシン20の対象ハードウエアを、ハードウエア構成情報74に示されているハードウエア性能よりも高いハードウエア性能を持つ仮想ハードウエアとして生成することで、マシン90を生成する。例えば、CPU とメモリを対象ハードウエアとして扱うとする。この場合、まずホワイトリスト生成部2040は、ハードウエア構成情報74を用い、対象仮想マシン20について CPU 性能指標値及びメモリ性能指標値を算出する。そしてホワイトリスト生成部2040は、マシン90の CPU 性能指標値及びメモリ性能指標値のそれぞれが、対象仮想マシン20について算出した CPU 性能指標値及びメモリ指標値よりも高くなるように、マシン90の CPU 及びメモリを生成する。
 例えばホワイトリスト生成部2040は、対象仮想マシン20のハードウエア性能を表す指標値に対して1より大きい所定の係数αを掛けた値が、マシン90のハードウエア性能を表す指標値となるようにする。例として、CPU 性能指標値とメモリ性能指標値がそれぞれ、CPU 周波数とメモリ容量であるとする。また、対象仮想マシン20の CPU 周波数とメモリ容量がそれぞれ、F と M であるとする。この場合、ホワイトリスト生成部2040は、マシン90の CPU 周波数とメモリ容量がそれぞれ αF と αM となるように、マシン90を生成する。なお、係数αはホワイトリスト生成部2040からアクセス可能な記憶装置に予め記憶させておく。
 ここで、マシン90を仮想マシンとして動作させる場合において、マシン90を動作させるために利用できる物理マシンが複数用意されていてもよい。この場合、ホワイトリスト生成部2040は、複数の物理マシンの中から、マシン90のハードウエア性能を所望の性能にすることが可能な物理マシンを1つ選択する。例えば前述の例のように、マシン90の CPU 周波数とメモリ容量をそれぞれ、αF とαM にするとする。この場合、ホワイトリスト生成部2040は、「マシン90に対して割り当て可能な CPU 周波数とメモリ容量がそれぞれ αF 以上及び αM 以上である」という要件を満たす物理マシンを、マシン90を動作させる物理マシンとして選択する。なお、上記要件を満たす物理マシンが複数存在する場合、ホワイトリスト生成部2040は、その中の任意の物理マシンを選択してよい。
 マシン90に割り当てるハードウエアの性能を決定する方法は、前述した係数αを利用する方法に限定されない。例えばホワイトリスト生成部2040は、物理マシンからマシン90に対し、割り当て可能な全てのハードウエア資源が割り当てられるようにしてもよい。ただしこの場合、ホワイトリスト生成部2040は、マシン90のハードウエア性能を対象仮想マシン20のハードウエア性能よりも高くすることができる物理マシンを選択する。例えば前述したように、対象仮想マシン20の CPU 周波数とメモリ容量が F と M である場合、ホワイトリスト生成部2040は、マシン90に対して割り当て可能な CPU 周波数とメモリ容量がそれぞれ F と M よりも大きい物理マシンを選択する。
 なお、必ずしもマシン90を新たに生成する必要はなく、マシン90の生成は予め行っておき、既に生成されているマシン90のハードウエア構成を変更するという方法を採用することもできる。仮想マシンのハードウエア構成はその生成後に変更することもできるためである。仮想マシンのハードウエア構成をその生成後に変更する技術には、既存の技術を利用することができる。
<ホワイトリスト60の生成:S106及びS108>
 ホワイトリスト生成部2040は、マシン90を利用してホワイトリスト60を生成する。具体的には、ホワイトリスト生成部2040は、ホワイトリスト60の対象とするソフトウエア(以下、対象ソフトウエア)をマシン90にインストールする(S106)。その後、ホワイトリスト生成部2040は、マシン90の記憶装置をスキャンすることで、その記憶装置に記憶されている各ファイルの識別情報を示すホワイトリスト60を生成する(S108)。
 また、ホワイトリスト60には、ファイルの識別情報に加え、ファイルのハッシュ値がさらに含められてもよい。この場合、ホワイトリスト生成部2040は、マシン90の記憶装置に記憶されている各ファイルのハッシュ値を算出し、ファイルの識別情報とそのファイルのハッシュ値とが対応づけられたホワイトリスト60を生成する。なお、特定の種類のファイルや特定のディレクトリの配下にあるファイルの情報のみをホワイトリスト60に含めるとする。この場合、ホワイトリスト生成部2040は、マシン90の記憶装置に記憶されているファイルのうち、それら対象となるファイルについてのみハッシュ値を算出すればよい。ハッシュ値の算出に利用するハッシュ関数は、ホワイトリスト生成部2040からアクセス可能な記憶装置に予め記憶させておく。
<対象仮想マシン20に対するホワイトリスト60の適用:S216>
 ホワイトリスト生成部2040は、生成したホワイトリスト60を対象仮想マシン20に適用する(S216)。ここで、「ホワイトリスト60を対象仮想マシン20に適用する」とは、「その対象仮想マシン20において行われるファイルアクセス制御がそのホワイトリスト60を用いて行われる」という状態にすること(その状態にするために必要な処理を実行すること)を意味する。例えば、所定の記憶領域に記憶されているホワイトリストを参照してファイルアクセス制御を行うように対象仮想マシン20が構成されているとする。この場合、ホワイトリスト生成部2040は、上記所定の記憶領域にホワイトリスト60を格納する。こうすることで、ホワイトリスト生成部2040によって生成されたホワイトリスト60を利用して対象仮想マシン20がファイルアクセス制御を行うようになる。
 ホワイトリスト60を利用したアクセス制御は、例えば以下のようにして行われる。まず対象仮想マシン20は、対象仮想マシン20上でファイルアクセスが発生したら、そのファイルアクセスをフックし、許可されているファイルアクセスか否かを判定する。例えば対象仮想マシン20は、アクセスされるファイルがホワイトリスト60に示されていない場合には、そのファイルアクセスを許可せず、アクセスされるファイルがホワイトリスト60に示されている場合には、そのファイルアクセスを許可する。
 ここで、ホワイトリスト60にファイルのハッシュ値がさらに示されているとする。この場合、対象仮想マシン20は、ホワイトリスト60に示されていると判定されたファイルのハッシュ値を算出し、算出したハッシュ値がホワイトリスト60に示されているハッシュ値と一致するか否かを判定する。算出したハッシュ値がホワイトリスト60に示されているハッシュ値と一致する場合、対象仮想マシン20はファイルアクセスを許可する。算出したハッシュ値がホワイトリスト60に示されているハッシュ値と一致しない場合、対象仮想マシン20はファイルアクセスを許可しない。
 なお、一部のファイルのみについてファイルアクセス制御を行うとする。この場合、まず対象仮想マシン20は、アクセスされるファイルがアクセス制御の対象であるか否かを判定する。そして、アクセス制御の対象であると判定された場合のみ、ホワイトリスト60を利用したアクセス制御を行う。
 ここで、ホワイトリストを参照してファイルアクセス制御を行うより具体的な技術には、既存の技術を利用することができる。そのため、ファイルアクセス制御の実現方法に関するこれ以上の説明は省略する。
<ブラックリストの併用>
 仮想マシン提供システム10で動作する仮想マシンは、ホワイトリストに加え、ブラックリストを利用してアクセス制御を行ってもよい。ブラックリストは、許可されないファイルアクセスを特定する情報である。仮想マシンは、ホワイトリストとブラックリストの双方で許可されているファイルアクセスのみを許可し、少なくも一方において許可されていないファイルアクセスについては許可しないように動作する。
 例えばブラックリストは、アクセスを許可しないファイルの識別情報を示す。この場合、仮想マシンは、アクセスされたファイルの識別情報がブラックリストに示されていたら、そのファイルアクセスを許可しないようにする。
 その他にも例えば、ブラックリストは、ファイルの識別情報と、そのファイルについて許可されないアクセスの種類(例えば、書き込み、読み込み、及び実行のいずれか1つ以上)を示してもよい。この場合、仮想マシンは、アクセスされたファイルの識別情報がブラックリストに示されており、なおかつそのアクセスの種類がブラックリストで許可されていない種類であったら、そのファイルアクセスを許可しないようにする。
[実施形態2]
 図8は、実施形態2のホワイトリスト生成装置2000の動作の概要を例示する図である。実施形態2のホワイトリスト生成装置2000は、生成したホワイトリスト60をキャッシュとして記憶装置に記憶させておき、その後のホワイトリスト60の生成を省略できるようにする機能を有する。言い換えれば、ホワイトリスト生成装置2000は、生成すべきホワイトリスト60がキャッシュとして記憶されている場合には、キャッシュとして記憶されているホワイトリスト60を読み出して利用することで、ホワイトリスト60の生成を省略する。
 ここで、ホワイトリスト60の内容は、対象ソフトウエアに依存する。例えば、OS が対象ソフトウエアであるとする。この場合、同一の OS がインストールされる複数の仮想マシンの間では、OS のインストールによって仮想マシンの記憶装置に格納されるファイルが同じであるため、ホワイトリスト60の内容も同じになる。よって、同一の OS がインストールされる複数の仮想マシン(すなわち、対象ソフトウエアが共通する複数の仮想マシン)の間では、ホワイトリスト60の流用が可能となる。
 そこで、ホワイトリスト生成装置2000は、対象仮想マシン20についてホワイトリスト60を生成したら、そのホワイトリスト60についてキャッシュ情報100を生成し、キャッシュ情報記憶装置110に格納する。キャッシュ情報100は、対象仮想マシン20の生成に利用されたソフトウエア構成情報72(対象仮想マシン20にインストールされた対象ソフトウエアの識別情報)と、生成したホワイトリスト60とを対応づけた情報である。キャッシュ情報記憶装置110は、ホワイトリスト生成装置2000からアクセス可能な任意の記憶装置である。
 以下、キャッシュ情報100が示すソフトウエア構成情報及びホワイトリストをそれぞれ、ソフトウエア構成情報102及びホワイトリスト104と呼ぶ。すなわち、キャッシュ情報100では、ソフトウエア構成情報102として、取得部2020によって取得されたソフトウエア構成情報72が利用され、ホワイトリスト104として、ホワイトリスト生成部2040によって生成されたホワイトリスト60が利用される。
 なお、対象仮想マシン20に複数の対象ソフトウエア(例えば、OS とアプリケーション)がインストールされるとする。この場合、ソフトウエア構成情報72にはこれら複数の対象ソフトウエアの識別情報が示されている。そのため、キャッシュ情報100には、それら複数の対象ソフトウエアの識別情報の組み合わせに対してホワイトリストが対応づけられることとなる。
 ホワイトリスト生成装置2000がキャッシュ情報100を利用する方法は、例えば以下のようになる。まずホワイトリスト生成装置2000は、生成リクエスト70を取得したら、生成リクエスト70に含まれるソフトウエア構成情報72で、キャッシュ情報記憶装置110を検索する。ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100が存在したら、ホワイトリスト生成装置2000は、そのキャッシュ情報100に示されているホワイトリスト104を、対象仮想マシン20に適用する。この場合、ホワイトリスト生成装置2000は、マシン90を利用してホワイトリスト60を生成するための一連の処理(S104及びS106)を行わなくてよい。
 一方で、ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100が存在しない場合には、ホワイトリスト生成装置2000は、実施形態1で説明した方法によってホワイトリスト60を生成する。そして、ホワイトリスト生成装置2000は、生成したホワイトリスト60についてキャッシュ情報100を生成して、キャッシュ情報100に格納する。
 ただし後述する様に、対象ソフトウエアが複数ある場合、一部の対象ソフトウエアのみが一致するキャッシュ情報100(すなわち、ソフトウエア構成情報72と部分的に一致するソフトウエア構成情報102を示すキャッシュ情報100)を活用することもできる。その活用方法については後述する。
<作用効果>
 本実施形態のホワイトリスト生成装置2000によれば、ホワイトリスト60が生成された場合に、ホワイトリスト60とソフトウエア構成情報72とを対応づけたキャッシュ情報100が、キャッシュ情報記憶装置110に格納される。そして、その後に生成される対象仮想マシン20のソフトウエア構成が、過去にホワイトリスト60が生成された別の対象仮想マシン20のソフトウエア構成と一致する場合には、キャッシュ情報100に示されているホワイトリスト104を利用することで、ホワイトリスト60の生成が省略される。こうすることにより、ホワイトリストの生成に要する時間をさらに短くすることができるため、ユーザ50にとっての対象仮想マシン20の利便性をさらに高くすることができる。
 以下、本実施形態のホワイトリスト生成装置2000についてさらに詳細に説明する。
<機能構成の例>
 図9は、実施形態2のホワイトリスト生成装置2000の機能構成を例示する図である。実施形態2のホワイトリスト生成装置2000は、キャッシュ情報生成部2060をさらに有する。キャッシュ情報生成部2060は、ホワイトリスト生成部2040によって生成されたホワイトリスト60と、ソフトウエア構成情報72とを対応づけたキャッシュ情報100を生成し、生成したキャッシュ情報100をキャッシュ情報記憶装置110に格納する。
 また、実施形態2のホワイトリスト生成部2040は、ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100が、キャッシュ情報記憶装置110に記憶されているか否かを判定する。ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100がキャッシュ情報記憶装置110に記憶されている場合、ホワイトリスト生成部2040は、そのキャッシュ情報100に示されているホワイトリスト104を対象仮想マシン20に適用する。一方、ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100がキャッシュ情報記憶装置110に記憶されていない場合、ホワイトリスト生成部2040は、実施形態1で説明した方法でホワイトリスト60を生成する。
<ハードウエア構成の例>
 実施形態2のホワイトリスト生成装置2000のハードウエア構成は、例えば、実施形態1のホワイトリスト生成装置2000のハードウエア構成と同様に、図4で表される。ただし、実施形態2のホワイトリスト生成装置2000のストレージデバイス1080には、実施形態2のホワイトリスト生成装置2000の機能を実現するプログラムモジュールが記憶される。
<処理の流れ>
 図10は、実施形態2のホワイトリスト生成装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020が生成リクエスト70を取得したら(S102)、ホワイトリスト生成部2040は、ソフトウエア構成情報72でキャッシュ情報記憶装置110を検索することで、ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100が存在するか否かを判定する(S302)。ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100が存在する場合(S302:YES)、ホワイトリスト生成部2040は、そのキャッシュ情報100が示すホワイトリスト104を対象仮想マシン20に適用する(S304)。
 一方、ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100が存在しない場合(S302:NO)、ホワイトリスト生成部2040は、実施形態1で説明した方法でホワイトリスト60を生成する(S104~S108)。そして、ホワイトリスト生成部2040は、生成したホワイトリスト60を対象仮想マシン20に適用する(S306)。
 ホワイトリスト生成部2040によってホワイトリスト60が生成された場合、キャッシュ情報生成部2060は、ソフトウエア構成情報72とホワイトリスト60とを対応づけたキャッシュ情報100を生成し(S308)、キャッシュ情報記憶装置110に格納する(S310)。
<対象ソフトウエアの一部が一致するケースについて>
 取得部2020が取得したソフトウエア構成情報72と部分的に一致するソフトウエア構成情報102を示すキャッシュ情報100が存在する場合、キャッシュ情報100の一部を活用することができるケースもある。具体的には、「OS がソフトウエア構成情報72と一致し、アプリケーションの一部もソフトウエア構成情報72と一致する」というソフトウエア構成情報102を示すキャッシュ情報100が存在する場合、一致するアプリケーションについての情報を活用できる。例えば、ソフトウエア構成情報72が「OS:osA、アプリ:app1, app2」を示している場合において、「OS:osA、アプリ:app1, app3」を示すキャッシュ情報100が存在するケースである。この場合、app1 というアプリケーションについての情報を活用できる。
 具体的には、一致するアプリケーションのインストールに伴って記憶装置に格納されるファイルのハッシュ値を利用することができる。これは、特定のアプリケーションのインストールによって記憶装置に格納されるファイルの内容は、OS が共通であれば、インストール先のマシンに依らずに共通となるためである。例えば前述した例でいえば、app1 というアプリケーションのインストールに伴って記憶装置に格納されるファイルについてのハッシュ値については、キャッシュ情報100内のホワイトリスト60に示されているハッシュ値を利用することができる。こうすることで、一部のファイルについてハッシュ値の計算を省略できるため、ホワイトリスト60の生成に要する時間を短くすることができる。
 例えばホワイトリスト生成部2040は、次のように動作する。まずホワイトリスト生成部2040は、ソフトウエア構成情報72と一致するソフトウエア構成情報102を示すキャッシュ情報100が存在しない場合、ソフトウエア構成情報72と部分一致するソフトウエア構成情報102を示すキャッシュ情報100を検索する。具体的には、ホワイトリスト生成部2040は、ソフトウエア構成情報72を、「OS, 第1のアプリケーション1」、「OS, 第2のアプリケーション2」、・・・「OS, 第nのアプリケーション」(nはソフトウエア構成情報72に示されているアプリケーションの総数)のように、OS と各アプリケーションのペアに分解し、各ペアについて、そのペアがソフトウエア構成情報102に含まれるキャッシュ情報100を検索する。
 「OS, 第iのアプリケーション」というペアについて、そのペアが含まれるソフトウエア構成情報102を示すキャッシュ情報100が存在したとする。この場合、ホワイトリスト生成部2040は、そのキャッシュ情報100のホワイトリスト104に示されるファイルのハッシュ値を、ホワイトリスト60の生成に利用する。
 具体的には、ホワイトリスト生成部2040は、実施形態1で説明した方法により、ホワイトリスト60を生成する。この際、マシン90の記憶装置に格納されている各ファイルのハッシュ値の計算をする前に、そのファイルの識別情報と一致する識別情報が、上述したホワイトリスト104に示されているか否かを判定する。或るファイルの識別情報と一致する識別情報がホワイトリスト104に示されている場合、ホワイトリスト生成部2040は、そのファイルについてはハッシュ値の計算を行わず、ホワイトリスト104においてそのファイルの識別情報と対応付けられているハッシュ値を利用する。
<変形例>
 ここで、ホワイトリストの内容が同一となる対象仮想マシン20が並行して複数生成されることがありうる。例えば、管理サーバ40が、同じソフトウエア構成の仮想マシンを複数生成することを要求する1つの生成リクエスト70を受信したり、同じソフトウエア構成の仮想マシンを要求する複数の生成リクエスト70を近いタイミングで受信したりするケースである。前者は、同じユーザ50が同じソフトウエア構成の仮想マシンを複数要求するケースであり、後者は、互いに異なるユーザ50が同じソフトウエア構成の仮想マシンを近いタイミングで要求するケースである。
 これらのケースでは、複数の対象仮想マシン20でソフトウエア構成が同一であるため、複数の対象仮想マシン20でホワイトリスト60の内容が共通となる。そのため、各対象仮想マシン20について個別にマシン90を利用したホワイトリスト60の生成を行う必要はなく、ホワイトリスト60の生成は一度だけ行い、そのホワイトリスト60をコピーして各対象仮想マシン20に適用すればよい。こうすることで、ホワイトリスト60の生成に必要な計算機資源を削減することができる。
 以下、1)同じ構成の仮想マシンを複数生成することを要求する1つの生成リクエスト70を受信するケースと、2)同じ構成の仮想マシンを要求する複数の生成リクエスト70を近いタイミングで受信するケースのそれぞれについて、ホワイトリスト生成装置2000の動作を説明する。
<<1)のケース>>
 このケースでは、ユーザ50は、1つの生成リクエスト70で複数の仮想マシンの生成リクエストを送信することができる。例えば、図7の入力画面80において、仮想マシンの台数をさらに指定できるようにしておく。ただし、ソフトウエア構成は同一であるがハードウエア構成は互いに異なる複数の仮想マシンが要求されてもよい。
 ホワイトリスト生成部2040は、生成リクエスト70において、同じソフトウエア構成の対象仮想マシン20が複数要求されているか否かを判定する。同じソフトウエア構成の対象仮想マシン20が複数要求されている場合、ホワイトリスト生成部2040は、各対象仮想マシン20についてのハードウエア構成情報74を利用して、これら複数の対象仮想マシン20のうち、要求されているハードウエア性能が最も高いものを特定する。ホワイトリスト生成部2040は、特定したハードウエア性能よりも高い性能を持つマシン90を特定又は生成し、そのマシン90を利用してホワイトリスト60の生成を行う。そしてホワイトリスト生成部2040は、生成したホワイトリスト60を各対象仮想マシン20に対して適用する。なお、生成リクエスト70で要求されている複数の対象仮想マシン20について、ソフトウエア構成が互いに異なる場合には、各対象仮想マシン20についてホワイトリスト60の生成を行う。
<<2)のケース>>
 この「同じ構成の仮想マシンを要求する複数の生成リクエスト70を近いタイミングで受信する」というケースでは、「新たな生成リクエスト70を受信した場合に、その生成リクエスト70で示されているソフトウエア構成と同一のソフトウエア構成を持つ対象仮想マシン20について、ホワイトリスト60の生成が現在実行中である」ということが起こりうる。この場合、現在生成中のホワイトリスト60を、新たな生成リクエスト70に基づいてこれらから生成する対象仮想マシン20についても適用することができる。
 そこで例えば、ホワイトリスト生成装置2000は、以下のように動作する。ホワイトリスト生成部2040は、現在ホワイトリスト60を生成中である対象仮想マシン20の中に、新たな生成リクエスト70に示されているソフトウエア構成と同一のソフトウエア構成を持つ対象仮想マシン20が存在するか否かを判定する。この判定を実現するために、例えば、現在ホワイトリスト60が生成中である各対象仮想マシン20のソフトウエア構成を示す情報を、ホワイトリスト生成部2040からアクセス可能な記憶装置に記憶させておく。
 現在ホワイトリスト60を生成中である対象仮想マシン20の中に、新たな生成リクエスト70に示されているソフトウエア構成と同一のソフトウエア構成を持つ対象仮想マシン20が存在する場合、ホワイトリスト生成部2040は、新たな生成リクエスト70に基づくホワイトリスト60の生成は行わず、現在生成中のホワイトリスト60についてその生成が完了したら、そのホワイトリスト60を、新たな生成リクエスト70に基づいて生成される対象仮想マシン20にも適用する。現在ホワイトリスト60を生成中である対象仮想マシン20の中に、新たな生成リクエスト70に示されているソフトウエア構成と同一のソフトウエア構成を持つ対象仮想マシン20が存在しない場合には、新たな生成リクエスト70についても、マシン90を利用したホワイトリスト60の生成を実行する。
 なお、新たな生成リクエスト70に示されるソフトウエア構成と同一のソフトウエア構成の対象仮想マシン20について、既にホワイトリスト60の生成が完了している場合、そのホワイトリスト60については、前述したキャッシュ情報100が生成されている。そのため、キャッシュ情報100を利用することで、ホワイトリストの生成を省略することができる。
 以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
1. 仮想マシンのハードウエア性能を示すハードウエア構成情報、及び前記仮想マシンにインストールされるソフトウエアを示すソフトウエア構成情報を含む生成リクエストを取得する取得部と、
 前記仮想マシンにおいてアクセスが許可されるファイルを表すホワイトリストを生成するホワイトリスト生成部と、を有し、
 前記ホワイトリスト生成部は、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つマシンに対し、前記取得したソフトウエア構成情報に示されるソフトウエアをインストールし、そのインストール後の前記マシンの記憶装置の内容に基づいて、前記ホワイトリストを生成する、ホワイトリスト生成装置。
2. 前記ホワイトリスト生成部は、前記ハードウエア構成情報に示されるハードウエア性能を持ち、なおかつ前記取得したソフトウエア構成情報に示されるソフトウエアがインストールされた仮想マシンに対し、前記生成したホワイトリストを適用する、1.に記載のホワイトリスト生成装置。
3. 前記ソフトウエア構成情報は、オペレーティングシステムを特定する情報を示し、
 前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるオペレーティングシステムが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、1.又は2.に記載のホワイトリスト生成装置。
4. 前記ソフトウエア構成情報は、アプリケーションを特定する情報を示し、
 前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるアプリケーションが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、1.又は2.に記載のホワイトリスト生成装置。
5. ホワイトリスト生成部は、ハードウエア性能がそれぞれ異なる複数の物理マシンの中から、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ物理マシンを特定し、前記特定した物理マシンを用いて前記ホワイトリストを生成する、1.乃至4.いずれか一つの記載のホワイトリスト生成装置。
6. ホワイトリスト生成部は、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ仮想マシンを生成し、前記生成した仮想マシンを用いて前記ホワイトリストを生成する、1.乃至4.いずれか一つの記載のホワイトリスト生成装置。
7. 前記ソフトウエア構成情報と、そのソフトウエア構成情報に示されるソフトウエアがインストールされたマシンについて生成されたホワイトリストとを対応づけたキャッシュ情報をキャッシュ情報記憶装置に格納するキャッシュ情報生成部を有し、
 前記ホワイトリスト生成部は、前記取得した生成リクエストに含まれるソフトウエア構成情報に対応するホワイトリストが前記キャッシュ情報記憶装置に記憶されている場合、そのホワイトリストを前記キャッシュ情報記憶装置から取得し、ホワイトリストの生成を行わない、1.乃至6.いずれか一つに記載のホワイトリスト生成装置。
8. 前記ホワイトリストは、アクセスが許可されるファイルのハッシュ値を示し、
 前記ホワイトリスト生成部は、前記キャッシュ情報が示す前記ソフトウエア構成情報の中に、前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるオペレーティングシステムと同一のオペレーティングシステムを示し、なおかつ前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるアプリケーションの一つと一致するアプリケーションを示すものがある場合、そのソフトウエア構成情報と対応づけられている前記ホワイトリストが示す各ファイルのハッシュ値を、前記仮想マシンについて生成する前記ホワイトリストに利用する、7.に記載のホワイトリスト生成装置。
9. コンピュータによって実行される制御方法であって、
 仮想マシンのハードウエア性能を示すハードウエア構成情報、及び前記仮想マシンにインストールされるソフトウエアを示すソフトウエア構成情報を含む生成リクエストを取得する取得ステップと、
 前記仮想マシンにおいてアクセスが許可されるファイルを表すホワイトリストを生成するホワイトリスト生成ステップと、を有し、
 前記ホワイトリスト生成ステップにおいて、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つマシンに対し、前記取得したソフトウエア構成情報に示されるソフトウエアをインストールし、そのインストール後の前記マシンの記憶装置の内容に基づいて、前記ホワイトリストを生成する、制御方法。
10. 前記ホワイトリスト生成ステップにおいて、前記ハードウエア構成情報に示されるハードウエア性能を持ち、なおかつ前記取得したソフトウエア構成情報に示されるソフトウエアがインストールされた仮想マシンに対し、前記生成したホワイトリストを適用する、9.に記載の制御方法。
11. 前記ソフトウエア構成情報は、オペレーティングシステムを特定する情報を示し、
 前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるオペレーティングシステムが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、9.又は10.に記載の制御方法。
12. 前記ソフトウエア構成情報は、アプリケーションを特定する情報を示し、
 前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるアプリケーションが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、9.又は10.に記載の制御方法。
13. ホワイトリスト生成ステップにおいて、ハードウエア性能がそれぞれ異なる複数の物理マシンの中から、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ物理マシンを特定し、前記特定した物理マシンを用いて前記ホワイトリストを生成する、9.乃至12.いずれか一つの記載の制御方法。
14. ホワイトリスト生成ステップにおいて、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ仮想マシンを生成し、前記生成した仮想マシンを用いて前記ホワイトリストを生成する、9.乃至12.いずれか一つの記載の制御方法。
15. 前記ソフトウエア構成情報と、そのソフトウエア構成情報に示されるソフトウエアがインストールされたマシンについて生成されたホワイトリストとを対応づけたキャッシュ情報をキャッシュ情報記憶装置に格納するキャッシュ情報生成ステップを有し、
 前記ホワイトリスト生成ステップにおいて、前記取得した生成リクエストに含まれるソフトウエア構成情報に対応するホワイトリストが前記キャッシュ情報記憶装置に記憶されている場合、そのホワイトリストを前記キャッシュ情報記憶装置から取得し、ホワイトリストの生成を行わない、9.乃至14.いずれか一つに記載の制御方法。
16. 前記ホワイトリストは、アクセスが許可されるファイルのハッシュ値を示し、
 前記ホワイトリスト生成ステップにおいて、前記キャッシュ情報が示す前記ソフトウエア構成情報の中に、前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるオペレーティングシステムと同一のオペレーティングシステムを示し、なおかつ前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるアプリケーションの一つと一致するアプリケーションを示すものがある場合、そのソフトウエア構成情報と対応づけられている前記ホワイトリストが示す各ファイルのハッシュ値を、前記仮想マシンについて生成する前記ホワイトリストに利用する、15.に記載の制御方法。
17. 9.乃至16.いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
 この出願は、2019年3月12日に出願された日本出願特願2019-044977号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10 仮想マシン提供システム
20 対象仮想マシン
30 対象物理マシン
40 管理サーバ
50 ユーザ
52 ユーザ端末
60 ホワイトリスト
70 生成リクエスト
72 ソフトウエア構成情報
74 ハードウエア構成情報
80 入力画面
82 入力エリア
84 入力エリア
90 マシン
100 キャッシュ情報
102 ソフトウエア構成情報
104 ホワイトリスト
110 キャッシュ情報記憶装置
1000 計算機
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージデバイス
1100 入出力インタフェース
1120 ネットワークインタフェース
2000 ホワイトリスト生成装置
2020 取得部
2040 ホワイトリスト生成部
2060 キャッシュ情報生成部

Claims (17)

  1.  仮想マシンのハードウエア性能を示すハードウエア構成情報、及び前記仮想マシンにインストールされるソフトウエアを示すソフトウエア構成情報を含む生成リクエストを取得する取得部と、
     前記仮想マシンにおいてアクセスが許可されるファイルを表すホワイトリストを生成するホワイトリスト生成部と、を有し、
     前記ホワイトリスト生成部は、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つマシンに対し、前記取得したソフトウエア構成情報に示されるソフトウエアをインストールし、そのインストール後の前記マシンの記憶装置の内容に基づいて、前記ホワイトリストを生成する、ホワイトリスト生成装置。
  2.  前記ホワイトリスト生成部は、前記ハードウエア構成情報に示されるハードウエア性能を持ち、なおかつ前記取得したソフトウエア構成情報に示されるソフトウエアがインストールされた仮想マシンに対し、前記生成したホワイトリストを適用する、請求項1に記載のホワイトリスト生成装置。
  3.  前記ソフトウエア構成情報は、オペレーティングシステムを特定する情報を示し、
     前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるオペレーティングシステムが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、請求項1又は2に記載のホワイトリスト生成装置。
  4.  前記ソフトウエア構成情報は、アプリケーションを特定する情報を示し、
     前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるアプリケーションが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、請求項1又は2に記載のホワイトリスト生成装置。
  5.  ホワイトリスト生成部は、ハードウエア性能がそれぞれ異なる複数の物理マシンの中から、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ物理マシンを特定し、前記特定した物理マシンを用いて前記ホワイトリストを生成する、請求項1乃至4いずれか一つの記載のホワイトリスト生成装置。
  6.  ホワイトリスト生成部は、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ仮想マシンを生成し、前記生成した仮想マシンを用いて前記ホワイトリストを生成する、請求項1乃至4いずれか一つの記載のホワイトリスト生成装置。
  7.  前記ソフトウエア構成情報と、そのソフトウエア構成情報に示されるソフトウエアがインストールされたマシンについて生成されたホワイトリストとを対応づけたキャッシュ情報をキャッシュ情報記憶装置に格納するキャッシュ情報生成部を有し、
     前記ホワイトリスト生成部は、前記取得した生成リクエストに含まれるソフトウエア構成情報に対応するホワイトリストが前記キャッシュ情報記憶装置に記憶されている場合、そのホワイトリストを前記キャッシュ情報記憶装置から取得し、ホワイトリストの生成を行わない、請求項1乃至6いずれか一項に記載のホワイトリスト生成装置。
  8.  前記ホワイトリストは、アクセスが許可されるファイルのハッシュ値を示し、
     前記ホワイトリスト生成部は、前記キャッシュ情報が示す前記ソフトウエア構成情報の中に、前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるオペレーティングシステムと同一のオペレーティングシステムを示し、なおかつ前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるアプリケーションの一つと一致するアプリケーションを示すものがある場合、そのソフトウエア構成情報と対応づけられている前記ホワイトリストが示す各ファイルのハッシュ値を、前記仮想マシンについて生成する前記ホワイトリストに利用する、請求項7に記載のホワイトリスト生成装置。
  9.  コンピュータによって実行される制御方法であって、
     仮想マシンのハードウエア性能を示すハードウエア構成情報、及び前記仮想マシンにインストールされるソフトウエアを示すソフトウエア構成情報を含む生成リクエストを取得する取得ステップと、
     前記仮想マシンにおいてアクセスが許可されるファイルを表すホワイトリストを生成するホワイトリスト生成ステップと、を有し、
     前記ホワイトリスト生成ステップにおいて、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つマシンに対し、前記取得したソフトウエア構成情報に示されるソフトウエアをインストールし、そのインストール後の前記マシンの記憶装置の内容に基づいて、前記ホワイトリストを生成する、制御方法。
  10.  前記ホワイトリスト生成ステップにおいて、前記ハードウエア構成情報に示されるハードウエア性能を持ち、なおかつ前記取得したソフトウエア構成情報に示されるソフトウエアがインストールされた仮想マシンに対し、前記生成したホワイトリストを適用する、請求項9に記載の制御方法。
  11.  前記ソフトウエア構成情報は、オペレーティングシステムを特定する情報を示し、
     前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるオペレーティングシステムが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、請求項9又は10に記載の制御方法。
  12.  前記ソフトウエア構成情報は、アプリケーションを特定する情報を示し、
     前記ホワイトリストは、前記ソフトウエア構成情報によって特定されるアプリケーションが前記マシンにインストールされた後に前記記憶装置に格納されているファイルを示す、請求項9又は10に記載の制御方法。
  13.  ホワイトリスト生成ステップにおいて、ハードウエア性能がそれぞれ異なる複数の物理マシンの中から、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ物理マシンを特定し、前記特定した物理マシンを用いて前記ホワイトリストを生成する、請求項9乃至12いずれか一つの記載の制御方法。
  14.  ホワイトリスト生成ステップにおいて、前記ハードウエア構成情報に示されるハードウエア性能よりも高いハードウエア性能を持つ仮想マシンを生成し、前記生成した仮想マシンを用いて前記ホワイトリストを生成する、請求項9乃至12いずれか一つの記載の制御方法。
  15.  前記ソフトウエア構成情報と、そのソフトウエア構成情報に示されるソフトウエアがインストールされたマシンについて生成されたホワイトリストとを対応づけたキャッシュ情報をキャッシュ情報記憶装置に格納するキャッシュ情報生成ステップを有し、
     前記ホワイトリスト生成ステップにおいて、前記取得した生成リクエストに含まれるソフトウエア構成情報に対応するホワイトリストが前記キャッシュ情報記憶装置に記憶されている場合、そのホワイトリストを前記キャッシュ情報記憶装置から取得し、ホワイトリストの生成を行わない、請求項9乃至14いずれか一項に記載の制御方法。
  16.  前記ホワイトリストは、アクセスが許可されるファイルのハッシュ値を示し、
     前記ホワイトリスト生成ステップにおいて、前記キャッシュ情報が示す前記ソフトウエア構成情報の中に、前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるオペレーティングシステムと同一のオペレーティングシステムを示し、なおかつ前記取得した生成リクエストに含まれるソフトウエア構成情報に示されるアプリケーションの一つと一致するアプリケーションを示すものがある場合、そのソフトウエア構成情報と対応づけられている前記ホワイトリストが示す各ファイルのハッシュ値を、前記仮想マシンについて生成する前記ホワイトリストに利用する、請求項15に記載の制御方法。
  17.  請求項9乃至16いずれか一項に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
PCT/JP2019/048413 2019-03-12 2019-12-11 ホワイトリスト生成装置、制御方法、及びプログラム WO2020183828A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/435,834 US20220156362A1 (en) 2019-03-12 2019-12-11 White list generation device, control method, and program
EP19919477.0A EP3940529A4 (en) 2019-03-12 2019-12-11 WHITELIST GENERATION DEVICE, CONTROL METHOD AND PROGRAM
JP2021505520A JP7184158B2 (ja) 2019-03-12 2019-12-11 ホワイトリスト生成装置、制御方法、及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-044977 2019-03-12
JP2019044977 2019-03-12

Publications (1)

Publication Number Publication Date
WO2020183828A1 true WO2020183828A1 (ja) 2020-09-17

Family

ID=72427849

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/048413 WO2020183828A1 (ja) 2019-03-12 2019-12-11 ホワイトリスト生成装置、制御方法、及びプログラム

Country Status (4)

Country Link
US (1) US20220156362A1 (ja)
EP (1) EP3940529A4 (ja)
JP (1) JP7184158B2 (ja)
WO (1) WO2020183828A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220398317A1 (en) * 2021-06-15 2022-12-15 Kabushiki Kaisha Toshiba Information processing apparatus, information processing method, and recording medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220164229A1 (en) * 2020-11-23 2022-05-26 Hewlett Packard Enterprise Development Lp Managing deployment of workloads

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044613A (ja) * 2008-08-13 2010-02-25 Fujitsu Ltd ウイルス対策方法、コンピュータ、及びプログラム
WO2010100769A1 (ja) * 2009-03-06 2010-09-10 株式会社日立製作所 セキュリティ管理装置及び方法
US20160162685A1 (en) * 2014-12-08 2016-06-09 Vmware, Inc. Monitoring application execution in a clone of a virtual computing instance for application whitelisting
JP2017021777A (ja) 2015-06-30 2017-01-26 エーオー カスペルスキー ラボAO Kaspersky Lab 仮想スタックマシンで実行可能な有害なファイルを検出するためのシステムおよび方法
JP2019044977A (ja) 2017-08-29 2019-03-22 トヨタ自動車株式会社 水素ガスバーナー装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300599A1 (en) * 2008-05-30 2009-12-03 Matthew Thomas Piotrowski Systems and methods of utilizing virtual machines to protect computer systems
US9760712B2 (en) * 2014-05-23 2017-09-12 Vmware, Inc. Application whitelisting using user identification
US11249780B2 (en) * 2018-01-19 2022-02-15 Citrix Systems, Inc. VM creation by installation media probe
US10892944B2 (en) * 2018-11-29 2021-01-12 International Business Machines Corporation Selecting and using a cloud-based hardware accelerator

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044613A (ja) * 2008-08-13 2010-02-25 Fujitsu Ltd ウイルス対策方法、コンピュータ、及びプログラム
WO2010100769A1 (ja) * 2009-03-06 2010-09-10 株式会社日立製作所 セキュリティ管理装置及び方法
US20160162685A1 (en) * 2014-12-08 2016-06-09 Vmware, Inc. Monitoring application execution in a clone of a virtual computing instance for application whitelisting
JP2017021777A (ja) 2015-06-30 2017-01-26 エーオー カスペルスキー ラボAO Kaspersky Lab 仮想スタックマシンで実行可能な有害なファイルを検出するためのシステムおよび方法
JP2019044977A (ja) 2017-08-29 2019-03-22 トヨタ自動車株式会社 水素ガスバーナー装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3940529A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220398317A1 (en) * 2021-06-15 2022-12-15 Kabushiki Kaisha Toshiba Information processing apparatus, information processing method, and recording medium

Also Published As

Publication number Publication date
EP3940529A4 (en) 2022-05-04
US20220156362A1 (en) 2022-05-19
JP7184158B2 (ja) 2022-12-06
EP3940529A1 (en) 2022-01-19
JPWO2020183828A1 (ja) 2020-09-17

Similar Documents

Publication Publication Date Title
US9836616B2 (en) Creating distinct user spaces through user identifiers
US20160357678A1 (en) Predictive caching and fetch priority
US8528075B2 (en) Accelerating the execution of anti-virus programs in a virtual machine environment
EP2933747B1 (en) System and methods of distributing antivirus checking tasks among virtual machines in a virtual network
US8897573B2 (en) Virtual machine image access de-duplication
CN109983431B (zh) 用于存储设备中的列表检索的系统和方法
US20130227692A1 (en) System and method for optimization of antivirus processing of disk files
EP3376424B1 (en) Scanning files using antivirus software
WO2020183828A1 (ja) ホワイトリスト生成装置、制御方法、及びプログラム
CN113391796B (zh) 一种集成开发环境的构建方法、装置、设备及介质
KR101478801B1 (ko) 가상 머신을 이용한 클라우드 컴퓨팅 서비스를 제공하는 시스템 및 방법
US20200082077A1 (en) Identifying malware based on content item identifiers
JP2017215923A (ja) 分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するシステム及び方法
US20090327303A1 (en) Intelligent allocation of file server resources
WO2018182885A1 (en) Secure software defined storage
US8806203B2 (en) Server-side security for untrusted clients using directory hiding
US11916875B2 (en) System and method for multi-layered rule learning in URL filtering
CN109324997B (zh) 一种基于区块链的数字权利保护方法及装置
CN110298165B (zh) 安全访问共享内存的方法、装置以及认证代理
CN110020290B (zh) 网页资源缓存方法、装置、存储介质及电子装置
US20150106884A1 (en) Memcached multi-tenancy offload
US20230171267A1 (en) Selective security scan to reduce signature candidates
Kim et al. Efficient auto-scaling scheme for rapid storage service using many-core of desktop storage virtualization based on IoT
KR20140088962A (ko) 클라우드 환경에서의 데이터 저장 시스템 및 방법
US11762984B1 (en) Inbound link handling

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19919477

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021505520

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019919477

Country of ref document: EP

Effective date: 20211012