2. Juli 2007

Fuzzing

Category: Hacking — Christian @ 21:23

Ich muss mal ein paar Zeilen über Fuzzing schreiben. Wikipedia schreibt dazu nicht ganz zutreffend:

    Fuzzing ist eine spezielle Technik für Software-Tests. Hierfür werden automatisch mit Tools zufällige Daten erzeugt, die über Eingabeschnittstellen eines Programms verarbeitet werden.

Das ist so nicht ganz richtig. Fuzzer sind nicht auf Dateien beschränkt, es gibt natürlich auch Fuzzer für Netzwerkdienste, die beispielsweise durch fehlerhafte oder zufällig erzeugte Datenpakete zum Absturz gebracht werden können. Fuzzer wurden lange Zeitlang kaum beachtet, haben jedoch u.a. durch die Arbeit von HD Moore eine Renaissance erlebt. Auf der Webseite des Month of the Browser Bug sind einige Fuzzer, u.a. AxMan, Hamachi, CSS-die, DOM-Hanoi und MangleMe verlinkt. Insbesondere der ActiveX-Fuzzer AxMan hat sich als sehr wirkungsvoll erwiesen, vermutlich weil die meisten ActiveX-Controls nur auf Funktionalität und nicht in Hinblick auf Sicherheit entwickelt wurde. ActiveX von Microsoft gehört meines Erachtens generell zu den Technologien, die besser nicht entwickelt worden wären.

Das beliebteste Ziel von Fuzzern sind weiterhin offensichtlich Browser, hier gibt es auch die größte Auswahl wie die Seite von HD Moore beweist. Sehr spannend finde ich auch SIP-Fuzzer, mit denen man beispielsweise Telefonanlagen und IP-Telefone sehr gut angreifen kann. Als Fuzzer gegen Webserver gibt es beispielsweise den Spike Proxy oder Wapiti, und kommerzielle Produkte wie beStorm sind natürlich auch nicht weit.

Aus Deutschland gibt es jetzt auch einen Browser-Fuzzer:

JdM (Jacques de Molay, ein großer Name) hat einen neuen Browser-Fuzzer aufgelegt, den BrowserCrashTest Ride the Monkey, aktuell in der Version 0.2 und komplett im Source Code unter der GPL freigegeben. Der Fuzzer ist in Visual Basic programmiert und lässt sich daher nur unter Windows kompilieren. Ich persönlich würde ja eine leichter portierbare Software z.B. in Java bevorzugen. Dafür integriert er Funktionen wie DLL-Injection von iDefense und kann damit recht mächtige Funktionen ausführen. Insgesamt jedoch durchaus ein interessantes Tool.

Ob es ökonomisch Sinn macht, sich mit Browsern zu beschäftigen wage ich jetzt mal zu bezweifeln. Bei Browsern gibt es nur wenige Anbieter (Microsoft IE, Mozilla Firefox, Opera, Konqueror, Safari und ein paar Nischenprodukte), wenn man da Lücken im Browser findet ist das für das Ego sicher gut, lässt sich aber kaum in klingende Münze umwandeln. Viel interessanter finde ich Fuzzer für Dienste oder Protokolle die neu und in vielen Unternehmen eingesetzt werden. Und da stößt man unweigerlich auf Dienste wie VoIP (SIP, SCCP, H.323) mit vielen verschiedenen Telefon- und Anlagenanbietern und immer wieder VPN (IKE, IPSEC, PPTP, HTTPS), das inzwischen überall verbreitet ist. Ich denke, angefangen mit diesen Protokollen ließe sich leicht auch ein kommerziell erfolgreicher Fuzzer entwickeln.

Die Finnen sind da schon auf dem richtigen Weg.