skip to main content
10.1145/2076732.2076739acmotherconferencesArticle/Chapter ViewAbstractPublication PagesacsacConference Proceedingsconference-collections
research-article

RIPE: runtime intrusion prevention evaluator

Published:05 December 2011Publication History

ABSTRACT

Despite the plethora of research done in code injection countermeasures, buffer overflows still plague modern software. In 2003, Wilander and Kamkar published a comparative evaluation on runtime buffer overflow prevention technologies using a testbed of 20 attack forms and demonstrated that the best prevention tool missed 50% of the attack forms. Since then, many new prevention tools have been presented using that testbed to show that they performed better, not missing any of the attack forms. At the same time though, there have been major developments in the ways of buffer overflow exploitation.

In this paper we present RIPE, an extension of Wilander's and Kamkar's testbed which covers 850 attack forms. The main purpose of RIPE is to provide a standard way of testing the coverage of a defense mechanism against buffer overflows. In order to test RIPE we use it to empirically evaluate some of the newer prevention techniques. Our results show that the most popular, publicly available countermeasures cannot prevent all of RIPE's buffer overflow attack forms. ProPolice misses 60%, LibsafePlus+TIED misses 23%, CRED misses 21%, and Ubuntu 9.10 with nonexecutable memory and stack protection misses 11%.

References

  1. Akritidis, P., Markatos, E., Polychronakis, M., and Anagnostakis, K. Stride: Polymorphic sled detection through instruction sequence analysis. In Security and Privacy in the Age of Ubiquitous Computing, R. Sasaki, S. Qing, E. Okamoto, and H. Yoshiura, Eds., vol. 181 of IFIP Advances in Information and Communication Technology. Springer Boston, 2005, pp. 375--391.Google ScholarGoogle Scholar
  2. Avijit, K., Gupta, P., and Gupta, D. Tied, libsafeplus: Tools for runtime buffer overflow protection. In Proceedings of The 13th USENIX Security Symposium (San Diego, USA, August 2004), pp. 45--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Avijit, K., Gupta, P., and Gupta, D. Binary rewriting and call interception for efficient runtime protection against buffer overflows: Research articles. Softw. Pract. Exper. 36 (July 2006), 971--998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Baratloo, A., Singh, N., and Tsai, T. Libsafe: Protecting critical elements of stacks. White Paper http://www.research.avayalabs.com/project/libsafe/, December 1999.Google ScholarGoogle Scholar
  5. Baratloo, A., Singh, N., and Tsai, T. Transparent run-time defense against stack smashing attacks. In Proceedings of the 2000 USENIX Technical Conference (San Diego, California, USA, June 2000). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Berger, E. D., and Zorn, B. G. Diehard: probabilistic memory safety for unsafe languages. In Proceedings of the 2006 conference on Programming language design and implementation (Ottawa, ON, 2006), ACM Press, pp. 158--168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bhatkar, S., and Sekar, R. Data space randomization. In Proceedings of the 5th international conference on Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA '08) (July 2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Blazakis, D. Interpreter Exploitation: Pointer Inference and JIT Spraying. In BlackHat DC (2010).Google ScholarGoogle Scholar
  9. Bray, B. Compiler security checks in depth. http://msdn.microsoft.com/en-us/library/aa290051(v=vs.71).aspx, February 2002.Google ScholarGoogle Scholar
  10. Bulba, and Kil3r. Bypassing StackGuard and StackShield. Phrack Magazine Volume 10, Issue 56 http://www.phrack.org/phrack/56/p56-0x05, May 2000.Google ScholarGoogle Scholar
  11. Castro, M. Securing software by enforcing data-flow integrity. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (2006), pp. 147--160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Chen, S., Xu, J., Sezer, E. C., Gauriar, P., and Iyer, R. K. Non-control-data attacks are realistic threats. In 14th USENIX Security Symposium (2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. cker Chiueh, T., and Hsu, F.-H. RAD: A compile-time solution to buffer overflow attacks. In Proceedings of the 21th International Conference on Distributed Computing Systems (ICDCS) (Phoenix, Arizona, USA, April 2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Clause, J., Li, W., and Orso, R. Dytan: A generic dynamic taint analysis framework. In Proceedings of the International Symposium on Software Testing and Analysis (2007), pp. 196--206. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Costa, M., Crowcroft, J., Castro, M., and Rowstron, A. Can we contain internet worms? In Proceedings of Third Workshop on Hot Topics in Networks, HotNets-III (San Diego, CA USA, November 2004).Google ScholarGoogle Scholar
  16. Costa, M., Crowcroft, J., Castro, M., Rowstron, A., Zhou, L., Zhang, L., and Barham, P. Vigilante: End-to-end containment of internet worms. In Proceedings of the Symposium on Systems and Operating Systems Principles (SOSP) (2005), pp. 133--147. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Cowan, C., Beattie, S., Day, R. F., Pu, C., Wagle, P., and Walthinsen, E. Protecting systems from stack smashing attacks with StackGuard. Linux Expo http://www.cse.ogi.edu/~crispin/, May 1999.Google ScholarGoogle Scholar
  18. Cowan, C., Pu, C., Maier, D., Walpole, J., Bakke, P., Beattie, S., Grier, A., Wagle, P., Zhang, Q., and Hinton, H. StackGuard: Automatic adaptive detection and prevention of buffer-overflow attacks. In Proceedings of the 7th USENIX Security Conference (San Antonio, Texas, January 1998), pp. 63--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Designer, S. Linux kernel patch from the openwall project. http://www.openwall.com/linux/README.Google ScholarGoogle Scholar
  20. Durden, T. Bypassing pax aslr protection. http://www.phrack.com/issues.html?issue=59&id=9, July 2002.Google ScholarGoogle Scholar
  21. Etoh, H. GCC extension for protecting applications from stack-smashing attacks. http://www.trl.ibm.com/projects/security/ssp/, June 2000.Google ScholarGoogle Scholar
  22. Gajdos, P., and Kornacker, C. Cve-2009-4035 xpdf: buffer overflow in fofitype1. https://bugzilla.redhat.com/show_bug.cgi?id=541614, December 2009.Google ScholarGoogle Scholar
  23. grsecurity. Pax. http://pax.grsecurity.net/.Google ScholarGoogle Scholar
  24. Hassell, R., and Permeh, R. Microsoft internet information services remote buffer overflow. http://www.eeye.com/Resources/Security-Center/Research/Security-Advisories/AD20010618, 6 2001.Google ScholarGoogle Scholar
  25. Howard, M. Evils of strncat and strncpy - answers. http://blogs.msdn.com/b/michael_howard/archive/2004/12/10/279639.aspx, December 2004.Google ScholarGoogle Scholar
  26. Jones, R., and Kelly, P. Backwards-compatible bounds checking for arrays and pointers in C programs. In Proceedings of the Third International Workshop on Automatic Debugging AADEBUG'97 (1997).Google ScholarGoogle Scholar
  27. Kc, G. S., Keromytis, A. D., and Prevelakis, V. Countering code-injection attacks with instruction-set randomization. In Proceedings of The 10th ACM Conference on Computer and Communications Security (Washington D. C., USA, 2003), pp. 272--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Moore, D., Paxson, V., Savage, S., Shannon, C., Staniford, S., and Weaver, N. Inside the slammer worm. IEEE Security and Privacy 1, 4 (2003), 33--39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Moore, D., Shannon, C., and claffy, k. Code-red: a case study on the spread and victims of an internet worm. In 2nd ACM Workshop on Internet measurment (2002). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Nebenzahl, D., and Wool, A. Install-time vaccination of windows executables to defend against stacksmashing attacks. In Proceedings of The 19th IFIP International Information Security Conference (2004).Google ScholarGoogle Scholar
  31. Novark, G., and Berger, E. D. Dieharder: securing the heap. In Proceedings of the 17th ACM conference on Computer and communications security (New York, NY, USA, 2010), CCS '10, ACM, pp. 573--584. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Pincus, J., and Baker, B. Beyond stack smashing: Recent advances in exploiting buffer overruns. IEEE Security and Privacy 2, 4 (2004), 20--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Project, T. U. Ubuntu 9.10 karmic. http://releases.ubuntu.com/karmic/.Google ScholarGoogle Scholar
  34. Project, T. U. Ubuntu security feature matrix. https://wiki.ubuntu.com/Security/Features.Google ScholarGoogle Scholar
  35. Qin, F., Wang, C., Li, Z., seop Kim, H., Zhou, Y., and Wu, Y. Lift: A low-overhead practical information flow tracking system for detecting security attacks. Microarchitecture, IEEE/ACM International Symposium on 0 (2006), 135--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Robertson, W., Kruegel, C., Mutz, D., and Valeur, F. Run-time detection of heap-based overflows. In Proceedings of The 17th Large Installation Systems Administration Conference (San Diego, USA, October 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Ruwase, O., and Lam, M. S. A practical dynamic buffer overflow detector. In Proceedings of The 11th Annual Network and Distributed System Security Symposium (San Diego, USA, February 2004).Google ScholarGoogle Scholar
  38. Shacham, H. The geometry of innocent flesh on the bone: Return-into-libc without function calls (on the x86). In Proceedings of CCS 2007 (Oct. 2007), S. De Capitani di Vimercati and P. Syverson, Eds., ACM Press, pp. 552--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Shacham, H., Page, M., Pfaff, B., Goh, E.-J., Modadugu, N., and Boneh, D. On the effectiveness of address-space randomization. In Proceedings of the 11th ACM conference on Computer and communications security, CCS '04 (2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Sidiroglou, S., and Keromytis, A. D. Countering network worms through automatic patch generation. Security & Privacy, IEEE 3, 6 (November--December 2005), 41--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Simon, I. A comparative analysis of methods of defense against buffer overflow attacks. http://www.mcs.csuhayward.edu/~simon/security/boflo.html, January 2001.Google ScholarGoogle Scholar
  42. Smirnov, A., and cker Chiueh, T. Dira: Automatic detection, identification, and repair of control-hijacking attacks. In Proceedings of The 12th Annual Network and Distributed System Security Symposium (2005).Google ScholarGoogle Scholar
  43. Spafford, E. H., and Spafford, E. H. The internet worm program: An analysis. Computer Communication Review 19 (1988). Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. SPEC - Standard Performance Evaluation Corporation. http://www.spec.org/.Google ScholarGoogle Scholar
  45. Strackx, R., Younan, Y., Philippaerts, P., Piessens, F., Lachmund, S., and Walter, T. Breaking the memory secrecy assumption. In 2nd European Workshop on System Security (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Tuck, N., Calder, B., and Varghese, G. Hardware and binary modification support for code pointer protection from buffer overflow. In Proceedings of the 37th Intl Symposium on Microarchitecture, MICRO 04 (2004), pp. 209--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. US-CERT. Vulnerability notes database. http://www.kb.cert.org/vuls.Google ScholarGoogle Scholar
  48. Van Acker, S., Nikiforakis, N., Philippaerts, P., Younan, Y., and Piessens, F. Valueguard: Protection of native applications against data-only buffer overflows. In Proceedings of the Sixth International Conference on Information Systems Security (ICISS) (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. van de Ven, A., and Molnar, I. Execshield. http://people.redhat.com/mingo/exec-shield/docs/WHP0006US_Execshield.pdf.Google ScholarGoogle Scholar
  50. Vendicator. Stack Shield technical info file v0.7. http://www.angelfire.com/sk/stackshield/, January 2001.Google ScholarGoogle Scholar
  51. Viking, P. Comparison of dynamic buffer overflow protection tools. Master's thesis, Linkopings universitet, February 2006.Google ScholarGoogle Scholar
  52. Wikipedia. Wikipedia, nx bit. http://en.wikipedia.org/wiki/NX_bit.Google ScholarGoogle Scholar
  53. Wilander, J., and Kamkar, M. A comparative study of publicly available tools for dynamic buffer overflow prevention. In Proceedings of the 10th Network & Distributed System Security Symposium (San Diego, California, February 2003).Google ScholarGoogle Scholar
  54. Zhivich, M., Leek, T., and Lippmann, R. Dynamic buffer overflow detection. Workshop on the Evaluation of Software Defect Detection Tools, co-located with PLDI 2005 http://ewww.cs.umd.edu/~pugh/BugWorkshop05/, June 2005.Google ScholarGoogle Scholar

Index Terms

  1. RIPE: runtime intrusion prevention evaluator

        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 Other conferences
          ACSAC '11: Proceedings of the 27th Annual Computer Security Applications Conference
          December 2011
          432 pages
          ISBN:9781450306720
          DOI:10.1145/2076732

          Copyright © 2011 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: 5 December 2011

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate104of497submissions,21%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader