SC(3): #ifdef-Totengräber und Bibliotheksschwärzen
1 Stunde 8 Minuten
Podcast
Podcaster
Beschreibung
vor 3 Jahren
Wir beschäftigen uns im SystemCall Podcast mit aktueller
Betriebssystemforschung. In dieser dritten Folge sprechen wir mit
Andreas Ziegler von der FAU in Erlangen über seine Forschung am
Undertaker, em Totengräber für #ifdefs und das Schreckgespenst
für den Kconfig Kernelkonfigurator. Außerdem haben wir noch das
Papier "BlankIt Library Debloating" mitgebracht, was sich mit der
Reduktion von Angriffsfläche für Return-Oriented-Programming
(ROP) zur Laufzeit beschäftigt.
Der Undertaker erlaubt das Parsen von Konfigurationsdateien des
kconfig Buildsystems vom Linux Kernel, sodass einzelne Stellen
betrachtet werden können unter dem Gesichtspunkt, welche
Konfigoptionen an- bzw abgeschaltet sein müssen, damit diese
Zeile im Kernel landet. Über lange SAT-Formeln kann so auch
ermittelt werden, ob es sich ausschließende oder immer wahre
Optionskombinationen gibt. Mithilfe des Grundgerüsts erklärt
Andreas, wie er durch Tracing ein minimales System für den
getesteten Anwendungsfall generiert hat, und welche Ergebnisse
dabei erzielt worden.
BlankIt: Library Debloating beschäftigt sich mit dem ausblenden
von dynamisch nicht gebrauchten Bibliothekscode. Das trägt zwar
nicht zur Minimierung des Diskplatzes bei, wie bspw. beim
Undertaker der Fall, dafür aber minimiert das die Anzahl
möglicher ROP-Gadgets. Als ROP (Return-Oriented-Programming)
bezeichnet man die Ausführung und Kombination von einzelnen
Codestellen durch bewusste Stackmanipulation und zur
Stackmanipulation durch Returns.
Vorab werden Pfade durch den Code ausgewertet und mittels eines
Machine Learning Modells ermittelt, welche Funktionen anhand des
dynamischen Kontexts gebraucht werden. Bei jedem Funktionscall in
eine Library werden die gebrauchten Funktionen eingeblendet, also
wieder in den Speicher geschrieben, beim Zurückkehren werden die
Stellen wieder überschrieben.
Am Ende noch eine Leseempfehlung zum Thema Binary Rewriting, also
dem Umschreiben von Binärdateien, ohne Zugriff auf den
eigentlichen Source Code. Im Survey From Hack to Elaborate
Technique - A Survey on Binary Rewriting werden mögliche Ansätze
und Schritte strukturiert dargestellt und mit Quellen versehen.
Das Paper ist dadurch gut zu lesen und verständlich.
Links Undertaker
Reinhard Tartler, Daniel Lohmann, Julio Sincero, and Wolfgang
Schröder-Preikschat. 2011. Feature consistency in
compile-time-configurable system software: facing the linux
10,000 feature problem. In Proceedings of the sixth conference on
Computer systems (EuroSys '11). Association for Computing
Machinery, New York, NY, USA, 47–60. DOI:
doi.org/10.1145/1966445.1966451
ACM
Authors Copy
Kurmus, A., Tartler, R., Dorneanu, D., Heinloth, B., Rothberg,
V., Ruprecht, A., Schröder-Preikschat, W., Lohmann, D. and
Kapitza, R., 2013. Attack Surface Metrics and Automated
Compile-Time OS Kernel Tailoring. In NDSS.
NDSS
Authors Copy
Ruprecht, A., Heinloth, B. and Lohmann, D., 2014. Automatic
feature selection in large-scale system-software product lines.
ACM SIGPLAN Notices, 50(3), pp.39-48. DOI:
doi.org/10.1145/2775053.2658767
ACM
Authors Copy
BlankIt Library Debloating
Chris Porter, Girish Mururu, Prithayan Barua, and Santosh Pande.
2020. BlankIt library debloating: getting what you want instead
of cutting what you don’t. In Proceedings of the 41st ACM SIGPLAN
Conference on Programming Language Design and Implementation
(PLDI 2020). Association for Computing Machinery, New York, NY,
USA, 164–180. DOI: doi.org/10.1145/3385412.3386017
ACM
Leseempfehlung: From Hack to Elaborate Technique - A Survey on
Binary Rewriting
Matthias Wenzl, Georg Merzdovnik, Johanna Ullrich, and Edgar
Weippl. 2019. From Hack to Elaborate Technique—A Survey on Binary
Rewriting. ACM Comput. Surv. 52, 3, Article 49 (July 2019), 37
pages. DOI: doi.org/10.1145/3316415
ACM
Introsounds
Boxing Bell from Benboncan on freesound.org
Punching and Uppercut from 18hiltc on freesound.org
Fight Arena 1 and 4 from SyntaxSeed on freesound.org
Wilhelm Scream on archive.org
Weitere Episoden
1 Stunde 8 Minuten
vor 2 Jahren
50 Minuten
vor 2 Jahren
52 Minuten
vor 2 Jahren
1 Stunde 13 Minuten
vor 2 Jahren
78 Sekunden
vor 3 Jahren
In Podcasts werben
Kommentare (0)