IP Library Granted Patent US 10,599,419
Granted Patent B2
US 10,599,419 · App. 15/970,178 · Granted Mar 24, 2020

Secure firmware updates using virtual machines to validate firmware packages

Inventors: Anand P. Joshi (Round Rock, TX); Sumanth Vidyadhara (Bangalore, IN)
Assignee: Dell Products L.P.
G06F8/65G06F8/61G06F9/4406G06F9/45558G06F11/1433G06F2009/45562
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,599,419
App. No.
15/970,178
Granted
Mar 24, 2020
Kind
B2
Abstract

Provided herein are systems, methods, and computer program products for testing a firmware update in a secure virtual environment prior to actually installing the firmware update in a device or system. In one embodiment, a firmware update is received. The system is rebooted after receiving the firmware update, and a virtual machine monitor (VMM) is launched following the reboot. In turn, the VMM registers various exit handlers and policies, and launches a virtual machine within a unified extensible firmware interface (UEFI) stored within a reprogrammable read only memory. The process uses the VMM to launch a virtual machine, which is used to perform a test installation of the firmware update. If no violations or other errors are detected in connection with the test installation, the process reboots the system again and installs the firmware update in the regular operating environment following the reboot.

Claims (104)

1. A method comprising:

receiving a firmware update by a computer;

booting into a basic input output system (BIOS) of the computer that includes a unified extensible firmware interface (UEFI);

initiating a virtual machine in the UEFI;

allocating reserved memory for the virtual machine, wherein the reserved memory cannot access memory used by an operating system of the computer;

installing the firmware update in the virtual machine in the UEFI, wherein the virtual machine is decoupled from the operating system of the computer;

determining that the firmware update installed error-free in the virtual machine in the UEFI; and

based on determining that the firmware update installed error-free:

performing a reboot of the computer including initiating execution of the operating system of the computer; and

installing, by the operating system, the firmware update in the computer.

2. The method of claim 1 , further comprising:

prior to initiating the virtual machine, registering one or more event handler policies.

3. The method of claim 1 , determining that the firmware update installed error-free in the virtual machine comprises:

determining that installing the firmware update in the virtual machine caused no access violations in the reserved memory.

4. The method of claim 1 , further comprising:

receiving, by the computer, a second firmware update;

registering one or more event handlers;

initiating the virtual machine in the UEFI;

installing the second firmware update in the virtual machine in the UEFI;

determining that an access violation occurred in the reserved memory as a result of installing the second firmware update in the virtual machine environment; and

invoking an event handler of the one or more event handlers, wherein the event handler is associated with the access violation.

5. The method of claim 4 , further comprising:

receiving an error from the event handler;

determining, based on the error, that the error cannot be resolved by the event handler;

displaying an error message associated with the error; and

not installing the second firmware update in the computer.

6. The method of claim 1 , wherein the firmware update comprises an updated BIOS to replace the BIOS.

7. The method of claim 1 , wherein determining that the firmware update installed error-free in the virtual machine comprises:

determining that the firmware update installed in the virtual machine did not attempt to access one or more prohibited memory locations of the reserved memory.

8. A computer comprising:

a basic input output system (BIOS) comprising a unified extensible firmware interface (UEFI);

a microprocessor; and

a non-transient computer-readable storage medium, comprising computer instructions executable by the microprocessor, wherein the computer instructions are configured to perform operations comprising:

receiving a firmware update;

booting into the BIOS;

initiating a virtual machine in the UEFI, wherein the virtual machine is decoupled from an operating system of the computer;

allocating reserved memory for the virtual machine, wherein the reserved memory cannot access memory used by an operating system of the computer;

installing the firmware update in the virtual machine in the UEFI;

determining that the firmware update installed error-free in the virtual machine in the UEFI; and

based on determining that the firmware update installed error-free:

performing a reboot of the computer including initiating execution of the operating system of the computer; and

installing, by the operating system, the firmware update in the computer.

9. The computer of claim 8 , the operations further comprising:

prior to initiating the virtual machine, registering one or more event handler policies.

10. The computer of claim 8 , the operations further comprising:

installing a second firmware update in the virtual machine in the UEFI;

determining that the second firmware update attempted to access one or more prohibited memory locations in the reserved memory; and

not installing the second firmware update in the computer.

11. The computer of claim 8 , the operations further comprising:

receiving a second firmware update;

registering one or more event handlers;

initiating the virtual machine in the UEFI;

installing the second firmware update in the virtual machine in the UEFI;

determining that an access violation occurred in the virtual machine after installing the second firmware update; and

invoking an event handler of the one or more event handlers, wherein the event handler is associated with the access violation.

12. The computer of claim 11 , the operations further comprising:

receiving an error from the event handler;

determining, based on the error, that the access violation in the virtual machine cannot be resolved by the event handler;

displaying an error message associated with the error; and

not installing the second firmware update in the computer.

13. The computer of claim 8 , wherein the firmware update comprises an update to at least one of:

the BIOS;

a disk drive firmware of the computer;

a modem firmware of the computer;

a wireless communications card firmware of the computer;

a network interface controller (NIC) firmware of the computer; or

a computer graphics card firmware of the computer.

14. The computer of claim 8 , wherein determining that the firmware update installed error-free in the virtual machine comprises:

determining that the firmware update installed in the virtual machine in the UEFI did not attempt to access one or more prohibited memory of the reserved memory.

15. A computer program product, comprising a plurality of instructions stored on a non-transient computer-readable storage medium, wherein the instructions are executable by one or more processors of a computer to perform operations comprising:

receiving a firmware update;

booting into a basic input output system (BIOS) of the computer that includes a unified extensible firmware interface (UEFI);

initiating a virtual machine in the UEFI;

allocating reserved memory for the virtual machine, wherein the reserved memory cannot access memory used by an operating system of the computer;

installing the firmware update in the virtual machine in the UEFI;

determining that the firmware update installed error-free in the virtual machine in the UEFI, wherein the virtual machine is decoupled from an operating system of the computer; and

based on determining that the firmware update installed error-free:

performing a reboot of the computer including initiating execution of the operating system of the computer; and

installing, by the operating system, the firmware update in the computer.

16. The computer program product of claim 15 , the operations further comprising:

prior to initiating the virtual machine, registering one or more event handler policies.

17. The computer program product of claim 15 , wherein

installing a second firmware update in the virtual machine in the UEFI;

determining that the second firmware update installed in the virtual machine in the UEFI attempted to access one or more prohibited memory locations in the reserved memory; and

exiting a firmware installation process without installing the second firmware update in the computer.

18. The computer program product of claim 15 , the operations further comprising:

receiving a second firmware update;

registering one or more event handlers;

initiating the virtual machine in the UEFI;

installing the second firmware update in the virtual machine in the UEFI;

determining that an access violation occurred in the virtual machine as a result of installing the second firmware update in the virtual machine; and

invoking an event handler of the one or more event handlers wherein the event handler is associated with the access violation.

19. The computer program product of claim 18 , the operations further comprising:

receiving an error from the event handler;

determining, based on the error, that the error cannot be resolved by the event handler;

displaying an error message associated with the error; and

not installing the second firmware update in the computer.

20. The computer program product of claim 15 , wherein the firmware update comprises an update to at least one of:

the BIOS;

a disk drive firmware of the computer;

a modem firmware of the computer;

a wireless communications card firmware of the computer;

a network interface controller (NIC) firmware of the computer; or

a computer graphics card firmware of the computer.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2018
From: JOSHI, ANAND P.; VIDYADHARA, SUMANTH
To: DELL PRODUCTS L. P.
Reel/Frame 045731/0200 →