ATLAS: Adaptable Thread-Level Address Spaces (DFG: LO 1719/7-1 and DI 2840/1-1)

ATLAS is a joint project with IBR (Co-PI: Christian Dietrich).

Traditionally, an OS process contains a single address space with code and data segments that are shared among all of its threads. The fork() system call creates a new address space (and process) that, even though it starts as an exact clone of its ancestor, provides strong isolation between the respective threads by means of copy-on-write.

The core idea of ATLAS is to provide processes with additional address spaces that are, however, kept in sync with their ancestor: Changes to one of them – we call them address-space views – become immediately visible in the others. Views diverge only in explicitly specified areas. As they still belong to the same process, the threads of this process can be migrated individually between views.

Address-space views provide an efficient mean to implement temporary or permanent thread-level variations in the "view of the world", while threads can still interact with each other regarding the shared parts. In the figure, the code segment diverges and provides a thread-specific variation (e.g., an client-specific optimization or restriction of functionality), while the data segment is shared, so that th1 can still transparently interact with th2 and th3. Such variations can be arbitrary small or complex. They can be prepared in the background in a new view and atomically applied to individual threads by migrating them to the new address space.

Implementation

Address-space views are currently implemented as an extension for the Linux Kernel. The source code is available on Github (luhsra/linux-mmview).

Applications

In our OSDI '20 paper, we present a first application of these technique to implement WfPatch, a wait-free dynamic code-patching approch for large multi-threaded server applications.

People

Latest News

2023-07-10 MELF: Multivariant Executables for a Heterogeneous World at USENIX ATC '23

Dominik Töllner presents our paper MELF: Multivariant Executables for a Heterogeneous World at the 2023 USENIX Annual Technical Conference (ATC '23) in Boston, MA, USA. In the paper we present the Multivariant ELF (MELF) approach, which makes it possible to provide multiple per-function compile-time variants within the same binary and flexibly switch between them at run-time, optionally on a per-thread granularity. As MELFs are implemented on binary level (linker, loader), they do not depend on specific language features or compilers and can be easily applied to existing projects. In case studies with SQLite, memcached, MariaDB and a benchmark for heterogeneous architectures with overlapping ISAs, we show how MELFs can be employed to provide per-client performance isolation of expensive compile-time security or debugging features and adapt to extended instruction sets, when they are actually available. The support for MELFs is an important building block for our ATLAS project and also related to the ParPerOS project.

2023-06-18 Thread-Level Attack-Surface Reduction at LCTES '23

Florian Rommel presents our paper Thread-Level Attack-Surface Reduction at the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES '23) in Orlando, FL, USA. In the paper we present a new debloating technique to reduce the attack surface in running multi-threaded server processes. Unlike existing approaches, which can eliminate code only in shared libraries and for the whole process, thread-level attack-surface reduction (TLASR) eliminates unused code on a per-thread level. Technically, this works by deriving thread-specific text segment views, which in Linux are implemented by mmview concept we introduced in our OSDI '20 paper. In MariaDB, Memcached, OpenSSH and Bash we thereby reduce the number of ROP gadgets by 78–97 percent, rendering an auto-ROP utility ineffective and eliminating all CVE-related functions ever reported for glibc in 97 percent of the case. TLASR is related to the ATLAS project.

Publications

USENIX Conference A
MELF: Multivariant Executables for a Heterogeneous World
Dominik Töllner, Christian Dietrich, Illia Ostapyshyn, Florian Rommel, Daniel Lohmann2023 USENIX Annual Technical Conference (USENIX '23)USENIX Association2023.
PDF Details [BibTex]
LCTES Conference B
Thread-Level Attack-Surface Reduction
Florian Rommel, Christian Dietrich, Andreas Ziegler, Illia Ostapyshyn, Daniel LohmannProceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsACM Press2023.
PDF Details Slides Video 10.1145/3589610.3596281 [BibTex]
LCTES Conference B
reUpNix: Reconfigurable and Updateable Embedded Systems
Niklas Gollenstede, Ulf Kulau, Christian DietrichProceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsACM Press2023.
PDF Slides Raw Data 10.1145/3589610.3596273 [BibTex]
OSDI Conference A*
From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes
Florian Rommel, Christian Dietrich, Birte Friesel, Marcel Köppen, Christoph Borchert, Michael Müller, Olaf Spinczyk, Daniel Lohmann14th Symposium on Operating System Design and Implementation (OSDI '20)2020.
PDF Details Video [BibTex]

Theses

Finished Theses

Extending DragonFly BSD for Synchronized Thread-Level Address-Space Views

Extending the DragonFly BSD kernel to allow the usage of ATLAS synchronized thread-level address-space views in userspace processes

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Daniel Lohmann

Multivariant ELF Executables for Dynamic Variability via Address-Space Views

Extend the ELF format to support binaries with multiple code variants for the use with ATLAS addess space views [PDF]

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Daniel Lohmann

 
Bearbeiter
Dominik Töllner

Size does matter: Extending the LLVM Linker for Fine-Granular Multivariant ELF Executables

Extend the multivariant ELF approach to allow the building of fine-granular executables.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Dominik Töllner
Florian Rommel
Daniel Lohmann

 
Bearbeiter
Jan Luca Willke (abgegeben: 11. Aug 2022)

What You See Is What I Want: Extending the LLVM Linker for View-Local Data in Multivariant ELFs

Extend the multivariant ELF approach to allow data to be view-local and not shared across multiple views.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Dominik Töllner
Daniel Lohmann

 
Bearbeiter
Max Känner (abgegeben: 19. Sep 2022)

Predictive Run-Time Attack-Space Reduction

Extend context-based text elimination by a predictive approach.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Daniel Lohmann

Hardening Rust: Extending the Compiler and Runtime for Dynamic Object Layout Randomization

Defense for Rust programs against data-only attacks via efficient dynamic object layout randomization

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Dominik Töllner

 
Bearbeiter
Jan Neugebauer

Synchronized Thread-Level Address-Space Views for the Dragonfly BSD Kernel

Extending the DragonFly BSD kernel to allow the usage of ATLAS synchronized thread-level address-space views in userspace processes

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Dominik Töllner
Daniel Lohmann