Dual-Stack Solution to Defend Against Memory Corruption Attacks

CleanStack is a novel stack protection mechanism designed to combat memory corruption attacks, which have long been a significant threat to software systems.

These attacks exploit vulnerabilities in low-level languages like C/C++ to execute arbitrary code or manipulate memory operations.

CleanStack addresses these issues by introducing a dual-stack system that isolates and randomizes stack objects influenced by external inputs, thereby preventing attackers from modifying return addresses or predicting stack layouts.

Dual-Stack Solution to Defend Against Memory Corruption Attacks
Dual-Stack Solution to Defend Against Memory Corruption Attacks 4

Introduction to CleanStack

CleanStack’s approach is based on the Tainted Stack Object Separation (TSOS) theory, which involves identifying and isolating stack objects that may be tainted by external inputs.

This is crucial because attackers often exploit such vulnerabilities to launch control-flow hijacking attacks or non-control data attacks.

By separating tainted stack objects into a distinct stack, CleanStack ensures that these objects cannot interfere with the return addresses or other safe stack objects.

Additionally, CleanStack randomizes the placement of tainted stack objects within the Unclean Stack, making it difficult for attackers to predict the stack layout and exploit non-control data attacks.

Implementation and Evaluation

CleanStack is implemented within the LLVM compiler framework, allowing it to be applied to a wide range of applications.

Dual-Stack Solution to Defend Against Memory Corruption AttacksDual-Stack Solution to Defend Against Memory Corruption Attacks
Dual-Stack Solution to Defend Against Memory Corruption Attacks 5

The implementation involves static analysis to identify tainted stack objects, which are then relocated to a separate tainted stack.

The layout of this tainted stack undergoes static randomization to disrupt predictable memory layouts.

CleanStack also incorporates canary values and runtime checks to enhance security further.

The performance and security of CleanStack were evaluated using the SPEC CPU2017 benchmark suite and real-world applications like the Apache HTTP server.

The results show that CleanStack incurs a minimal execution overhead of only 1.73% and a memory overhead of 0.04%.

According to the Report, this makes CleanStack an efficient and highly compatible solution compared to existing stack protection techniques.

It effectively mitigates both control-flow hijacking attacks and non-control data attacks, including Return-Oriented Programming (ROP) and Data-Oriented Programming (DOP) attacks.

CleanStack’s dual-stack architecture and randomization techniques provide comprehensive protection against stack-based memory vulnerabilities.

Its ability to balance protection coverage, runtime overhead, and deployability makes it one of the most effective stack security solutions available today.

By addressing the limitations of current defense mechanisms, CleanStack offers a robust and efficient way to secure software systems against memory corruption attacks.

Investigate Real-World Malicious Links & Phishing Attacks With Threat Intelligence Lookup – Try for Free


Source link