Application Code Randomization for ROP Attack Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Vulnerabilities in third-party software, particularly through return-oriented programming (ROP) attacks, pose a significant security risk as they can be exploited to execute malicious code on user devices, and existing solutions are either computationally intensive or ineffective in environments like iOS and Android where digital signatures are required for application execution.
Innovation Solution
Randomizing portions of code in applications to generate unique, randomized versions while maintaining digital signatures that attest to the integrity of the original application, thereby preventing monoculture and making ROP attacks costly and less effective, as each user receives a distinct version of the application.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If code randomization is applied to prevent ROP attacks, then security against ROP attacks is improved, but computational complexity and processing overhead increase
Solution Approach 1:
The system performs code randomization in advance during the application distribution phase, generating randomized versions before they reach user devices. This preliminary action ensures security is built-in without requiring complex runtime computations on the user device, thus improving security while managing computational complexity.
Solution Approach 2:
The patent introduces a code randomization service as an intermediary between the application developer and the user device. This intermediary handles the complex randomization process, generating secure randomized versions of application code without requiring the user device to perform complex computations, thereby resolving the contradiction between security improvement and computational complexity.
2Reliability
If code randomization is applied to create unique application versions, then security against ROP attacks is improved, but verification and execution complexity increase
Solution Approach 1:
The system creates randomized copies of the original application code, where each copy is a valid but unique version. These copies maintain functional equivalence while having different code structures that prevent ROP attacks. The copying approach allows verification through digital signatures without requiring complex analysis of each randomized version.
Solution Approach 2:
The patent changes parameters of the code (such as instruction ordering, register allocation, and memory layout) while maintaining functional behavior. These parameter changes create unique application versions that are resistant to ROP attacks, while the changes are designed to be verifiable through existing digital signature mechanisms, thus managing verification complexity.
3Reliability
If digital signatures are used to verify application integrity, then trust in applications is improved, but vulnerability to ROP attacks persists
Solution Approach 1:
The patent segments the application code into multiple sections and randomizes their arrangement while maintaining digital signatures for each segment. This segmentation approach allows the system to verify integrity through signatures while simultaneously preventing ROP attacks by disrupting the fixed code structure that ROP exploits.
Solution Approach 2:
The system introduces asymmetry by creating randomized versions of application code where the structure varies but the functional behavior remains consistent. This asymmetry in code structure prevents ROP attacks that rely on predictable code patterns, while digital signatures ensure the asymmetric versions are still trusted and verified.
4Reliability
If existing ROP prevention solutions are implemented, then security against ROP attacks is improved, but they are either computationally intensive or ineffective in signed application environments
Solution Approach 1:
The patent performs ROP prevention through code randomization in advance during application distribution, rather than implementing computationally intensive runtime prevention mechanisms. This preliminary action ensures security is established before execution, allowing efficient runtime execution without compromising security.
Solution Approach 2:
The system creates pre-randomized copies of application code that are distributed to users. These copies are designed to be resistant to ROP attacks while maintaining execution efficiency, avoiding the need for computationally intensive runtime prevention measures that would degrade productivity.
Data Source
AI summary
Portions of code in an original application are randomized to generate a randomized version of the original application, wherein the randomizing does not modify expected behavior of the original application. Digital signature(s) are generated that attest to integrity of the randomized version. The digital signature(s) and either the original application or the randomized version are sent to a user device for execution or denial of execution of the randomized version based on the digital signature(s). At the user device, the randomized version is created if not received. The randomized version of the application is verified by the user device using the digital signature(s). The randomized version is executed by the user device in response to the digital signature(s) being verified or not executing the randomized version in response to the digital signature(s) not being verified.


