IP Library › Granted Patent US 7,689,817
Granted Patent B2
US 7,689,817 · App. 11/601,321 · Granted Mar 30, 2010

Methods and apparatus for defeating malware

Assignee: Intel Corporation
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 7,689,817
App. No.
11/601,321
Granted
Mar 30, 2010
Kind
B2
Abstract

A data processing system supports a virtualization enabled (VE) operating mode. An operating system (OS) is launched during a boot process. However, a trap agent is launched before the OS is launched. The trap agent may intercept an attempt to transition the data processing system to virtual machine (VM) operating mode. In response to intercepting the attempt to transition the data processing system to VM operating mode, the trap agent may automatically determine whether the program that requested the transition is an authorized program. If the program is not authorized, the trap agent may prevent the program from transitioning the data processing system to VM operating mode. In one embodiment, the trap agent is launched before the data processing system selects a boot device. In another embodiment, the trap agent is launched before executing any code from any third-party option ROMs. Other embodiments are described and claimed.

Claims (68)

1. A method for protecting a data processing system, the method comprising:

launching an operating system (OS) during a boot process in a data processing system that supports a virtualization enabled (VE) operating mode;

selecting a boot device for loading the OS;

before selecting the boot device and before launching the OS, launching a trap agent;

with the trap agent, intercepting an attempt to transition the data processing system to virtual machine (VM) operating mode after the OS has been launched; and

in response to intercepting the attempt to transition the data processing system to VM operating mode, automatically determining whether a program that requested the transition is an authorized program.

2. A method according to claim 1 , further comprising:

preventing the program from transitioning the data processing system to VM operating mode if the program is not authorized.

3. A method according to claim 1 , comprising:

launching the trap agent before handing off to an OS loader.

4. A method according to claim 1 , comprising:

launching the trap agent before executing any code from any third-party option memories in the data processing system.

5. A method according to claim 1 , wherein the data processing system comprises a processor provided by a processor manufacturer and assembled with other components to produce the data processing system by a system manufacturer, the method comprising:

launching the trap agent before executing any code provided by any entity other than the processor manufacturer or the system manufacturer.

6. A method according to claim 1 , comprising:

executing the trap agent with the processor in a virtualization enabled (VE) mode.

7. A method according to claim 1 , further comprising:

terminating the trap agent if the program is authorized; and

allowing the program to transition the data processing system to VM operating mode.

8. A method according to claim 1 , further comprising:

after launching the trap agent, allowing instructions that do not pertain to virtualization to be executed without interference from the trap agent.

9. An apparatus comprising:

a machine-accessible medium; and

instructions in the machine-accessible medium, wherein the instructions, when executed by a data processing system that supports a virtualization enabled (VE) operating mode, cause the data processing system to perform operations comprising:

launching an operating system (OS) during a boot process in the data processing system;

selecting a boot device for loading the OS;

before selecting the boot device and before launching the OS, launching a trap agent;

with the trap agent, intercepting an attempt to transition the data processing system to virtual machine (VM) operating mode after the OS has been launched; and

in response to intercepting the attempt to transition the data processing system to VM operating mode, automatically determining whether a program that requested the transition is an authorized program.

10. An apparatus according to claim 9 , wherein the instructions cause the data processing system to perform further operations comprising:

preventing the program from transitioning the data processing system to VM operating mode if the program is not authorized.

11. An apparatus according to claim 9 , wherein the instructions cause the data processing system to perform operations comprising:

launching the trap agent before handing off to an OS loader.

12. An apparatus according to claim 9 , wherein the instructions cause the data processing system to perform operations comprising:

launching the trap agent before executing any code from any third-party option memories in the data processing system.

13. An apparatus according to claim 9 , wherein the data processing system comprises a processor provided by a processor manufacturer and assembled with other components to produce the data processing system by a system manufacturer, and wherein the instructions cause the data processing system to perform operations comprising:

launching the trap agent before executing any code provided by any entity other than the processor manufacturer or the system manufacturer.

14. An apparatus according to claim 9 , wherein the instructions cause the data processing system to perform operations comprising:

executing the trap agent with the processor in a virtualization enabled (VE) mode.

15. An apparatus according to claim 9 , wherein the instructions cause the data processing system to perform further operations comprising:

terminating the trap agent if the program is authorized; and

allowing the program to transition the data processing system to VM operating mode.

16. An apparatus according to claim 9 , wherein the instructions cause the data processing system to perform operations comprising:

after launching the trap agent, allowing instructions that do not pertain to virtualization to be executed without interference from the trap agent.

17. A data processing system comprising:

a processing unit that supports a virtualization enabled (VE) operating mode;

non-volatile storage in communication with the processing unit;

system read-only memory (ROM) in communication with the processing unit; and

instructions in the system ROM, wherein the instructions, when executed, cause the data processing system to perform operations comprising:

launching a trap agent before selecting a boot device for loading an operating system (OS) and before launching the OS during a boot process in the data processing system;

with the trap agent, intercepting an attempt to transition the data processing system to virtual machine (VM) operating mode after the OS has been launched; and

in response to intercepting the attempt to transition the data processing system to VM operating mode, automatically determining whether a program that requested the transition is an authorized program.

18. A data processing system according to claim 17 , wherein the instructions in the system ROM comprise the trap agent.

19. A data processing system according to claim 17 , wherein the instructions cause the data processing system to perform further operations comprising:

preventing the program from transitioning the data processing system to VM operating mode if the program is not authorized.

20. A data processing system according to claim 17 , wherein the instructions cause the data processing system to perform operations comprising:

launching the trap agent before handing off to an OS loader.

21. A data processing system according to claim 17 , wherein the instructions cause the data processing system to perform operations comprising:

launching the trap agent before executing any code from any third-party option memories in the data processing system.

22. A data processing system according to claim 17 , wherein the instructions cause the data processing system to perform operations comprising:

launching the trap agent before executing any code provided by any entity other than a processor manufacturer for the processor or a system manufacturer for the data processing system.

23. A data processing system according to claim 17 , wherein the instructions cause the data processing system to perform operations comprising:

executing the trap agent with the processor in a virtualization enabled (VE) mode.

24. A data processing system according to claim 17 , wherein the instructions cause the data processing system to perform further operations comprising:

terminating the trap agent if the program is authorized; and

allowing the program to transition the data processing system to VM operating mode.

25. A data processing system according to claim 17 , wherein the instructions cause the data processing system to perform operations comprising:

after launching the trap agent, allowing instructions that do not pertain to virtualization to be executed without interference from the trap agent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2009
From: ZIMMER, VINCENT J.; LONG, QIN
To: INTEL CORPORATION
Reel/Frame 023339/0934 →
Continuity (1)
Related Publication 20080120499A1 · May 22, 2008