Litcius/Paper detail

Verifying the Verifier: eBPF Range Analysis Verification

Harishankar Vishwanathan, Matan Shachnai, Srinivas Narayana, Santosh Nagarakatte

2023Lecture notes in computer science29 citationsDOIOpen Access PDF

Abstract

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.

Topics & Concepts

SoundnessComputer scienceCorrectnessLinux kernelProgramming languageKernel (algebra)Operating systemRange (aeronautics)MathematicsCombinatoricsMaterials scienceComposite materialSecurity and Verification in ComputingSoftware Testing and Debugging TechniquesAdvanced Malware Detection Techniques
Verifying the Verifier: eBPF Range Analysis Verification | Litcius