IP Library Granted Patent US 11,188,367
Granted Patent B2
US 11,188,367 · App. 15/867,757 · Granted Nov 30, 2021

Guest operating system physical memory page protection using hypervisor

Inventor: Sukrut Patil (Pune, IN)
Assignee: NICIRA INC.
G06F9/45558G06F21/52G06F21/79G06F2009/45575G06F2009/45583G06F2009/45591G06F2221/2105
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 11,188,367
App. No.
15/867,757
Granted
Nov 30, 2021
Kind
B2
Abstract

A method is provided for a protection module or a process to use a hypervisor to protect memory pages of a guest operating system on the hypervisor. The method includes modifying a shared memory page in a context of the process, which causes the guest operating system to allocate a private memory page to the process, copy data from the shared memory page to the private memory page, and modify the private memory page. The method further includes causing the hypervisor to protect the private memory page by monitoring the private memory page and generating an alert when the private memory page is accessed.

Claims (35)

1. A method for a protection module associated with a kernel-mode driver in a guest operating system to use a hypervisor to protect memory pages of the guest operating system, the method performed by the protection module comprising:

monitoring for a launch of a user-mode process;

determining if the user-mode process is to be protected once the user-mode process launches, based on a parameter in a load-image or a process creation notification;

pausing execution of the user-mode process when the user-mode process is to be protected while the protection module is running;

modifying a shared physical memory page in a context of the user-mode process by writing to a virtual memory page of the user-mode process that maps to the shared physical memory page, which causes the guest operating system to allocate a private physical memory page to the user-mode process, copy data from the shared physical memory page to the private physical memory page, and modify the private physical memory page with existing data on the shared physical memory page, wherein another virtual memory page of another process, which differs from the user-mode process, is also mapped to the shared physical memory page, and the private physical memory page modified with the existing data is identical to the shared physical memory page;

causing the hypervisor to protect the private physical memory page by monitoring the private physical memory page and generating an alert when the private physical memory page is accessed by any process; and

resuming execution of the user-mode process after said causing the hypervisor to protect the private physical memory page.

2. The method of claim 1 , further comprising:

receiving the alert that the private physical memory page is being modified; and

taking an action in response to receiving the alert.

3. The method of claim 1 , wherein modifying the shared physical memory page in the context of the user-mode process comprises:

modifying page permission to allow the protection module to write to the virtual memory page of the user-mode process mapped to the shared physical memory page; and

modifying the virtual memory page of the user-mode process.

4. The method of claim 1 , wherein modifying the shared physical memory page in the context of the user-mode process comprises using an asynchronous procedure call to inject a dynamic link library in the user-mode process, the dynamic link library causing a write to the shared physical memory page.

5. The method of claim 1 , wherein modifying the shared physical memory page in the context of the user-mode process comprises modifying an entry point of the user-mode process of redirect a call to the protection module, the protection module causing a write to the shared physical memory pages in response to the call.

6. The method of claim 1 , wherein modifying the shared physical memory page comprises reading data from a location of the virtual memory page of the user-mode process and writing the same data back to the location of the virtual memory page of the user-mode process.

7. A non-transitory, computer-readable storage medium encoded with instructions executable by a processor to implement a protection module associated with a kernel-mode driver in a guest operating system that uses a hypervisor to protect memory pages of the guest operating system, which in response to the protection module executing the instructions, cause the processor to:

monitor for a launch of a user-mode process;

determine if the user-mode process is to be protected once the user-mode process launches, based on a parameter in a load-image or a process creation notification;

pause execution of the user-mode process when the user-mode process is to be protected while the protection module is running;

modify a shared physical memory page in a context of the user-mode process by writing to a virtual memory page of the user-mode process that maps to the shared physical memory page, which causes the guest operating system to allocate a private physical memory page to the user-mode process, copy data from the shared physical memory page to the private physical memory page, and modify the private physical memory page with existing data on the shared physical memory page, wherein another virtual memory page of another process, which differs from the user-mode process, is also mapped to the shared physical memory page, and the private physical memory page modified with the existing data is identical to the shared physical memory page;

cause the hypervisor to protect the private physical memory page by monitoring the private physical memory page and generating an alert when the private physical memory page is accessed by any process; and

resume execution of the user-mode process after said causing the hypervisor to protect the private physical memory page.

8. The storage medium of claim 7 , wherein the storage medium further comprises additional instructions, which in response to the protection module executing the instructions, cause the processor to:

receive the alert that the private physical memory page is being modified; and

take an action in response to receiving the alert.

9. The storage medium of claim 7 , wherein the instructions for modifying the shared physical memory page in the context of the user-mode process, which in response to the protection module executing the instructions, cause the processor to:

modify page permission to allow the protection module to write to the virtual memory page of the user-mode process mapped to the shared physical memory page; and

modify the virtual memory page of the user-mode process.

10. The storage medium of claim 7 , wherein the instructions for modifying the shared physical memory page in the context of the user-mode process, which in response to the protection module executing the instructions, cause the processor to:

use an asynchronous procedure call to inject a dynamic link library in the user-mode process, the dynamic link library causing a write to the shared physical memory page.

11. The storage medium of claim 7 , wherein the instructions for modifying the shared physical memory page in the context of the user-mode process, which in response to the protection module executing the instructions, cause the processor to:

modify an entry point of the user-mode process of redirect a call to the protection module, the protection module causing a write to the shared physical memory pages in response to the call.

12. The storage medium of claim 7 , wherein the instructions for modifying the shared physical memory page, which in response to the protection module executing the instructions, cause the processor to:

read data from a location of the virtual memory page of the user-mode process and writing the same data back to the location of the virtual memory page of the user-mode process.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2018
From: PATIL, SUKRUT
To: NICIRA, INC.
Reel/Frame 045042/0574 →