Skip to main content
Log in

What can you verify and enforce at runtime?

  • Runtime Verification
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

The underlying property, its definition, and representation play a major role when monitoring a system. Having a suitable and convenient framework to express properties is thus a concern for runtime analysis. It is desirable to delineate in this framework the sets of properties for which runtime analysis approaches can be applied to. This paper presents a unified view of runtime verification and enforcement of properties in the Safety-Progress classification. First, we extend the Safety-Progress classification of properties in a runtime context. Second, we characterize the set of properties which can be verified (monitorable properties) and enforced (enforceable properties) at runtime. We propose in particular an alternative definition of “property monitoring” to the one classically used in this context. Finally, for the delineated sets of properties, we define specialized verification and enforcement monitors.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Alpern B., Schneider F.B.: Defining liveness. Inf. Process. Lett. 21(4), 181–185 (1985)

    Article  MATH  MathSciNet  Google Scholar 

  2. Barringer H., Rydeheard D.E., Havelund K.: Rule systems for run-time monitoring: from eagle to ruler. J. Log. Comput. 20(3), 675–706 (2010)

    Article  MATH  MathSciNet  Google Scholar 

  3. Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. Technical Report TUM-I0724, Institut für Informatik, Technische Universität München, December 2007

  4. Bauer A., Leucker M., Schallhart C.: Comparing ltl semantics for runtime verification. J. Log. Comput. 20(3), 651–674 (2010)

    Article  MATH  MathSciNet  Google Scholar 

  5. Chang, E., Manna, Z., Pnueli, A.: The Safety-Progress Classification. Technical report, Department of Computer Science, Stanford University (1992)

  6. Chang, E.Y., Manna, Z., Pnueli, A.: Characterization of temporal property classes. In: Automata, Languages and Programming, pp. 474–486 (1992)

  7. Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’07), pp. 569–588. ACM press, New York (2007)

  8. Chen F., Roşu G.: Parametric trace slicing and monitoring. In: Kowalewski, S., Philippou, A. (eds) TACAS, Lecture Notes in Computer Science, vol. 5505, pp. 246–261. Springer, Berlin (2009)

    Google Scholar 

  9. Clarke E.M., Wing J.M.: Formal methods: state of the art and future directions. ACM Comput. Surv. 28, 626–643 (1996)

    Article  Google Scholar 

  10. Cousot P., Cousot R.: Abstract interpretation and application to logic programs. J. Log. Program. 13(2–3), 103–179 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  11. d’Amorim, M., Roşu, G.: Efficient monitoring of ω-languages. In: Proceedings of 17th International Conference on Computer-aided Verification (CAV’05). Lecture Notes in Computer Science, vol. 3576, pp. 364–378. Springer, Berlin (2005)

  12. Emerson, E.A., Clarke, E.M.: Characterizing correctness properties of parallel programs using fixpoints. In: Proceedings of the 7th Colloquium on Automata, Languages and Programming, pp. 169–181. Springer, Berlin (1980)

  13. Falcone Y.: You should better enforce than verify. In: Barringer, H., Falcone, Y., Finkbeiner, B., Havelund, K., Lee, I., Pace, G.J., Roşu, G., Sokolsky, O., Tillmann, N. (eds) RV. Lecture Notes in Computer Science, vol. 6418, pp. 89–105. Springer, Berlin (2010)

    Google Scholar 

  14. Falcone Y., Fernandez J.-C., Jéron T., Marchand H., Mounier L.: More testable properties. In: Petrenko, A., daSilva Simão, A., Maldonado, J.C. (eds) ICTSS. Lecture Notes in Computer Science, vol. 6435, pp. 30–46. Springer, Berlin (2010)

    Google Scholar 

  15. Falcone, Y., Fernandez, J.-C., Mounier, L.: Synthesizing enforcement monitors wrt. the Safety-Progress classification of properties. In: ICISS ’08: Proceedings of the 4th International Conference on Information Systems Security, pp. 41–55. Springer, Berlin (2008)

  16. Falcone, Y., Fernandez, J.-C., Mounier, L.: Enforcement monitoring wrt. the Safety-Progress classification of properties. In: SAC ’09: Proceedings of the 2009 ACM symposium on Applied Computing, pp. 593–600. ACM Press, New York (2009)

  17. Falcone Y., Fernandez J.-C., Mounier L.: Runtime verification of safety-progress properties. In: Bensalem, S., Peled, D. (eds) RV. Lecture Notes in Computer Science, vol. 5779, pp. 40–59. Springer, Belin (2009)

    Google Scholar 

  18. Falcone, Y., Mounier, L., Fernandez, J.-C., Richier, J.-L.: Runtime enforcement monitors: composition, synthesis, and enforcement abilities. Formal Methods Syst. Des. 38(3) (2011)

  19. Fong, P.W.L.: Access control by tracking shallow execution history. In: Proceedings of the 2004 IEEE Symposium on Security and Privacy, pp. 43–55. IEEE Computer Society Press, Los Alamitos (2004)

  20. Hamlen K.W., Morrisett G., Schneider F.B.: Computability classes for enforcement mechanisms. ACM Trans. Program. Lang. Syst. 28(1), 175–205 (2006)

    Article  Google Scholar 

  21. Havelund, K., Goldberg, A.: Verify your runs. In: Verified Software: Theories, Tools, Experiments: First IFIP TC 2/WG 2.3 Conference, VSTTE 2005, Zurich, Switzerland, 10–13 Oct 2005, Revised Selected Papers and Discussions, pp. 374–383. Springer, Berlin (2008)

  22. Havelund, K., Roşu, G.: Efficient monitoring of safety properties. Softw. Tools Technol. Transf. 6(2), 158–173 (2002)

  23. Hopcroft J.E., Ullman J.D.: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading, MA (1979)

    MATH  Google Scholar 

  24. Kupferman O., Vardi M.Y.: Model checking of safety properties. Formal Methods Syst. Des. 19(3), 291–314 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  25. Lamport L.: Proving the correctness of multiprocess programs. IEEE Trans. Softw. Eng. 3(2), 125–143 (1977)

    Article  MATH  MathSciNet  Google Scholar 

  26. Leucker M., Schallhart C.: A brief account of runtime verification. J. Log. Algebr. Program. 78(5), 293–303 (2008)

    Article  Google Scholar 

  27. Ligatti, J., Bauer, L., Walker, D.: Enforcing non-safety security policies with program monitors. In: ESORICS, pp. 355–373 (2005)

  28. Ligatti J., Bauer L., Walker D.: Run-time enforcement of nonsafety policies. ACM Trans. Inf. Syst. Secur. 12(3), 1–41 (2009)

    Article  Google Scholar 

  29. Manna, Z., Pnueli, A.: A hierarchy of temporal properties (invited paper, 1989). In: PODC ’90: Proceedings of the 9th Annual ACM Symposium on Principles of Distributed Computing, pp. 377–410. ACM Press, New York (1990)

  30. Martinelli F., Matteucci I.: Through modeling to synthesis of security automata. Electron. Notes Theor. Comput. Sci. 179, 31–46 (2007)

    Article  Google Scholar 

  31. Matteucci I.: Automated synthesis of enforcing mechanisms for security properties in a timed setting. Electron. Notes Theor. Comput. Sci. 186, 101–120 (2007)

    Article  MathSciNet  Google Scholar 

  32. Pnueli A., Zaks A.: PSL model checking and run-time verification via testers. In: Misra, J., Nipkow, T., Sekerinski, E. (eds) FM. Lecture Notes in Computer Science, vol. 4085, pp. 573–586. Springer, Berlin (2006)

    Google Scholar 

  33. Roşu, G., Chen, F., Ball, T.: Synthesizing monitors for safety properties—this time with calls and returns. In: Workshop on Runtime Verification (RV’08). Lecture Notes in Computer Science, vol. 5289, pp. 51–68. Springer, Berlin (2008)

  34. Runtime Verification, 2001–2010. http://www.runtime-verification.org

  35. Schneider F.B.: Enforceable security policies. ACM Trans. Inf. Syst. Secur. 3(1), 30–50 (2000)

    Article  Google Scholar 

  36. Streett, R.S.: Propositional dynamic logic of looping and converse. In: STOC ’81: Proceedings of the 13th Annual ACM Symposium on Theory of Computing, pp. 375–383. ACM Press, New York (1981)

  37. Viswanathan M., Kim M.: Foundations for the run-time monitoring of reactive systems—fundamentals of the MaC language. In: Liu, Z., Araki, K. (eds) ICTAC. Lecture Notes in Computer Science, vol. 3407, pp. 543–556. Springer, Berlin (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yliès Falcone.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Falcone, Y., Fernandez, JC. & Mounier, L. What can you verify and enforce at runtime?. Int J Softw Tools Technol Transfer 14, 349–382 (2012). https://doi.org/10.1007/s10009-011-0196-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-011-0196-8

Keywords

Navigation