Affiliation:
1. University of Cambridge, UK
2. University of Cambridge, UK / Jane Street, UK
3. University of Twente, Netherlands
4. TU Munich, Germany
Abstract
We present WasmRef-Isabelle, a monadic interpreter for WebAssembly written in Isabelle/HOL and proven correct with respect to the WasmCert-Isabelle mechanisation of WebAssembly. WasmRef-Isabelle has been adopted and deployed as a fuzzing oracle in the continuous integration infrastructure of Wasmtime, a widely used WebAssembly implementation. Previous efforts to fuzz Wasmtime against WebAssembly's official OCaml reference interpreter were abandoned by Wasmtime's developers after the reference interpreter exhibited unacceptable performance characteristics, which its maintainers decided not to fix in order to preserve the interpreter's close definitional correspondence with the official specification. With WasmRef-Isabelle, we achieve the best of both worlds - an interpreter fast enough to be useable as a fuzzing oracle that also maintains a close correspondence with the specification through a mechanised proof of correctness.
We verify the correctness of WasmRef-Isabelle through a two-step refinement proof in Isabelle/HOL. We demonstrate that WasmRef-Isabelle significantly outperforms the official reference interpreter, has performance comparable to a Rust debug build of the industry WebAssembly interpreter Wasmi, and competes with unverified oracles on fuzzing throughput when deployed in Wasmtime's fuzzing infrastructure. We also present several new extensions to WasmCert-Isabelle which enhance WasmRef-Isabelle's utility as a fuzzing oracle: we add support for a number of upcoming WebAssembly features, and fully mechanise the numeric semantics of WebAssembly's integer operations.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference67 articles.
1. Jean-Raymond Abrial . 1996. The B-Book: Assigning Programs to Meanings . Cambridge University Press . Jean-Raymond Abrial. 1996. The B-Book: Assigning Programs to Meanings. Cambridge University Press.
2. Vienna Development Method
3. Ralph-Johan Back and Joakim von Wright. 1998. Refinement Calculus — A Systematic Introduction. Ralph-Johan Back and Joakim von Wright. 1998. Refinement Calculus — A Systematic Introduction.
4. The Oracle Problem in Software Testing: A Survey
5. Mechanized Semantics for the Clight Subset of the C Language
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Bringing the WebAssembly Standard up to Speed with SpecTec;Proceedings of the ACM on Programming Languages;2024-06-20