Software Security Lab
Im Software Security Labor werden Ansätze zur Softwareanalyse und zur präventiven Härtung von Software erforscht. Ziel der erforschten Technologien ist es einerseits, Schwachstellen in Programmen zu finden und zu beheben und andererseits, die Ausnutzung von Schwachstellen durch präventive Sicherheitsmaßnahmen zu verhindern. Zum Aufspüren von Schwachstellen werden u.a. Methoden der statischen Code Analyse eingesetzt, mit einem Fokus auf systemnahe Programmiersprachen. Es werden sowohl speicherunsichere Programmiersprachen wie C und C++, als auch speichersichere Programmiersprachen wie Rust betrachtet. Zudem wird dynamische Softwareanalyse und die Instrumentierung von Code eingesetzt, etwa zum effizientem Fuzzing von Software-APIs. Bei den Technologien zur Software-Härtung liegt der Fokus auf Compiler-basierten Security-Mechanismen, wie z.B. Control Flow Integrity (CFI) oder Memory Safety. Neben der Entwicklung neuer Methoden werden auch bestehende Ansätze aus dem Stand der Forschung evaluiert bezüglich ihrer Praktikabilität und Integrationsfähigkeit in bestehende Systeme.
Testlabor für IoT-Security
Im Testlabor für IoT-Security wird die Software von vernetzten Geräten analysiert mit dem Ziel Bugs zu finden und zu korrigieren. Dabei liegt der Fokus auf Geräten für die i.d.R. nicht der vollständige Source Code verfügbar ist. Im einfachsten Fall werden hierbei externe (von außen erreichbare) Schnittstellen (blackbox) getestet, beispielsweise mit Fuzzing-Tools. Deutlich effizienter und i.d.R. zu bevorzugen ist ein Setup mit Zugriff auf Debugfunktionen des Geräts, um das Verhalten besser analysieren zu können. Ebenfalls zielführend ist die Extraktion der Firmware und die statische sowie dynamische Analyse der Firmware, etwa das (teilweise) Ausführen der Firmware in einer Simulationsumgebung oder einer virtuellen Maschine sowie die Instrumentierung von Teilen der Firmware.
Auswahl Evaluationsgegenstände |
Auswahl Schnittstellen |
Auswahl Domänen |
- IoT Devices
- Embedded Devices mit Linux-Kernel
- Microcontroller-basierte Embedded Devices
- Smartphones und Wearables
- ECUs
|
- Funkschnittstellen
- IP-basierte Kommunikationsschnittstellen
- Backend-Anbindung
|
- Industrie
- Automotive
- SmartHome
- SmartOffice
- Gebäudeautomatisierung
|