Efficient Concolic Execution of WebAssembly by Compilation and Snapshot Reuse
WebAssembly (Wasm) is a low-level intermediate representation (IR) that has been widely used as a compilation target for high-level programming languages, and can be executed in various environments, such as browsers and clouds. Concolic execution is a program analysis for bug detection and program testing. By executing the program concretely and symbolically at the same time, it can generate inputs by solving path constraints obtained from the corresponding execution.
In this presentation, we present a design for efficient concolic execution of WebAssembly. Building on top of a WebAssembly’s CPS semantics, we are building a concolic execution compiler for WebAssembly, which generates performant code by eliminating the overhead that commonly exists in other interpretation-based concolic execution tools. By manipulating continuations in the generated code, our design makes it possible to reuse the snapshots, avoiding the overhead of re-execution that typically exists in instrumentation-based concolic execution tools. The talk will demonstrate the generation of high-performance C++ concolic execution code from WebAssembly source file, and the generation of test cases that trigger errors in the source WebAssembly program.
Thu 16 OctDisplayed time zone: Perth change
16:00 - 17:30 | Session 3WebAssembly Workshop at Orchid Small Chair(s): Conrad Watt Nanyang Technological University | ||
16:00 25mKeynote | [Keynote] “Codename: Tunahead” aka Software Engineering Economics for Runtimes WebAssembly Workshop | ||
16:25 20mTalk | BabelBridge: A Control-Flow Graph Debugger for Microcontrollers WebAssembly Workshop Carlos Rojas Castillo Vrije Universiteit Brussel, Matteo Marra Nokia Bell Labs, Belgium, Elisa Gonzalez Boix Vrije Universiteit Brussel | ||
16:45 20mTalk | Updating WasmCert-Isabelle to WebAssembly 2.0 WebAssembly Workshop Antanas Kalkauskas Nanyang Technological University | ||
17:05 20mTalk | Efficient Concolic Execution of WebAssembly by Compilation and Snapshot Reuse WebAssembly Workshop | ||
17:25 5mDay closing | Closing WebAssembly Workshop Conrad Watt Nanyang Technological University |