Manchmal ist es sprichwörtlich kinderleicht Linux Sicherheitslücken zu finden. So fanden die spielenden Kinder des Github-Benutzers robo2bobo einen Weg, Linux-Screensaver und Passwortschutz zu umgehen. Solche Zufallsfunde passieren immer mal wieder, aber diese lassen sich automatisiert testen. Wir zeigen Ihnen, was genau passiert ist und was das ganze dem Begriff Fuzzing zu tun hat.
Kinderleichte Linux Sicherheitslücken
Die Entdeckung dieser Linux Sicherheitslücke beginnt mit den spielenden Kindern des Github-Benutzers robo2bobo. Als seine Kinder mit seinem gesperrten Linux-Laptop spielten, tippten diese Wild auf der Tastatur und der virtuellen Bildschirmtastatur herum und auf einmal stürzte der Bildschirmschoner des Laptops ab und ohne die Eingabe seines Passworts war dieser entsperrt.
Das erregte doch die Aufmerksamkeit des Github-Benutzers robo2bobo und dieser meldete das soeben passierte an die Entwickler des Cinamon-Screensaver. Auf den ersten Blick wurde noch nicht ganz klar, was genau passiert war, aber nach einigen Nachforschungen der Entwickler wurde klar, dass der Bildschirmschoner bei der Eingabe des Buchstaben “ē” über die virtuelle Tastatur abstürzt und der Benutzer damit direkt angemeldet am System ist.
In einer Linux Umgebung dient der Bildschirmschoner gleichzeitig zum Schutz vor unberechtigten Zugriff auf einen Rechner. Das bedeutet der Bildschirmschoner übernimmt ebenfalls die Aufgabe des Anmeldebildschirms. Wenn nun eine Möglichkeit gefunden wird diesen Bildschirmschoner zum Absturz zu bringen, wird ebenfalls die Zugangskontrolle umgangen. Daher sind solche Schwachstellen immer sehr kritisch für eine solche Software.
Gezielt Sicherheitslücken identifizieren mittels Fuzzing
Normalerweise finden solche Linux Schwachstellen selten Kinder beim einfachen “herum tippen” auf der Tastatur. Aber wie in unserem Beispiel passiert dies manchmal. Das liegt daran, dass dieses einfache und zufällige Tippen einer wichtigen im Technik zum Auffinden von Sicherheitslücken sehr ähnelt – Dem Fuzzing. Unter Fuzzing versteht man eine Technik, bei der einer Anwendung automatisiert zufällige große Datenmengen zur Verarbeitung gegeben werden. Das Fuzzing Programm überwacht dabei die Ausführung des zu testenden Programms und versucht durch immer neue zufällige Eingaben das Programm zum Absturz zu bringen.
Fuzzing ist einer der wichtigsten Techniken beim Entdecken von Sicherheitslücken in Software, ein prominentes Beispiel welches durch Fuzzing entdeckt wurde war beispielsweise eine Sicherheitslücke in Raptor über die wir bereits berichteten. Durch Fuzzing werden größtenteils Linux Sicherheitslücken entdeckt welche auf Fehlerhaften Speicherzugriffen basieren wie Buffer-Overflows.
Fuzzing von Webseiten
Neben Linux Sicherheitslücken können mit Hilfe von Fuzzing aber auch Webanwendungen auf Schwachstellen hin untersucht werden. Viele der Tools, welche wir bereits vorgestellt haben nutzen Techniken des Fuzzings um Schwachstellen wie SQL-Injections oder Cross-Site-Scripting zu identifizieren. Während der von unseren Pentester:innen durchgeführten Untersuchungen und Penetrationstests werden daher standardmäßig solche Techniken verwendet. Dadurch ermöglicht es Ihnen alle kritischen Komponenten vollumfänglich auf Schwachstellen hinzu untersuchen.