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

Socpus ID

34547203977 (Scopus)

Source API URL

https://api.elsevier.com/content/abstract/scopus_id/34547203977

This document is currently not available here.

Share

COinS