Combining Static Model Checking with Dynamic Enforcement Using the Statecall Policy Language

Anil Madhavapeddy. In Formal Methods and Software Engineering. .Anil Madhavapeddy

https://anil.recoil.org/papers/2009-icfem-spl10.1007/978-3-642-10373-5_23image
Combining Static Model Checking with Dynamic Enforcement Using the Statecall Policy Language

Abstract

Internet protocols encapsulate a significant amount of state, making implementing the host software complex. In this paper, we define the Statecall Policy Language (SPL) which provides a usable middle ground between ad-hoc coding and formal reasoning. It enables programmers to embed automata in their code which can be statically model-checked using SPIN and dynamically enforced. The performance overheads are minimal, and the automata also provide higher-level debugging capabilities. We also describe some practical uses of SPL by describing the automata used in an SSH server written entirely in OCaml/SPL.