IP Library Granted Patent US 11,599,641
Granted Patent B2
US 11,599,641 · App. 16/855,585 · Granted Mar 7, 2023

Firmware retrieval and analysis

Inventors: Timo Kreuzer (Schonberg, DE); Ion-Alexandru Ionescu (Seattle, WA); Aaron LeMasters (New York, NY)
Assignee: CrowdStrike, Inc.
G06F21/572G06F13/4221G06F21/44G06F2213/0024G06F2213/0026G06F2221/033
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 11,599,641
App. No.
16/855,585
Granted
Mar 7, 2023
Kind
B2
Abstract

A bus filter driver and security agent components configured to retrieve and analyze firmware images are described herein. The bus filter driver may attach to a bus device associated with a memory component and retrieve a firmware image of firmware stored on the memory component. The bus filter driver may also retrieve hardware metadata. A kernel-mode component of the security agent may then retrieve the firmware image and hardware metadata from the bus filter driver and provide the firmware image and hardware metadata to a user-mode component of the security agent for security analysis. The security agent components may then provide results of the analysis and/or the firmware image and hardware metadata to a remote security service to determine a security status for the firmware.

Claims (56)

1. A computing device comprising:

a memory component configured to store firmware;

a bus device communicatively coupled to the memory component;

a bus filter driver configured to:

attach to the bus device,

retrieve bus device metadata including a date from the bus device,

if the date is less recent than a specific date, retrieve a firmware image of the firmware from the memory component responsive to receipt of a start message by the bus device, and

create an external component library (ECL) for communication with a kernel-mode component; and

a security agent configured to:

retrieve, via the ECL, the firmware image from the bus filter driver, and

perform a security analysis of the firmware image.

2. The computing device of claim 1 , wherein the bus filter driver is further configured to acquire a bus interface and utilize the bus interface to locate the memory component.

3. The computing device of claim 1 , wherein the bus filter driver is configured to attach to the bus device conditionally based on at least one of a vendor identifier or chipset identifier associated with the memory component.

4. The computing device of claim 3 , wherein the bus filter driver is configured to retrieve at least one of the vendor identifier or chipset identifier from a registry and to extract a subset of firmware information, chipset information, or register values when a chipset of the computing device is not supported.

5. The computing device of claim 1 , wherein the security agent includes the kernel-mode component and a user-mode component, the kernel-mode component providing at least metadata associated with the firmware image, memory component, or bus device to a remote security service for analysis and the user-mode component parsing and analyzing at least the firmware image.

6. The computing device of claim 1 , wherein the bus device includes a peripheral component interconnect (PCI) bus or PCI express (PCIe) bus, and the PCI bus or PCIe bus includes a low pin count (LPC) bus or an enhanced serial peripheral interface (eSPI) bus connected to the memory component.

7. The computing device of claim 1 , wherein the bus filter driver is a plug-and-play (PnP) upper-device filter driver.

8. The computing device of claim 1 , wherein the security agent is configured to perform, based on the firmware image and hardware metadata, at least one of determining indicators of attack, determining prevalence for the firmware, determining presence of the firmware on whitelists or blacklists, or determining that the firmware is an expected firmware for hardware of the computing device.

9. The computing device of claim 1 , wherein the bus filter driver is further configured to retrieve hardware metadata from at least one of chipset tables or registers.

10. The computing device of claim 9 , wherein the hardware metadata includes at least one of processor-related register values, peripheral component interconnect (PCI) config-related register values, memory-mapped input/output (MMIO)-related register values, serial peripheral interface base address register (SPIBAR) related register values, or extensible firmware interface (EFI) variables.

11. A method performed by a computing device, the method comprising:

attaching a bus filter driver to a bus device of the computing device, the bus device communicatively coupled to a memory component of the computing device storing firmware;

retrieving bus device metadata including a date from the bus device;

if the date is less recent than a specific date, retrieving a firmware image of the firmware from the memory component in response to receiving a start message from the bus device;

creating an external component library (ECL) for communication with a kernel-mode component;

retrieving, by a security agent via the ECL, the firmware image from the bus filter driver; and

performing, by the security agent, a security analysis off the firmware image.

12. The method of claim 11 , further comprising:

acquiring, by the bus filter driver, a bus interface; and

utilizing, by the bus filter driver, the bus interface for locating the memory component.

13. The method of claim 11 , wherein attaching the bus filter driver to the bus device includes:

conditionally attaching the bus filter driver to the bus device based on at least one of a vendor identifier or chipset identifier associated with the memory component.

14. The method of claim 11 , wherein the security agent includes the kernel-mode component and a user-mode component, the kernel-mode component providing at least metadata associated with the firmware image, memory component, or bus device to a remote security service for analysis and the user-mode component parsing and analyzing at least the firmware image.

15. The method of claim 11 , further comprising:

determining, by the security agent, based on the firmware image and hardware metadata, at least one of:

indicators of attack,

prevalence for the firmware,

presence of the firmware on whitelists or blacklists, or

the firmware being an expected firmware for hardware of the computing device.

16. One or more non-transitory computer readable storage media storing thereon computer-executable instructions that, when executed by one or more processors, perform operations comprising:

conditionally attaching a bus filter driver to a bus device of a computing device based on at least one of a vendor identifier or chipset identifier associated with a memory component of the computing device, the bus device communicatively coupled to the memory component storing firmware;

retrieving bus device metadata including a date from the bus device;

if the date is less recent than a specific date, retrieving a firmware image of the firmware from the memory component in response to receiving a start message from the bus device;

creating an external component library (ECL) for communication with a kernel-mode component;

retrieving, by a security agent via the ECL, the firmware image from the bus filter driver; and

performing, by the security agent, a security analysis off the firmware image.

17. The one or more non-transitory computer readable storage media of claim 16 , wherein the operations further comprise:

acquiring, by the bus filter driver, a bus interface; and

utilizing, by the bus filter driver, the bus interface for locating the memory component.

18. The one or more non-transitory computer readable storage media of claim 16 , wherein the security agent includes the kernel-mode component and a user-mode component, the kernel-mode component providing at least metadata associated with the firmware image, memory component, or bus device to a remote security service for analysis and the user-mode component parsing and analyzing at least the firmware image.

19. The one or more non-transitory computer readable storage media of claim 16 , wherein the operations further comprise:

determining, by the security agent, based on the firmware image and hardware metadata, at least one of:

indicators of attack,

prevalence for the firmware,

presence of the firmware on whitelists or blacklists, or

the firmware being an expected firmware for hardware of the computing device.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2026
From: FIRST-CITIZENS BANK & TRUST COMPANY
To: CROWDSTRIKE HOLDINGS, INC.; CROWDSTRIKE, INC.
Reel/Frame 074202/0710 →
PATENT SECURITY AGREEMENT Recorded Jan 5, 2021
From: CROWDSTRIKE HOLDINGS, INC.; CROWDSTRIKE, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 054899/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2020
From: KREUZER, TIMO; IONESCU, ION-ALEXANDRU; LEMASTERS, AARON
To: CROWDSTRIKE, INC.
Reel/Frame 052857/0200 →
Continuity (2)
Provisional Application 62838207 · Apr 24, 2019
Related Publication 20200342110A1 · Oct 29, 2020