Wintersemester 24/25

Projektgruppe

PG: RustFuzz (RustFuzz)

Lecturer:
  • Prof. Dr.-Ing. Lucas Vincenzo Davi
Contact:
Term:
Winter Semester 2024/2025
Time:
Einführungsveranstaltung (Kick-Off): 16.10.2024, 11:00
Room:
S-GW 009
Start:
16.10.2024
End:
31.03.2025
Language:
German/English

Description:

Aufgrund der Vielzahl von Sicherheitslücken in C und C++ Programmen, haben Google, Microsoft und die US-Regierung erst kürzlich empfohlen, Softwareentwicklung zukünftig in der Programmiersprache Rust durchzuführen. Tatsächlich werden die ersten Windows Treiber in Rust angeboten. Dies überrascht nicht, da Rust sowohl hohe Sicherheit gegen Memory Exploits (Buffer Overflow) bietet als auch die Ausführung von Programmcode nicht verlangsamt. Zu schön, um wahr zu sein: Viele Entwickler stehen vor der Herausforderung komplexe Programme vollständig in Rust zu schreiben. Um diesen Entwickler gerecht zu werden, wird aus Kompatibilitätsgründen sogenannter Rust Unsafe Code unterstützt. Dieser erlaubt es dem Entwickler ausgewählte Programmteile in C zu schreiben und diese in den Rust Programmcode einzubinden. Erste Studien weisen darauf hin, dass dieser Mechanismus in vielen Rust Programmen genutzt wird. Nun stellt sich die Frage, wie sicher die Programmteile in der Rust Unsafe Umgebung sind. Glücklicherweise gibt es bereits viele automatisierte Schwachstellenanalyse-Werkzeuge, allen voran das Fuzzing, welches Sicherheitslücken automatisiert aufspürt.

Im Rahmen der PG erforschen wir existierende Fuzzing-Methoden, die sich besonders für den Einsatz in Rust-Programmen eignen. Es wird eine Testing-Umgebung sowie Testsets aus populären und in der PG entwickelten Rust-Programmen erstellt. Diese sollen genutzt werden, um die Effektivität existierender Fuzzing-Methoden zu vergleichen. Den Teilnehmern dieser PG bietet sich die einmalige Gelegenheit sowohl die Programmiersprache Rust als auch den Umgang mit verschiedenen Sicherheitstools (mit Fokus auf Fuzzing-Methoden) zu erlernen. Bei entsprechendem Erfolg soll die entwickelte Testing-Umgebung veröffentlicht werden und in der Zukunft als ein wichtiger Baustein bei der sicheren Entwicklung von Rust Programmen (mit Rust Unsafe Programmteilen) dienen.

Learning Targets:

  • Grundlagen der Programmiersprache Rust insbesondere sicherheitsrelevanter Aspekte
  • Die Benutzung von gängigen Analyseprogrammen für die Erkennung von Bugs
  • Wissenschaftliches Arbeiten und Schreiben