UPDF AI

A Practical Approach for Adaptive Data Structure Layout Randomization

Ping Chen,Jun Xu,3 Authors,Peng Liu

2015 · DOI: 10.1007/978-3-319-24174-6_4
European Symposium on Research in Computer Security · 40 Citations

TLDR

This work presents a system, called SALADS, that automatically translates a program to a DSSR Data Structure Self-Randomizing program, which dynamically randomizes the layout of each security-sensitive data structure by itself autonomously at runtime.

Abstract

Attackers often corrupt data structures to compromise software systems. As a countermeasure, data structure layout randomization has been proposed. Unfortunately, existing techniques require manual designation of randomize-able data structures without guaranteeing the correctness and keep the layout unchanged at runtime. We present a system, called SALADS, that automatically translates a program to a DSSR Data Structure Self-Randomizing program. At runtime, a DSSR program dynamically randomizes the layout of each security-sensitive data structure by itself autonomously. DSSR programs regularly re-randomize a data structure when it has been accessed several times after last randomization. More importantly, DSSR programs automatically determine the randomizability of instances and randomize each instance independently. We have implemented SALADS based on gcc-4.5.0 and generated DSSR user-level applications, OS kernels, and hypervisors. Our experiments show that the DSSR programs can defeat a wide range of attacks with reasonable performance overhead.