Optimization of Fuzzing Entry Point Selection (Bachelor Thesis, Ongoing)

Author

Flurin Baumann

Description

Fuzzing ist eine äusserst effektive Methode zur Aufdeckung von Schwachstellen in Software. Die Effizienz dieser Technik hängt jedoch massgeblich von der Wahl geeigneter Einstiegspunkte ab. Gegenwärtig erfolgt die Auswahl dieser Einstiegspunkte hauptsächlich manuell, was zeitaufwendig und fehleranfällig sein kann.

Das Hauptziel dieses Projekts ist die Entwicklung von Metriken und Visualisierungstechniken, um den Prozess der Auswahl von Fuzzing-Einstiegspunkten zu optimieren und zu automatisieren. Durch die Bereitstellung von aussagekräftigen Daten und intuitiven visuellen Darstellungen soll es Sicherheitsforschern und Entwicklern ermöglicht werden, effizienter und präziser geeignete Einstiegspunkte für Fuzzing-Analysen zu identifizieren.

Das Projekt umfasst mehrere Schritte, um Fuzzing-Einstiegspunkten zu finden. Zunächst wird mittels angr ein detaillierter Control Flow Graph (CFG) der zu analysierenden Software erstellt, der als Grundlage für die weitere Untersuchung dient. Zur effizienten Verarbeitung und Speicherung des CFG kommen z.B. NetworkX sowie eine Datenbank oder ein Filestorage-System zum Einsatz. Die Analyse des CFG fokussiert sich auf die Identifizierung von "Root"-Funktionen und die Bewertung potenzieller Einstiegspunkte anhand verschiedener Kriterien wie Speicheroperationen, Komplexität und Erreichbarkeit. Darauf aufbauend werden quantitative Metriken entwickelt, die die Eignung von Funktionen für das Fuzzing bewerten. Abschliessend wird eine browserbasierte Benutzeroberfläche implementiert, die eine interaktive Visualisierung des CFG ermöglicht, inklusive Zoom-Funktionen und farblicher Hervorhebungen zur schnellen Einschätzung geeigneter Einstiegspunkte.

Start / End Dates

2014/10/21 - 2025/02/20

Supervisors