IP Library Granted Patent US 7,610,426
Granted Patent B1
US 7,610,426 · App. 11/644,224 · Granted Oct 27, 2009

System management mode code modifications to increase computer system security

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,610,426
App. No.
11/644,224
Granted
Oct 27, 2009
Kind
B1
Abstract

Methods for processing more securely. Embodiments provide effective and efficient mechanisms for reducing APIC interference with accesses to SMRAM, where enhanced SMM code implementing these mechanisms effectively reduces APIC attacks and increases the security of proprietary, confidential or otherwise secure data stored in SMRAM.

Claims (48)

1. A method for increasing the security of a computer system using an x86-compliant processor, wherein said method is performed by a system management mode (SMM) process, said method comprising:

upon execution of a system management interrupt (SMI), storing a first memory location in a component selected from a group consisting of a register and a memory to which an advanced programmable interrupt controller (APIC) is mapped prior to said SMI;

moving said mapping of said APIC to an updated memory location; and

executing at least one system management mode (SMM) task while said APIC is mapped to said updated memory location.

2. The method of claim 1 further comprising:

returning said mapping of said APIC to said first memory location; and

executing a resume (RSM) instruction.

3. The method of claim 1 , wherein said updated memory location is a default memory location for said APIC used upon reset of said processor.

4. The method of claim 1 , wherein said updated memory location reduces interference of said mapping of said APIC with said at least one SMM task.

5. The method of claim 1 , wherein said updated memory location causes an overlap of said mapping of said APIC with a portion of system management random access memory (SMRAM) in a memory, and wherein said overlap is less than or equal to a predetermined allowable overlap.

6. The method of claim 1 further comprising:

identifying a location of a portion of system management random access memory (SMRAM) in a memory;

determining whether said mapping of said APIC overlaps a portion of SMRAM within said memory; and

upon determining an overlap, moving said mapping of said APIC to a default memory location for said APIC used upon reset of said processor.

7. The method of claim 1 further comprising:

identifying a location of a portion of system management random access memory (SMRAM) in a memory;

determining whether said mapping of said APIC overlaps a portion of SMRAM within said memory; and

upon determining an overlap, moving said mapping of said APIC to a memory location where interference of said mapping of said APIC with said at least one SMM task is reduced.

8. The method of claim 1 , wherein said first memory location is stored in a register of said processor.

9. The method of claim 1 , wherein said first memory location is stored within a portion of a save-state map of said memory.

10. A method for increasing the security of a computer system using an x86-compliant processor, wherein said method is performed by system management mode (SMM) process, said method comprising:

upon execution of a system management interrupt (SMI), disabling an advanced programmable interrupt controller (APIC) associated with said processor; and

executing at least one system management mode (SMM) task while said APIC is disabled.

11. The method of claim 10 further comprising:

determining whether said APIC is enabled prior to said disabling of said APIC; and

if said APIC is enabled, then re-enabling said APIC before execution of a resume (RSM) instruction.

12. The method of claim 10 further comprising:

determining whether said APIC is enabled prior to said disabling of said APIC; and

if said APIC is not enabled, then bypassing said disabling of said APIC and executing a resume (RSM) instruction after said executing at least one SMM task.

13. The method of claim 10 , wherein said disabling and said enabling are performed by changing a state of a global flag within a model specific register of said processor.

14. The method of claim 10 , wherein said disabling and said enabling are performed by changing a state of a software flag within a register of said APIC.

15. A method for increasing the security of a computer system using an x86-compliant processor, wherein said method is performed by a system management mode (SMM) process, said method comprising:

identifying a first location in a memory, wherein said first location comprises an address to which a portion of an advanced programmable interrupt controller (APIC) is mapped;

identifying a second location in said memory, wherein said second location comprises a portion of system management random access memory (SMRAM);

determining an allowable overlap of an address range indicated by said first location and an address range indicated by said second location;

determining a current overlap of an address range indicated by said first location and an address range indicated by said second location; and

upon determining that said current overlap is greater than said allowable overlap, preventing said processor from resuming execution of an operating system of said computer system.

16. The method of claim 15 , wherein said preventing said processor from resuming execution of said operating system comprises executing a halt instruction.

17. The method of claim 15 , wherein said preventing said processor from resuming execution of said operating system comprises executing an infinite loop.

18. The method of claim 15 , wherein said first location is a base address of said mapping of said portion of said APIC.

19. The method of claim 15 , wherein said second location is a base address of said SMRAM.

20. A method for increasing the security of a computer system using an x86-compliant processor, wherein said method is performed by a system management mode (SMM) process, said method comprising:

identifying a location in a memory, wherein said location comprises an address to which a portion of an advanced programmable interrupt controller (APIC) is mapped;

determining if interference by said APIC mapping in said location with at least one system management mode (SMM) task is acceptable; and

upon determining that said interference is not acceptable, preventing said processor from resuming execution of an operating system of said computer system.

21. The method of claim 20 , wherein said preventing said processor from resuming execution of said operating system comprises executing a halt instruction.

22. The method of claim 20 , wherein said preventing said processor from resuming execution of said operating system comprises executing an infinite loop.

23. The method of claim 20 , wherein said location is a base address of said mapping of said portion of said APIC.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL: 036711 FRAME: 0160. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 6, 2015
From: INTELLECTUAL VENTURES FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036797/0356 →
MERGER Recorded Sep 29, 2015
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036711/0160 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2009
From: TRANSMETA LLC
To: INTELLECTUAL VENTURE FUNDING LLC
Reel/Frame 023268/0771 →
MERGER Recorded Mar 26, 2009
From: TRANSMETA CORPORATION
To: TRANSMETA LLC
Reel/Frame 022454/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2006
From: DUNN, DAVID A.
To: TRANSMETA CORPORATION
Reel/Frame 018743/0037 →