Javascript must be enabled to continue!
Call Rewinding: Efficient Backward Edge Protection
View through CrossRef
The prevalence of memory-unsafe software prompts significant efforts by the research community to mitigate memory corruption bugs. This endeavor is crucial for safeguarding critical systems against security threats. Specifically, there is a focus to protect against code-reuse attacks through enforcing control-flow integrity (CFI). This paper introduces call rewinding, a novel microarchitecture-level mechanism for protection of return addresses. It is based on a property of the calling convention that is common to major architectures such as x86, ARM and RISC-V, which states that all return instructions transfer control to a valid call site. Call rewinding consists of jumping to the instruction preceding the return target for each return instruction and checking if the instruction at this address is a call or not. On systems equipped with return address prediction, a commonly employed optimization, the security check is performed only on mispredicted return addresses. The proposed protection mechanism demonstrates negligible impact on both area and performance. We implement call rewinding on the CV64A6, a RISC-V CPU with consequent branch prediction support. Our evaluation validates the effectiveness of call rewinding, both in bare-metal and in a Linux operating system (OS) environment. It triggers no false positives in bare-metal and is functional with the OS extended with a custom exception handler. Furthermore, our findings indicate that call rewinding successfully detects unauthorized return addresses, highlighting its potential as a reliable and efficient security mechanism.
Universitatsbibliothek der Ruhr-Universitat Bochum
Title: Call Rewinding: Efficient Backward Edge Protection
Description:
The prevalence of memory-unsafe software prompts significant efforts by the research community to mitigate memory corruption bugs.
This endeavor is crucial for safeguarding critical systems against security threats.
Specifically, there is a focus to protect against code-reuse attacks through enforcing control-flow integrity (CFI).
This paper introduces call rewinding, a novel microarchitecture-level mechanism for protection of return addresses.
It is based on a property of the calling convention that is common to major architectures such as x86, ARM and RISC-V, which states that all return instructions transfer control to a valid call site.
Call rewinding consists of jumping to the instruction preceding the return target for each return instruction and checking if the instruction at this address is a call or not.
On systems equipped with return address prediction, a commonly employed optimization, the security check is performed only on mispredicted return addresses.
The proposed protection mechanism demonstrates negligible impact on both area and performance.
We implement call rewinding on the CV64A6, a RISC-V CPU with consequent branch prediction support.
Our evaluation validates the effectiveness of call rewinding, both in bare-metal and in a Linux operating system (OS) environment.
It triggers no false positives in bare-metal and is functional with the OS extended with a custom exception handler.
Furthermore, our findings indicate that call rewinding successfully detects unauthorized return addresses, highlighting its potential as a reliable and efficient security mechanism.
Related Results
Damage Investigation on the Carbon Tows during Rewinding and Braiding Processes
Damage Investigation on the Carbon Tows during Rewinding and Braiding Processes
During the manufacturing process, the fibrous materials used in composite reinforcements are subjected to many sources of damage that must be managed if the best possible quality i...
Magic graphs
Magic graphs
DE LA TESIS<br/>Si un graf G admet un etiquetament super edge magic, aleshores G es diu que és un graf super edge màgic. La tesis està principalment enfocada a l'estudi del c...
AI-driven zero-touch orchestration of edge-cloud services
AI-driven zero-touch orchestration of edge-cloud services
(English) 6G networks demand orchestration systems capable of managing thousands of distributed microservices under sub-millisecond latency constraints. Traditional centralized app...
Optimizing edge cloud deployments for video analytics
Optimizing edge cloud deployments for video analytics
(English) As our digital world and physical realities blend together, we, as users, are growing to expect real-time interaction wherever and whenever we want. Newer internet servic...
Intricacies of running a route without success in night-active bull ants (Myrmecia midas)
Intricacies of running a route without success in night-active bull ants (Myrmecia midas)
How do ants resolve conflicts between different sets of navigational cues during navigation? When two cue sets point to diametrically opposite directions, theories predict that ani...
Hitting the Rewind Button: Imagining Analogue Trauma Memories in Reverse Reduces Distressing Intrusions
Hitting the Rewind Button: Imagining Analogue Trauma Memories in Reverse Reduces Distressing Intrusions
Abstract
Background
Intrusive re-experiencing of trauma is a core symptom of posttraumatic stress disorder. Intrusive re-experiencing could potentia...
Optimization of Backward Elimination for Software Defect Prediction with Correlation Coefficient Filter Method
Optimization of Backward Elimination for Software Defect Prediction with Correlation Coefficient Filter Method
Detecting software defects is a crucial step for software development not only to reduce cost and save time, but also to mitigate more costly losses. Backward Elimination is one me...
Hitting the Rewind Button: Imagining Analogue Trauma Memories in Reverse Reduces Distressing Intrusions
Hitting the Rewind Button: Imagining Analogue Trauma Memories in Reverse Reduces Distressing Intrusions
Intrusive re-experiencing of trauma is a core symptom of posttraumatic stress disorder. Intrusive re-experiencing could potentially be reduced by ‘rewinding’, a new treatment appro...

