IoT Device Memory Address Layout Randomization

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImprovesecurityVSAvoidaddress translation capability
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #35Parameter changes

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

Inventive Principle:
Principle #1Segmentation

2Reliability

If address layout randomization is implemented at runtime, then security is improved, but use of energy increases due to additional memory management operations

Engineering Contradiction:
ImprovesecurityVSAvoidenergy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improvesoftware deploymentVSAvoidsecurity
Core Design Contradiction:
Ease of manufactureVSReliability

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

Inventive Principle:
Principle #3Local quality

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

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10789173B2Installing or updating software using address layout varying process
Publication Date: 2020.09.29 QUALCOMM TECHNOLOGIES INC
  • US10789173B2 patent drawing
  • US10789173B2 patent drawing
  • US10789173B2 patent drawing

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.