Reto Achermann
Assistant Professor
Systopia Lab
Department of Computer Science
University of British Columbia
Mmapx: Uniform Memory Protection in a Heterogeneous World
Authors
Reto Achermann, David Cock, Roni Haecki, Nora Hossle, Lukas Humbel, Timothy Roscoe and Daniel Schwyn
Venue
Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS'21)
Links
Abstract
Modern Systems-on-Chip (SoCs) are networks of heterogeneous cores, intelligent devices, and memory, connected through multiple configurable address translation and protection units like IOMMUs and System MMUs.
Modern OS kernels like Linux are based on traditional MMUs and have no clear abstractions to represent this complexity, mostly leaving IOMMU configuration to device drivers. This has led to a recent spate of serious bugs, and increasing concern over "cross-SoC" attacks on memory security.
To address this, we propose a new kernel primitive, mmapx, based on a decoding net a rich and detailed representation of the memory addressing semantics of a complex SoC from the recent formal methods literature. mmapx provides a uniform facility for securely configuring all the address translation facilities in a system.
mmapx leverages existing Unix facilities wherever possible: the file system for naming, discovery, and coarse-grained access control, and file descriptors for fine-grained authorization. We show how mmapx can eliminate bugs caused by device drivers programming IOMMUs directly, but also the detail captured by the underlying model has further benefits while incurring minimal overhead.
Bibtex
@inproceedings{Achermann:2021:MUM, author = {Achermann, Reto and Cock, David and Haecki, Roni and Hossle, Nora and Humbel, Lukas and Roscoe, Timothy and Schwyn, Daniel}, booktitle = {Proceedings of the Workshop on Hot Topics in Operating Systems}, doi = {10.1145/3458336.3465273}, id = {Achermann:2021:MUM}, isbn = {9781450384384}, location = {Ann Arbor, Michigan}, pages = {159–166}, publisher = {Association for Computing Machinery}, series = {HotOS'21}, title = {Mmapx: Uniform Memory Protection in a Heterogeneous World}, url = {https://doi.org/10.1145/3458336.3465273}, year = {2021} }