Provably Correct Runtime Monitoring

  • Authors:
  • Irem Aktug;Mads Dam;Dilian Gurov

  • Affiliations:
  • Royal Institute of Technology (KTH), Sweden;Access Linneaus Center, Royal Institute of Technology (KTH), Sweden;Royal Institute of Technology (KTH), Sweden

  • Venue:
  • FM '08 Proceedings of the 15th international symposium on Formal Methods
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Runtime monitoring is an established technique for enforcing a wide range of program safety and security properties. We present a formalization of monitoring and monitor inlining, for the Java Virtual Machine. Monitors are security automata given in a special-purpose monitor specification language, ConSpec. The automata operate on finite or infinite strings of calls to a fixed API, allowing local dependencies on parameter values and heap content. We use a two-level class file annotation scheme to characterize two key properties: (i) that the program is correct with respect to the monitor as a constraint on allowed program behavior, and (ii) that the program has an instance of the given monitor embedded into it, which yields state changes at prescribed points according to the monitor's transition function. As our main application of these results we describe a concrete inliner, and use the annotation scheme to characterize its correctness. For this inliner, correctness of the level II annotations can be decided efficiently by a weakest precondition annotation checker, thus allowing on-device checking of inlining correctness in a proof-carrying code setting.