Dynamic Memory Layout Randomization for IoT Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
IoT devices are vulnerable to memory-related attacks, such as buffer overflow attacks, due to predictable memory layouts, which can be exploited across multiple devices with the same firmware, and it takes time to deploy fixes, leaving many devices exposed.
Innovation Solution
Implementing a method to dynamically reorder memory resources at startup or runtime, using a supervisor module and remote monitoring server to change the layout of objects within resources, generating device-specific seed values for reordering, and tracking reordered layouts to prevent attackers from guessing object locations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If the same memory layout is used across all devices with the same firmware, then device manufacturing and firmware deployment are simplified, but devices become vulnerable to scalable memory-related attacks
Solution Approach 1:
The patent applies dynamics by transitioning from a static, fixed memory layout to a dynamic, randomized memory layout. Each device randomly assigns memory addresses to firmware sections during the boot process, so that while the firmware structure remains the same, the actual memory addresses change for each device. This resolves the contradiction by maintaining manufacturing simplicity while eliminating attack vulnerability through runtime randomization.
Solution Approach 2:
The patent changes the parameter of memory address assignment from deterministic to random. Instead of assigning fixed addresses to firmware sections, the system uses random address allocation at boot time. This parameter change maintains the simplicity of firmware deployment while fundamentally altering the memory layout to prevent predictable attack patterns.
2Object-affected harmful factors
If memory layout is randomized to prevent attacks, then security against memory-related attacks is improved, but device complexity increases due to additional reordering mechanisms
Solution Approach 1:
The patent applies preliminary action by performing memory layout randomization during the boot process before the firmware executes its normal operations. The random address assignment is established in advance, and the firmware then operates with this pre-determined layout. This approach avoids the need for complex runtime reordering mechanisms while still achieving security benefits.
Solution Approach 2:
The patent introduces an intermediary mechanism in the form of a random number generator and address assignment module that mediates between the firmware structure and the physical memory layout. This intermediary layer handles the complexity of randomization centrally, allowing the rest of the system to operate with simplified memory management assumptions.
3Reliability
If fixes for memory attacks are deployed to all devices simultaneously, then consistent security updates are achieved, but devices remain exposed during the update deployment period
Solution Approach 1:
The patent applies preliminary action by implementing random memory layout assignment at boot time as a preventive measure before any attack can occur. This preliminary security mechanism is already in place when devices are manufactured and activated, so no additional exposure time is needed for security updates to take effect.
Solution Approach 2:
The patent ensures continuity of security protection by maintaining the random memory layout mechanism continuously from boot to boot. The security feature operates continuously without interruption, eliminating gaps in protection that would occur during update deployment periods.
Data Source
AI summary
An apparatus and methods are provided to defending device against attacks. When it is determined that a device is under attack, a determination is made as to whether a layout of objects within said at least one resource at said device is protecting said device against said attack. The determination is then transferred to a remote server together with a layout of the resource at the device. When it is determined that the layout of objects within the at least one resource at the device is not protecting the device against the attack, then the layout of the at least one resource is changed. Either the remote server or the device may determine whether to change the layout in response to the attack.


