HOME | ENGLISH | IMPRESSUM | KIT

Bachelorarbeit (abgeschlossen): Ein Adress-Sanitizer für libfirm

Bekanntlich ist das Problem an C- und C++-Programmen, dass sie so selten abstürzen. Stattdessen führen falsche Speicherzugriffe oft zu Sicherheitsproblemen oder anderem katastrophalen Verhalten.

Eine Möglichkeit, dieses Problem zu umgehen ist es, den Compiler Code generieren zu lassen, der prüft, ob über die Grenzen eines Objekts oder Puffers hinaus gelesen oder geschrieben wurde. In C und C++ ist allerdings ein viel freizügigerer Umgang mit Pointern erlaubt als in anderen Programmiersprachen. Zum Beispiel darf ein Pointer in die Mitte eines Puffers zeigen, ohne dass dessen Anfangsadresse überhaupt bekannt ist. Das führt dazu, dass jeder Pointer selbst mitspeichern muss, in welchen Grenzen er gültig ist.

In LLVM und GCC ist ein solcher Adress-Sanitizer schon vorhanden. Ziel dieser Bachelorarbeit ist es, aufbauend darauf auch für den institutseigenen Compiler libfirm einen Adress-Sanitizer zu entwickeln.

Aufgabe:

  • Recherche der bekannten Sanitizer-Ansätze
  • Implementation eines Sanitizers in libfirm
  • Evaluation des Overheads

Voraussetzungen

  • Programmierkenntnisse in C
  • Interesse am Compilerbau

Schlüsselworte

Compiler, Sicherheit, Analyse 

Veröffentlichungen

Veröffentlichung
Protection of Heap-allocated Memory using Low Fat Pointers in libFirm

Betreuer

Ehemalige Mitarbeiter
M.Sc. Andreas Fried

Studenten

Studenten
Achim Kriso