Islaris: Verification of machine code against authoritative ISA semantics
Sammler MJ, Hammond A, Lepigre R, Campbell B, Pichon-Pharabod J, Dreyer D, Garg D, Sewell P. 2022. Islaris: Verification of machine code against authoritative ISA semantics. Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation. PLDI: Conference on Programming Language Design and Implementation, 825–840.
Download (ext.)
https://doi.org/10.1145/3519939.3523434
[Published Version]
Conference Paper
| Published
| English
Scopus indexed
Author
Sammler, Michael JoachimISTA;
Hammond, Angus;
Lepigre, Rodolphe;
Campbell, Brian;
Pichon-Pharabod, Jean;
Dreyer, Derek;
Garg, Deepak;
Sewell, Peter
Abstract
Recent years have seen great advances towards verifying large-scale systems code. However, these verifications are usually based on hand-written assembly or machine-code semantics for the underlying architecture that only cover a small part of the instruction set architecture (ISA). In contrast, other recent work has used Sail to establish formal models for large real-world architectures, including Armv8-A and RISC-V, that are comprehensive (complete enough to boot an operating system or hypervisor) and authoritative (automatically derived from the Arm internal model and validated against the Arm validation suite, and adopted as the official formal specification by RISC-V International, respectively). But the scale and complexity of these models makes them challenging to use as a basis for verification.
In this paper, we propose Islaris, the first system to support verification of machine code above these complete and authoritative real-world ISA specifications. Islaris uses a novel combination of SMT-solver-based symbolic execution (the Isla symbolic executor) and automated reasoning in a foundational program logic (a new separation logic we derive using Iris in Coq). We show that this approach can handle Armv8-A and RISC-V machine code exercising a wide range of systems features, including installing and calling exception vectors, code parametric on a relocation address offset (from the production pKVM hypervisor); unaligned access faults; memory-mapped IO; and compiled C code using inline assembly and function pointers.
Publishing Year
Date Published
2022-06-09
Proceedings Title
Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation
Publisher
Association for Computing Machinery
Page
825-840
Conference
PLDI: Conference on Programming Language Design and Implementation
Conference Location
San Diego, CA, United States
Conference Date
2022-06-13 – 2022-06-17
IST-REx-ID
Cite this
Sammler MJ, Hammond A, Lepigre R, et al. Islaris: Verification of machine code against authoritative ISA semantics. In: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation. Association for Computing Machinery; 2022:825-840. doi:10.1145/3519939.3523434
Sammler, M. J., Hammond, A., Lepigre, R., Campbell, B., Pichon-Pharabod, J., Dreyer, D., … Sewell, P. (2022). Islaris: Verification of machine code against authoritative ISA semantics. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (pp. 825–840). San Diego, CA, United States: Association for Computing Machinery. https://doi.org/10.1145/3519939.3523434
Sammler, Michael Joachim, Angus Hammond, Rodolphe Lepigre, Brian Campbell, Jean Pichon-Pharabod, Derek Dreyer, Deepak Garg, and Peter Sewell. “Islaris: Verification of Machine Code against Authoritative ISA Semantics.” In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, 825–40. Association for Computing Machinery, 2022. https://doi.org/10.1145/3519939.3523434.
M. J. Sammler et al., “Islaris: Verification of machine code against authoritative ISA semantics,” in Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, San Diego, CA, United States, 2022, pp. 825–840.
Sammler MJ, Hammond A, Lepigre R, Campbell B, Pichon-Pharabod J, Dreyer D, Garg D, Sewell P. 2022. Islaris: Verification of machine code against authoritative ISA semantics. Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation. PLDI: Conference on Programming Language Design and Implementation, 825–840.
Sammler, Michael Joachim, et al. “Islaris: Verification of Machine Code against Authoritative ISA Semantics.” Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, Association for Computing Machinery, 2022, pp. 825–40, doi:10.1145/3519939.3523434.
All files available under the following license(s):
Copyright Statement:
This Item is protected by copyright and/or related rights. [...]
Link(s) to Main File(s)
Access Level
Open Access