IP Library Granted Patent US 8,843,742
Granted Patent B2
US 8,843,742 · App. 12/229,705 · Granted Sep 23, 2014

Hypervisor security using SMM

Inventor: Kaushik C. Barde (Sunnyvale, CA)
Assignee: Hewlett-Packard Company
G06F21/57G06F21/64
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,843,742
App. No.
12/229,705
Granted
Sep 23, 2014
Kind
B2
Abstract

Methods, systems, apparatuses and program products are disclosed for protecting computers and similar equipment from undesirable occurrences, especially attacks by malware. Invariant information, such as pure code and some data tables may be enrolled for later revalidation by code operating outside the normal context. For example, a periodic interrupt may invoked a system management mode interrupt service routine to discover whether code regions accessible to Protected Mode programs have become corrupted or otherwise changed, such as by tampering from untrusted or untrustworthy programs that have easy access only to protected mode operation.

Claims (53)

1. A method comprising:

calculating, by a computer, an initial digest based on content in a first region of read-write memory, the first region of read-write memory containing hypervisor code to execute in a protected mode;

enrolling, by the computer, the initial digest into a second region of read-write memory reserved for access by a second set of instruction codes to execute in a real mode different from the protected mode or to act as a platform management interrupt service routine; and

responsive to a management mode interrupt, executing a third set of instruction codes in the computer to form a recalculated digest based on the content in the first region of read-write memory.

2. The method of claim 1 wherein:

the second region of read-write memory is located within an SM RAM (system management random access memory).

3. The method of claim 1 wherein:

the real mode is an SMM (system management mode).

4. The method of claim 1 wherein:

the third set of instruction codes is selected from the second set of instruction codes.

5. The method of claim 1 wherein:

the enrolling is performed in response to a first SMI (system management interrupt).

6. The method of claim 1 further comprising:

generating the management mode interrupt in response to expiration of a timer.

7. The method of claim 3 further comprising:

responsive to an SMI (system management interrupt), receiving a commit command to prohibit further enrollment commands and to arm a timer circuit.

8. The method of claim 1 further comprising:

reconciling the initial digest with the recalculated digest by determining whether the initial digest matches the recalculated digest.

9. The method of claim 8 , further comprising:

in response to determining that the initial digest does not match the recalculated digest, indicating an error condition.

10. The method of claim 1 wherein:

the calculating, the enrolling and the executing are performed after the computer receives a power-on reset signal and before any operating system becomes resident in any main memory within the computer.

11. The method of claim 1 , wherein the initial digest is one of a checksum and hash value, and the recalculated digest is one of a checksum and hash value.

12. The method of claim 1 , wherein enrolling the initial digest into the second region of read-write memory comprises storing the initial digest into the second region of read-write memory.

13. A computer program product comprising:

at least one non-transitory computer-readable medium having computer instructions encoded therein, the instructions when executed by at least one computer cause said at least one computer to:

calculate an initial digest based on content in a first region of read-write memory containing hypervisor code to execute in a protected mode;

enroll the initial digest into a second region of read-write memory reserved for access by a second set of instruction codes to execute in a real mode different from the protected mode or to act as a platform management interrupt service routine; and

responsive to a management mode interrupt, execute a third set of instruction codes to form a recalculated digest based on the content in the first region of read-write memory.

14. The computer program product of claim 13 wherein:

the management mode interrupt is an SMI (System Management Interrupt) generated in response to expiration of a timer.

15. The computer program product of claim 13 , wherein the computer instructions when executed cause the at least one computer to further:

compare the recalculated digest to the initial digest to determine if the recalculated digest matches the initial digest; and

in response to determining that the recalculated digest does not match the initial digest, indicate an error.

16. The computer program product of claim 13 , wherein the real mode is an SMM (system management mode), and wherein the instructions when executed cause said at least one computer to further:

responsive to an SMI (system management interrupt), receive a commit command to prohibit further enrollment commands and to arm a timer circuit.

17. A method comprising:

forming, by a computer, an initial digest of a first region of read-write memory containing hypervisor code to execute in a protected mode, wherein the initial digest is one of a checksum and a hash value;

enrolling, by the computer, the initial digest into a second region of read-write memory reserved for access by a second set of instruction codes to execute in a real mode different from the protected mode or to act as a platform management interrupt service routine;

responsive to a management mode interrupt, forming, by the computer, a recalculated digest of the first region of read-write memory, wherein the recalculated digest is one of a checksum and a hash value; and

comparing, by the computer, the recalculated digest to the initial digest to determine whether content in the first region has been changed.

18. The method of claim 17 wherein:

the management mode interrupt is an SMI (System Management Interrupt) generated in response to expiration of a timer.

19. The method of claim 17 , further comprising:

in response to determining that the recalculated digest does not match the initial digest, indicating an error.

20. An electronic device comprising:

at least one controller or CPU (central processor unit); and

at least one non-volatile memory having computer instructions encoded therein, the instructions when executed by the at least one controller or CPU cause said at least one controller or CPU to:

calculate an initial digest based on content in a first region of read-write memory containing hypervisor code to execute in a protected mode;

enroll the initial digest into a second region of read-write memory reserved for access by a second set of instruction codes to execute in a real mode different from the protected mode or to act as a platform management interrupt service routine; and

responsive to a management mode interrupt, execute a third set of instruction codes to form a recalculated digest of the first region of read-write memory.

21. The electronic device of claim 20 , wherein the real mode is an SMM (system management mode), and wherein the instructions when executed cause said at least one controller or CPU to further:

responsive to an SMI (system management interrupt), receive a commit command to prohibit further enrollment commands and to arm a timer circuit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2010
From: PHOENIX TECHNOLOGIES LTD.
To: HEWLETT-PACKARD COMPANY
Reel/Frame 024721/0319 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2008
From: BARDE, KAUSHIK C.
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 021678/0809 →
Continuity (1)
Related Publication 20100057982A1 · Mar 4, 2010