Dynamische Quellcode Analyse – Fuzzing

Identifizierung bislang nicht erkannter Sicherheitslücken in einem Target System (Soft-und Hardware/Firmware) mit Fuzzing.

Fuzzing ist ein Verfahren mit dem Vulnerabilities in Soft- und Hardware/Firmware (!) kostengünstig identifiziert werden können. Fuzzing ist auf jede Art Software anwendbar – angefangen von Protokollen bis hin zu Individualsoftware, Standardsoftware wie ERP, CRM, Datenbanksysteme und auch auf unternehmensspezifische Anpassungen an Standardsoftware (Customizing), Web-Applications, Betriebssysteme und auch in Hardware und Embedded Systems anwendbar.

Verfahren

Fuzzing stellt eine halb-automatisierte Methode zur Identifizierung von (mit Angriffen ausnutzbaren) Sicherheitslücken in Software und Hardware/Firmware dar: Tool-gestützte Eingabe von Testdaten in ein Target System (Programm, Firmware) werden verwendet, um unvorhersehbare – im Programmcode unberücksichtigte – Eingabedaten, die eine Anomalie im Programm erzeugen zu erkennen. Die falsche oder unzureichende Verarbeitung dieser (im Programm nicht berücksichtigten) Daten führt zu einem unerwarteten Verhalten (Crash, hoher Verbrauch an Ressourcen wie Rechenzeit, Speicher) des Zielprogramms. Dieses anomale Verhalten des Programms wird mithilfe eines Monitoring-Tools protokolliert, voranalysiert und dargestellt. Durch die Analyse der Monitorergebnisse können falsche Hinweise (False Positives) ausgesondert werden. Sicherheitslücken werden durch Reproduzieren der Anomalie und Erstellen eines Exploits nachgewiesen. Der systematische Ablauf des Fuzzing-Prozesses ist in der Abbildung grafisch dargestellt.

Fuzzing Prozess
Fuzzing Prozess

Erfolge des Fuzzing

Fuzzing wird bereits von großen und kleinen Softwareherstellern mit Erfolg eingesetzt, um die Kosten zur Fehlerbehebung und für Patches nachhaltig zu senken. Die Methode wird gleichermaßen von Anwendern zur Abnahme von Zielsystemen eingesetzt.

Wollen Sie sicher gehen, dass Ihr System vor Angriffen geschützt ist, dann kontaktieren Sie uns!