IP Library Granted Patent US 10,372,472
Granted Patent B2
US 10,372,472 · App. 14/820,296 · Granted Aug 6, 2019

System, method, and computer program product for conditionally preventing use of hardware virtualization

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 10,372,472
App. No.
14/820,296
Granted
Aug 6, 2019
Kind
B2
Abstract

A system, method, and computer program product are provided for conditionally preventing use of hardware virtualization. In use, an attempt to use hardware virtualization is identified. Further, the use of the hardware virtualization is conditionally prevented.

Claims (79)

1. A non-transitory machine readable medium, on which are stored instructions that when executed cause a computer having hardware virtualization capability to:

register a virtual machine guard of a virtualization layer with a hardware virtualization provider while an operating system is running;

move the running operating system into a virtual machine by the virtual machine guard;

recognize, by the virtual machine guard, an attempt to use hardware virtualization by the operating system or an application running under the operating system;

determine an identifier associated with a source of the attempt;

disallow the attempt as being associated with malware responsive to a determination that the identifier is on a list of predetermined identifiers;

allow the attempt responsive to a determination that the identifier is not on the list of predetermined identifiers; and

log the attempt to use hardware virtualization,

wherein, subsequent to logging the attempt, the virtual machine guard continues operation to recognize additional attempts to use hardware virtualization.

2. The machine readable medium of claim 1 , wherein the instructions further comprise instructions that when executed cause the computer to:

present information identifying the source.

3. The machine readable medium of claim 2 , wherein the instructions further comprise instructions that when executed cause the computer to:

receive input responsive to the presented information.

4. The machine readable medium of claim 3 , wherein the instructions further comprise instructions that when executed cause the computer to:

add the identifier to the list responsive to the input.

5. The machine readable medium of claim 1 , wherein the instructions further comprise instructions that when executed cause the computer to:

create a virtual machine by the virtual machine guard; and

execute an operating system within the virtual machine guard,

wherein the instructions that when executed cause the computer to recognize by the virtual machine guard an attempt to use hardware virtualization comprise instructions that when executed cause the computer to:

detect an attempt to use hardware virtualization by an application running under the operating system, and

wherein the instructions that when executed cause the computer to determine an identifier associated with a source of the attempt comprise instructions that when executed cause the computer to:

associate an identifier with the application.

6. The machine readable medium of claim 1 , wherein the instructions that when executed cause the computer to recognize, by the virtual machine guard of the virtualization layer, an attempt to use hardware virtualization comprise instructions that when executed cause the computer to:

monitor by the virtual machine guard communication with a virtualization provider.

7. The machine readable medium of claim 1 , wherein the instructions further comprise instructions that when executed cause the computer to:

register the virtual machine guard with a virtualization provider.

8. A programmable device having a hardware virtualization capability, comprising:

one or more processors having a hardware virtualization capability; and

a memory, coupled to the one or more processors, on which are stored instructions that when executed cause some of the one or more processors to:

register a virtual machine guard of a virtualization layer with a hardware virtualization provider while an operating system is running;

move the running operating system into a virtual machine by the virtual machine guard;

recognize, by the virtual machine guard, an attempt to use hardware virtualization by the operating system or an application running under the operating system;

determine an identifier associated with a source of the attempt;

disallow the attempt as being associated with malware, responsive to the identifier being on a list of predetermined identifiers;

allow the attempt, responsive to the identifier not being on the list of predetermined identifiers; and

log the attempt to use hardware virtualization,

wherein, subsequent to logging the attempt, the virtual machine guard continues operation to recognize additional attempts to use hardware virtualization.

9. The programmable device of claim 8 , wherein the instructions further comprise instructions that when executed cause some of the one or more processors to:

present information identifying the source.

10. The programmable device of claim 9 , wherein the instructions further comprise instructions that when executed cause some of the one or more processors to:

receive input responsive to the presented information; and

add the identifier to the list responsive to the input.

11. The programmable device of claim 8 , wherein the instructions further comprise instructions that when executed cause some of the one or more processors to:

create a virtual machine by the virtual machine guard; and

execute an operating system within the virtual machine guard,

wherein the instructions that when executed cause some of the one or more processors to recognize, by the virtual machine guard of the virtualization layer, an attempt to use hardware virtualization comprise instructions that when executed cause some of the one or more processors to:

detect an attempt to use hardware virtualization by an application running under the operating system, and

wherein the instructions that when executed cause some of the one or more processors to determine an identifier associated with a source of the attempt comprise instructions that when executed cause some of the one or more processors to:

associate an identifier with the application.

12. The programmable device of claim 8 , wherein the instructions that when executed cause some of the one or more processors to recognize, by the virtual machine guard of the virtualization layer, an attempt to use hardware virtualization comprise instructions that when executed cause some of the one or more processors to:

monitor by the virtual machine guard communication with a virtualization provider.

13. The programmable device of claim 8 , wherein the instructions further comprise instructions that when executed cause some of the one or more processors to:

register the virtual machine guard with a virtualization provider.

14. A method of preventing operation of malware comprising:

registering a virtual machine guard of a virtualization layer with a hardware virtualization provider while an operating system is running;

moving the running operating system into a virtual machine by the virtual machine guard;

recognizing, by the virtual machine guard, an attempt to use hardware virtualization by the operating system or an application running under the operating system;

determining an identifier associated with a source of the attempt;

disallowing the attempt as being associated with malware, responsive to determining the identifier is on a list of predetermined identifiers;

allowing the attempt responsive to determining the identifier is not on the list of predetermined identifiers; and

logging the attempt to use hardware virtualization,

wherein, subsequent to logging the attempt, the virtual machine guard continues operation to recognize additional attempts to use hardware virtualization.

15. The method of claim 14 , further comprising:

presenting information identifying the source.

16. The method of claim 15 , further comprising:

receiving input responsive to the presented information.

17. The method of claim 16 , further comprising:

adding the identifier to the list responsive to the input.

18. The method of claim 14 , further comprising:

creating a virtual machine by the virtual machine guard; and

executing an operating system within the virtual machine guard,

wherein recognizing, by the virtual machine guard of the virtualization layer, an attempt to use hardware virtualization comprises:

detecting an attempt to use hardware virtualization by an application running under the operating system, and

wherein determining an identifier associated with a source of the attempt comprises:

associating an identifier with the application.

19. The method of claim 14 , wherein recognizing, by the virtual machine guard of the virtualization layer, an attempt to use hardware virtualization comprises:

monitor by the virtual machine guard communication with a virtualization provider.

20. The method of claim 14 , further comprising:

registering the virtual machine guard with a virtualization provider.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2019
From: BLAIMSCHEIN, PETER; STEINER, THOMAS C.H.; DALCHER, GREGORY WILLIAM; TEDDY, JOHN DOUGLAS
To: MCAFEE, INC.
Reel/Frame 048659/0034 →
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 →