IP Library Granted Patent US 9,946,562
Granted Patent B2
US 9,946,562 · App. 14/748,747 · Granted Apr 17, 2018

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,946,562
App. No.
14/748,747
Granted
Apr 17, 2018
Kind
B2
Abstract

A system and method for rootkit protection in a hypervisor environment includes modules for creating a soft whitelist having entries corresponding to each guest kernel page of a guest operating system in a hypervisor environment, wherein each entry is a duplicate page of the corresponding guest kernel page, generating a page fault when a process attempts to access a guest kernel page, and redirecting the process to the corresponding duplicate page. If the page fault is a data page fault, the method includes fixing the page fault, and marking a page table entry corresponding to the guest kernel page as non-executable and writeable. If the page fault is an instruction page fault, the method includes marking a page table entry corresponding to the guest kernel page as read-only. Redirecting changing a machine page frame number in a shadow page table of the hypervisor to point to the corresponding duplicate page.

Claims (58)

1. A method, comprising:

creating a soft whitelist having an entry corresponding to a guest kernel page of a guest operating system (OS) in a hypervisor environment comprising a hypervisor, wherein the entry is a duplicate page of the guest kernel page;

marking a page table entry of the guest kernel page as not present in a shadow page table of the hypervisor;

generating a page fault when a process attempts to access the guest kernel page;

determining whether the page fault is an instruction page fault; and

in response to the determining whether the page fault is the instruction page fault:

marking the page table entry corresponding to the guest kernel page as read-only,

determining whether the duplicate page is present in the soft whitelist, and

further in response to the determining whether the duplicate page is present in the soft whitelist, redirecting the process to the duplicate page corresponding to the guest kernel page.

2. The method of claim 1 , wherein the redirecting comprises changing a machine page frame number in the shadow page table of the hypervisor to point to the duplicate page corresponding to the guest kernel page.

3. The method of claim 1 , further comprising:

if the page fault is a data page fault:

fixing the page fault; and

marking the page table entry corresponding to the guest kernel page as non-executable and writeable.

4. The method of claim 3 , wherein the fixing includes pointing to an original physical page.

5. The method of claim 1 , wherein the creating the soft whitelist is performed after the guest OS has loaded kernel components at boot, and the method further comprises:

walking the shadow page table of the hypervisor; and

mapping a virtual address of the guest kernel page to a machine page frame number of the corresponding duplicate page.

6. The method of claim 1 , wherein the guest OS has not loaded at least some kernel components, and the method further comprises:

mapping a virtual base address of the guest kernel page to a machine page frame number of the corresponding duplicate page.

7. The method of claim 1 , further comprising:

mapping a virtual address of the guest kernel page to a machine page frame number of the corresponding duplicate page; and

determining whether the corresponding duplicate page is present in the soft whitelist, wherein the creating the soft whitelist is performed after the guest OS has loaded kernel components at boot.

8. An apparatus, comprising:

a memory; and

a processor configured to create a soft whitelist having an entry corresponding to a guest kernel page of a guest OS in a hypervisor environment comprising a hypervisor, wherein the entry is a duplicate page of the guest kernel page, to mark a page table entry of the guest kernel page as not present in a shadow page table of the hypervisor, to generate a page fault when a process attempts to access the guest kernel page, and to determine whether the page fault is an instruction page fault,

in response to a determination whether the page fault is the instruction page fault, the processor to mark the page table entry corresponding to the guest kernel page as read-only, to determine whether the duplicate page is present in the soft whitelist, and, further in response to a determination whether the duplicate page is present in the soft whitelist, to redirect the process to the duplicate page corresponding to the guest kernel page.

9. The apparatus of claim 8 , wherein the processor redirects the process by changing a machine page frame number in the shadow page table of the hypervisor to point to the duplicate page corresponding to the guest kernel page.

10. The apparatus of claim 8 , wherein the processor is further configured to,

if the page fault is a data page fault,

fix the page fault, and

mark the page table entry corresponding to the guest kernel page as non-executable and writeable.

11. The apparatus of claim 10 , wherein the processor fixes the page fault by pointing to an original physical page.

12. The apparatus of claim 8 , wherein the processor is configured to map a virtual address of the guest kernel page to a machine page frame number of the corresponding duplicate page and to determine whether the corresponding duplicate page is present in the soft whitelist, and the soft whitelist is created after the guest OS has loaded kernel components at boot.

13. A non-transitory medium encoded with logic that includes code for execution and comprising:

instructions to create a soft whitelist having an entry corresponding to a guest kernel page of a guest OS in a hypervisor environment comprising a hypervisor, wherein the entry is a duplicate page of the guest kernel page;

instructions to mark a page table entry of the guest kernel page as not present in a shadow page table of the hypervisor;

instructions to generate a page fault when a process attempts to access the guest kernel page;

instructions to determine whether the page fault is an instruction page fault; and

instructions to, in response to a determination whether the page fault is the instruction page fault:

mark the page table entry corresponding to the guest kernel page as read-only,

determine whether the duplicate page is present in the soft whitelist, and

further in response to a determination whether the duplicate page is present in the soft whitelist, redirect the process to the duplicate page corresponding to the guest kernel page.

14. The non-transitory medium of claim 13 , wherein the instructions to redirect comprise instructions to change a machine page frame number in the shadow page table of the hypervisor to point to the duplicate page corresponding to the guest kernel page.

15. The non-transitory medium of claim 13 , the code further comprising:

instructions to, if the page fault is a data page fault,

fix the page fault, and

mark the page table entry corresponding to the guest kernel page as non-executable and writeable.

16. The non-transitory medium of claim 15 , wherein the page fault is fixed by pointing to an original physical page.

17. The non-transitory medium of claim 15 , wherein, upon the determination that the duplicate page is present in the soft whitelist, marking the page table entry corresponding to the guest kernel page as read-only.

18. The non-transitory medium of claim 15 , the code further comprising:

instructions to block an execution of the guest kernel page, upon a determination that the duplicate page is not present in the soft whitelist.

19. The non-transitory medium of claim 13 , wherein the soft whitelist is created after the guest OS has loaded a plurality of kernel components at boot, and the code further comprises:

instructions to walk the shadow page table of the hypervisor; and

instructions to map a virtual address of the guest kernel page to a machine page frame number of the corresponding duplicate page.

20. The non-transitory medium of claim 13 , the code further comprising:

instructions to map a virtual address of the guest kernel page to a machine page frame number of the corresponding duplicate page; and

instructions to determine whether the corresponding duplicate page is present in the soft whitelist, wherein the soft whitelist is created after the guest OS has loaded a plurality of kernel components at boot.

Assignments (8)
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: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →