IP Library Granted Patent US 8,341,627
Granted Patent B2
US 8,341,627 · App. 12/545,745 · Granted Dec 25, 2012

Method and system for providing user space address protection from writable memory area in a virtual environment

Assignee: McAfee, Inc.
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 8,341,627
App. No.
12/545,745
Granted
Dec 25, 2012
Kind
B2
Abstract

A method in one example implementation includes identifying an address space in a memory element of a system configured to operate in a virtual environment. The address space includes at least one system address, and the address space is provided to a virtual machine monitor. The method also includes generating a page table entry for the system address in a shadow page table stored in the virtual machine monitor in response to a guest operating system initiating a process. The page table entry is marked as a page not being present in order to trigger a page fault for a system address access from the guest operating system. In more specific embodiments, the method may include evaluating a page fault to determine access to the address space, where access to a writeable area of the memory element is denied.

Claims (46)

1. A method, comprising:

identifying an address space in a memory element of a system configured to operate in a virtual environment, wherein the address space includes at least one critical address in user space memory to be protected from unauthorized access, and wherein the critical address is provided to a virtual machine monitor via a hypercall from a privileged domain that manages the virtual machine monitor, and wherein the virtual machine monitor is configured to intercept a single step execution by a processor;

generating a page table entry for the critical address in a shadow page table stored in the virtual machine monitor in response to a guest operating system initiating a process, wherein the page table entry is marked as a page not being present in order to trigger a page fault upon an attempt by the process to access the critical address from the guest operating system;

intercepting the page fault; and

evaluating the page fault to determine if the attempt to access the critical address is from a writable area of the memory element, wherein if the attempt to access is from a writable area of the memory element, the access is denied, such that an application executing the process can be prevented from executing.

2. The method of claim 1 ,

wherein if the attempt to access is from a non-writable area of the memory element, the access is allowed, the processor is put into a single step execution mode, and the page table entry is again marked as not present after the access is completed.

3. The method of claim 1 , further comprising:

maintaining the shadow page table for one or more guest operating systems; and

updating the shadow page table as additional processes are initiated by the guest operating system.

4. The method of claim 1 , wherein when the guest operating system initiates the process, the critical address is converted to a physical address.

5. The method of claim 1 , further comprising:

intercepting a processor execution request from the guest operating system; and

using a page fault handler to permit or deny access to the critical address.

6. The method of claim 1 , wherein a single step flag is marked in a processor flag for the processor to identify.

7. Logic encoded in one or more tangible non-transitory computer readable storage media that includes code for execution and when executed by a processor is operable to perform operations comprising:

identifying an address space in a memory element of a system configured to operate in a virtual environment, wherein the address space includes at least one critical address in user space memory to be protected from unauthorized access, and wherein the critical address is provided to a virtual machine monitor via a hypercall from a privileged domain that manages the virtual machine monitor, and wherein the virtual machine monitor is configured to intercept a single step execution by the processor;

generating a page table entry for the critical address in a shadow page table stored in the virtual machine monitor in response to a guest operating system initiating a process, wherein the page table entry is marked as a page not being present in order to trigger a page fault upon an attempt by the process to access the critical address from the guest operating system;

intercepting the page fault; and

evaluating the page fault to determine if the attempt to access the critical address is from a writable area of the memory element, wherein if the attempt to access is from a writable area of the memory element, the access is denied, such that an application executing the process can be prevented from executing.

8. The logic of claim 7 ,

wherein if the attempt to access is from a non-writable area of the memory element, the access is allowed, the processor is put into a single step execution mode, and the page table entry is again marked as not present after the access is completed.

9. The logic of claim 7 , the processor being operable to perform operations comprising:

maintaining the shadow page table for one or more guest operating systems; and

updating the shadow page table as additional processes are initiated by the guest operating system.

10. The logic of claim 7 , wherein when the guest operating system initiates the process, the critical address is converted to a physical address.

11. The logic of claim 7 , wherein a single step flag is marked in a processor flag for the processor to identify.

12. The logic of claim 7 , the processor being operable to perform operations comprising:

intercepting a processor execution request from the guest operating system; and

using a page fault handler to permit or deny access to the critical address.

13. An apparatus, comprising:

a virtual machine monitor;

a memory element configured to store data; and

a processor operable to execute instructions associated with the data, wherein the virtual machine monitor includes an address protection module configured to:

identify an address space in a memory element of a system configured to operate in a virtual environment, wherein the address space includes at least one critical address in user space memory to be protected from unauthorized access, and wherein the critical address is provided to the virtual machine monitor via a hypercall from a privileged domain that manages the virtual machine monitor, and wherein the virtual machine monitor is configured to intercept a single step execution by the processor;

generate a page table entry for the critical address in a shadow page table stored in the virtual machine monitor in response to a guest operating system initiating a process, wherein the page table entry is marked as a page not being present in order to trigger a page fault upon an attempt by the process to access the critical address from the guest operating system;

intercept the page fault; and

evaluate the page fault to determine if the attempt to access the critical address is from a writable area of the memory element, wherein if the attempt to access is from a writable area of the memory element, the access is denied, such that an application executing the process can be prevented from executing.

14. The apparatus of claim 13 ,

wherein if the attempt to access is from a non-writable area of the memory element, the access is allowed, the processor is put into a single step execution mode, and the page table entry is again marked as not present after the access is completed.

15. The apparatus of claim 13 , wherein the virtual machine monitor is configured to:

maintain the shadow page table for one or more guest operating systems; and

update the shadow page table as additional processes are initiated by the guest operating system.

16. The apparatus of claim 13 , wherein when the guest operating system initiates the process, the critical address is converted to a physical address.

17. The apparatus of claim 13 , further comprising:

a page fault handler, wherein a processor execution request is intercepted from the guest operating system and the page fault handler is configured to permit or deny access to the critical address.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2009
From: MOHINDER, PREET
To: MCAFEE, INC.
Reel/Frame 023132/0118 →
Continuity (1)
Related Publication 20110047543A1 · Feb 24, 2011