Binary rewriting and call interception for efficient runtime protection against buffer overflows: Research Articles

  • Authors:
  • Kumar Avijit;Prateek Gupta;Deepak Gupta

  • Affiliations:
  • Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, U.S.A.;Department of Computer Sciences, University of Texas, Austin, U.S.A.;Department of Computer Science and Engineering, Indian Institute of Technology, Kanpur 208016 UP, India

  • Venue:
  • Software—Practice & Experience
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Buffer overflow vulnerabilities are one of the most commonly and widely exploited security vulnerabilities in programs. Most existing solutions for avoiding buffer overflows are either inadequate, inefficient or incompatible with existing code. In this paper, we present a novel approach for transparent and efficient runtime protection against buffer overflows. The approach is implemented by two tools: Type Information Extractor and Depositor (TIED) and LibsafePlus. TIED is first used on a binary executable or shared library file to extract type information from the debugging information inserted in the file by the compiler and reinsert it in the file as a data structure available at runtime. LibsafePlus is a shared library that is preloaded when the program is run. LibsafePlus intercepts unsafe C library calls such as strcpy and uses the type information made available by TIED at runtime to determine whether it would be ‘safe’ to carry out the operation. With our simple design we are able to protect most applications with a performance overhead of less than 10%. Copyright © 2006 John Wiley & Sons, Ltd.