IP Library Granted Patent US 9,465,700
Granted Patent B2
US 9,465,700 · App. 14/629,574 · Granted Oct 11, 2016

System and method for kernel rootkit protection in a hypervisor environment

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,465,700
App. No.
14/629,574
Granted
Oct 11, 2016
Kind
B2
Abstract

A system and method in one embodiment includes modules for creating a soft whitelist having entries corresponding to each guest kernel page in a guest operating system in a hypervisor environment, generating a page fault when an access attempt is made to a guest kernel page, fixing the page fault to allow access and execution if the guest kernel page corresponds to one of the entries in the soft whitelist, and denying execution if the guest kernel page does not correspond to any of the entries in the soft whitelist. If the page fault is an instruction page fault, and the guest kernel page corresponds to one of the entries in the soft whitelist, the method includes marking the guest kernel page as read-only and executable. The soft whitelist includes a hash of machine page frame numbers corresponding to virtual addresses of each guest kernel page.

Claims (45)

1. A method, comprising:

creating a soft whitelist having an entry corresponding to a first guest kernel page in a guest operating system (OS) in a hypervisor environment comprising a hypervisor;

generating a page fault when an access attempt is made to a second guest kernel page;

fixing the page fault to allow an execution if the second guest kernel page corresponds to the entry in the soft whitelist; and

denying the execution if the second guest kernel page does not correspond to the entry in the soft whitelist and the page fault is an instruction page fault.

2. The method of claim 1 , further comprising:

if the page fault is a data page fault and the second guest kernel page does not correspond to the entry in the soft whitelist:

fixing the page fault; and

marking the second guest kernel page as non-executable.

3. The method of claim 1 , wherein the creating the soft whitelist comprises adding a machine page frame number (MFN) corresponding to a virtual address of the first guest kernel page into a hash.

4. The method of claim 3 , further comprising:

determining if a MFN corresponding to a virtual address of the page fault is present in the hash.

5. The method of claim 1 , wherein the first guest kernel page corresponds to a page table entry (PTE) in a shadow page table of the hypervisor.

6. An apparatus, comprising:

a memory;

a processor; and

a hypervisor, wherein the processor is configured to

create a soft whitelist having an entry corresponding to a first guest kernel page in a guest operating system (OS) in a hypervisor environment comprising the hypervisor;

generate a page fault when an access attempt is made to a second guest kernel page;

fix the page fault to allow an execution if the second guest kernel page corresponds to the entry in the soft whitelist; and

deny the execution if the second guest kernel page does not correspond to the entry in the soft whitelist and the page fault is an instruction page fault.

7. The apparatus of claim 6 , wherein the processor is further configured to mark the second guest kernel page as read-only and executable, if the page fault is the instruction page fault and the second guest kernel page corresponds to the entry in the soft whitelist.

8. The apparatus of claim 6 , wherein the processor is further configured to, if the page fault is a data page fault and the second guest kernel page does not correspond to the entry in the soft whitelist, both fix the page fault and mark the second guest kernel page as non-executable.

9. The apparatus of claim 6 , wherein the processor is further configured to add a machine page frame number (MFN) corresponding to a virtual address of the first guest kernel page into a hash.

10. The apparatus of claim 9 , wherein the processor is further configured to determine if a MFN corresponding to a virtual address of the page fault is present in the hash.

11. The apparatus of claim 6 , wherein the first guest kernel page corresponds to a page table entry (PTE) in a shadow page table of the hypervisor.

12. Logic, encoded in non-transitory media, that includes code for execution and comprising:

instructions to create a soft whitelist having an entry corresponding to a first guest kernel page in a guest operating system (OS) in a hypervisor environment comprising a hypervisor;

instructions to generate a page fault when an access attempt is made to a second guest kernel page;

instructions to fix the page fault to allow an execution if the second guest kernel page corresponds to the entry in the soft whitelist; and

instructions to deny the execution if the second guest kernel page does not correspond to the entry in the soft whitelist and the page fault is an instruction page fault.

13. The logic of claim 12 , further comprising:

instructions to mark the second guest kernel page as read-only and executable if the page fault is the instruction page fault and the second guest kernel page corresponds to the entry in the soft whitelist.

14. The logic of claim 12 , further comprising:

instructions to, if the page fault is a data page fault and the second guest kernel page does not correspond to the entry in the soft whitelist:

fix the page fault; and

mark the second guest kernel page as non-executable.

15. The logic of claim 12 , wherein the instructions to create the soft whitelist comprise instructions to add a machine page frame number (MFN) corresponding to a virtual address of the first guest kernel page into a hash.

16. The logic of claim 15 , further comprising:

instructions to determine if a MFN corresponding to a virtual address of the page fault is present in the hash.

17. The logic of claim 12 , wherein the first guest kernel page corresponds to a page table entry (PTE) in a shadow page table of the hypervisor.

18. The logic of claim 12 , wherein the soft whitelist is created after the guest OS has loaded a process scheduler, a memory manager, and a file system at boot.

19. The logic of claim 12 , wherein the soft whitelist is created before the guest OS has loaded a process scheduler, a memory manager, and a file system, and the first guest kernel page is from a paged pool range or a non-paged pool range.

20. The logic of claim 12 , further comprising:

instructions to set a lockdown feature bit in the hypervisor during domain creation to enable rootkit protection.

Assignments (9)
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 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 →
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 →
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 →