skip to main content
research-article

Run-Time Enforcement of Nonsafety Policies

Published:01 January 2009Publication History
Skip Abstract Section

Abstract

A common mechanism for ensuring that software behaves securely is to monitor programs at run time and check that they dynamically adhere to constraints specified by a security policy. Whenever a program monitor detects that untrusted software is attempting to execute a dangerous action, it takes remedial steps to ensure that only safe code actually gets executed.

This article improves our understanding of the space of policies enforceable by monitoring the run-time behaviors of programs. We begin by building a formal framework for analyzing policy enforcement: we precisely define policies, monitors, and enforcement. This framework allows us to prove that monitors enforce an interesting set of policies that we call the infinite renewal properties. We show how to construct a program monitor that provably enforces any reasonable infinite renewal property. We also show that the set of infinite renewal properties includes some nonsafety policies, that is, that monitors can enforce some nonsafety (including some purely liveness) policies. Finally, we demonstrate concrete examples of nonsafety policies enforceable by practical run-time monitors.

References

  1. <scp>Abadi, M. and Fournet, C.</scp> 2003. Access control based on execution history. In Proceedings of the 10th Annual Network and Distributed System Symposium (NDSS’03).Google ScholarGoogle Scholar
  2. <scp>Abadi, M. and Lamport, L.</scp> 1993. Composing specifications. ACM Trans. Program. Lang. Syst. 15, 1, 73--132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. <scp>Aktug, I., Dam, M., and Gurov, D.</scp> 2008. Provably correct runtime monitoring. In Proceedings of the 15th International Symposium on Formal Methods (FM’08). 262--277. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. <scp>Alpern, B. and Schneider, F. B.</scp> 1985. Defining liveness. Inform. Process. Lett. 21, 4, 181--185.Google ScholarGoogle ScholarCross RefCross Ref
  5. <scp>Alpern, B. and Schneider, F. B.</scp> 1987. Recognizing safety and liveness. Distrib. Comput. 2, 117--126.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. <scp>Bauer, L., Ligatti, J., and Walker, D.</scp> 2002. More enforceable security policies. In Proceedings of the Annual Symposium on Foundations of Computer Security (FOCS’02). Copenhagen, Denmark.Google ScholarGoogle Scholar
  7. <scp>Bauer, L., Ligatti, J., and Walker, D.</scp> 2003. Types and effects for non-interfering program monitors. In Proceedings of the Software Security---Theories and Systems. Mext-NSF-JSPS International Symposium, (ISSS’02). Tokyo, Japan, Revised Papers, M. Okada, B. Pierce, A. Scedrov, H. Tokuda, and A. Yonezawa, Eds. Lecture Notes in Computer Science, vol. 2609. Springer.Google ScholarGoogle Scholar
  8. <scp>Bauer, L., Ligatti, J., and Walker, D.</scp> 2005a. Composing security policies with Polymer. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI’05). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. <scp>Bauer, L., Ligatti, J., and Walker, D.</scp> 2005b. Polymer: A language for composing run-time security policies. http://www.cs.princeton.edu/sip/projects/polymer/.Google ScholarGoogle Scholar
  10. <scp>Biba, K. J.</scp> 1975. Integrity considerations for secure computer systems. Tech. rep. ESD-TR-76-372, MITRE Corporation.Google ScholarGoogle Scholar
  11. <scp>Bonatti, P., di Vimercati, S. D. C., and Samarati, P.</scp> 2002. An algebra for composing access control policies. ACM Trans. Inform. Syst. Secur. 5, 1, 1--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. <scp>Brewer, D. F. C. and Nash, M. J.</scp> 1989. The Chinese Wall security policy. In Proceedings of the IEEE Symposium on Security and Privacy (SP’89). 206--214.Google ScholarGoogle Scholar
  13. <scp>Büchi, J. R.</scp> 1962. On a decision method in restricted second order arithmetic. In Proceedings of the 1960 International Congress on Logic, Methodology, and Philosophy of Science (CLMPS’60). 1--11.Google ScholarGoogle Scholar
  14. <scp>Damianou, N., Dulay, N., Lupu, E., and Sloman, M.</scp> 2001. The Ponder policy specification language. Lecture Notes in Computer Science, vol. 1995, 18--39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. <scp>Edjlali, G., Acharya, A., and Chaudhary, V.</scp> 1998. History-based access control for mobile code. In Proceedings of the 5th ACM Conference on Computer and Communications Security (CCS’98). 38--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. <scp>Elmasri, R. and Navathe, S. B.</scp> 1994. Fundamentals of Database Systems. The Benjamin/ Cummings Publishing Company, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. <scp>Erlingsson, U.</scp> 2004. The inlined reference monitor approach to security policy enforcement. Ph.D. thesis, Cornell University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. <scp>Erlingsson, U. and Schneider, F. B.</scp> 1999. SASI enforcement of security policies: A retrospective. In Proceedings of the New Security Paradigms Workshop (NSPW’99). 87--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. <scp>Erlingsson, U. and Schneider, F. B.</scp> 2000. IRM enforcement of Java stack inspection. In Proceedings of the 2000 IEEE Symposium on Security and Privacy (SP’00). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. <scp>Evans, D.</scp> 2000. Policy-directed code safety. Ph.D. thesis, Massachusetts Institute of Technology. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. <scp>Evans, D. and Twyman, A.</scp> 1999. Flexible policy-directed code safety. In Proceedings of the IEEE Symposium on Security and Privacy (SP’99).Google ScholarGoogle Scholar
  22. <scp>Fong, P. W. L.</scp> 2004. Access control by tracking shallow execution history. In Proceedings of the IEEE Symposium on Security and Privacy (SP’04).Google ScholarGoogle ScholarCross RefCross Ref
  23. <scp>Hamlen, K.</scp> 2006. Security policy enforcement by automated program-rewriting. Ph.D. thesis, Cornell University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. <scp>Hamlen, K., Morrisett, G., and Schneider, F. B.</scp> 2006a. Computability classes for enforcement mechanisms. ACM Trans. Progam. Lang. Syst. 28, 1, 175--205. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. <scp>Hamlen, K. W., Morrisett, G., and Schneider, F. B.</scp> 2006b. Certified in-lined reference monitoring on .NET. In Proceedings of the Workshop on Programming Languages and Analysis for Security (PLAS’06). 7--16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. <scp>Harris, T., Marlow, S., Jones, S. L. P., and Herlihy, M.</scp> 2005. Composable memory transactions. In Proceedings of the ACM Symposium on Principles & Practice of Parallel Programming (PPoPP&rsquo;’05). 48--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. <scp>Havelund, K. and Roşu, G.</scp> 2004. Efficient monitoring of safety properties. Int. J. Softw. Tools Technol. Trans. 6, 2, 158--173.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. <scp>Jeffery, C., Zhou, W., Templer, K., and Brazell, M.</scp> 1998. A lightweight architecture for program execution monitoring. In Proceedings of the Program Analysis for Software Tools and Engineering. ACM Press, 67--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. <scp>Kim, M., Kannan, S., Lee, I., Sokolsky, O., and Viswantathan, M.</scp> 2002. Computational analysis of run-time monitoring---fundamentals of Java-MaC. In Proceedings of the 2nd International Workshop on Runtime Verification (RV’02).Google ScholarGoogle Scholar
  30. <scp>Kim, M., Viswanathan, M., Ben-Abdallah, H., Kannan, S., Lee, I., and Sokolsky, O.</scp> 1999. Formally specified monitoring of temporal properties. In Proceedings of the 11th Euromicro Conference on Real-Time Systems (ECRTS’99).Google ScholarGoogle Scholar
  31. <scp>Lamport, L.</scp> 1977. Proving the correctness of multiprocess programs. IEEE Trans. Softw. Engin. 3, 2, 125--143. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. <scp>Liao, Y. and Cohen, D.</scp> 1992. A specificational approach to high level program monitoring and measuring. IEEE Trans. Softw. Engin. 18, 11, 969--978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. <scp>Ligatti, J.</scp> 2006. Policy enforcement via program monitoring. Ph.D. thesis, Princeton University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. <scp>Ligatti, J., Bauer, L., and Walker, D.</scp> 2003. Edit automata: Enforcement mechanisms for run-time security policies. Tech. rep. TR-681-03, Princeton University.Google ScholarGoogle Scholar
  35. <scp>Ligatti, J., Bauer, L., and Walker, D.</scp> 2005a. Edit automata: Enforcement mechanisms for run-time security policies. Int. J. Inform. Secur. 4, 1--2, 2--16.Google ScholarGoogle Scholar
  36. <scp>Ligatti, J., Bauer, L., and Walker, D.</scp> 2005b. Enforcing non-safety security policies with program monitors. In Proceedings of the 10th European Symposium on Research in Computer Security (ESORICS’05).Google ScholarGoogle Scholar
  37. <scp>Lynch, N. A. and Tuttle, M. R.</scp> 1987. Hierarchical correctness proofs for distributed algorithms. In Proceedings of the 6th annual ACM Symposium on Principles of Distributed Computing (PODC’87). ACM Press, 137--151. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. <scp>Mantel, H.</scp> 2002. On the composition of secure systems. In Proceedings of the IEEE Symposium on Security and Privacy (SP’02). 88--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. <scp>Martinelli, F. and Matteucci, I.</scp> 2007a. An approach for the specification, verification and synthesis of secure systems. Electron. Notes Theor. Comput. Sci. 168, 29--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. <scp>Martinelli, F. and Matteucci, I.</scp> 2007b. Through modeling to synthesis of security automata. Electron. Notes Theor. Comput. Sci. 179, 31--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. <scp>Martinelli, F. and Mori, P.</scp> 2007. Enhancing Java security with history based access control. In Foundations of Security Analysis and Design.Google ScholarGoogle Scholar
  42. <scp>Matteucci, I.</scp> 2006. A tool for the synthesis of programmable controllers. In Proceedings of the 4th International Workshop on Formal Aspects in Security and Trust (FAST’06).Google ScholarGoogle Scholar
  43. <scp>Matteucci, I.</scp> 2007. Automated synthesis of enforcing mechanisms for security properties in a timed setting. Electron. Notes Theor. Comput. Sci. 186, 101--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. <scp>McLean, J.</scp> 1996. A general theory of composition for a class of possibilistic properties. IEEE Trans. Softw. Engin. 22, 1, 53--67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. <scp>Milner, R.</scp> 1978. Synthesis of communicating behaviour. In Mathematical Foundations of Computer Science. Lecture Notes in Computer Science, vol. 64. 71--83.Google ScholarGoogle ScholarCross RefCross Ref
  46. <scp>Paxton, W. H.</scp> 1979. A client-based transaction system to maintain data integrity. In Proceedings of the 7th ACM Symposium on Operating Systems Principles (OSP’79). ACM Press, 18--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. <scp>Robinson, W.</scp> 2002. Monitoring software requirements using instrumented code. In Proceedings of the 35th Annual Hawaii International Conference on System Sciences (HICSS’02). 3967--3976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. <scp>Schneider, F. B.</scp> 1987. Decomposing properties into safety and liveness using predicate logic. Tech. rep. TR 87-874, Cornell University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. <scp>Schneider, F. B.</scp> 2000. Enforceable security policies. ACM Trans. Inform. Syst. Secur. 3, 1, 30--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. <scp>Sen, K., Vardhan, A., Agha, G., and Rosu, G.</scp> 2004. Efficient decentralized monitoring of safety in distributed systems. In Proceedings of the 26th International Conference on Software Engineering (ICSE’04). 418--427. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. <scp>Shavit, N. and Touitou, D.</scp> 1995. Software transactional memory. In Proceedings of the ACM Symposium on Principles of Distributed Computing (PODC’95). 204--213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. <scp>Viswanathan, M.</scp> 2000. Foundations for the run-time analysis of software systems. Ph.D. thesis, University of Pennsylvania. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. <scp>Wahbe, R., Lucco, S., Anderson, T., and Graham, S.</scp> 1993. Efficient software-based fault isolation. In Proceedings of the 14th ACM Symposium on Operating Systems Principles (OSP’93). 203--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. <scp>Walker, D.</scp> 2000. A type system for expressive security policies. In Proceedings of the 27th ACM Symposium on Principles of Programming Languages (POPL’00). 254--267. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. <scp>Yu, D., Chander, A., Islam, N.</scp>, , <scp>and Serikov, I.</scp> 2007. JavaScript instrumentation for browser security. In Proceedings of the 34th annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (SIGACT’07). 237--249. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Run-Time Enforcement of Nonsafety Policies

                    Recommendations

                    Reviews

                    Bernard Kuc

                    I have always viewed digital security and protection as more of an art than a science, the art of staying only one step behind the ingenuity of the next kid trying to break into some system or release that small bit of code that will bring the Internet to its knees. The authors look at the enforcement of security policies from a theoretical perspective. Although this is a common theme of much research, their contribution is that of looking at nonsafety policies. Safety policies ensure that nothing bad happens. After providing a few definitions of property and policy, and how security automata work, the authors detail what sorts of policies can be enforced by monitors. The authors show that while truncation automata can only enforce safety properties, edit automata-automata that can modify the actions that are to be executed-can enforce a wider set of properties, such as liveness and renewal. Each of the above terms is clearly defined and explained using simple examples. Finally, the authors look at the constraints and caveats that limit the applicability of the research, followed by a quick look at alternative ways of defining security automata and even a description of a Java-based implementation. A security system is only as secure as its weakest link, and the phrase, "under the following assumptions," is tantamount to admitting defeat. However, any formal analysis or proof is usually only valid once certain assumptions have been made. Does this mean we should abandon theoretical research__?__ No. Each step that brings more science to the art should always be welcomed. Online Computing Reviews Service

                    Access critical reviews of Computing literature here

                    Become a reviewer for Computing Reviews.

                    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 12, Issue 3
                      January 2009
                      209 pages
                      ISSN:1094-9224
                      EISSN:1557-7406
                      DOI:10.1145/1455526
                      Issue’s Table of Contents

                      Copyright © 2009 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 January 2009
                      • Accepted: 1 September 2008
                      • Revised: 1 August 2008
                      • Received: 1 January 2007
                      Published in tissec Volume 12, Issue 3

                      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