UEFI Variable Storage Segmentation Against Storage Overflow Attacks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional UEFI variable storage systems are vulnerable to denial-of-service attacks due to limited storage space in non-volatile systems, leading to unexpected system behavior and lack of user notification when storage is filled.
Innovation Solution
Implementing a UEFI variable storage system with separate trusted and untrusted partitions within the UEFI variable storage device, where 'trusted' variables are stored before an untrusted source point and 'untrusted' variables are stored after, ensuring availability of critical variables for initialization and preventing storage overflow.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If UEFI variables are stored in a non-volatile storage system with limited storage space, then the storage capacity is constrained, but the system can maintain simplicity in storage management
Solution Approach 1:
The patent divides the UEFI variable storage into separate trusted and untrusted partitions. The trusted partition stores critical UEFI variables required for system initialization, while the untrusted partition stores variables from less reliable sources. This segmentation prevents malicious or erroneous variables from corrupting critical system variables, thereby protecting storage capacity and maintaining reliable storage management without requiring complex validation mechanisms for every variable.
2Device complexity
If a single storage system is used for all UEFI variables, then the system structure is simple, but the system becomes vulnerable to denial-of-service attacks and storage overflow
Solution Approach 1:
The patent implements separate trusted and untrusted partitions within the UEFI variable storage system. The trusted partition is protected from being filled by untrusted variables, preventing denial-of-service attacks. The untrusted partition can accept variables from less reliable sources without risking system integrity. This segmentation maintains a relatively simple overall structure while dramatically improving system security and reliability.
Solution Approach 2:
The patent introduces a UEFI variable services engine that acts as an intermediary between variable sources and storage. This engine validates variables before storage, determines whether they originate from trusted or untrusted sources, and directs them to appropriate partitions. This intermediary layer provides security and reliability without requiring complete restructuring of the storage system.
3Productivity
If UEFI variables are stored without validation of source trustworthiness, then the storage process is fast and simple, but the system experiences unexpected behavior and denial-of-service attacks
Solution Approach 1:
The patent performs preliminary classification of variable sources as trusted or untrusted during system initialization, before actual variable storage begins. The UEFI variable services engine establishes this trust relationship in advance, creating a classification framework that enables rapid subsequent storage operations. This preliminary action maintains fast storage speeds while ensuring reliability, as the validation logic is prepared beforehand rather than executed for every individual variable.
Data Source
AI summary
A UEFI variable storage system includes a UEFI variable services subsystem coupled to UEFI variable sources, a trusted UEFI variable storage subsystem, and an untrusted UEFI variable storage subsystem. If the UEFI variable services subsystem receives a first UEFI variable during a first UEFI initialization process from a first UEFI variable source and determines that the first UEFI initialization process has not reached an untrusted UEFI variable source point, it stores the first UEFI variable in the trusted UEFI variable storage subsystem. If the UEFI variable services subsystem receives a second UEFI variable during the first UEFI initialization process from a second UEFI variable source and determines that the first UEFI initialization process has reached the untrusted UEFI variable source point, it stores the second UEFI variable in the untrusted UEFI variable storage subsystem.


