IoT Device Memory Address Layout Randomization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Low-power and resource-constrained IoT devices are vulnerable to attacks that exploit fixed memory addresses, as they often lack virtual-to-physical address translation capabilities, making traditional ASLR techniques impractical for these devices.
Innovation Solution
An address layout varying process is implemented, where a seed value is used to select and write software code or data to different physical memory locations, creating varied software address layouts across devices, thereby reducing the effectiveness of attacks relying on fixed address locations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional ASLR techniques are used to randomize memory addresses, then security against attacks is improved, but device complexity increases due to requiring virtual-to-physical address translation capabilities
Solution Approach 1:
The patent changes the parameter of address layout from fixed to variable by introducing randomization based on device identifiers. Instead of requiring complex virtual-to-physical address translation, the system varies the physical address parameters directly by offsetting base addresses using device-specific identifiers, achieving security without increasing device complexity
Solution Approach 2:
The patent segments the address space into multiple regions (code segment, data segment, stack segment, heap segment) and applies randomization to each segment's base address independently. This allows the system to achieve comprehensive security coverage while maintaining manageable complexity by treating each segment separately rather than requiring full virtual memory management
2Reliability
If address layout randomization is implemented at runtime, then security is improved, but use of energy increases due to additional memory management operations
Solution Approach 1:
The patent performs address layout randomization during the boot process or initial system setup rather than at runtime. The base addresses for code, data, stack, and heap segments are determined once using device identifiers and stored in configuration structures. This preliminary action eliminates the need for continuous memory management operations during runtime, significantly reducing energy consumption while maintaining security
Solution Approach 2:
The system uses device-specific identifiers (such as device IDs or hardware fingerprints) that are inherently available in the device to generate the randomization offsets. This self-service approach eliminates the need for external key distribution or complex key management infrastructure, reducing energy consumption associated with cryptographic operations while achieving the same security goal
3Ease of manufacture
If fixed software address layouts are used across all devices, then ease of manufacture is improved, but security is worsened due to vulnerability to attacks that can be reproduced across device populations
Solution Approach 1:
The patent applies different address layout configurations to different local contexts (individual devices) while maintaining the same software binary. Each device has its own local address layout determined by its device identifier, which varies the physical addresses where code and data are loaded. This allows identical software to be deployed universally while each device exhibits unique address characteristics, preventing attacks from being reproduced across the device population
Solution Approach 2:
The patent creates a universal address layout structure that can accommodate multiple device types and software configurations. The address randomization mechanism works with standard executable formats and memory management conventions, allowing the same software binary to be deployed across diverse devices without modification. The device identifier-based offset mechanism provides a universal solution that works regardless of the specific device architecture or software stack
Data Source
AI summary
A method is provided for installing or updating software on an electronic device 2 comprising processing circuitry 4 and memory access circuitry 10 to control access to at least one memory unit 6, 8 in response to physically-addressed memory access requests issued by the processing circuitry specifying physical addresses from a physical address space. The method comprises performing an address layout varying process comprising: obtaining at least one seed value; in dependence on the at least one seed value, selecting one of a plurality of software address layouts for code or data associated with the software, each software address layout corresponding to a different layout of the code or data in the physical address space; and triggering the electronic device to write the code or data associated with the software to locations of said at least one memory unit corresponding to the selected software address layout.


