skip to main content
10.1145/1024393.1024404acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article

Secure program execution via dynamic information flow tracking

Authors Info & Claims
Published:07 October 2004Publication History

ABSTRACT

We present a simple architectural mechanism called dynamic information flow tracking that can significantly improve the security of computing systems with negligible performance overhead. Dynamic information flow tracking protects programs against malicious software attacks by identifying spurious information flows from untrusted I/O and restricting the usage of the spurious information.Every security attack to take control of a program needs to transfer the program's control to malevolent code. In our approach, the operating system identifies a set of input channels as spurious, and the processor tracks all information flows from those inputs. A broad range of attacks are effectively defeated by checking the use of the spurious values as instructions and pointers.Our protection is transparent to users or application programmers; the executables can be used without any modification. Also, our scheme only incurs, on average, a memory overhead of 1.4% and a performance overhead of 1.1%.

References

  1. A. Baratloo, T. Tsai, and N. Singh. Transparent run-time defense against stack smashing attacks. In Proceedings of the USENIX Annual Technical Conference, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Burger and T. M. Austin. The SimpleScalar Tool Set, Version 2.0. Technical report, University of Wisconsin-Madison Computer Science Department, 1997.]]Google ScholarGoogle Scholar
  3. C. Cowan, M. Barringer, S. Beattie, and G. Kroah-Hartman. FormatGuard: Automatic protection from printf format string vulnerabilities, 2001. In 10th USENIX Security Symposium, Washington, D.C., August 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Cowan, S. Beattie, J. Johansen, and P. Wagle. PointGuard: Protecting pointers from buffer overflow vulnerabilities. In Proceedings of the 12th USENIX Security Symposium, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Cowan, C. Pu, D. Maier, J. Walpole, P. Bakke, S. Beattie, A. Grier, P. Wagle, Q. Zhang, and H. Hinton. StackGuard: Automatic adaptive detection and prevention of buffer-overflow attacks. In Proc. 7th USENIX Security Symposium, pages 63--78, San Antonio, Texas, Jan. 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Designer. Non-executable user stack. http://www.openwall.com/linux/.]]Google ScholarGoogle Scholar
  7. V. Ganapathy, S. Jha, D. Chandler, D. Melski, and D. Vitek. Buffer overrun detection using linear programming and static analysis. In Proceedings of the 10th ACM Conference on Computer and Communications Security, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. L. Henning. SPEC CPU2000: Measuring CPU performance in the new millennium. IEEE Computer, July 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Jim, G. Morrisett, D. Grossman, M. Hicks, J. Cheney, and Y. Wang. Cyclone: A safe dialect of c. In Proceedings of the USENIX Annual Technical Conference, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Jones and P. Kelly. Backwards-compatible bounds checking for arrays and pointers in C programs. In Proceedings of the 3rd International Workshop on Automatic Debugging, 1997.]]Google ScholarGoogle Scholar
  11. V. Kiriansky, D. Bruening, and S. Amarasinghe. Secure execution via program shepherding. In Proc. 11th USENIX Security Symposium, San Francisco, California, Aug. 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. K. Lawton, B. Denney, N. D. Guarneri, V. Ruppert, and C. Bothamy. Bochs user manual. http://bochs.sourceforge.net/.]]Google ScholarGoogle Scholar
  13. R. B. Lee, D. K. Karig, J. P. McGregor, and Z. Shi. Enlisting hardware architecture to thwart malicious code injection. In Proceedings of the 2003 International Conference on Security in Pervasive Computing, 2003.]]Google ScholarGoogle Scholar
  14. G. C. Necula, S. McPeak, and W. Weimer. CCured: Type-safe retrofitting of legacy code. In Proceedings of the $29^th$ ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Newsham. Format string attacks. Guardent, Inc., September 2000. http://www.securityfocus.com/guest/3342.]]Google ScholarGoogle Scholar
  16. A. One. Smashing the stack for fun and profit. Phrack, 7(49), Nov. 1996.]]Google ScholarGoogle Scholar
  17. PaX Team. Non executable data pages. http://pageexec.virtualave.net/pageexec.txt.]]Google ScholarGoogle Scholar
  18. O. Ruwase and M. S. Lam. A practical dynamic buffer overflow detector. In Proceedings of the 11th Annual Network and Distributed System Security Symposium, 2004.]]Google ScholarGoogle Scholar
  19. H. J. Saal and I. Gat. A hardware architecture for controlling information flow. In Proceedings of the 5th Annual Symposium on Computer Architecture, 1978.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Scut. Exploiting format string vulnerabilities. TESO Security Group, September 2001. http://www.team-teso.net/articles/formatstring.]]Google ScholarGoogle Scholar
  21. U. Shankar, K. Talwar, J. S. Foster, and D. Wagner. Automated detection of format-string vulnerabilities using type qualifiers. In Proceedings of the 10th USENIX Security Symposium, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Shivakumar and N. J. Jouppi. CACTI 3.0: An integrated cache timing, power, and area model. Technical report, WRL Research Report, Feb. 2001.]]Google ScholarGoogle Scholar
  23. Vendicator. Stackshield: A "stack smashing" technique protection tool for linux. http://www.angelfire.com/sk/stackshield/.]]Google ScholarGoogle Scholar
  24. J. Wilander and M. Kamkar. A comparison of publicly available tools for dynamic buffer overflow prevention. In Proceedings of the 10th Annual Network and Distributed System Security Symposium, 2003.]]Google ScholarGoogle Scholar
  25. E. Witchel, J. Cates, and K. Asanovic. Mondrian memory protection. In Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 304--316, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Xu, Z. Kalbarczjk, S. Patel, and R. K. Iyer. Architecture support for defending against buffer overflow attacks. In Proceedings of the 2nd Workshop on Evaluating and Architecting System dependability (EASY), 2002.]]Google ScholarGoogle Scholar

Index Terms

  1. Secure program execution via dynamic information flow tracking

      Recommendations

      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

        cover image ACM Conferences
        ASPLOS XI: Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
        October 2004
        296 pages
        ISBN:1581138040
        DOI:10.1145/1024393
        • cover image ACM SIGARCH Computer Architecture News
          ACM SIGARCH Computer Architecture News  Volume 32, Issue 5
          ASPLOS 2004
          December 2004
          283 pages
          ISSN:0163-5964
          DOI:10.1145/1037947
          Issue’s Table of Contents
        • cover image ACM SIGOPS Operating Systems Review
          ACM SIGOPS Operating Systems Review  Volume 38, Issue 5
          ASPLOS '04
          December 2004
          283 pages
          ISSN:0163-5980
          DOI:10.1145/1037949
          Issue’s Table of Contents
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 39, Issue 11
          ASPLOS '04
          November 2004
          283 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1037187
          Issue’s Table of Contents

        Copyright © 2004 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 7 October 2004

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate535of2,713submissions,20%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader