Ihr Browser führt kein JavaScript aus, darum stehen Ihnen nicht alle Funktionen zur Verfügung.
Zur korrekten Nutzung wird JavaScript benötigt. Bitte aktivieren sie JavaScript in den Einstellungen Ihres Browsers.
Please activate JavaScript in your browser settings.
Zur korrekten Nutzung wird JavaScript benötigt. Bitte aktivieren sie JavaScript in den Einstellungen Ihres Browsers.
Please activate JavaScript in your browser settings.
Bitte benutzen Sie diese Referenz, um auf diese Ressource zu verweisen:
doi:10.22028/D291-41440
Titel: | Compiler-based defenses against code execution attacks |
VerfasserIn: | Bauer, Markus |
Sprache: | Englisch |
Erscheinungsjahr: | 2022 |
DDC-Sachgruppe: | 004 Informatik |
Dokumenttyp: | Dissertation |
Abstract: | Memory corruption attacks have haunted computer systems for decades. Attackers abuse subtle bugs in an application's memory management, corrupting data and executing arbitrary code and, consequently, taking over systems. In particular, C and C++ applications are at risk, while developers often fail or lack time to identify or rewrite risky parts of their software. In this thesis, we approach this problem with compilers that protect applications without requiring code changes or developer effort. We cover all treated aspects in legacy applications: returns, indirect forward jumps in both C and C++, and immutable libraries. First, we re-evaluate existing return address protections. In particular, we show that most adaption-preventing arguments have become less critical in the modern world and that already existing solutions can be deployable in production. Second, we protect virtual dispatch in C++ applications from hijacking. We employ a type analysis and a compiler transformation that implements virtual dispatch efficiently without hijackable pointers. Third, we protect indirect calls to function pointers in C applications. We use a new type-based analysis to find indirect call targets and transform indirect calls into a secure and fast version with limited targets. Finally, we propose a method to isolate potentially vulnerable code, particularly unprotected closed-source libraries, into compartments with restricted access to its environment. Seit Jahrzehnten nutzen Angreifer Schwachstellen in der Speicherverwaltung nativer Programme aus. Mittels dieser Fehler korrumpieren sie Daten, führen beliebigen Code aus, und übernehmen angegriffene Systeme komplett. Besonders C- und C++-Anwendungen sind gefährdet. In dieser Dissertation beschreiben wir Compiler-basierte Lösungen, die bestehende Anwendungen schützen, ohne dass Entwickler dafür Code umschreiben oder viel Zeit aufwenden müssen. Alle gefährdeten Funktionen werden bedacht: Rücksprünge, indirekte Sprünge (in C und C++) sowie unveränderbare Libraries. Erstens evaluieren wir bestehende Schutzmaßnahmen für Rücksprungaddressen. Wir zeigen, dass viele Argumente gegen den Einsatz dieser Techniken auf modernen Systemen nicht mehr relevant sind, und dass bestehende Lösungen bereits eingesetzt werden können. Zweitens schützen wir virtuelle Funktionsaufrufe in C++-Anwendungen. Wir nutzen eine Typ-basierte Analyse und eine Transformation im Compiler, um diese Aufrufe effizient und ohne Funktionspointer zu implementieren. Drittens schützen wir indirekte Aufrufe von Funktionsadressen in C. Wir nutzen eine neue, typ-basierte Analyse um mögliche Aufrufziele zu finden und die Menge gültiger Sprungziele zu minimieren. Zuletzt zeigen wir eine Methode, um möglicherweise verwundbaren Code, beispielsweise ungeschützte Libraries ohne zugänglichen Quellcode, in einer isolierten Umgebung auszuführen. |
Link zu diesem Datensatz: | urn:nbn:de:bsz:291--ds-414407 hdl:20.500.11880/37255 http://dx.doi.org/10.22028/D291-41440 |
Erstgutachter: | Rossow, Christian |
Tag der mündlichen Prüfung: | 11-Jan-2024 |
Datum des Eintrags: | 6-Feb-2024 |
Fakultät: | MI - Fakultät für Mathematik und Informatik |
Fachrichtung: | MI - Informatik |
Professur: | MI - Prof. Dr. Christian Rossow |
Sammlung: | SciDok - Der Wissenschaftsserver der Universität des Saarlandes |
Dateien zu diesem Datensatz:
Datei | Beschreibung | Größe | Format | |
---|---|---|---|---|
Compiler-based Defenses against Code Execution Attacks.pdf | 2,75 MB | Adobe PDF | Öffnen/Anzeigen |
Alle Ressourcen in diesem Repository sind urheberrechtlich geschützt.