WO2012147252A1 - 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 - Google Patents
仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 Download PDFInfo
- Publication number
- WO2012147252A1 WO2012147252A1 PCT/JP2012/001130 JP2012001130W WO2012147252A1 WO 2012147252 A1 WO2012147252 A1 WO 2012147252A1 JP 2012001130 W JP2012001130 W JP 2012001130W WO 2012147252 A1 WO2012147252 A1 WO 2012147252A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual machine
- processor
- execution
- application program
- executed
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Definitions
- the present invention relates to a virtual machine system, and more particularly to a technique for protecting a specific application program from an attack by malware.
- Patent Document 1 describes a virtual machine system that switches and executes virtual machines to be operated in consideration of the importance of tasks executed on each virtual machine.
- a virtual machine system is described in which the virtual machine to be executed is switched so that the virtual machine whose execution target is the highest priority is executed.
- the application program group to be executed includes an application program certified as not including malware (hereinafter referred to as “certified application program”) and malware.
- application programs hereinafter referred to as “uncertified application programs” that may be included.
- malware when malware is included in the uncertified application program, the authorized application program may be attacked by executing the malware.
- Examples of cases where a certified application program is attacked include, for example, information that should be executed in an inappropriate manner and kept secret from the outside, such as paid content stored in the system, personal Information, encryption keys, etc. may be read out.
- the child virtual machine is a duplicate of the parent virtual machine Therefore, when an uncertified application program is included in the application program group to be executed by the parent virtual machine, the uncertified application program is included in the application program group to be executed in the child virtual machine. It will be included.
- the present invention has been made in view of such problems, and is a case where a certified application program and an uncertified application program are mixed in the application program group to be executed by the virtual machine.
- Another object of the present invention is to provide a virtual machine system that can suppress a risk that a certified application program is attacked by executing malware included in an uncertified application program.
- a virtual machine system is a virtual machine system including a processor and a hypervisor that is executed on the processor and causes the processor to control the execution of a plurality of virtual machines.
- the hypervisor includes an execution detection unit for detecting that a predetermined application program is about to be newly executed in the virtual computer, and the execution detection unit executed by the processor in the first virtual computer.
- a new second virtual computer for executing the predetermined application program is generated based on the first virtual computer
- a virtual machine generation unit which is executed by the processor.
- Each of the plurality of virtual machines to be controlled causes the processor to execute only the specific program group including the predetermined application program in the second virtual machine, and causes the processor to execute the process in the first virtual machine.
- An execution control unit for executing a predetermined dummy program instead of the predetermined application program is provided.
- the certified application program is executed when the certified application program is a predetermined application program and the non-certified application program is not included in the specific program group.
- the uncertified application program is not executed, and in the parent virtual machine in which the uncertified application program may be executed, the certified application program is not executed.
- a virtual machine system in which a plurality of operating systems that are executed in a supervisor mode of a processor are time-division controlled by a hypervisor will be described.
- This virtual computer system is configured such that when a predetermined application program to be protected from an attack by malware is to be executed in a virtual computer being executed, the virtual computer being executed is set as a parent virtual computer. Then, a child virtual machine for executing the specific application program is generated by the fork method (described later). Then, the generated child virtual machine is set so that an application program other than the specific application program is not executed. On the other hand, the parent virtual machine executes a dummy application program instead of the specific application program. As a result, even if malware that attacks the specific application program is included in the application program to be executed by the virtual machine system, the specific application program is not attacked by the malware. .
- FIG. 1 is a block diagram showing the main hardware configuration of the virtual machine system 100.
- the virtual computer system 100 is a computer device as hardware, and includes an integrated circuit 110, an input device 131, an output device 132, and a hard disk device 133.
- the integrated circuit 110 is a semiconductor in which a processor 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a timer 104, an internal bus 120, a first interface 121, a second interface 122, and a third interface 123 are integrated.
- An integrated circuit that is connected to the input device 131, the output device 132, and the hard disk device 133.
- the processor 101 is connected to the internal bus 120 and has a function of controlling the ROM 102, RAM 103, timer 104, input device 131, output device 132, and hard disk device 133 by executing a program stored in the ROM 102 or RAM 103. .
- FIG. 2 is an operation mode diagram showing an operation mode provided in the processor 101.
- the processor 101 includes a user mode 230 for executing an application program (task A 231, task K 232, task L 233, etc. in the figure), an operating system (first OS (Operating System) 221 in the figure), A second OS 222, a second NOS 223, etc.) and a supervisor mode 220, which is a privileged mode for executing a hypervisor (hypervisor 211 in the figure).
- first OS Operating System
- second OS 222 a second NOS 223, etc.
- supervisor mode 220 which is a privileged mode for executing a hypervisor (hypervisor 211 in the figure).
- Each of the application programs executed in the user mode 230 is time-sharing execution controlled by the operating system executed in the supervisor mode 220, and each of the operating systems executed in the supervisor mode 220 is also executed in the supervisor mode 220. Time-sharing execution control is performed by the hypervisor.
- the ROM 102 and the RAM 103 are each connected to the internal bus 120 and store a program that defines the operation of the processor 101 and data used by the processor 101.
- the timer 104 is connected to the internal bus 120 and is controlled by the processor 101.
- the internal bus 120 is connected to the processor 101, the ROM 102, the RAM 103, the timer 104, the first interface 121, the second interface 122, and the third interface 123, and has a function of transmitting signals between these connected circuits.
- the first interface 121, the second interface 122, and the third interface 123 are connected to the internal bus 120, respectively, and function to mediate the exchange of signals between the internal bus 120 and the input device 131, the internal bus 120 and the output. It has a function of mediating exchange of signals with the device 132 and a function of mediating exchange of signals between the internal bus 120 and the hard disk device 133.
- the input device 131 includes a keyboard, a mouse, a camera, a sensor, and the like.
- the input device 131 is connected to the first interface 121 and is controlled by the processor 101 to generate data corresponding to a user operation performed through the keyboard, mouse, camera, sensor, and the like. And a function of sending a notification indicating that a user operation or the like has occurred and sending the generated data to the processor 101.
- the output device 132 includes a display, a speaker, and the like, connected to the second interface 122, controlled by the processor 101, and has a function of displaying and outputting a character string, an image, a sound, and the like using the display, the speaker, and the like.
- the hard disk device 133 has a built-in hard disk for storing data used by the processor 101, is connected to the third interface 123, is controlled by the processor 101, and writes data to the built-in hard disk, and reads data from the built-in hard disk. With functions.
- FIG. 3 is a block diagram showing program modules (hereinafter simply referred to as “modules”) to be executed on the processor 101 at a certain time t0.
- a module group 300 is a set of modules to be executed by the processor 101, and each module included in the module group 300 is stored in a storage area of the ROM 102 or RAM 103.
- Task A 311 to task K 312, dummy task 313, task L 314 to task P 315, protection task 316, etc. are tasks executed in the user mode of the processor 101.
- the first OS 321 and the second OS 322 are multitasking operating systems that are executed in the supervisor mode of the processor 101, respectively.
- the hypervisor 351 is a hypervisor that is executed in the supervisor mode of the processor 101.
- the task can request a predetermined process from the operating system by calling an operating system call routine prepared in advance.
- the operating system can request a predetermined process from the hypervisor by calling a hypervisor call routine prepared in advance.
- exceptions that occur during the execution of the virtual machine system and interrupts that occur from the input device are processed by the hypervisor and notified to the operating system on the virtual machine as necessary.
- the protection task 316 is a task generated by starting a predetermined protection target application program by the operating system (second OS 322 here).
- This application program to be protected is an application program to be protected from an attack by malware, and is set to be protected in advance by a protection task correspondence table 346 described later.
- protection target application programs include, for example, application programs that handle personal information, application programs that handle monetary information, and application programs that handle video data that is subject to copyright protection.
- the dummy task 313 is a task generated by starting a predetermined dummy program by the operating system (here, the first OS 321).
- This dummy program is a program composed of an infinite loop that repeats NOP (NoNOOPeration), for example, and does not generate a new task.
- the first OS 321 performs time-sharing execution control of a plurality of tasks (here, task A 311 to task K 312 and dummy task 313) using time slice values. Then, the hypervisor 351 controls the system including the first OS 321, the task A 311 to the task K 312, and the dummy task 313 as the virtual machine 301.
- the second OS 322 performs time-sharing execution control of a plurality of tasks (here, task L314 to task P315 and protection task 316) using time slice values.
- the hypervisor 351 controls a system including the second OS 322, the task L314 to the task P315, and the protection task 316 as the child virtual machine 302.
- the child virtual machine 302 is a virtual machine generated by the fork method using the virtual machine 301 as a parent virtual machine. The generation of a virtual computer using the fork method will be described later.
- the first OS 321 includes, in addition to a module group (not shown) that realizes functions as a general multitask operating system, an activation request detection module 331, a protection task generation module 332, a task schedule change module 333, and a protection task.
- the activation request detection module 331 includes a predetermined protection task correspondence table 336 therein, which includes five modules, an end notification module 334 and a dummy task execution notification module 335.
- FIG. 4 is a data structure diagram of the protection task correspondence table 400 (the protection task correspondence table 336 and the protection task correspondence table 346 in FIG. 3) stored by the activation request detection module 331 and the activation request detection module 341.
- the protection task correspondence table 400 is configured such that an application program ID 410 and a protection target flag 420 are associated with each other.
- the protection task correspondence table 400 is predetermined at the time of system design.
- Application program ID is an ID for identifying an application program.
- the protection target flag 420 is a 1-bit flag indicating whether or not the application program identified by the corresponding application program ID is a protection target application program to be protected against an attack from malware.
- the protection target flag 420 indicates that, when the logical value is “1”, the application program identified by the corresponding application program ID is a protection target application program that is a protection target against an attack from malware, When the logical value is “0”, it is indicated that the application program identified by the corresponding application program ID is an application program that is not a protection target against an attack from malware.
- the protection target flag 420 for example, it can be seen that the application program identified by the application program ID 410 of “0002” is a protection target application program.
- the activation request detection module 331 internally stores a predetermined protection task correspondence table 336 and has the following two functions.
- Function 1 When the activation of a new application program is requested from a task whose execution is controlled by the own operating system (here, the first OS 321), the activation is requested with reference to the stored protection task correspondence table 336. A function to determine whether the application program is a protected application program.
- Function 2 When the application program requested to be started is a protection target application program, a protection task generation module (here, the protection task generation module 332) included in the own operating system and a virtual machine included in the hypervisor 351 A function of notifying the generation module 361 (described later) that activation of a protection target application program has been requested.
- a protection task generation module here, the protection task generation module 332 included in the own operating system and a virtual machine included in the hypervisor 351
- the protection task generation module 332 has the following three functions.
- Function 1 When a notification indicating that the virtual machine to which the operating system belongs (here, the virtual machine 301) is a child virtual machine is received from a child virtual machine notification module 362 (described later) included in the hypervisor 351, the protection target A function of starting an application program and generating a protection task in the virtual machine (here, the virtual machine 301) to which the own operating system belongs.
- Function 2 When a notification indicating that the virtual machine to which the operating system belongs (here, the virtual machine 301) is a child virtual machine has not been received from a child virtual machine notification module 362 (described later) included in the hypervisor 351,
- the activation request detection module here, the activation request detection module 331 included in the own operating system notifies that the activation of the protection target application program is requested, a dummy program is used instead of the protection target application program.
- Function 3 A function for assigning, to a dummy task, a time slice value assigned to a corresponding protection task as a time slice value used by the operating system for task switching control when generating a dummy task.
- the task schedule change module 333 has received a notification from the child virtual machine notification module 362 (described later) included in the hypervisor 351 that the virtual machine to which the operating system belongs (here, the virtual machine 301) is a child virtual machine.
- the protection task generation module here, the protection task generation module 332 included in the own operating system
- the task executed by the own operating system here, the first OS 321 is changed to the protection task. Has limited functions.
- the priority of the protection task is set higher than the priority of the other task, for example, the priority of the other task
- the own operating system has a function to limit the task to be executed to a predetermined task, it can be realized by setting the protection task as the predetermined task. .
- the protection task end notification module 334 detects the end of execution of the protection task whose execution is controlled by its own operating system (here, the first OS 321), and notifies a virtual machine scheduling module 363 (described later) included in the hypervisor 351. And a function of notifying that the execution of the protection task is completed.
- the dummy task execution notification module 335 has the following two functions.
- Function 1 It is detected that the execution of the dummy task is started in the virtual machine to which the own operating system belongs (here, the virtual machine 301), and the virtual machine scheduling module 363 (described later) included in the hypervisor 351 detects the dummy task. A function to notify that execution has started.
- Function 2 When the execution of the dummy task is interrupted in the virtual machine to which the own operating system belongs (here, the virtual machine 301), the virtual machine scheduling module 363 (described later) included in the hypervisor 351 detects the dummy task. A function to notify that execution has been interrupted.
- the second OS 322 includes, in addition to a group of modules (not shown) that realizes functions as a general multitask operating system, an activation request detection module 341, a protection task generation module 342, a task schedule change module 343, and a protection task.
- the activation request detection module 331 includes a predetermined protection task correspondence table 346 therein, which includes five modules, an end notification module 344 and a dummy task execution notification module 345.
- the activation request detection module 341, the protection task generation module 342, the task schedule change module 343, the protection task end notification module 344, the dummy task execution notification module 345, and the protection task correspondence table 346 are respectively included in the first OS 321.
- the activation request detection module 331, the protection task generation module 332, the task schedule change module 333, the protection task end notification module 334, the dummy task execution notification module 335, and the protection task correspondence table 336 have the same functions. Therefore, these descriptions are omitted here.
- the protected task generation module 342 and the task schedule change module 343 have received notification from the child virtual machine notification module 362 that the virtual machine to which the operating system belongs is a child virtual machine. Accordingly, the protection task generation module 332 and the task schedule change module 333 respectively perform different operations.
- the hypervisor 351 includes a virtual machine generation module 361, a child virtual machine notification module 362, a virtual machine scheduling module 363, and a virtual machine disappearance module 364.
- the virtual machine generation module 361 is based on the virtual machine 301 when the activation request detection module 331 of the virtual machine (here, the virtual machine 301) notifies that the activation of the application program to be protected is requested. Thus, it has a function of generating a new child virtual machine (here, the child virtual machine 302) by the fork method.
- generation of a virtual computer in the fork method means that a storage area allocated to a parent virtual machine and a storage area allocated to a newly generated virtual machine have a one-to-one correspondence.
- a new virtual machine is created by mapping the storage area allocated to the parent virtual machine to the storage area of the newly created virtual machine. Note that after a new virtual machine is created, the storage area of the parent virtual machine and the newly created virtual machine storage area are managed by the copy-on-write method.
- the child virtual machine notification module 362 includes a protection task generation module 342 that operates on the child virtual machine 302 and a task schedule when the virtual machine generation module 361 generates a new child virtual machine (here, the child virtual machine 302).
- the change module 343 has a function of notifying that the virtual machine is a child virtual machine.
- the child virtual machine notification module 362 records information indicating that the virtual machine is a child virtual machine in a specific memory area.
- the virtual machine scheduling module 363 has the following three functions.
- Function 1 When the execution of the dummy task 313 is notified from the dummy task execution notification module 335 when the parent virtual machine (here, the virtual machine 301) is the execution target virtual machine.
- Function 2 When the child virtual machine (here, the child virtual machine 302) is the execution target virtual machine, the dummy task execution notification module 335 of the parent virtual machine (here, the virtual machine 301) receives the dummy task 313. A function of switching the execution target virtual machine from the child virtual machine 302 to its parent virtual machine (here, the virtual machine 301) when notification that execution has been interrupted is performed.
- Function 3 When the child virtual machine (here, the child virtual machine 302) is the execution target virtual machine, the execution of the protection task 316 is completed from the protection task end notification module 344 of the child virtual machine 302 being executed.
- the execution target virtual machine is switched from the child virtual machine 302 to its parent virtual machine (here, the virtual machine 301), and the operating system (here, the first OS 321) in the virtual machine 301 is switched to A function for notifying that the execution of the protection task 316 has ended.
- the virtual machine disappearance module 364 executes the protection task 316 from the protection task end notification module 344 to the virtual machine scheduling module 363 when the child virtual machine (here, the child virtual machine 302) is the execution target virtual machine.
- the virtual machine scheduling module 363 switches the execution target virtual machine from the child virtual machine 302 to its parent virtual machine (in this case, the virtual machine 301). It has a function to eliminate.
- extinguishing a virtual machine means removing the target virtual machine from the time division execution process target and releasing the storage area allocated to the virtual machine.
- the child virtual machine generation process is a process in which the virtual machine system 100 generates a new child virtual machine for executing the protection task.
- FIG. 5 is a flowchart of the child virtual machine generation process.
- a protected application program is started from a task whose execution is controlled in the virtual machine (here, the virtual machine 301) to the operating system (here, the first OS 321) included in the virtual machine. Started by being requested.
- the activation request of the application program to be protected from the task whose execution is controlled is generated, for example, when the input device 131 (see FIG. 1) is operated by the user using the virtual machine system 100.
- the activation request detection module 331 (see FIG. 3) refers to the protection task correspondence table 336 stored therein, and the activation requested application program is a protection target application program. Is detected (step S500).
- the activation request detection module 331 notifies the protection task generation module 332 and the virtual machine generation module 361 that activation of the protection target application program has been requested (step S510).
- the virtual computer generation module 361 uses the fork method to create a new child virtual computer 302 based on the virtual computer 301. Generate. Then, the hypervisor 351 adds the generated child virtual machine 302 to the execution control target virtual machine (step S520).
- the child virtual machine notification module 362 notifies the protection task generation module 342 and the task schedule change module 343 of the child virtual machine 302 that the virtual machine to which the operating system belongs is a child virtual machine (step S530). ).
- the protection task generation module 332 of the virtual machine 301 has not received notification from the child virtual machine notification module 362 that the virtual machine to which the own operating system belongs is a child virtual machine.
- the dummy program is activated to generate a dummy task 313 in the virtual machine 301 (step S540).
- the protection task generation module 342 of the child virtual machine 302 is notified from the child virtual machine notification module 362 that the virtual machine to which the operating system belongs is a child virtual machine, the protection target application program And a protection task 316 is generated in the child virtual machine 302 (step S550). Then, when the protection task generation module 342 generates the protection task 316, the task schedule change module 343 limits the tasks executed by the second OS 322 to the protection task 316 (step S560).
- step S560 the virtual machine system 100 ends the child virtual machine generation process.
- the child virtual machine disappearance process is a process in which the virtual machine system 100 causes the child virtual machine generated to execute the protection task to disappear.
- FIG. 6 is a flowchart of the child virtual machine disappearance process.
- the protection task end notification module 344 indicates that the protection task (here, the protection task 316) being executed in the child virtual machine (here, the child virtual machine 302) has finished its process. It starts by detecting.
- the protection task end notification module 344 detects that the protection task 316 has been executed (step S600), and the virtual machine scheduling module 363 finishes executing the protection task. A notification to that effect has been made (step S610).
- the virtual machine scheduling module 363 When the virtual machine scheduling module 363 is notified from the protection task end notification module 344 that the execution of the protection task has ended, the virtual machine scheduling module 363 switches the execution target virtual machine from the child virtual machine 302 to the virtual machine 301 to the first OS 321. , Notification that the execution of the protection task 316 is completed. Then, the hypervisor 351 deletes the child virtual machine 302 from the virtual machine group managed as the execution control target virtual machine (step S620).
- the virtual machine disappearance module 364 releases the storage area allocated to the child virtual machine 302 when the virtual machine scheduling module 363 switches the execution target virtual machine from the child virtual machine 302 to the virtual machine 301.
- the child virtual machine 302 is extinguished (step S630).
- the first OS 321 switches the task to be executed from the dummy task 313 to another task, and controls the execution of the dummy task 313. Delete from the target task (step S640).
- step S640 When the process of step S640 ends, the virtual machine system 100 ends the child virtual machine disappearance process.
- the protection task execution process is a process in which the virtual machine system 100 executes a protection task.
- FIG. 7 is a flowchart of protection task execution processing.
- the protection task execution process is started when the dummy task 313 is started in the parent virtual machine (here, the virtual machine 301).
- the dummy task execution notification module 335 detects that the execution of the dummy task has started. Then, the virtual machine scheduling module 363 is notified that execution of the dummy task has been started (step S710).
- the virtual computer scheduling module 363 switches the execution target virtual computer from the virtual computer 301 to the child virtual computer 302 (step S31). S720).
- the child virtual machine 302 executes only the protection task 316 (step S730).
- the dummy task execution notification module 335 detects that the execution of the dummy task is interrupted, and sends it to the virtual machine scheduling module 363. Then, a notification that the execution of the dummy task is interrupted is performed (step S750).
- the execution of the dummy task 313 is interrupted in the virtual machine 301
- an interrupt occurs for a task other than the dummy task 313 (here, task A311 to task K312) in the virtual machine 301
- the time slice of the dummy task 313 may be completed. Completion of the time slice is detected, for example, when the timer 104 generates an interrupt to the processor 101 when the elapsed time from the execution start time of the dummy task 313 exceeds the time slice value.
- the virtual computer scheduling module 363 switches the execution target virtual computer from the child virtual computer 302 to the virtual computer 301 (step S31). S760).
- the task to be executed is switched from the dummy task 313 to a task other than the dummy task 313 and executed (step S770).
- step S780 when the task to be executed is switched again from the task other than the dummy task 313 to the dummy task 313 in the virtual machine 301 (step S780), the process returns to the process of step S700 again, and the processes after step S700 are repeated.
- FIG. 8 is a schematic diagram schematically showing tasks executed by the virtual machine system 100 in the protection task execution process.
- step S700 when the task to be executed is switched from the task other than the dummy task 313 to the dummy task 313 at the time t1, and the execution of the dummy task 313 is started (step S700), the execution of the dummy task is started.
- the virtual machine scheduling module 363 is notified (step S710), and the virtual machine to be executed is switched from the virtual machine 301 to the child virtual machine 302 (step S720), and only the protection task 316 is executed in the child virtual machine 302. (Step S730).
- step S740 when the execution of the dummy task 313 is interrupted at time t2 (step S740), the execution interruption of the dummy task is notified to the virtual machine scheduling module (step S750), and the virtual machine to be executed is The virtual machine 302 is switched to the virtual machine 301 (step S760), and the task to be executed in the virtual machine 301 is switched from the dummy task 313 to a task other than the dummy task 313 (step S770).
- FIG. 9 is a block diagram showing modules to be executed on the processor 101 at a certain time t5 when a plurality of different protection target application programs are requested to start.
- the figure shows a plurality of child virtual machines (here, child virtual machines A902) for executing the protection target application program corresponding to each of a plurality of different protection target application programs requested to be started in the virtual machine 901. , A child virtual machine B 903) is being generated.
- child virtual machines A902 for executing the protection target application program corresponding to each of a plurality of different protection target application programs requested to be started in the virtual machine 901. , A child virtual machine B 903) is being generated.
- the protection tasks (here, protection task A 917, protection task B 920, etc.) corresponding to each of the plurality of protection target application programs requested to be started are child virtual machines independent of each other. (Here, it is executed in the child virtual machine A902, child virtual machine B903, etc.).
- each of the application program corresponding to the task A 311 (see FIG. 3) and the application program corresponding to the task L314 includes malware that attacks the protection target application program corresponding to the protection task 316. Think about the case.
- the task A311 can be an execution target. For example, even if the activation of the protection target application program is requested from the task A311 being executed, the protection task generation module 332 replaces the protection target application program. The dummy program will be started. As a result, the protection target application program is not activated.
- the protection target application program is not attacked by the task A311.
- the protection task 316 is generated by starting the protection target application program. However, tasks other than the protection task 316 may be executed by the task schedule change module 343. Absent. That is, the task L314 is not executed in the child virtual machine 302.
- the virtual machine system 100 is a case where the malware that attacks the protection target application program is included in the application program to be executed by the virtual machine.
- the risk that the application program to be protected is attacked by the malware can be kept lower than before.
- the parent virtual computer executes a task other than the protection task
- the child virtual computer executes only the protection task.
- Tasks executed on the parent virtual machine and tasks executed on the child virtual machine do not overlap.
- the modified virtual machine system according to the second embodiment has the same hardware configuration as that of the virtual machine system 100 according to the first embodiment, but a part of the software to be executed is The virtual computer system 100 according to the first embodiment is modified.
- a dummy task execution notification module (for example, dummy task execution notification module 335) included in an operating system (for example, the first OS 321) detects the execution start of a dummy task, and Although it is an example of a configuration that notifies the scheduling module 363, in the modified virtual machine system according to the second embodiment, the dummy task itself notifies the virtual machine via the operating system that its own dummy task has been started. It is an example of the structure notified to a scheduling module.
- the modified virtual machine system has the same hardware configuration as that of the virtual machine system 100 according to the first embodiment. Therefore, the description is omitted here.
- FIG. 10 is a block diagram showing modules to be executed on the processor 101 at a certain time t0.
- a module group 1000 is a set of modules to be executed by the processor 101, and each module included in the module group 1000 is stored in a storage area of the ROM 102 or RAM 103.
- the dummy task 313 is changed to the dummy task 1013, the schedule task 1014 is added, and the dummy task execution notification module 335 and the dummy task execution notification module 345 are deleted from the module group 300 according to the first embodiment.
- the generation module 1032, the protection task generation module 1042, and the virtual machine scheduling module 1063 are changed. .
- the task schedule change module 333 and the protection task generation module 332 are changed to the task schedule change module 1033 and the protection task generation module 1032, respectively, so that the first OS 321 is transformed into the first OS 1021 and the task schedule is changed.
- the second OS 322 is transformed into the first OS 1022 when the change module 343 and the protection task generation module 342 are changed to the task schedule change module 1043 and the protection task generation module 1042, respectively.
- the virtual machine 301 is transformed into the virtual machine 1001
- the schedule task 1014 is added
- the second OS 322 is changed to the second OS 1022.
- the child virtual machine 302 is transformed into a child virtual machine 1002.
- the hypervisor 351 is changed to the hypervisor 1051 in accordance with the change of the virtual machine scheduling module 363 to the virtual machine scheduling module 1063.
- FIG. 11A is a program configuration diagram showing the configuration of the dummy program 1113 corresponding to the dummy task 1013.
- the dummy task 313 according to the first embodiment is a program composed of an infinite loop that repeats NOP, for example, such that the corresponding dummy program does not generate a new task, such as a program composed of an infinite loop that repeats NOP. It was supposed to be.
- the corresponding dummy program 1113 includes a first part 1121 and a second part 1122, as shown in FIG. It has become.
- the first part 1121 transmits a dummy to the virtual machine scheduling module 1063 included in the hypervisor 1051 via an operating system (here, the first OS 1021) that executes and controls a dummy task (here, the dummy task 1013) corresponding to the dummy program. Description to notify that task execution has started.
- an operating system here, the first OS 1021
- a dummy task here, the dummy task 1013
- the second portion 1122 abandons the time slice assigned to the own dummy task to the operating system (in this case, the first OS 1021) that controls the execution of the own dummy task, and changes the task to be executed from the own dummy task. Description requesting to switch to other task.
- FIG. 11B shows the configuration of the schedule program 1117 corresponding to the schedule task 1014.
- the corresponding schedule program 1117 is composed of a first part 1131 and a second part 1132 as shown in FIG.
- the first part 1131 abandons the time slice assigned to the self-schedule task to the operating system (in this case, the second OS 1022) that controls the execution of the self-schedule task, and changes the task to be executed from the self-schedule task. Description requesting to switch to other task.
- the operating system in this case, the second OS 1022
- the second part 1132 is executed by the virtual machine scheduling module 1063 included in the hypervisor 1051 via the operating system (here, the second OS 1022) that controls execution of the schedule task (here, the schedule task 1014) corresponding to the self-scheduled program.
- the operating system here, the second OS 1022
- the schedule task here, the schedule task 1014
- a description requesting to switch the target virtual machine from the child virtual machine to which the task belongs (here, the child virtual machine 1002) to the parent virtual machine (here, the virtual machine 1001).
- the protection task generation module 1032 is modified from the protection task generation module 332 according to the first embodiment so that the function 1 becomes the following modification function 1.
- Deformation function 1 When a notification indicating that the virtual machine to which the operating system belongs (here, the virtual machine 1001) is a child virtual machine is received from the child virtual machine notification module 362 included in the hypervisor 1051, the application program to be protected And a schedule program, and a protection task (here, protection task 316) and a schedule task (here, schedule task 1014) are generated in the virtual machine (here, virtual machine 1001) to which the own operating system belongs. Function to do.
- the task schedule change module 1033 is modified from the task schedule change module 333 according to the first embodiment so that the functions it has are the following two modified functions.
- Deformation function 1 When the virtual machine notification module 362 included in the hypervisor 1051 receives a notification that the virtual machine to which the own operating system belongs (here, the virtual machine 1001) is a child virtual machine, the own operating system When the protection task and the schedule task are generated by the protection task generation module (here, the protection task generation module 1032) included in the task, the task executed by the own operating system (here, the first OS 1021) is changed to the protection task and the schedule task. Functions limited to.
- ⁇ ⁇ Deformation function 2 A function that sets a task to be executed first as a schedule task when a protection task and a schedule task are subject to execution control.
- the virtual machine scheduling module 1063 is modified from the virtual machine scheduling module 363 according to the first embodiment so that the function 2 becomes the following modified function 2.
- Deformation function 2 When the child virtual machine (here, the child virtual machine 1002) is the execution target virtual machine, the schedule task (here, the schedule) is made via the operating system (here, the second OS 1022) of the child virtual machine 1002. From the task 1014), when there is a request to switch the execution target virtual machine from the child virtual machine 1002 to the parent virtual machine (here, the virtual machine 1001), the execution target virtual machine is changed from the child virtual machine 1002. The function of switching to the virtual machine 1001.
- the virtual machine 1001 has not received notification from the child virtual machine notification module 362 that it is a child virtual machine.
- the modified virtual machine generation process is a process in which the modified virtual machine system generates a new child virtual machine for executing the protection task, and a part of the child virtual machine generation process according to the first embodiment is modified. It has been done.
- FIG. 12 is a flowchart of the deformer virtual computer generation process.
- the deformer virtual machine generation process is performed from a task whose execution is controlled in the virtual machine (here, the virtual machine 1001) from the operating system included in the virtual machine ( Here, the process starts when the first OS 1021) is requested to start the application program to be protected.
- step S1200 to step S1240 is the same processing as the processing from step S500 to step S540 in the child virtual machine generation processing according to the first embodiment. Therefore, description of these steps is omitted here.
- the protection task generation module 342 of the child virtual machine 1002 When the protection task generation module 342 of the child virtual machine 1002 receives a notification from the child virtual machine notification module 362 that the virtual machine to which the operating system belongs is a child virtual machine, the protection task generation module 342 displays the protection target application program and the schedule program. When activated, a protection task 316 and a schedule task 1014 are generated in the child virtual machine 1002 (step S1250). Then, when the protection task generation module 342 generates the protection task 316 and the schedule task 1014, the task schedule change module 343 limits the tasks executed by the second OS 1022 to the protection task 316 and the schedule task 1014 (step S1260). ).
- step S1260 ends, the modified virtual machine system ends the deformed virtual machine generation process.
- the modified virtual machine generation process is a process in which the modified virtual machine system generates a new child virtual machine for executing the protection task, and a part of the child virtual machine generation process according to the first embodiment is modified. It has been done.
- FIG. 13 is a flowchart of the deformation protection task execution process.
- the transformation protection task execution process is started when the dummy task 1013 starts to be executed in the parent virtual machine (here, the virtual machine 1001), similarly to the protection task execution process according to the first embodiment.
- the dummy task 1013 when the execution of the dummy task 1013 that is the target of time-sharing execution control is started (step S1300), the dummy task 1013 performs processing corresponding to the first portion 1121 of the corresponding dummy program 1113. Then, the virtual machine scheduling module 1063 included in the hypervisor 1051 is notified via the first OS 1021 that the execution of the dummy task has been started (step S1305).
- the virtual machine scheduling module 1063 When the virtual machine scheduling module 1063 is notified via the first OS 1021 that the execution of the dummy task has been started, the virtual machine scheduling module 1063 temporarily suspends the execution of the virtual machine 1001 and sends the execution target virtual machine from the virtual machine 1001. And switch to the child virtual machine 1002 (step S1310).
- the child virtual machine 1002 When the execution target virtual machine is switched to the child virtual machine 1002, the child virtual machine 1002 first starts executing the schedule task 1014 (step S1315).
- the schedule task 1014 When the execution of the schedule task 1014 is started, the schedule task 1014 performs processing corresponding to the first portion 1131 of the corresponding schedule program 1117, and the time slice assigned to the self-schedule task is determined for the second OS 1022. Abandon and request to switch the task to be executed from the self-scheduled task to another task (that is, the protection task 316 here) (step S1320).
- the second OS 1022 suspends the execution of the schedule task 1014, switches the task to be executed from the schedule task 1014 to the protection task 316, and executes the protection task 316 ( Step S1325).
- step S1330 the second OS 1022 switches the task to be executed from the protection task 316 to the schedule task 1014 again and has been suspended. Execution of the schedule task 1014 is started (step S1335).
- the schedule task 1014 When the schedule task 1014 is executed again, the schedule task 1014 performs a process corresponding to the second part 1132 of the corresponding schedule program 1117, and the virtual machine scheduling module 1063 included in the hypervisor 1051 receives the processing via the second OS 1022. A request is made to switch the execution target virtual machine from the child virtual machine 1002 to the virtual machine 1001 (step S1340).
- the virtual machine scheduling module 1063 sends the execution target virtual machine from the child virtual machine 1002 to the virtual machine 1002. Switch to the computer 1001 (step S1345).
- step S1350 When the execution target virtual machine is switched to the virtual machine 1001, the virtual machine 1001 starts executing the suspended dummy task 1013 (step S1350).
- the dummy task 1013 When the dummy task 1013 is executed again, the dummy task 1013 performs processing corresponding to the second portion 1122 of the corresponding dummy program 1113, and abandons the time slice assigned to the own dummy task to the first OS 1021. Then, the task to be executed is requested to switch from its own dummy task to another task (step S1355).
- the second OS 1022 switches the task to be executed from the dummy task 1013 to a task other than the dummy task 1013 and executes it (step S1360).
- step S1365 when the task to be executed is switched again from the task other than the dummy task 1013 to the dummy task 1013 in the virtual machine 1001 (step S1365), the process returns to the process of step S1300 again, and the processes after step S1300 are repeated.
- FIG. 14 is a schematic diagram schematically showing tasks executed by the modified virtual machine system in the modified protection task execution process.
- the virtual machine scheduling module 1063 The notification that the execution of the dummy task is started is performed (step S1305), and the virtual machine to be executed is switched from the virtual machine 1001 to the child virtual machine 1002 (step S1310).
- Task 1014 is executed (step S1315).
- the second OS 1022 is requested to switch the task to be executed to the protection task 316 (step S1320), and starts executing the protection task 316 (step S1325).
- step S1330 the second OS 1022 switches the task to be executed to the schedule task 1014 and executes it (step S1335).
- a request is made to the virtual machine scheduling module 1063 to switch the execution target virtual machine to the virtual machine 1001 (step S1340), and the virtual machine to be executed is switched from the child virtual machine 1002 to the virtual machine 1001 (step S1340).
- step S1350 the dummy task 1013 is executed in the virtual machine 1001 (step S1350).
- the first OS 1021 is requested to switch the task to be executed to another task (step S1355), and the task to be executed is switched to another task (step S1360).
- the modified virtual machine system according to the second embodiment described above includes malware that attacks the protection target application program among the application programs to be executed by the virtual computer. Even if it is included, the risk that the application program to be protected is attacked by the malware can be suppressed lower than before.
- the modified virtual machine system according to the second embodiment is executed by a task executed by a parent virtual machine and a child virtual machine, similarly to the virtual machine system 100 according to the first embodiment. There is no duplication of tasks.
- the example of the two virtual computer systems has been described in the first embodiment and the second embodiment. However, it can be modified as follows. Of course, the present invention is not limited to the virtual machine system as shown in the above-described embodiment. (1) In the first embodiment, an example in which the virtual machine system 100 includes one processor has been described. However, if the hypervisor can control execution of a plurality of virtual machines, the number of processors is not necessarily limited to one.
- the hypervisor is not necessarily configured to execute the virtual machines in a time-sharing manner, and may be configured to execute a plurality of virtual machines in parallel.
- the processor 101, the ROM 102, the RAM 103, the timer 104, the internal bus 120, the first interface 121, the second interface 122, and the third interface 123 are integrated in one integrated circuit 110.
- these circuits are not necessarily integrated in one integrated circuit.
- the processor 101 may be integrated on the first integrated circuit, and other circuits may be integrated on the second integrated circuit.
- each circuit may be integrated on different integrated circuits. It does not matter.
- the integrated circuit 110 may be realized by an FPGA (Field Programmable Gate Array) capable of programming functions after manufacture, or may be realized by a reconfigurable processor capable of reconfiguring functions. Absent. (3)
- the processor 101 is configured to include two operation modes has been described as an example. However, it is possible to execute the hypervisor in a privilege mode that is equal to or higher than the mode in which the operating system is executed. As long as the configuration is possible, the number of operation modes is not necessarily limited to two, and may be three or more, for example. In this case, the operation mode for executing the hypervisor can be set to a privilege mode higher than that for executing the operating system.
- the case where the virtual machine is generated in the fork format has been described as an example. This is because the storage area of the RAM 103 is efficiently used by generating the virtual machine in the fork format.
- the storage assigned to the parent virtual machine so that the storage area assigned to the parent virtual machine and the storage area assigned to the newly created virtual machine have a one-to-one correspondence.
- a format for creating a new virtual machine by copying the area to a storage area of a newly created virtual machine can be considered.
- an activation request detection module for example, activation request detection module 331), a protection task generation module (for example, protection task generation module 332), a task schedule change module (for example, task schedule change module 333), and a protection task
- an activation request detection module for example, activation request detection module 331
- a protection task generation module for example, protection task generation module 332
- a task schedule change module for example, task schedule change module 333
- a protection task An example of a configuration in which the end notification module (for example, the protection task end notification module 334) and the dummy task execution notification module (for example, the dummy task execution notification module 335) are included in the operating system (for example, the first OS 321) in the virtual machine will be described.
- the end notification module for example, the protection task end notification module 334
- the dummy task execution notification module for example, the dummy task execution notification module 335
- these modules are not necessarily operated in the virtual machine. Need not be included in the computing system, for example, it may have a
- a function equivalent to the dummy task execution notification module 335 is set such that when the dummy task 313 is executed, writing is performed in a predetermined memory area that is a write-inhibited area, and the hypervisor 351 This is realized by providing a module that supplements an exception caused by a write violation in the area.
- a virtual computer system is a virtual computer system including a processor and a hypervisor that is executed on the processor and causes the processor to control execution of the plurality of virtual computers.
- the hypervisor includes an execution detection unit for detecting that a predetermined application program is about to be newly executed in the virtual computer, and the execution detection unit executed by the processor in the first virtual computer.
- a new second virtual computer for executing the predetermined application program is generated based on the first virtual computer
- a virtual machine generator and execution control by the processor
- Each of the plurality of virtual machines is configured to cause the processor to execute only the specific program group including the predetermined application program in the second virtual machine, and to allow the processor to execute the predetermined program in the first virtual machine.
- an execution control unit for executing a predetermined dummy program is provided.
- the certified application is executed by setting the certified application program as the predetermined application program and not including the uncertified application program in the specific program group.
- the uncertified application program is not executed, and in the first virtual machine where the uncertified application program may be executed, the certified application program is not executed.
- FIG. 15 is a configuration diagram showing the configuration of the virtual machine system 1500 in the modification.
- the virtual machine system 1500 includes a processor 1510 and a hypervisor 1520.
- the processor 1510 has a function of executing the hypervisor 1520. As an example, it is realized as the processor 101 in the first embodiment.
- the hypervisor 1520 has a function of causing the processor 1510 to execute control of a plurality of virtual machines (here, the first virtual machine 1530 and the second virtual machine 1540) by being executed on the processor 1510. As an example, it is realized as the hypervisor 351 in the first embodiment.
- the hypervisor 1520 includes an execution detection unit 1521 and a virtual machine generation unit 1522.
- the execution detection unit 1521 has a function of detecting that a predetermined application program is about to be newly executed in the virtual machine.
- the virtual machine generation module 361 according to the first embodiment is realized as a part that realizes a function of receiving a notification that the activation of the protection target application program is requested from the virtual machine activation request detection module 331.
- the virtual computer generation unit 1522 When the execution detection unit 1521 executed by the processor 1510 detects that a predetermined application program is about to be newly executed in the first virtual computer 1530, the virtual computer generation unit 1522 performs the first virtual computer 1530. And a function of generating a new second virtual machine 1540 for executing a predetermined application program.
- the first virtual machine 1530 is one of a plurality of virtual machines whose execution is controlled by the processor 1510. As an example, it is realized as the virtual computer 301 in the first embodiment.
- the first virtual machine 1530 has an execution control unit 1531.
- the execution control unit 1531 causes the processor 1510 to execute only the specific program group including the above-described predetermined application program in the second virtual computer 1540, and causes the processor 1510 to cause the processor 1510 to execute the predetermined application described above. Instead of the program, it has a function of executing a predetermined dummy program. As an example, this is realized as a module including a protection task generation module 342 and a task schedule change module 343 in the first embodiment.
- the second virtual machine 1540 is one of a plurality of virtual machines whose execution is controlled by the processor 1510. As an example, it is realized as a child virtual machine 302 in the first embodiment.
- the second virtual computer 1540 includes an execution control unit 1532 having the same function as the execution control unit 1531.
- the virtual machine generator When the virtual machine generator generates a new second virtual machine based on the first virtual machine, the virtual machine generator assigns a storage area to the second virtual machine.
- the fork method may be performed based on the storage area allocated to the computer.
- the first virtual machine and the second virtual machine share a part of the storage area to be used. Therefore, the storage area can be used effectively.
- the hypervisor A virtual machine schedule unit for changing a virtual machine to be executed by the processor from the first virtual machine to the second virtual machine may be included.
- the virtual machine to be executed can be switched from the first virtual machine to the second virtual machine with the start of execution of the dummy program in the first virtual machine.
- the virtual machine schedule unit selects a virtual machine to be executed by the processor when the execution of the predetermined application program is completed in the second virtual machine to be executed by the processor.
- the second virtual machine may be changed to the first virtual machine.
- the virtual machine to be executed can be switched from the second virtual machine to the first virtual machine when the execution of the predetermined application program in the second virtual machine ends. become.
- the second virtual machine can be extinguished upon completion of execution of a predetermined application program in the second virtual machine.
- the execution control unit further includes a multitask execution control unit for causing the processor to execute program execution control in a multitask execution control method performed using a time slice value.
- the execution control unit is a time slice assigned to the predetermined application program when the execution control unit executed by the processor causes the processor to execute the predetermined dummy program instead of the predetermined application program.
- a time rice value equal to a value is assigned to the predetermined dummy program, and the virtual machine schedule unit is configured to execute the processor in the first virtual machine from the time when the predetermined dummy program becomes an execution target of the processor.
- the execution target virtual machine of the processor is moved from the second virtual machine to the second virtual machine. It may be changed to one virtual machine.
- the virtual machine to be executed is triggered when the period indicated by the time slice value assigned to the predetermined application program has elapsed since the execution of the predetermined dummy program. It becomes possible to switch from the second virtual machine to the first virtual machine.
- the second virtual machine may include an execution start unit for starting the predetermined application program.
- the specific program group may include only programs that do not include malware that attacks the predetermined application program.
- each of the plurality of virtual machines whose execution is controlled by the processor detects that the predetermined application program is about to be newly executed in the own virtual machine, and the predetermined application program A notification unit that notifies the execution detection unit that a new execution is to be performed, and the execution detection unit newly executes the predetermined application program from the notification unit executed by the processor; It may be detected that the predetermined application program is about to be newly executed by being notified of the intention.
- the virtual computer can detect that a predetermined application program is about to be newly executed in the virtual computer.
- each of the plurality of virtual machines whose execution is controlled by the processor has its own virtual machine in the virtual machine scheduling unit when the predetermined dummy program is started to be executed by the processor.
- the virtual machine has a dummy program execution start notifying unit for notifying that the execution of the predetermined dummy program is started by the processor, and the virtual machine scheduling unit is executed by the processor.
- the virtual program execution start notifying unit of one virtual computer is notified that the predetermined dummy program is started to be executed by the processor in its own virtual computer. That the dummy program has started running It may be used as the intellectual.
- the virtual computer can detect that the execution of the predetermined dummy program has started in the virtual computer.
- the second virtual machine may detect that the execution of the predetermined application program is completed by notifying that the execution of the predetermined application program is completed in the own virtual machine.
- the virtual computer can detect that the execution of the predetermined application program has been completed in the virtual computer.
- the present invention can be widely used for virtual machine systems.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、アプリケーションプログラムを実行するユーザモードと、ユーザモードより上位のスーパバイザモードとの2つのプログラム実行モードを有するプロセッサを備え、プロセッサのスーパバイザモードで実行される複数のオペレーティングシステムを、プロセッサのスーパバイザモードで実行されるハイパバイザが時分割実行制御する仮想計算機システムについて説明する。
図1は、仮想計算機システム100の主要なハードウエア構成を示すブロック図である。
図3は、ある時刻t0において、プロセッサ101上で実行対象となるプログラムモジュール(以下、単に「モジュール」と呼ぶ。)を示すブロック図である。
ここでは、仮想計算機システム100の行う動作のうち、特徴的な動作である、子仮想計算機生成処理と子仮想計算機消滅処理と保護タスク実行処理とについて説明する。
子仮想計算機生成処理は、仮想計算機システム100が、保護タスクを実行させるための新たな子仮想計算機を生成する処理である。
子仮想計算機消滅処理は、仮想計算機システム100が、保護タスクを実行させるために生成された子仮想計算機を消滅させる処理である。
保護タスク実行処理は、仮想計算機システム100が、保護タスクを実行する処理である。
ここまで、起動を要求される保護対象アプリケーションプログラムが1つの場合を中心に説明してきた。しかしながら、保護対象アプリケーションプログラムが複数ある場合には、複数の保護対象アプリケーションプログラムが起動を要求されるときもあり得る。このようなときには、起動を要求される保護対象アプリケーションプログラム毎に、その保護対象アプリケーションプログラムを実行するための子仮想計算機が生成されることとなる。
以下、具体例を用いて、仮想計算機システム100の動作について考察する。
<実施の形態2>
<概要>
以下、本発明に係る仮想計算機システムの一例として、実施の形態1における仮想計算機システム100の一部を変形した変形仮想計算機システムについて説明する。
変形仮想計算機システムは、実施の形態1に係る仮想計算機システム100と同様のハードウエア構成となっている。よって、ここでは説明を省略する。
図10は、ある時刻t0において、プロセッサ101上で実行対象となるモジュールを示すブロック図である。
上記構成の変形仮想計算機システムでは、実施の形態1に係る仮想計算機システム100の行う特徴的な動作のうち、子仮想計算機生成処理と保護タスク実行処理とが変形されて行われることとなる。以下、これらの動作について、実施の形態1に係る仮想計算機システムの行う動作との相違点を中心に、図面を参照しながら説明する。
変形子仮想計算機生成処理は、変形仮想計算機システムが、保護タスクを実行させるための新たな子仮想計算機を生成する処理であって、実施の形態1に係る子仮想計算機生成処理の一部が変形されたものである。
変形子仮想計算機生成処理は、変形仮想計算機システムが、保護タスクを実行させるための新たな子仮想計算機を生成する処理であって、実施の形態1に係る子仮想計算機生成処理の一部が変形されたものである。
上述の実施の形態2に係る変形仮想計算機システムは、実施の形態1に係る仮想計算機システム100と同様に、仮想計算機が実行対象とするアプリケーションプログラムの中に、保護対象アプリケーションプログラムを攻撃するマルウエアが含まれてしまっている場合であっても、そのマルウエアによって、保護対象アプリケーションプログラムが攻撃されてしまう危険性を、従来よりも低く抑えることができる。
<補足>
以上、本発明に係る仮想計算機システムの一実施形態として、実施の形態1、実施の形態2において、2つの仮想計算機システムの例について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの仮想計算機システムに限られないことはもちろんである。
(1)実施の形態1において、仮想計算機システム100が1つのプロセッサを備える場合の例について説明したが、ハイパバイザが複数の仮想計算機の実行制御をすることができれば、必ずしもプロセッサの数は1つに限られる必要はなく、例えば、2つ、3つといった複数個であっても構わない。プロセッサの数が複数個の場合には、ハイパバイザは、仮想計算機の実行を必ずしも時分割で行う構成である必要はなく、複数の仮想計算機を並列に実行させる構成であっても構わない。
(2)実施の形態1において、プロセッサ101とROM102とRAM103とタイマ104と内部バス120と第1インタフェース121と第2インタフェース122と第3インタフェース123とが1つの集積回路110に集積されている場合の例について説明したが、これらの回路が必ずしも1つの集積回路に集積されている必要はない。例えば、プロセッサ101が第1の集積回路に集積され、その他の回路が第2の集積回路に集積される構成されていても構わないし、例えば、各回路がそれぞれ互いに異なる集積回路に集積される構成であっても構わない。
(3)実施の形態1において、プロセッサ101が2つの動作モードを備える構成の場合を例として説明したが、オペレーティングシステムを実行するモードと同等かそれ以上の高い特権モードでハイパバイザを実行することができる構成であれば、必ずしも動作モードの数は2つに限られる必要はなく、例えば、3つ以上であっても構わない。その場合、ハイパバイザを実行する動作モードを、オペレーティングシステムを実行するよりも高い特権モードとすることができる。
(4)実施の形態1において、仮想計算機の生成をフォーク形式で行う構成の場合を例として説明した。これは、仮想計算機の生成をフォーク形式で行うことによって、RAM103の記憶領域が効率的に利用されることとなるためである。
(5)実施の形態1において、起動要求検知モジュール(例えば起動要求検知モジュール331)、保護タスク生成モジュール(例えば保護タスク生成モジュール332)、タスクスケジュール変更モジュール(例えばタスクスケジュール変更モジュール333)、保護タスク終了通知モジュール(例えば保護タスク終了通知モジュール334)、ダミータスク実行通知モジュール(例えばダミータスク実行通知モジュール335)は、仮想計算機内のオペレーティングシステム(例えば第1OS321)に含まれている構成の例について説明したが、仮想計算機システム100において、これらのモジュールによって実現される機能と同等の機能が実現されることとなっていれば、これらのモジュールは、必ずしも、仮想計算機内のオペレーティングシステムに含まれている必要はなく、例えば、ハイパバイザ351に含まれている構成であっても構わない。
(6)以下、さらに本発明の一実施形態に係る仮想計算機システムの構成及びその変形例と各効果について説明する。
110 集積回路
101 プロセッサ
102 ROM
103 RAM
104 タイマ
120 内部バス
131 入力装置
132 出力装置
133 ハードディスク装置
300 モジュール群
301 仮想計算機
302 子仮想計算機
313 ダミータスク
316 保護タスク
321 第1OS
322 第2OS
331、341 起動要求検知モジュール
332、342 保護タスク生成モジュール
333、343 タスクスケジュール変更モジュール
334、344 保護タスク終了通知モジュール
335、345 ダミータスク実行通知モジュール
336、346 保護タスク対応表
351 ハイパバイザ
361 仮想計算機生成モジュール
362 子仮想計算機通知モジュール
363 仮想計算機スケジューリングモジュール
364 仮想計算機消滅モジュール
Claims (14)
- プロセッサと、当該プロセッサ上で実行され、当該プロセッサに複数の仮想計算機の実行制御をさせるためのハイパバイザとを備える仮想計算機システムであって、
前記ハイパバイザは、
仮想計算機において、所定のアプリケーションプログラムが新たに実行されようとすることを検知するための実行検知部と、
前記プロセッサによって実行される前記実行検知部が、第1仮想計算機において、前記所定のアプリケーションプログラムが新たに実行されようとすることを検知した場合に、当該第1仮想計算機に基づいて、前記所定のアプリケーションプログラムを実行するための新たな第2仮想計算機を生成するための仮想計算機生成部とを有し、
前記プロセッサによって実行制御される複数の仮想計算機のそれぞれは、
前記第2仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムを含む特定プログラム群に限って実行させ、前記第1仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムの代わりに、所定のダミープログラムを実行させるための実行制御部を有する
ことを特徴とする仮想計算機システム。 - 前記仮想計算機生成部は、前記第1仮想計算機に基づいて、新たな前記第2仮想計算機を生成する場合において、前記第2仮想計算機に対する記憶領域の割り当てを、前記第1仮想計算機に割り当てられている記憶領域に基づくフォーク方式で行う
ことを特徴とする請求項1記載の仮想計算機システム。 - 前記ハイパバイザは、前記プロセッサの実行対象となっている前記第1仮想計算機において前記所定のダミープログラムが実行を開始された場合において、前記第2仮想計算機が生成されているときに、前記プロセッサの実行対象となる仮想計算機を、前記第1仮想計算機から前記第2仮想計算機へ変更するための仮想計算機スケジュール部とを有する
ことを特徴とする請求項2記載の仮想計算機システム。 - 前記仮想計算機スケジュール部は、前記プロセッサの実行対象となっている前記第2仮想計算機において前記所定のアプリケーションプログラムの実行が終了した場合に、前記プロセッサの実行対象となる仮想計算機を、前記第2仮想計算機から前記第1仮想計算機へ変更する
ことを特徴とする請求項3記載の仮想計算機システム。 - 前記ハイパバイザは、
前記プロセッサの実行対象となっている前記第2仮想計算機において前記所定のアプリケーションプログラムの実行が終了した場合において、前記仮想計算機スケジュール部が、前記プロセッサの実行対象仮想計算機を、前記第2仮想計算機から前記第1仮想計算機へ変更したときに、前記第2仮想計算機を消滅させるための仮想計算機消滅部を有する
ことを特徴とする請求項4記載の仮想計算機システム。 - 前記実行制御部は、前記プロセッサに、タイムスライス値を用いて行うマルチタスク実行制御方法で、プログラムの実行制御を実行させるためのマルチタスク実行制御部を有し、
前記マルチタスク実行制御部は、前記プロセッサによって実行される前記実行制御部が、前記プロセッサに、前記所定のアプリケーションプログラムの代わりに、前記所定のダミープログラムを実行させる場合に、前記所定のアプリケーションプログラムに割り当てるタイムスライス値と同じ値のタイムライス値を、前記所定のダミープログラムに割り当て、
前記仮想計算機スケジュール部は、前記第1仮想計算機において、前記所定のダミープログラムが前記プロセッサの実行対象となった時点から、前記所定のダミープログラムに割り当てられているタイムスライス値で示される時間が経過した場合において、前記第2仮想計算機が前記プロセッサの実行対象仮想計算機となっているとき、前記プロセッサの実行対象仮想計算機を、前記第2仮想計算機から前記第1仮想計算機へ変更する
ことを特徴とする請求項5記載の仮想計算機システム。 - 前記プロセッサによって実行される前記仮想計算機生成部が、前記第2仮想計算機を生成した場合に、前記第2仮想計算機の前記実行制御部に、子仮想計算機である旨の通知を行うための子仮想計算機通知部を有し、
前記実行制御部は、前記第2仮想計算機において、前記子仮想計算機通知部から子仮想計算機である旨を通知されることで、前記プロセッサに、前記第2仮想計算機において、前記所定のアプリケーションプログラムを起動させるための実行開始部を有する
ことを特徴とする、請求項6記載の仮想計算機システム。 - 前記特定プログラム群は、前記所定のアプリケーションプログラムを攻撃するマルウエアを含まないプログラムのみで構成されている
ことを特徴とする請求項7記載の仮想計算機システム。 - 前記プロセッサによって実行制御される複数の仮想計算機のそれぞれは、自仮想計算機において、前記所定のアプリケーションプログラムが新たに実行されようとすることを検知して、前記所定のアプリケーションプログラムが新たに実行されようとする旨を、前記実行検知部へ通知する通知部を有し、
前記実行検知部は、前記プロセッサによって実行される前記通知部から、前記所定のアプリケーションプログラムが新たに実行されようとする旨を通知されることで、前記所定のアプリケーションプログラムが新たに実行されようとすることの検知を行う
ことを特徴とする請求項7記載の仮想計算機システム。 - 前記プロセッサによって実行制御される複数の仮想計算機のそれぞれは、自仮想計算機において、前記所定のダミープログラムが前記プロセッサによって実行を開始された場合に、前記仮想計算機スケジュール部に、自仮想計算機において、前記所定のダミープログラムが前記プロセッサによって実行を開始された旨を通知するためのダミープログラム実行開始通知部を有し、
前記仮想計算機スケジュール部は、前記プロセッサによって実行される、前記第1仮想計算機の前記ダミープログラム実行開始通知部から、自仮想計算機において、前記所定のダミープログラムが前記プロセッサによって実行を開始された旨を通知されることで、前記第1仮想計算機において、前記所定のダミープログラムが実行を開始されたことを検知する
ことを特徴とする請求項7記載の仮想計算機システム。 - 前記プロセッサによって実行制御される複数の仮想計算機のそれぞれは、自仮想計算機において、前記所定のアプリケーションプログラムの実行が終了した場合に、前記仮想計算機スケジュール部に、自仮想計算機において、前記所定のアプリケーションプログラムの実行が終了した旨を通知するための実行終了通知部を有し、
前記仮想計算機スケジュール部は、前記プロセッサによって実行される、前記第2仮想計算機の前記実行終了通知部から、自仮想計算機において、前記所定のアプリケーションプログラムの実行が終了した旨が通知されることで、前記第2仮想計算機において、前記所定のアプリケーションプログラムの実行が終了したことを検知する
ことを特徴とする請求項7記載の仮想計算機システム。 - プロセッサと、当該プロセッサ上で実行され、当該プロセッサに複数の仮想計算機の実行制御をさせるためのハイパバイザとを備える仮想計算機システムを制御する仮想計算機制御方法であって、
前記ハイパバイザが、仮想計算機において、所定のアプリケーションプログラムが新たに実行されようとすることを検知する実行検知ステップと、
前記ハイパバイザが、前記プロセッサによって実行される前記実行検知ステップにおいて、第1仮想計算機において、前記所定のアプリケーションプログラムが新たに実行されようとすることを検知した場合に、当該第1仮想計算機に基づいて、前記所定のアプリケーションプログラムを実行するための新たな第2仮想計算機を生成する仮想計算機生成ステップと、
前記プロセッサによって実行制御される複数の仮想計算機のそれぞれが、前記第2仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムを含む特定プログラム群に限って実行させ、前記第1仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムの代わりに、所定のダミープログラムを実行させる実行制御ステップとを含む
ことを特徴とする仮想計算機制御方法。 - プロセッサと、当該プロセッサ上で実行され、当該プロセッサに複数の仮想計算機の実行制御をさせるためのハイパバイザとを備える仮想計算機システムを制御する仮想計算機制御プログラムであって、
前記ハイパバイザが、仮想計算機において、所定のアプリケーションプログラムが新たに実行されようとすることを検知する実行検知ステップと、
前記ハイパバイザが、前記プロセッサによって実行される前記実行検知ステップにおいて、第1仮想計算機において、前記所定のアプリケーションプログラムが新たに実行されようとすることを検知した場合に、当該第1仮想計算機に基づいて、前記所定のアプリケーションプログラムを実行するための新たな第2仮想計算機を生成する仮想計算機生成ステップと、
前記プロセッサによって実行制御される複数の仮想計算機のそれぞれが、前記第2仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムを含む特定プログラム群に限って実行させ、前記第1仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムの代わりに、所定のダミープログラムを実行させる実行制御ステップとを含む
ことを特徴とする仮想計算機制御プログラム。 - プロセッサと、当該プロセッサ上で実行され、当該プロセッサに複数の仮想計算機の実行制御をさせるためのハイパバイザとを備える半導体集積回路であって、
前記ハイパバイザは、
仮想計算機において、所定のアプリケーションプログラムが新たに実行されようとすることを検知するための実行検知部と、
前記プロセッサによって実行される前記実行検知部が、第1仮想計算機において、前記所定のアプリケーションプログラムが新たに実行されようとすることを検知した場合に、当該第1仮想計算機に基づいて、前記所定のアプリケーションプログラムを実行するための新たな第2仮想計算機を生成するための仮想計算機生成部とを有し、
前記プロセッサによって実行制御される複数の仮想計算機のそれぞれは、
前記第2仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムを含む特定プログラム群に限って実行させ、前記第1仮想計算機において、前記プロセッサに、前記所定のアプリケーションプログラムの代わりに、所定のダミープログラムを実行させるための実行制御部を有する
ことを特徴とする半導体集積回路。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013511881A JP5852103B2 (ja) | 2011-04-27 | 2012-02-21 | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 |
| US13/807,202 US9460270B2 (en) | 2011-04-27 | 2012-02-21 | Generating child virtual machine to execute authorized application with reduced risk of malware attack |
| CN201280001814.6A CN102959555B (zh) | 2011-04-27 | 2012-02-21 | 虚拟计算机系统、虚拟计算机控制方法及半导体集成电路 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011-099701 | 2011-04-27 | ||
| JP2011099701 | 2011-04-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012147252A1 true WO2012147252A1 (ja) | 2012-11-01 |
Family
ID=47071788
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2012/001130 Ceased WO2012147252A1 (ja) | 2011-04-27 | 2012-02-21 | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US9460270B2 (ja) |
| JP (1) | JP5852103B2 (ja) |
| CN (1) | CN102959555B (ja) |
| WO (1) | WO2012147252A1 (ja) |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9766986B2 (en) * | 2013-08-08 | 2017-09-19 | Architecture Technology Corporation | Fight-through nodes with disposable virtual machines and rollback of persistent state |
| US9769250B2 (en) | 2013-08-08 | 2017-09-19 | Architecture Technology Corporation | Fight-through nodes with disposable virtual machines and rollback of persistent state |
| US9838415B2 (en) | 2011-09-14 | 2017-12-05 | Architecture Technology Corporation | Fight-through nodes for survivable computer network |
| JP5998566B2 (ja) * | 2012-03-27 | 2016-09-28 | 富士通株式会社 | 移動制御プログラム、移動制御方法および制御装置 |
| JP5494727B2 (ja) * | 2012-05-25 | 2014-05-21 | 横河電機株式会社 | 通信装置 |
| US9069594B1 (en) * | 2012-12-27 | 2015-06-30 | Emc Corporation | Burst buffer appliance comprising multiple virtual machines |
| US20140283132A1 (en) * | 2013-03-12 | 2014-09-18 | International Business Machines Corporation | Computing application security and data settings overrides |
| US9563457B2 (en) * | 2013-11-18 | 2017-02-07 | Bitdefender IPR Management Ltd. | Enabling a secure environment through operating system switching |
| US9202046B2 (en) * | 2014-03-03 | 2015-12-01 | Bitdefender IPR Management Ltd. | Systems and methods for executing arbitrary applications in secure environments |
| US10009292B2 (en) | 2014-10-03 | 2018-06-26 | International Business Machines Corporation | Cloud independent tuning service for autonomously managed workloads |
| US11429442B2 (en) * | 2015-06-29 | 2022-08-30 | Vmware, Inc. | Parallel and distributed computing using multiple virtual machines |
| US10284592B1 (en) | 2015-12-17 | 2019-05-07 | Architecture Technology Corporation | Application randomization mechanism |
| US10200406B1 (en) | 2015-12-17 | 2019-02-05 | Architecture Technology Corporation | Configuration of application randomization mechanism |
| US10412114B1 (en) | 2015-12-17 | 2019-09-10 | Architecture Technology Corporation | Application randomization mechanism |
| US10412116B1 (en) | 2015-12-17 | 2019-09-10 | Architecture Technology Corporation | Mechanism for concealing application and operation system identity |
| US10200401B1 (en) | 2015-12-17 | 2019-02-05 | Architecture Technology Corporation | Evaluating results of multiple virtual machines that use application randomization mechanism |
| US10007498B2 (en) | 2015-12-17 | 2018-06-26 | Architecture Technology Corporation | Application randomization mechanism |
| CN106919436B (zh) * | 2015-12-25 | 2020-03-10 | 中国移动通信集团公司 | Dalvik虚拟机实现多任务的方法、装置及虚拟机 |
| US10394587B2 (en) * | 2016-01-06 | 2019-08-27 | International Business Machines Corporation | Self-terminating or self-shelving virtual machines and workloads |
| US10613880B2 (en) * | 2016-05-31 | 2020-04-07 | International Business Machines Corporation | State synchronized interactive software demonstration |
| JP6104447B1 (ja) | 2016-10-31 | 2017-03-29 | 株式会社ソリトンシステムズ | プログラム動作監視制御装置、分散オブジェクト生成管理装置、プログラム、及びプログラム動作監視システム |
| US10554685B1 (en) | 2017-05-25 | 2020-02-04 | Architecture Technology Corporation | Self-healing architecture for resilient computing services |
| CN107292614A (zh) * | 2017-06-28 | 2017-10-24 | 广东欧珀移动通信有限公司 | 支付类应用程序管理方法、装置及移动终端 |
| CN108256182B (zh) * | 2018-01-02 | 2020-10-27 | 西安交通大学 | 一种动态可重构fpga的布局方法 |
| US11113075B2 (en) * | 2018-11-14 | 2021-09-07 | International Business Machines Corporation | Launching a middleware-based application |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009238153A (ja) * | 2008-03-28 | 2009-10-15 | Nec Corp | マルウェア対処システム、方法及びプログラム |
| WO2010032558A1 (ja) * | 2008-09-19 | 2010-03-25 | 日本電気株式会社 | プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4072271B2 (ja) | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
| US7191440B2 (en) | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
| US7313793B2 (en) * | 2002-07-11 | 2007-12-25 | Microsoft Corporation | Method for forking or migrating a virtual machine |
| US7472383B2 (en) * | 2004-08-13 | 2008-12-30 | Sun Microsystems, Inc. | System and method for providing exceptional flow control in protected code through memory layers |
| US7958506B2 (en) * | 2006-06-22 | 2011-06-07 | Intel Corporation | Time sliced interrupt processing on virtualized platform |
| US8307443B2 (en) * | 2007-09-28 | 2012-11-06 | Microsoft Corporation | Securing anti-virus software with virtualization |
| US8239862B2 (en) * | 2007-11-26 | 2012-08-07 | Ricoh Company, Ltd. | Apparatus, method, and computer program product for processing information |
| JP5260081B2 (ja) | 2008-02-25 | 2013-08-14 | パナソニック株式会社 | 情報処理装置及びその制御方法 |
| WO2009133669A1 (ja) | 2008-04-28 | 2009-11-05 | パナソニック株式会社 | 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム |
| US20090300599A1 (en) * | 2008-05-30 | 2009-12-03 | Matthew Thomas Piotrowski | Systems and methods of utilizing virtual machines to protect computer systems |
| US8438256B2 (en) * | 2009-06-26 | 2013-05-07 | Vmware, Inc. | Migrating functionality in virtualized mobile devices |
| CN101951411A (zh) | 2010-10-13 | 2011-01-19 | 戴元顺 | 云调度系统及方法以及多级云调度系统 |
| US20120144489A1 (en) * | 2010-12-07 | 2012-06-07 | Microsoft Corporation | Antimalware Protection of Virtual Machines |
-
2012
- 2012-02-21 JP JP2013511881A patent/JP5852103B2/ja active Active
- 2012-02-21 WO PCT/JP2012/001130 patent/WO2012147252A1/ja not_active Ceased
- 2012-02-21 CN CN201280001814.6A patent/CN102959555B/zh active Active
- 2012-02-21 US US13/807,202 patent/US9460270B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009238153A (ja) * | 2008-03-28 | 2009-10-15 | Nec Corp | マルウェア対処システム、方法及びプログラム |
| WO2010032558A1 (ja) * | 2008-09-19 | 2010-03-25 | 日本電気株式会社 | プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2012147252A1 (ja) | 2014-07-28 |
| JP5852103B2 (ja) | 2016-02-03 |
| CN102959555B (zh) | 2015-09-02 |
| CN102959555A (zh) | 2013-03-06 |
| US9460270B2 (en) | 2016-10-04 |
| US20130097603A1 (en) | 2013-04-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5852103B2 (ja) | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 | |
| TWI697805B (zh) | 載入和虛擬化密碼金鑰 | |
| JP5981845B2 (ja) | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 | |
| JP5758914B2 (ja) | 仮想計算機システム及び仮想計算機システム制御方法 | |
| CN103299315B (zh) | 用于原位加密的系统和方法 | |
| JP4288209B2 (ja) | システム・オン・チップのためのセキュリティ・アーキテクチャ | |
| JP4607529B2 (ja) | 高信頼実行環境を備えるシステムへの安全な入力の提供 | |
| KR101054981B1 (ko) | 프로그램의 콘텍스트를 보안적으로 저장하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
| JP4345630B2 (ja) | 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム | |
| TW201137660A (en) | Method and system for protecting an operating system against unauthorized modification | |
| CN103384863A (zh) | 虚拟计算机控制装置及虚拟计算机控制方法 | |
| CN113449292B (zh) | 一种可信应用的运行方法、装置及设备 | |
| JP2018526720A (ja) | 仮想マシンの状態情報の保護 | |
| WO2013114935A1 (ja) | 抑止装置、抑止装置の制御方法、被制御装置、電子機器、制御プログラム、および記録媒体 | |
| KR101467877B1 (ko) | 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법 | |
| JP2007524161A (ja) | ウイルス、スパイウェア及びハッカー保護特徴を有する仮想処理空間における分離マルチプレクス型多次元処理 | |
| JP2008112303A (ja) | ストレージ仮想化スイッチ | |
| CN120548530A (zh) | 使用客户拥有的备份页面的中断控制 | |
| CN118747383A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
| TW594467B (en) | Method for controlling and protecting computer facility | |
| CN111949376A (zh) | 虚拟机系统和用于虚拟机系统的方法 | |
| JP2007242039A (ja) | 仮想計算機システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 201280001814.6 Country of ref document: CN |
|
| ENP | Entry into the national phase |
Ref document number: 2013511881 Country of ref document: JP Kind code of ref document: A |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12777472 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 13807202 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 12777472 Country of ref document: EP Kind code of ref document: A1 |