Secure option ROM firmware updates

Option ROM updates are performed in a secure manner with centralized control through system initialization firmware, such as the system BIOS. An option ROM updater manages copying an option ROM update to an auxiliary subsystem if an update bit is set, such as by a secure system management interface with the BIOS. Upon detection of an update bit, the option ROM updater unlocks a write protect at the auxiliary subsystem firmware and copies an option ROM update to the auxiliary subsystem to update the option ROM. After completing the option ROM update, the option ROM updater locks write protection of the option ROM to maintain system security.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates in general to the field of information handling system firmware updates, and more particularly to information handling system secure option ROM firmware updates.

2. Description of the Related Art

Information handling systems are typically built from a variety of components that cooperate to process information. For example, a central processing unit (CPU) runs applications to perform desired functions, such as word processing, multimedia content presentation, web browsing and e-mail. End users interact with applications through a variety of auxiliary subsystems built from the components. Auxiliary subsystems input information for use by the applications and present information processed by the applications. Some examples of auxiliary subsystems include a video subsystem that processes information to generate visual image information for presentation at a display, SCSI subsystems that support communications with storage devices such as hard disk drives and optical drives, and network subsystems that support communications with networks to perform functions such as a PXE network boot.

Information handling systems typically coordinate the interaction between applications running on a CPU and physical components with an operating system that also runs on the CPU. In addition, information handling systems generally have a system boot and initialization firmware architecture that provides the operating system with access to physical components, such as a Basic Input/Output System (BIOS). The BIOS is a set of firmware instructions that run on physical components generally referred to as the chipset. During initialization up of an information handling system, the BIOS coordinates a boot of the operating system from persistent storage, such as a hard disk drive, to an operational state running on the CPU and also typically stored in random access memory (RAM) interfaced with the CPU. In addition to the BIOS, other firmware instructions known as option ROMs are typically included to support operation of auxiliary subsystems. Option ROMs are autonomous pieces of firmware which control the boot and configuration of auxiliary subsystems within a platform and in some instances also serve as runtime code for some types of subsystems. For example, a video BIOS option ROM is typically loaded early in boot to coordinate operations of the video subsystem with the main BIOS and operating system so that information can be presented at a display. Other examples of option ROMS include a SCSI BIOS option ROM that makes storage devices visible to other components during boot and a network boot ROM, such as a PXE option ROM that supports boot of the information handling system from a network interface.

One difficulty with information handling systems is that malicious code executing on a physical component can compromise information stored on an information handling system and can even lead to failure of the information handling system. Although malicious code is most commonly targeted at applications and operating systems running on an information handling system, successful attacks by malicious code on an information handling system's firmware presents a high risk because firmware runs at a more privileged level than most anti-malware tools available today. In response to the threat presented by malicious software attacks on firmware, a number of secure platform initiatives have been initiated, such as NIST 800-147, which strive to protect the main platform BIOS from malicious attack. However, these efforts generally do not address security issues related to all pieces of firmware, such as option ROMs.

Some efforts are made to protect option ROMs from malicious code during updates of option ROM firmware. One way of protecting option ROMs is to write-protect the option ROM to prevent any updates to the firmware code. Another way to protect option ROMs is to allow updates only through an option ROM subsystem code which initiates an update and connects directly with an update source. A third way to protect option ROMs is to program option ROM firmware to allow an update cycle to be initiated by the host platform CPU. Having a write-protect that prevents any updates limits maintenance options for the option ROM, such as to respond to difficulties that might arise over time with the execution of firmware instructions on different types of platforms. Allowing updates managed by an external network location or a host CPU will provide option ROM maintenance but also offer attack surfaces, such as reliance on third party suppliers to provide safe updates and a secure delivery mechanism.

SUMMARY OF THE INVENTION

Therefore a need has arisen for a system and method which supports secure option ROM firmware updates.

In accordance with the present invention, a system and method are provided which substantially reduce the disadvantages and problems associated with previous methods and systems for performing option ROM firmware updates. Secure option ROM updates are managed with an option ROM updater that executes in conjunction with information handling system initialization firmware in a centralized manner.

More specifically, an information handling system is built from plural processing components that cooperate to process information. System initialization firmware, such as a BIOS, checks for an option ROM update enable bit upon system initialization and responds to detection of a bit by retrieving an option ROM update from a predetermined memory location for execution at the BIOS. The option ROM update executes an updater that writes updated option ROM firmware instructions to an auxiliary subsystem associated with the option ROM update enable bits. The option ROM updater uses a secure key to unlock a write protect of flash memory on the auxiliary subsystem that stores the option ROM so that the updated option ROM instructions can be written to the flash memory. After the updated option ROM instructions are written, the flash memory write protect is re-locked to prevent unauthorized tampering with the option ROM.

The present invention provides a number of important technical advantages. One example of an important technical advantage is that secure option ROM updates are provided with a deterministic methodology that ensures the pedigree and robustness of information handling system firmware. Centralized control of option ROM firmware updates reduces the reliance upon third parties and suppliers to deliver secure code and increases the assurance that firmware introduced for option ROM updates does not include malicious code. Option ROMs appear write-protected to any malicious code that attempts to corrupt an option ROM, however, the ability to update the option ROM remains available with an update mechanism of the BIOS that authorizes removal of the write protect. Option ROM updates initiated with an update bit at the BIOS provide flexibility to maintain information handling system auxiliary subsystems while reducing the risk of entry of malicious code at the firmware level of the information handling system.

DETAILED DESCRIPTION

Referring now toFIG. 1, a block diagram depicts a system for secure option ROM updates. An information handling system10processes information with plural components, such as a processor12that executes instructions and a memory14that stores instructions in support of operations performed on processor12. A chipset16interfaces with processor12to coordinate communication on a physical level between processor12and other components of the information handling system, such as a video subsystem18, a storage controller20and a network interface card22, each of which are auxiliary subsystems of information handling system10. Chipset16includes a variety of integrated circuits and flash memory that execute and store firmware instructions for managing physical components of information handling system10. For example, a basic input/output system (BIOS)24stored as firmware in chipset16executes to initialize information handling system to an operational state, such as upon initial power-up.

During initialization, BIOS24retrieves an operating system26from persistent memory to run on processor12, such as by retrieving the operating system from a hard disk drive28or from a network location with network interface card22. A storage controller option ROM30executing on storage controller20initializes operation of storage controller20to provide communication between BIOS24and hard disk drive28, such as with an SCSI protocol. Alternatively, PXE option ROM32executing on network interface card22initializes operation of network interface card22to provide communication between BIOS24and a network storage location having operating system26to support a PXE boot. During initialization, of information handling system10, a video subsystem option ROM34, also known as a video BIOS, executes on video subsystem18to establish communication with BIOS24and present information from BIOS24at a display36.

An option ROM update application38running over operating system26and an option ROM updater running on chipset16with BIOS24cooperate in order to update option ROMs stored in firmware of auxiliary subsystems, such as storage controller option ROM30, PXE option ROM32and video BIOS option ROM34. Operation ROM update application38retrieves option ROM updates and stores the option ROM updates in memory, such as an update capsule pre-primed on information handling system10or a defined location in memory, like a predetermined location in SMM, in RAM14or in hard disk drive28. For example, option ROM update application38periodically inquires through network42, such as the Internet, with an option ROM update network location44to identify and download option ROM updates for auxiliary subsystems of information handling system10. Once an option ROM update is retrieved and stored in memory, such as option ROM update46stored in hard disk drive28, option ROM update application38sets option ROM update enable bits48in BIOS24for detection upon the next boot of information handling system10. In one embodiment, option ROM update application38initiates a boot of information handling system10once option ROM update enable bits48are set so that the option ROM update begins with system initialization by BIOS24. In an alternative embodiment, some or all of the functions of option ROM update application38are performed through BIOS24to further enhance option ROM update security. For instance, an end user interacts with BIOS24to set option ROM update enable bits48through a system management interface50presented by BIOS24so that option ROM update enable bits48are not selectable through an application running over operating system26, which typically has a greater risk of malware attacks than BIOS24.

Once option ROM update enable bits48are set to identify an option ROM update for an auxiliary subsystem option ROM, a boot of information handling system10begins initialization of BIOS24and execution of option ROM updater40in conjunction with BIOS24. Option ROM updater40checks the option ROM update enable bits48to determine whether an option ROM update is available for execution on an auxiliary subsystem before BIOS24initializes operating system26. If an option ROM update enable bit48is set, then option ROM updater40initiates installation of the option ROM update on the auxiliary subsystem. In one embodiment, the identity of the option ROM update enable bit provides option ROM updater40with the identity of the auxiliary subsystem having an option ROM update for installation. Option ROM updater40first locates the option update from memory. In one embodiment, option ROM updater40retrieves a secure network address, such as a URL, from the option ROM stored on the auxiliary subsystem and retrieves an option ROM update from the network location. In another embodiment, option ROM updater40retrieves a memory address from the option ROM stored on the auxiliary subsystem that defines where updates are stored in memory of information handling system10, such as predefined address in hard disk drive28.

Once option ROM updater40has located the option ROM update associated with an update enable bit48set in BIOS24, option ROM updater40executes a security module52to authenticate the option ROM update so that malware is not inadvertently copied to the auxiliary subsystem with an update. For example, security module52authenticates the option ROM update with a PKI infrastructure, a secure hash delivered with the option ROM update or an inherent trust of a secure code repository confirmed by security module52. Once security module52confirms the authenticity of an option ROM update, security module52provides a key to a write-protect module54that locks and unlocks write protection of flash memory that stores the option ROM of the auxiliary subsystem subject to an option ROM update. During normal operations of information handling system10, write protect module54locks write protection at the auxiliary subsystem so that other systems cannot write to the flash memory of the auxiliary subsystem. When an update is authenticated by security module52, write protect module54receives a secure key to unlock write protection at the auxiliary subsystem and option ROM updater40copies option ROM update46from memory to the auxiliary subsystem. Once the option ROM update is complete, the hash of the option ROM is confirmed and then write protect module54locks write protection of the auxiliary subsystem.

Option ROM updater40may include distributed modules that cooperate between hardware components to install an option ROM update. In one embodiment, option ROM updater logic residing on chipset16with BIOS24initially only checks for update enable bits48to determine that an option ROM update is ready. Other logic for preparing option ROM firmware instructions and writing the firmware instructions to flash memory of an auxiliary subsystem are stored in option ROM update46and executed on either BIOS24or on the auxiliary subsystem itself. For example, logic of option ROM updater40detects an update enable bit48and, in response, retrieves option ROM update46to BIOS24. Option ROM update46includes additional logic of option ROM update40, which executes at the BIOS to write option ROM update firmware instructions to the auxiliary subsystem option ROM being updated. In alternative embodiments, option ROM updater can have logical modules disposed across other hardware and firmware components. Option ROM updater40can include standardized functions to unlock write protection of an option ROM and to execute an option ROM code update. Alternatively, each auxiliary subsystem that has an updateable option ROM provides its update code upon first enumeration at an information handling system platform, such as for storage in BIOS24for use when an option ROM update bit is set.

Referring now toFIG. 2, a flow diagram depicts a process for setting an information handling system BIOS option ROM update enable bits. The process begins at step56with initiation of an option ROM update application running over the operating system. At step58, the option ROM update application executes to determine that an option ROM update exists for an auxiliary subsystem of the information handling system. At step60, the option ROM update is retrieved and copied to a predetermined memory location, such as a defined address of a hard disk drive on the information handling system. At step62, the option ROM update application sets an option ROM update enable bit for the BIOS to read on the next initialization of the information handling system. At step64, the option ROM update application initiates a reboot of the information handling system, such as by requesting an end user to re-boot to install the new option ROM.

Referring now toFIG. 3, a flow diagram depicts a process for securely updating an option ROM. The process begins at step66with detection upon system initialization of an option ROM update enable bit set in the BIOS or other system initialization firmware. At step68, the option ROM update is loaded to the initialization firmware for execution, such as on a processor within the system chipset that supports the BIOS. At step70a determination is made of whether the option ROM update is authentic, such as by comparison with a secure hash in the option ROM update. If the option ROM update is not authentic, the process continues to step72to issue an option ROM update failure message and ends at step80. If the determination at step70is that the option ROM is authentic, the process continues to step74to unlock the write protect of the flash memory that stores the option ROM. At step76, the option ROM updater executing with the BIOS updates the option ROM firmware by writing the updated firmware in the flash memory of the auxiliary subsystem. At step78, once the option ROM update is written to the auxiliary subsystem, the firmware write protection is re-enabled to prevent unauthorized changes to the option ROM, and the process ends at step80.