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

[ .doi ] [ .pdf ] [ .bib ]

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}
}

Contact

The University of British Columbia
Department of Computer Science
2366 Main Mall
ICICS Building, Office 341
Vancouver, BC V6T 1Z4
Canada

achreto [at] cs.ubc.ca
+1 604 827 2446