Sealed with a Library Call: Memory Allocators Should Track Capability Seal Operations
A sealed capability in CHERI is both immutable and un-dereferenceable. While sealed capabilities are generally used for compartment switching, in this talk we consider the consequences of permitting application code to perform more general capability sealing. This might be useful for secure exchange of data between untrusted code components; we will present illustrative scenarios.
This presentation considers the interaction between sealed capabilities and memory allocators. We examine both explicit malloc
style allocators and automated garbage collection regimes. We show that memory allocators must be aware of sealed capabilities and should be able to trace reference graphs through sealed capabilities, otherwise runtime memory errors occur (e.g. space leaks or dangling pointers). We propose an augmented allocator API to track capability seal operations, and sketch a prototypical implementation.
slides.pdf (jsinger-pocl24.pdf) | 1.41MiB |
Reader in Programming Language Implementation at the School Computing Science, University of Glasgow. In Scotland since 2010.
Tue 16 JanDisplayed time zone: London change
11:00 - 12:30 | |||
11:00 22mTalk | Compartmentalisation models POCL Dapeng Gao University of Cambridge | ||
11:22 23mTalk | Proving capability safety in the presence of indirect sentries POCL June Rousseau Aarhus University, Aina Linn Georges Max Planck Institute for Software Systems (MPI-SWS), Dominique Devriese KU Leuven, Jean Pichon-Pharabod Aarhus University, Lars Birkedal Aarhus University | ||
11:45 22mTalk | Sealed with a Library Call: Memory Allocators Should Track Capability Seal Operations POCL Jeremy Singer University of Glasgow File Attached | ||
12:08 22mTalk | Secure Calling Conventions for CHERI Capability Machines in Practice (Work in Progress) POCL Elias Storme KU Leuven, Sander Huyghebaert Vrije Universiteit Brussel, Steven Keuchel Vrije Universiteit Brussel, Thomas Van Strydonck KULeuven, Dominique Devriese KU Leuven |