In Software wie der des Internetbrowsers Mozilla Firefox können sich an etlichen Stellen Fehler einschleichen. Die Meisten davon werden dem Nutzer nie auffallen, doch sie könnten die Sicherheitslücke sein, die Hacker für ihre Angriffe nutzen. Informatiker und Hobby-Programmierer machen sich auf die Suche nach solchen Bugs, tragen zur Verbesserung der Software bei und ernten oft einen Finderlohn.
Eine Million US-Dollar. So viel hat Mozilla, die Firma hinter dem Internetbrowser Firefox, seit Mitte 2010 als Finderlohn für Fehler und Sicherheitslücken in ihren Produkten gezahlt. In der Mozilla Hall of Fame stehen die Namen der Fehlerjäger, die sich mit ihrem Fund einen Teil dieser Summe verdient haben.
Zwischen 3,000 und 7.500 US-Dollar sind für den Entdecker drin, wenn er sich mit seinem Fund direkt an Mozilla wendet. Und das Unternehmen ist nicht das einzige, das sogenannte Bug Bounties ausschreibt.
Auch viele andere Firmen ermutigen Nutzer zur Fehlersuche in ihren Programmen und locken erfolgreiche Entdecker mit Geld und Prestige. Beim Blick auf die Höhe des Finderlohns überrascht es kaum, dass sich Bug Hunting zu einem neuen Job-Profil entwickelt.
Ob als Nebenverdienst im Studium, fest im Team oder als Freier allein auf der Pirsch: Die Fehlerjagd lohnt sich für Ego, Lebenslauf und Brieftasche. Eine globale Schnitzeljagd mit der nie enden wollenden Ressource “Fehler”.
Curd Becker: Fehlerjäger
„Fehler lassen sich bei der Softwareentwicklung einfach nicht vermeiden. Je komplexer ein Programm, desto wahrscheinlicher ist es, dass sich Bugs einschleichen“, sagt Curd Becker. Er ist 24 Jahre alt und studiert Informatik im Bachelor und Master – parallel.
Seit sechs Jahren arbeitet er als Administrator am Lehrstuhl für Softwaretechnik der Uni des Saarlandes und hat nebenbei fleißig Veranstaltungen und Seminare besucht. Was ihm jetzt noch zum Abschluss seines Informatikstudiums fehlt sind die Bachelor- und Masterarbeit. Seit knapp zwei Jahren arbeitet Curd außerdem im CISPA, dem Zentrum für IT-Sicherheit, an dem neben der Uni auch das Max-Planck-Institut beteiligt ist.
Derzeit beschäftigen sich Curd und seine Kollegen dort mit einer Fehlerjagd in Telefonen. „Den meisten Menschen ist nicht klar, dass so ein Telefon nichts anderes ist als ein Computer. Wir können hier genauso nach Fehlern und Sicherheitslücken suchen wie bei einem PC-Programm.“
Ausgesucht hat sich Curd für seine Jagd nicht irgendein Telefon: Das Modell steht unter anderem auf dem Schreibtisch von US-Präsident Donald Trump, ist beliebte Requisite bei Serien wie Dr. House und wird oft in Krankenhäusern und bei der Feuerwehr genutzt. Ein Fehler, der aus Versehen oder durch den gezielten Angriff das Telefon zu einer Wanze machen könnte oder die Kommunikation gänzlich lahmlegt, ist deshalb besonders kritisch.
Weil die Fehlerjagd bei komplexen Programmen sehr zeitaufwendig werden kann, werben Unternehmen sogar ihre Kunden zum Mithelfen an. „Die Betreiber haben ja auch selbst das Interesse, ihr Produkt zu verbessern und es sicherer zu machen“, sagt Curd Becker. „Das Geld ist eine Motivation, damit neuentdeckte Fehler möglichst schnell gemeldet werden.“
Wie man einen Fehler fängt
Ein Jäger weiß von einem Waldstück seines Landes nicht, ob dort ein Tier lebt. Dennoch vermutet er es und er will es fangen. Weil er nicht weiß, ob das Tier ein Bär oder eine Maus oder etwas anderes ist, kauft er jeden Tag im Laden eine andere Falle und legt sie aus. Wenn in dem Waldstück ein Tier lebt, wird eine der Fallen die Richtige sein und es einfangen.
Stark vereinfacht kann man sagen, dass ein Fehlerjäger ähnlich vorgeht, wenn er ein Programm nach Lücken durchsucht: Er testet solange verschiedene Befehlskombinationen in einem bestimmten Bereich, bis er damit auf einen Fehler stößt und das Programm zum Abstürzen bringt.
Curd durchsucht kein Land, sondern ein Telefon. Das Waldstück sind bei ihm dessen Netzwerkprotokolle, die wichtig für den Datenaustausch der Geräte sind. Doch Curd hat etwas mehr Hightech für seine Jagd im Gepäck:
Das Programm XMLMate ist ein Fehlerfallen-Generator, der nicht nur weiß, in welchem Dateiformat er die Falle verpacken muss. Er merkt sich außerdem das Ergebnis der letzten Versuche, gibt es an Curd weiter und bezieht es beim Bau der nächsten Falle mit ein.
So ähnlich, wie der Jäger nicht zweimal hintereinander eine Mausefalle auslegen würde, wenn sie beim ersten Mal leer geblieben ist, versucht XMLMate den gleichen Trick nicht ein zweites mal an der selben Stelle. Außerdem umschifft das Programm Stellen, bei denen es bereits einen Fehler gefunden hat.
Ausgelegt werden die Fehlerfallen dann von einem anderen Programm, dem Peach Fuzzer. Der Begriff Fuzzing steht in der Informatik für das Testen auf Fehler und Sicherheitslücken. Es ist eine übliche Methode bei der Fehlerjagd, bei der das Programm solange mit Zufallskombinationen aus Code gefüttert wird, bis eine davon einen Fehler auslöst.
Die intelligente Fehlersuche
„Wir wollten möglichst dahin kommen, die Protokolle schneller zu durchsuchen und den Prozess weitgehend zu automatisieren“, sagt Fehlerjäger Curd Becker. „Deshalb haben wir den Peach Fuzzer mit dem XMLMate kombiniert und so ergänzt.“ Die Kombinationen, die der Peach Fuzzer als Fehlerfallen auslegt, sind damit nicht mehr zufällig. Der XMLMate passt sie den vorangegangenen Testergebnissen an und kann Curds Suche so um Einiges verkürzen.
Die Telefone sind Testobjekte dieses Werkzeugkastens, sind vielleicht nur der Anfang. „Mein Ziel ist eigentlich, dass unsere Vorgehensweise auch in anderen Programmen und nicht nur für Netzwerkprotokolle eingesetzt werden kann.“ Einige Fehler haben die Informatikforscher so schon finden können, verheerende Sicherheitslücken waren noch nicht dabei. Die würde die Arbeitsgruppe dann aber direkt an den Telefonhersteller melden.
Doch selbst, wenn sie keine weiteren Fehler mehr finden sollten: Genug Stoff für seine Bachelor- und Masterarbeit hat Curd Becker wohl schon jetzt zusammen.
Titelbild: Christiaan Colen/Flickr (unter Verwendung der “Creative Commons”-Lizenz)