10.5555/950792.951377guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedings
Article

Using Program Transformation to Secure C Programs Against Buffer Overflows

ABSTRACT

Buffer overflows are the most common source of securityvulnerabilities in C programs. This class of vulnerability,which is found in both legacy and modern software, coststhe software industry hundreds of millions of dollars peryear.The most common type of buffer overflow is the run-timestack overflow. It is common because programmersoften use stack allocated arrays. This enables the attackerto change a program's control flow by writing beyond theboundary of an array onto a return address on the run-timestack. If the arrays are repositioned to the heap at compiletime, none of these attacks succeed. Furthermore, repositioningbuffers to the heap should perturb the heap memoryenough to prevent many heap overflows as well.We have created a tool called Gemini that repositionsstack allocated arrays at compile time using TXL. Thetransformation preserves the semantics of the program witha small performance penalty. This paper discusses thesemantics-preserving transformation of stack allocated arraysto heap allocated "pointers to arrays". A program thatis amenable to a buffer overflow attack and several Linuxprograms are used as examples to demonstrate the effectivenessand overhead of our technique.

Index Terms

  1. Using Program Transformation to Secure C Programs Against Buffer Overflows

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        Guide Proceedings cover image
        WCRE '03: Proceedings of the 10th Working Conference on Reverse Engineering
        November 2003
        ISBN:0769520278

        Copyright © Copyright (c) 2003 Institute of Electrical and Electronics Engineers, Inc. All rights reserved.

        Publisher

        IEEE Computer Society

        United States

        Publication History

        • Published: 13 November 2003

        Qualifiers

        • Article
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!