USENIX Conference Policies
Transparent Run-Time Defense Against Stack-Smashing Attacks
The exploitation of buffer overflow vulnerabilities in process stacks constitutes a significant portion of security attacks. We present two new methods to detect and handle such attacks. In contrast to previous work, the new methods work with any existing pre-compiled executable and can be used transparently per-process as well as on a system-wide basis. The first method intercepts all calls to library functions known to be vulnerable. A substitute version of the corresponding function implements the original functionality, but in a manner that ensures that any buffer overflows are contained within the current stack frame. The second method uses binary modification of the process memory to force verification of critical elements of stacks before use. We have implemented both methods on Linux as dynamically loadable libraries and shown that both libraries detect several known attacks. The performance overhead of these libraries range from negligible to 15%.
author = {Arash Baratloo and Navjot Singh and Timothy Tsai},
title = {Transparent {Run-Time} Defense Against {Stack-Smashing} Attacks},
booktitle = {2000 USENIX Annual Technical Conference (USENIX ATC 00)},
year = {2000},
address = {San Diego, CA},
url = {https://www.usenix.org/conference/2000-usenix-annual-technical-conference/transparent-run-time-defense-against-stack},
publisher = {USENIX Association},
month = jun
}