Title
Improving Software Security Via Runtime Instruction-Level Taint Checking
Keywords
Buffer overflow; Format string; Hardware tagging
Abstract
Current taint checking architectures monitor tainted data usage mainly with control transfer instructions. An alarm is raised once the program counter becomes tainted. However, such architectures are not effective against non-control data attacks. In this paper we present a generic instruction-level runtime taint checking architecture for handling non-control data attacks. Under our architecture, instructions are classified as either Taintless-Instructions or Tainted-Instructions prior to program execution. An instruction is called a Tainted-Instruction if it is supposed to deal with tainted data. Otherwise it is called a Taintless-Instruction. A security alert is raised whenever a Taintless-Instruction encounters tainted data at runtime. The proposed architecture is implemented on the SimpleScalar simulator. The preliminary results from experiments on SPEC CPU 2000 benchmarks show that there are a significant amount of Taintless-Instructions. We also demonstrate effective usages of our architecture to detect buffer overflow and format string attacks. Copyright 2006 ACM.
Publication Date
12-1-2006
Publication Title
ASID'06: 1st Workshop on Architectural and System Support for Improving Software Dependability
Number of Pages
18-24
Document Type
Article; Proceedings Paper
Personal Identifier
scopus
DOI Link
https://doi.org/10.1145/1181309.1181313
Copyright Status
Unknown
Socpus ID
34547203977 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/34547203977
STARS Citation
Kong, Jingfei; Zou, Cliff C.; and Zhou, Huiyang, "Improving Software Security Via Runtime Instruction-Level Taint Checking" (2006). Scopus Export 2000s. 7708.
https://stars.library.ucf.edu/scopus2000/7708