IP Library Granted Patent US 10,204,220
Granted Patent B1
US 10,204,220 · App. 15/053,475 · Granted Feb 12, 2019

Thin hypervisor for native execution of unsafe code

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,204,220
App. No.
15/053,475
Granted
Feb 12, 2019
Kind
B1
Abstract

A system, method and computer program product for implementing a thin hypervisor. The thin hypervisor does not have any direct association with a VM. The thin hypervisor serves as a wrapper over hardware capabilities of a processor. The processor has privileged low-level capabilities EPT VTX, AMD V and the ARM has virtualization technology. In order to use processor hardware capabilities and receiving root privileges, the system operates in a “super user” mode. The VM operates in a VM environment with kernel privileges in a user mode. A super user space is created in a safe mode. A user space application (or a process) is created. A user space virtualization framework library is used. These entities may be separated by a user space and a kernel (OS) space. A thin hypervisor is implemented in the user space.

Claims (55)

1. A system for native execution of unsafe code, the system comprising:

a Virtual Machine (VM) under control of a user-space Virtual Machine Monitor (VMM) and running on a host system;

a Guest OS running in the VM;

a Guest application executed under the Guest OS;

a thin hypervisor acting as an intermediate layer between the Guest application and the user-space VMM, wherein the thin hypervisor is a separate component from the VM, wherein:

the thin hypervisor is configured to intercept a Virtual Machine Exit event generated by the Guest application;

the thin hypervisor includes a secure tunnel configured to filter virtual memory addresses; and

the thin hypervisor analyzes requests from the user-space VMM to modify guest context fields of VMCS (Virtual Machine Control Structure), VMCB (Virtual Machine Control Block) or Virtualization Extensions, and gives the user-space VMM access to the guest context fields using a virtualization library that resides in user space of the host system, so as to manage an environment of the VM.

2. The system of claim 1 , wherein the thin hypervisor includes a secure tunnel driver.

3. The system of claim 1 , wherein the virtualization library is an application programming interface.

4. The system of claim 1 , wherein the thin hypervisor translates Guest memory page addresses into physical memory addresses.

5. The system of claim 4 , wherein the thin hypervisor controls memory using nested paging.

6. The system of claim 1 , wherein the user space has a limited set of allowed interfaces and addition of an extra interface indicates a presence of the unsafe code.

7. The system of claim 1 , wherein a kernel space in which the thin hypervisor is implemented has an extra interface indicates a presence of the unsafe code.

8. The system of claim 1 , wherein an unsafe application is executed in the sandbox, the sandbox being configured to emulate a system interface and a user interface.

9. The system of claim 8 , wherein safe user interfaces are pushed into a user space.

10. The system of claim 1 , wherein the thin hypervisor is implemented in microcode.

11. The system of claim 1 , wherein the thin hypervisor is defined by a context identifier.

12. The system of claim 1 , wherein the thin hypervisor is defined by a table containing available address ranges.

13. The system of claim 12 , wherein the thin hypervisor is defined by allowed operations for certain address ranges and by allowed argument values that can be written into registers at the context addresses.

14. The system of claim 1 , wherein the virtualization library executes any of:

creating and destroying virtual machine instances;

mapping, un-mapping and protecting guest memory regions allocated by a user-space virtualization application;

creating and deleting Virtual CPUs;

reading VMX (Virtual Machine Extension) capabilities;

receiving and setting virtual CPU general purpose registers;

getting and setting virtual FPU (Floating Point Unit)/MMX (Matrix Math Extensions)/XMM/YMM registers;

reading and writing allowed model-specific registers (MSRs);

reading and writing allowed guest context fields of the VMCS/VMCB/Virtualization Extensions so as to give the user-space VMM access to the guest context fields using a virtualization library that resides in user space of the host system, in order to manage an environment of the VM; and

running guest code on the Virtual CPUs.

15. The system of claim 1 , wherein the thin hypervisor filters the Guest application instructions in order to protect integrity of the host system.

16. A computer-implemented method for native execution of unsafe code, the method comprising:

launching a Virtual Machine (VM) on a host system and under control of a user-space Virtual Machine Monitor (VMM);

instantiating a Guest Operating System (OS) running on the VM;

starting a Guest application on the Guest OS;

activating a thin hypervisor in a kernel space, wherein the thin hypervisor is a separate component from the VM;

controlling the Guest application by the thin hypervisor that acts as an intermediate layer between the Guest application and the user-space VMM;

intercepting a Virtual Machine Exit event caused by an instruction of the Guest application;

creating a secure tunnel configured to filter virtual memory addresses of the instructions;

filtering the instructions of the Guest application;

analyzing requests from the user-space VMM to modify guest context fields of VMCS (Virtual Machine Control Structure), VMCB (Virtual Machine Control Block) or Virtualization Extensions so as to give the user-space VMM access to the guest context fields using a virtualization library that resides in user space of the host system, in order to manage an environment of the VM; and

emulating system instructions without execution.

17. The method of claim 16 , further comprising analyzing for presence of a virus at an address of an exception generation.

18. The method of claim 16 , further comprising implementing the thin hypervisor in a super user space.

19. A computer program product comprising a non-transitory computer-readable medium storing instructions for performing the steps of:

launching a Virtual Machine (VM) on a host system and under control of a user-space Virtual Machine Monitor (VMM);

instantiating a Guest Operating System (OS) running on the VM;

starting a Guest application on the Guest OS, wherein the thin hypervisor is a separate component from the VM;

activating a thin hypervisor in a kernel space;

controlling the Guest application by the thin hypervisor that acts as an intermediate layer between the Guest application and the user-space VMM;

intercepting a Virtual Machine Exit event caused by an instruction of the Guest application;

creating a secure tunnel configured to filter virtual memory addresses of the instructions;

filtering the instructions of the Guest application;

analyzing requests from the user-space VMM to modify guest context fields of VMCS (Virtual Machine Control Structure), VMCB (Virtual Machine Control Block) or Virtualization Extensions so as to give the user-space VMM access to the guest context fields using a virtualization library that resides in user space of the host system, in order to manage an environment of the VM; and

emulating system instructions without execution.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
MERGER Recorded Nov 5, 2018
From: PARALLELS IP HOLDINGS GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 047411/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2016
From: KORYAKIN, ALEXEY B.; NAENKO, ANDREY N.; DOBROVOLSKIY, NIKOLAY N.; PROTASSOV, STANISLAV S.; BELOUSSOV, SERGUEI M.
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 037830/0130 →