Abstract
This paper proposes an automated method to check the correctness of range analysis used in the Linux kernel ’s eBPF verifier. We provide the specification of soundness for range analysis performed by the eBPF verifier. We automatically generate verification conditions that encode the operation of the eBPF verifier directly from the Linux kernel ’s C source code and check it against our specification. When we discover instances where the eBPF verifier is unsound, we propose a method to generate an eBPF program that demonstrates the mismatch between the abstract and the concrete semantics. Our prototype automatically checks the soundness of 16 versions of the eBPF verifier in the Linux kernel versions ranging from 4.14 to 5.19. In this process, we have discovered new bugs in older versions and proved the soundness of range analysis in the latest version of the Linux kernel.
Author supplied keywords
Cite
CITATION STYLE
Vishwanathan, H., Shachnai, M., Narayana, S., & Nagarakatte, S. (2023). Verifying the Verifier: eBPF Range Analysis Verification. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 13966 LNCS, pp. 226–251). Springer Science and Business Media Deutschland GmbH. https://doi.org/10.1007/978-3-031-37709-9_12
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.