BFF: Foundational and automated verification of bitfield-manipulating programs

Zhu F, Sammler MJ, Lepigre R, Dreyer D, Garg D. 2022. BFF: Foundational and automated verification of bitfield-manipulating programs. Proceedings of the ACM on Programming Languages. 6(OOPSLA2), 1613–1638.

Download (ext.)
OA https://doi.org/10.1145/3563345 [Published Version]

Journal Article | Published | English

Scopus indexed
Author
Zhu, Fengmin; Sammler, Michael JoachimISTA; Lepigre, Rodolphe; Dreyer, Derek; Garg, Deepak
Abstract
Low-level systems code often needs to interact with data, such as page table entries or network packet headers, in which multiple pieces of information are packaged together as bitfield components of a single machine integer and accessed via bitfield manipulations (e.g., shifts and masking). Most existing approaches to verifying such code employ SMT solvers, instantiated with theories for bit vector reasoning: these provide a powerful hammer, but also significantly increase the trusted computing base of the verification toolchain. In this work, we propose an alternative approach to the verification of bitfield-manipulating systems code, which we call BFF. Building on the RefinedC framework, BFF is not only highly automated (as SMT-based approaches are) but also foundational---i.e., it produces a machine-checked proof of program correctness against a formal semantics for C programs, fully mechanized in Coq. Unlike SMT-based approaches, we do not try to solve the general problem of arbitrary bit vector reasoning, but rather observe that real systems code typically accesses bitfields using simple, well-understood programming patterns: the layout of a bit vector is known up front, and its bitfields are accessed in predictable ways through a handful of bitwise operations involving bit masks. Correspondingly, we center our approach around the concept of a structured bit vector---i.e., a bit vector with a known bitfield layout---which we use to drive simple and predictable automation. We validate the BFF approach by verifying a range of bitfield-manipulating C functions drawn from real systems code, including page table manipulation code from the Linux kernel and the pKVM hypervisor.
Publishing Year
Date Published
2022-10-31
Journal Title
Proceedings of the ACM on Programming Languages
Publisher
Association for Computing Machinery
Volume
6
Issue
OOPSLA2
Page
1613-1638
ISSN
IST-REx-ID

Cite this

Zhu F, Sammler MJ, Lepigre R, Dreyer D, Garg D. BFF: Foundational and automated verification of bitfield-manipulating programs. Proceedings of the ACM on Programming Languages. 2022;6(OOPSLA2):1613-1638. doi:10.1145/3563345
Zhu, F., Sammler, M. J., Lepigre, R., Dreyer, D., & Garg, D. (2022). BFF: Foundational and automated verification of bitfield-manipulating programs. Proceedings of the ACM on Programming Languages. Association for Computing Machinery. https://doi.org/10.1145/3563345
Zhu, Fengmin, Michael Joachim Sammler, Rodolphe Lepigre, Derek Dreyer, and Deepak Garg. “BFF: Foundational and Automated Verification of Bitfield-Manipulating Programs.” Proceedings of the ACM on Programming Languages. Association for Computing Machinery, 2022. https://doi.org/10.1145/3563345.
F. Zhu, M. J. Sammler, R. Lepigre, D. Dreyer, and D. Garg, “BFF: Foundational and automated verification of bitfield-manipulating programs,” Proceedings of the ACM on Programming Languages, vol. 6, no. OOPSLA2. Association for Computing Machinery, pp. 1613–1638, 2022.
Zhu F, Sammler MJ, Lepigre R, Dreyer D, Garg D. 2022. BFF: Foundational and automated verification of bitfield-manipulating programs. Proceedings of the ACM on Programming Languages. 6(OOPSLA2), 1613–1638.
Zhu, Fengmin, et al. “BFF: Foundational and Automated Verification of Bitfield-Manipulating Programs.” Proceedings of the ACM on Programming Languages, vol. 6, no. OOPSLA2, Association for Computing Machinery, 2022, pp. 1613–38, doi:10.1145/3563345.
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
OA Open Access

Export

Marked Publications

Open Data ISTA Research Explorer

Search this title in

Google Scholar