SC(13): Sichten auf Adressräume
50 Minuten
Podcast
Podcaster
Beschreibung
vor 1 Monat
In dieser dreizehnten Folge vom SystemCall haben wir nach langer
Zeit Flo dazu bekommen, seine Dissertation vorzustellen. Zunächst
wiederholen wir das Konzept des virtuelles Adressraums bzw.
virtuellen Speichers. Dann erzählt Dr. Florian Rommel von der
Hauptidee seiner Doktorarbeit: den Adressraumsichten. Dabei wird
das Konzept eines virtuelles Adressraums, was eigentlich auf der
Abstraktionsstufe "Prozess" arbeitet, erweitert um pro Thread
verschiedene Adressräume möglich zu machen. Dadurch können Code-
oder Datenseiten nur für bestimmte Threads ein- oder ausgeblendet
werden.
Darauf aufbauend, beschreibt Flo zwei Anwendungen: Zunächst wird
Laufzeit-Patching genauer beschrieben. Ziel ist es, eine
Anwendung, die viel internen, non-persistenten Zustand hält, zu
patchen ohne die Anwendung neu starten zu müssen und den Zustand
zu verlieren. Bspw. bei Memcached kann das Sinn machen, weil das
Wiederaufbauen der im Arbeitsspeicher gehaltenen Daten sehr lange
dauern kann. Facebook berichtet bspw. von einem Zeitraum von
Tagen eines verminderten Services, wenn sie Memcached Instanzen
neu starten müssen. Hier wendet Flo die Adressraumsichten an. Bei
einem Patch wird eine neue Sicht erstellt. Jetzt kann jeder
Thread einzeln in die neue, gepatchte Sicht wechseln, wenn es ihm
passt, also an einem wohldefinierten Punkt in seinem
Programmcode, aber ohne sich mit den anderen Threads explizit
abstimmen zu müssen.
Ein weitere Anwendung der Adressraumsichten ist das dynamische
Debloating, bei dem Programmcode-Teile für jeden Thread einzeln
überschrieben werden, um Angriffsfläche für u.A. ROP
(return-oriented-programming) Angriffe zu reduzieren.
Normalerweise muss Programmcode für den gesamten Prozess
ausgeblendet werden, weil jeder Thread in einem Prozess den
gleichen Adressraum sieht. In Flos Ansatz bekommt jeder Thread
eine eigene Sicht und blendet sich selbst nur den Code ein, den
er braucht. Das wird durch bestimmte Überprüfungen abgesichert,
dass auch nur echter Anwendungscode andere Funktionen wieder
einfügen darf, nicht etwa ein ROP-Angriff.
Links Dissertation: Address-Space Views: A Kernel Concept for
Thread-Level Memory Polymorphism
Florian Rommel. Address-Space Views: A Kernel Concept for
Thread-Level Memory Polymorphism. 2025. DOI: 10.15488/19722
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
Lohmann. From Global to Local Quiescence: Wait-Free Code Patching
of Multi-Threaded Processes. 2020. In OSDI'20.
Video
Thread-Level Attack-Surface Reduction
Florian Rommel, Christian Dietrich, Andreas Ziegler, Illia
Ostapyshyn, Daniel Lohmann. Thread-Level Attack-Surface
Reduction. 2023. In Proceedings of the 24th ACM SIGPLAN/SIGBED
International Conference on Languages, Compilers, and Tools for
Embedded Systems. DOI: 10.1145/3589610.3596281
Video
Scaling Memcache at Facebook
Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski,
Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel
Peek, Paul Saab, David Stafford, Tony Tung, Venkateshwaran
Venkataramani. Scaling Memcache at Facebook. 2013. In NSDI'13.
Usenix
Facebook Research
Intro-/Outrotheme
the_emergent
Weitere Episoden
1 Stunde 8 Minuten
vor 2 Jahren
50 Minuten
vor 2 Jahren
52 Minuten
vor 2 Jahren
1 Stunde 13 Minuten
vor 3 Jahren
78 Sekunden
vor 3 Jahren
In Podcasts werben
Kommentare (0)