IP Library Granted Patent US 9,740,857
Granted Patent B2
US 9,740,857 · App. 14/229,533 · Granted Aug 22, 2017

Threat-aware microvisor

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 9,740,857
App. No.
14/229,533
Granted
Aug 22, 2017
Kind
B2
Abstract

A threat-aware microvisor is configured to facilitate real-time security analysis, including exploit detection and threat intelligence, of operating system processes executing on a node of a network environment. The microvisor may be embodied as a module disposed or layered beneath (underlying) an operating system kernel executing on the node to thereby control privileges (i.e., access permissions) to kernel resources, such as one or more central processing units (CPUs), network interfaces, memory, and/or devices, of the node. Illustratively, the microvisor may be configured to control access to one or more of the resources in response to a request by an operating system process to access the resource.

Claims (52)

1. A system comprising:

a central processing unit (CPU) adapted to execute a process, an operating system kernel and a virtualization module; and

a memory configured to store the process, the operating system kernel and the virtualization module, the virtualization module including:

a first protection domain having a plurality of execution contexts and scheduling contexts, each execution context linked to a scheduling context and interacting with capabilities, wherein the capabilities of the first protection domain are configured to specify access control permissions to kernel resources accessible by the process, the first protection domain associated with services provided to the process by the operating system kernel to control the kernel resources accessible by the process; and

a second protection domain configured as a clone of the first protection domain except for the capabilities, wherein in response to execution of the process, the capabilities of the second protection domain are configured to specify limited access control permissions to the kernel resources accessible by the process, the second protection domain associated with the process, wherein the virtualization module is organized as the first protection domain and the second protection domain for the operating system kernel.

2. The system of claim 1 wherein the process comprises a plurality of threads, and wherein the execution context is a representation of a thread and defines a state of the thread for execution on the CPU.

3. The system of claim 2 wherein the execution context comprises one of contents of CPU registers, values on a stack, a program counter, and allocation of memory.

4. The system of claim 1 wherein the scheduling context provides information for scheduling the execution context for execution on the CPU.

5. The system of claim 4 wherein the scheduling context information comprises a priority and a time for execution on the CPU.

6. The system of claim 2 wherein the capabilities are organized as a set of access control permissions to the kernel resources that is examined each time the thread requests access to a kernel resource.

7. The system of claim 6 wherein there is one set of capabilities for each protection domain.

8. The system of claim 1 wherein the cloned second protection domain is created by copying the execution contexts, scheduling contexts and capabilities of the first protection domain, and configuring the cloned capabilities to restrict access to one or more of the kernel resources, whereby the second protection domain is configured upon instantiation as the clone of the first protection domain except for the capabilities.

9. The system of claim 1 wherein the kernel resources comprise the CPU, the memory, a network interface, and one or more devices.

10. The system of claim 1 wherein the process is an operating system process.

11. A method comprising:

storing an operating system process and a virtualization module in a memory of a node in a computer network;

organizing the virtualization module to include a first protection domain having a plurality of execution contexts and scheduling contexts, each execution context linked to a scheduling context and interacting with capabilities specifying permissions of the operating system process to access resources of the node;

copying the execution contexts, scheduling contexts and capabilities of the first protection domain to create a second protection domain of the virtualization module;

executing the operating system process on a central processing unit (CPU) of the node; and

in response to execution of the operating system process, configuring the capabilities of the second protection domain to limit the permissions of the operating system process to access the resources, wherein the virtualization module is organized as the first protection domain and the second protection domain for an operation system kernel managing the operating system process.

12. The method of claim 11 further comprising:

decomposing the operating system process into a plurality of threads; and

representing a thread of the operating system process as an execution context that defines a state of the thread for execution on the CPU.

13. The method of claim 12 further comprising:

providing information for scheduling the execution context for execution on the CPU, wherein the information is provided by the scheduling context and includes a priority and a time for execution on the CPU.

14. The method of claim 12 further comprising:

organizing the capabilities as a set of access control permissions to the resources; and

examining the capabilities each time the thread requests access to a resource.

15. The method of claim 14 further comprising:

providing one set of capabilities for each protection domain.

16. A method comprising:

storing an operating system process and a virtualization module in a memory of a node in a computer network;

organizing the virtualization module to include a first protection domain having a plurality of execution contexts and scheduling contexts, each execution context linked to a scheduling context and interacting with first capabilities specifying permissions of the operating system process to access hardware resources of the node;

decomposing the operating system process into a plurality of threads;

executing a thread of the operating system process on a central processing unit (CPU) of the node;

checking the first capabilities of the first protection domain to determine whether the thread is allowed to access a hardware resource; and

cloning the first protection domain to create a second protection domain of the virtualization module having second capabilities that are more restricted than the first capabilities if the thread is not allowed to access the hardware resource wherein the process is controlled and synchronized by a same instance of the operating system kernel in the first protection domain and in the second protection domain, wherein the virtualization module is organized as the first protection domain and the second protection domain for an operating system kernel managing the operating system process.

17. The method of claim 16 wherein cloning comprises:

copying the execution contexts and scheduling contexts of the first protection domain to create the second protection domain.

18. The method of claim 17 further comprising:

configuring the second capabilities of the second protection domain to limit the permissions of the operating system process to access the hardware resources.

19. The method of claim 16 further comprising:

providing information for scheduling the execution context for execution on the CPU, wherein the information is provided by the scheduling context and includes a priority and a time for execution on the CPU.

20. The method of claim 16 further comprising:

organizing the second capabilities as a set of access control permissions to the hardware resources; and

examining the second capabilities each time the thread requests access to a hardware resource.

21. A non-transitory computer readable media containing instructions for execution on a processor of a node for a method comprising:

storing an operating system process and a virtualization module in a memory of the node in a computer network;

organizing the virtualization module to include a first protection domain having a plurality of execution contexts and scheduling contexts, each execution context linked to a scheduling context and interacting with capabilities specifying permissions of the operating system process to access resources of the node;

copying the execution contexts, scheduling contexts and capabilities of the first protection domain to create a second protection domain of the virtualization module;

executing the operating system process on the processor; and

in response to execution of the operating system process, configuring the capabilities of the second protection domain to limit the permissions of the operating system process to access the resources, wherein the virtualization module is organized as the first protection domain and the second protection domain for an operating system kernel managing the operating system process.

Assignments (13)
RELEASE OF SECURITY INTEREST Recorded Aug 16, 2024
From: STG PARTNERS, LLC
To: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
Reel/Frame 068671/0435 →
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Aug 15, 2024
From: MUSARUBRA US LLC
To: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
Reel/Frame 068656/0098 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068657/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MUSARUBRA US LLC
To: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
Reel/Frame 068657/0764 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY HOLDINGS LLC; SKYHIGH SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 068657/0666 →
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068656/0920 →
MERGER Recorded Aug 13, 2024
From: FIREEYE SECURITY HOLDINGS US LLC
To: MUSARUBRA US LLC
Reel/Frame 068581/0279 →
SECURITY INTEREST Recorded Aug 1, 2024
From: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
To: STG PARTNERS, LLC
Reel/Frame 068324/0731 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2023
From: MANDIANT, INC.
To: FIREEYE SECURITY HOLDINGS US LLC
Reel/Frame 063272/0743 →
CHANGE OF NAME Recorded Mar 16, 2023
From: FIREEYE, INC.
To: MANDIANT, INC.
Reel/Frame 063113/0029 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 11, 2021
From: FIREEYE SECURITY HOLDINGS US LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 057772/0791 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Oct 11, 2021
From: FIREEYE SECURITY HOLDINGS US LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 057772/0681 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2014
From: ISMAEL, OSMAN ABDOUL; AZIZ, ASHAR
To: FIREEYE, INC.
Reel/Frame 032803/0803 →