Randomizing Firmware Memory Loading for SSD Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processor-based devices, such as solid-state drives, are vulnerable to security breaches as attackers can exploit predictable firmware and control data loading locations, allowing for potential malware insertion and side-channel information extraction.

Innovation Solution

The implementation of a boot loader that randomly assigns memory locations for firmware and control data during initialization, using a local random number generator to reorder and intersperse these elements, along with the generation of translation tables and modification of instruction flows to obscure their placement, thereby enhancing security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If firmware and control data are loaded to predictable memory locations, then device operation is simplified and efficient, but security is compromised as attackers can exploit these predictable locations for malware insertion and side-channel attacks

Engineering Contradiction:
ImprovesecurityVSAvoidmemory loading mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies dynamics by making the memory loading mechanism variable and adaptive. Instead of using fixed, predictable memory locations, the system dynamically randomizes the loading locations of firmware and control data. The boot loader generates random numbers to determine variable memory addresses, creating a dynamic loading pattern that changes with each boot sequence. This dynamic approach prevents attackers from exploiting predictable locations while maintaining operational efficiency through automated randomization.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces a translation table as an intermediary mechanism between the firmware instructions and the randomized memory locations. The translation table maps logical firmware addresses to actual physical memory locations, allowing the system to maintain a simplified firmware structure while implementing randomized loading. This intermediary layer abstracts the complexity of randomization from the firmware itself, enabling security enhancement without fundamentally altering the firmware execution model.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a translation table is generated to locate program instructions in random sequence, then security is enhanced by obscuring instruction locations, but device complexity increases due to additional data structures and processing

Engineering Contradiction:
ImprovesecurityVSAvoidtranslation table mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by generating the translation table during the boot loading process before firmware execution begins. The boot loader creates the translation table that maps firmware instructions to randomized memory locations as part of the initialization sequence. This preliminary preparation allows the firmware to execute efficiently without needing to dynamically generate translation tables during runtime, reducing the operational complexity while maintaining security through the pre-established randomization mapping.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If instruction lines are modified to reflect new relative locations, then no translation table is required and complexity is reduced, but the firmware must be rewritten for each randomization which may affect compatibility

Engineering Contradiction:
Improvememory loading mechanismVSAvoidfirmware compatibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by performing the randomization and translation table generation during the boot loading phase before firmware execution. This allows the firmware to maintain its original, unmodified structure while still benefiting from randomized memory loading. The translation table is prepared in advance to handle the randomization, eliminating the need to rewrite firmware for each randomization event and thus preserving compatibility across different boot scenarios.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11347860B2Randomizing firmware loaded to a processor memory
Publication Date: 2022.05.31 SEAGATE TECH LLC
  • US11347860B2 patent drawing
  • US11347860B2 patent drawing
  • US11347860B2 patent drawing

AI summary

Apparatus and method for protecting firmware and other types of control data used in a processor-based device, such as but not limited to a solid-state drive (SSD). In some embodiments, the firmware is stored in a firmware store as a plurality of program instructions in a first sequence. The program instructions are loaded to a local memory in a different, second sequence. In some cases, a random number is generated and the second sequence is selected using the random number. A translation table may be generated and used by a programmable processor to locate the various program instructions in the second sequence. In other cases, instructions with calls and other references to other instruction lines are modified based on the order in the local memory. Other forms of control data may also be generated and stored to the local memory in a random order and interspersed with the firmware.