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.
CITATION STYLE
Achermann, R., Cock, D., Haecki, R., Hossle, N., Humbel, L., Roscoe, T., & Schwyn, D. (2021). Mmapx: Uniform memory protection in a heterogeneous world. In HotOS 2021 - Proceedings of the 2021 Workshop on Hot Topics in Operating Systems (pp. 159–166). Association for Computing Machinery, Inc. https://doi.org/10.1145/3458336.3465273
Mendeley helps you to discover research relevant for your work.