Title
Scaling symbolic evaluation for automated verification of systems code with Serval
Abstract
This paper presents Serval, a framework for developing automated verifiers for systems software. Serval provides an extensible infrastructure for creating verifiers by lifting interpreters under symbolic evaluation, and a systematic approach to identifying and repairing verification performance bottlenecks using symbolic profiling and optimizations. Using Serval, we build automated verifiers for the RISC-V, x86--32, LLVM, and BPF instruction sets. We report our experience of retrofitting CertiKOS and Komodo, two systems previously verified using Coq and Dafny, respectively, for automated verification using Serval, and discuss trade-offs of different verification methodologies. In addition, we apply Serval to the Keystone security monitor and the BPF compilers in the Linux kernel, and uncover 18 new bugs through verification, all confirmed and fixed by developers.
Year
DOI
Venue
2019
10.1145/3341301.3359641
Proceedings of the 27th ACM Symposium on Operating Systems Principles
DocType
ISBN
Citations 
Conference
978-1-4503-6873-5
2
PageRank 
References 
Authors
0.37
0
6
Name
Order
Citations
PageRank
Luke Nelson121.39
James Bornholt2937.96
Ronghui Gu3647.82
Andrew Baumann469428.49
Emina Torlak560630.70
Xi Wang654029.04