Enhancing Protection Against Code Reuse Attacks on IoT Devices by Randomizing Function Addresses
Most Internet of Things (IoT) devices currently in use are vulnerable to code reuse attacks, as manufacturers typically deploy the same firmware across all devices. This uniformity enables attackers to craft a single exploit code that can compromise multiple devices. To mitigate this risk, we propose a firmware diversification approach that creates multiple executable files with varying software compositions. Our approach introduces two complementary techniques: Function Address Reordering (FAR), which randomizes the order of functions within object files during compilation, and Object Address Reordering (OAR), which permutes the linking order of object files in the final executable. These techniques collectively diversify firmware instances without altering runtime behavior, thereby making code reuse attacks significantly more difficult. By deploying firmware with diverse executable files, we enhance security without altering device behavior. We then evaluate the effectiveness and limitations of the proposed method when integrated into actual IoT firmware, assessing its resilience to code reuse attacks, impact on runtime behavior, and compilation overhead. Experimental results demonstrate that FAR and OAR substantially reduce the success rate of return-oriented programming attacks while incurring minimal performance overhead. This study offers a scalable, hardware-independent defense against code reuse attacks that increases resilience without significant performance overhead, rendering it practical for widespread adoption in various IoT applications.
Authors
- Toshihiro Yamauchi (ORCID: https://orcid.org/0000-0001-6226-5715)
- Satoru Kobayashi (ORCID: https://orcid.org/0000-0003-1017-0938)
- Hideo Taniguchi
- Karthika Saji -
Institutions
- Okayama University (JP)
Publication Details
- Journal
- IEEE Access
- Published
- 2025-01-01
- DOI
- https://doi.org/10.1109/access.2025.3626065
- Primary Topic
- Security and Verification in Computing
- Type
- article
- Field-Weighted Citation Impact
- 0.00