Modal Abstractions for Virtualizing Memory Addresses

07/26/2023
by   Ismail Kuru, et al.
0

Operating system kernels employ virtual memory management (VMM) subsystems to virtualize the addresses of memory regions in order to to isolate untrusted processes, ensure process isolation and implement demand-paging and copy-on-write behaviors for performance and resource controls. Bugs in these systems can lead to kernel crashes. VMM code is a critical piece of general-purpose OS kernels, but their verification is challenging due to the hardware interface (mappings are updated via writes to memory locations, using addresses which are themselves virtualized). Prior work on VMM verification has either only handled a single address space, trusted significant pieces of assembly code, or resorted to direct reasoning over machine semantics rather than exposing a clean logical interface. In this paper, we introduce a modal abstraction to describe the truth of assertions relative to a specific virtual address space, allowing different address spaces to refer to each other, and enabling verification of instruction sequences manipulating multiple address spaces. Using them effectively requires working with other assertions, such as points-to assertions in our separation logic, as relative to a given address space. We therefore define virtual points-to assertions, which mimic hardware address translation, relative to a page table root. We demonstrate our approach with challenging fragments of VMM code showing that our approach handles examples beyond what prior work can address, including reasoning about a sequence of instructions as it changes address spaces. All definitions and theorems mentioned in this paper including the operational model of a RISC-like fragment of supervisor-mode x86-64, and a logic as an instantiation of the Iris framework, are mechanized inside Coq.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/05/2019

Using Name Confusion to Enhance Security

Virtual memory is an abstraction that assigns references, or names, to d...
research
03/11/2019

IskiOS: Lightweight Defense Against Kernel-Level Code-Reuse Attacks

Commodity operating systems such as Windows, Linux, and MacOS X form the...
research
05/09/2011

User Mode Memory Page Allocation: A Silver Bullet For Memory Allocation?

This paper proposes a novel solution: the elimination of paged virtual m...
research
11/19/2019

Cichlid: Explicit physical memory management for large machines

In this paper, we rethink how an OS supports virtual memory. Classical V...
research
05/19/2019

Safe and Chaotic Compilation for Hidden Deterministic Hardware Aliasing

Hardware aliasing occurs when the same logical address can access differ...
research
04/03/2023

Lilac: A Modal Separation Logic for Conditional Probability

We present Lilac, a separation logic for reasoning about probabilistic p...
research
08/23/2019

A Least-Privilege Memory Protection Model for Modern Hardware

We present a new least-privilege-based model of addressing on which to b...

Please sign up or login with your details

Forgot password? Click here to reset