skip to main content
research-article

On Protection by Layout Randomization

Published:01 July 2012Publication History
Skip Abstract Section

Abstract

Layout randomization is a powerful, popular technique for software protection. We present it and study it in programming-language terms. More specifically, we consider layout randomization as part of an implementation for a high-level programming language; the implementation translates this language to a lower-level language in which memory addresses are numbers. We analyze this implementation, by relating low-level attacks against the implementation to contexts in the high-level programming language, and by establishing full abstraction results.

Skip Supplemental Material Section

Supplemental Material

References

  1. Abadi, M. 1998. Protection in programming-language translations. In Proceedings of the 25th International Colloquium on Automata, Languages and Programming. Lecture Notes in Computer Science, vol. 1443. Springer, 868--883. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Abadi, M. 1999. Secrecy by typing in security protocols. J. ACM 46, 5, 749--786. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Abadi, M. and Rogaway, P. 2002. Reconciling two views of cryptography (The computational soundness of formal encryption). J. Crypt. 15, 2, 103--127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Abadi, M., Budiu, M., Erlingsson, U., and Ligatti, J. 2009. Control-flow integrity: Principles, implementations, and applications. ACM Trans. Info. Syst. Security 13, 1, 1--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Anonymous. 2002. Bypassing PaX ASLR protection. Phrack 11, 59.Google ScholarGoogle Scholar
  6. Backes, M., Hofheinz, D., and Unruh, D. 2009. CoSP: A general framework for computational soundness proofs. In Proceedings of the 16th ACM Conference on Computer and Communications Security. 66--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Barrantes, E. G., Ackley, D. H., Forrest, S., and Stefanović, D. 2005. Randomized instruction set emulation. ACM Trans. Inf. Syst. Sec. 8, 1, 3--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Barthe, G., Rezk, T., and Basu, A. 2007. Security types preserving compilation. Comput. Lang. Syst. Struct. 33, 2, 35--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Berger, E. D. and Zorn, B. G. 2006. DieHard: Probabilistic memory safety for unsafe languages. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation. 158--168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Bhatkar, S., DuVarney, D. C., and Sekar, R. 2003. Address obfuscation: An efficient approach to combat a broad range of memory error exploits. In Proceedings of the 12th USENIX Security Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Bhatkar, S., Sekar, R., and DuVarney, D. C. 2005. Efficient techniques for comprehensive protection from memory error exploits. In Proceedings of the 14th USENIX Security Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Chen, S., Jun Xu, E. C. S., Gauriar, P., and Iyer, R. K. 2005. Non-control-data attacks are realistic threats. In Proceedings of the Usenix Security Symposium. 177--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Comon-Lundh, H. and Cortier, V. 2008. Computational soundness of observational equivalence. In Proceedings of the 15th ACM Conference on Computer and Communications Security. 109--118. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Denning, D. E. 1982. Cryptography and Data Security. Addison-Wesley, Reading, Mass.Google ScholarGoogle Scholar
  15. Druschel, P. and Peterson, L. L. 1992. High-performance cross-domain data transfer. Tech. rep. TR 92-11, Department of Computer Science, The University of Arizona.Google ScholarGoogle Scholar
  16. Erlingsson, Ú. 2007. Low-level software security: Attacks and defenses. In Proceedings of the Foundations of Security Analysis and Design IV, FOSAD 2006/2007 Tutorial Lectures, A. Aldini and R. Gorrieri Eds., Lecture Notes in Computer Science, vol. 4677. Springer, 92--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Felleisen, M. and Friedman, D. P. 1986. Control operators, the secd-machine, and the lambda-calculus. In Proceedings of the 3rd Working Conference on the Formal Description of Programming Concepts. 193--219.Google ScholarGoogle Scholar
  18. Forrest, S., Somayaji, A., and Ackley, D. H. 1997. Building diverse computer systems. In Proceedings of the 6th Workshop on Hot Topics in Operating Systems. 67--72. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Fournet, C. and Rezk, T. 2008. Cryptographically sound implementations for typed information-flow security. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 323--335. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Fournet, C., Guernic, G. L., and Rezk, T. 2009. A security-preserving compiler for distributed programs: From information-flow policies to cryptographic mechanisms. In Proceedings of the 16th ACM Conference on Computer and Communications Security. 432--441. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Hasegawa, M. and Kakutani, Y. 2002. Axioms for recursion in call-by-value. Higher-Order Symbolic Comput. 15, 2-3, 235--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Howard, M. and Thomlinson, M. 2007. Windows Vista ISV security. http://msdn2.microsoft.com/en-us/library/bb430720.aspx.Google ScholarGoogle Scholar
  23. Kc, G. S., Keromytis, A. D., and Prevelakis, V. 2003. Countering code-injection attacks with instruction-set randomization. In Proceedings of the 10th ACM Conference on Computer and Communications security. 272--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Kiriansky, V., Bruening, D., and Amarasinghe, S. 2002. Secure execution via program shepherding. In Proceedings of the 11th USENIX Security Symposium. 191--206. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Medel, R. H. 2006. Typed assembly languages for software security. Ph.D. dissertation, Stevens Institute of Technology. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Mitchell, J. 1996. Foundations for Programming Languages. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Moggi, E. 1989. Computational lambda-calculus and monads. In Proceedings of the 4th Annual IEEE Symposium on Logic in Computer Science. 14--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Moggi, E. 1991. Notions of computation and monads. Inf. Comput. 93, 1, 55--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Morris Jr., J. H. 1973. Protection in programming languages. Comm. ACM 16, 1, 15--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Morrisett, G., Walker, D., Crary, K., and Glew, N. 1999. From System F to typed assembly language. ACM Trans. Prog. Lang. Syst. 21, 3, 527--568. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Novark, G. and Berger, E. D. 2010. DieHarder: Securing the heap. In Proceedings of the 17th ACM Conference on Computer and Communications security. 573--584. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Novark, G., Berger, E. D., and Zorn, B. G. 2008. Exterminator: Automatically correcting memory errors with high probability. Comm. ACM 51, 12, 87--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Pattabiraman, K., Grover, V., and Zorn, B. G. 2008. Samurai: Protecting critical data in unsafe languages. In Proceedings of EuroSys. 219--232. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. PaX Project. 2004. The PaX project. http://pax.grsecurity.net/.Google ScholarGoogle Scholar
  35. Pierce, B. 2002. Types and Programming Languages. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Pucella, R. and Schneider, F. B. 2006. Independence from obfuscation: A semantic framework for diversity. In Proceedings of the 19th IEEE Computer Security Foundations Workshop. 230--241. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Shacham, H., Page, M., Pfaff, B., Goh, E.-J., Modadugu, N., and Boneh, D. 2004. On the effectiveness of address-space randomization. In Proceedings of the 11th ACM Conference on Computer and Communications Security. 298--307. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Sotirov, A. and Dowd, M. 2008. Bypassing browser memory protections: Setting back browser security by 10 years. http://taossa.com/archive/bh08sotirovdowd.pdf.Google ScholarGoogle Scholar
  39. Sovarel, A. N., Evans, D., and Paul, N. 2005. Where’s the FEEB? the effectiveness of instruction set randomization. In Proceedings of the 14th USENIX Security Symposium. 145--160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Volpano, D., Irvine, C., and Smith, G. 1996. A sound type system for secure flow analysis. J. Comput. Sec. 4, 167--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Yarvin, C., Bukowski, R., and Anderson, T. 1993. Anonymous RPC: Low-latency protection in a 64-bit address space. In Proceedings of the USENIX Summer Technical Conference. 175--186. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. On Protection by Layout Randomization

      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

      Full Access

      • Published in

        cover image ACM Transactions on Information and System Security
        ACM Transactions on Information and System Security  Volume 15, Issue 2
        July 2012
        138 pages
        ISSN:1094-9224
        EISSN:1557-7406
        DOI:10.1145/2240276
        Issue’s Table of Contents

        Copyright © 2012 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: 1 July 2012
        • Accepted: 1 October 2011
        • Revised: 1 August 2011
        • Received: 1 November 2010
        Published in tissec Volume 15, Issue 2

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader