
Exploit-Entwicklung
Exploit-Entwicklung bezeichnet die Arbeit, aus einem Programmierfehler in einer Software ein funktionierendes Angriffswerkzeug zu bauen. Sie ist zugleich das Handwerk von Kriminellen und ein anerkannter Teil professioneller IT-Sicherheitsprüfungen.
Jedes größere Computerprogramm enthält Fehler. Manche dieser Fehler sind harmlos, andere lassen sich missbrauchen: Ein Angreifer bringt das Programm dazu, etwas zu tun, was seine Entwickler nie vorgesehen haben. Ein solcher ausnutzbarer Fehler heißt Schwachstelle. Ein Exploit ist das fertige Stück Code, das genau diese Schwachstelle zuverlässig auslöst. Exploit-Entwicklung ist die Arbeit dazwischen: aus dem Wissen über einen Fehler ein funktionierendes Werkzeug bauen. Das ist selten in einer Stunde erledigt, sondern oft Wochen mühsamer Detailarbeit.
Warum ein Fehler allein noch kein Angriff ist
Zwischen „da stimmt etwas nicht“ und „ich kontrolliere diesen Computer“ liegt eine große Lücke. Ein Programm kann bei einer bestimmten Eingabe abstürzen. Ein Absturz ist ärgerlich, aber für einen Angreifer erst einmal wertlos. Interessant wird es, wenn er den Absturz so steuern kann, dass stattdessen sein eigener Code läuft. Genau diese Steuerung ist die eigentliche Leistung der Exploit-Entwicklung.
Deshalb wird bei der Bewertung von Sicherheitslücken hart unterschieden. Eine theoretische Schwachstelle beunruhigt Hersteller mäßig. Sobald ein funktionierender Exploit existiert und öffentlich kursiert, ändert sich die Lage sofort. Dann können auch Leute die Lücke nutzen, die sie selbst nie hätten finden können. Sicherheitsfirmen sprechen dann von einem „weaponized exploit“, einem waffenfähigen Exploit.
Wirtschaftlich ist das Feld erstaunlich groß. Es gibt Firmen, die Exploits für hohe Summen an Behörden und Geheimdienste verkaufen. Für eine Kette von Lücken, mit der man ein aktuelles Smartphone ohne Zutun des Besitzers übernehmen kann, wurden schon Beträge im Millionenbereich genannt. Gleichzeitig zahlen Hersteller wie Google oder Apple Prämien an Forscher, die ihnen Lücken melden. Dieselbe Fähigkeit lässt sich also legal oder kriminell einsetzen.
Vom Absturz zur Kontrolle über das Programm
Am Anfang steht meist das Suchen. Ein verbreitetes Verfahren heißt Fuzzing: Ein Testprogramm wirft millionenfach zufällig veränderte Eingaben gegen die Software und protokolliert, wann sie abstürzt. Jeder Absturz ist ein Hinweis auf eine mögliche Schwachstelle. Anschließend analysiert der Entwickler, was im Speicher des Computers dabei genau schiefgelaufen ist.
Ein klassisches Muster ist der Pufferüberlauf. Ein Programm reserviert Platz für hundert Zeichen, bekommt aber tausend geliefert und schreibt sie trotzdem hin. Die überzähligen Zeichen landen in Speicherbereichen, die anderen Zwecken dienen. Dort steht unter anderem, an welcher Stelle das Programm nach dem aktuellen Arbeitsschritt weiterarbeiten soll. Wer diese Stelle überschreibt, bestimmt den weiteren Ablauf. Man kann es sich wie ein Formular vorstellen, bei dem man über das Feld hinausschreibt und dabei die Anweisung im Nachbarfeld überklebt.
Moderne Systeme wehren sich allerdings. Speicherbereiche werden bei jedem Start an zufällige Adressen gelegt, damit der Angreifer nicht weiß, wohin er zielen muss. Andere Bereiche sind als „nicht ausführbar“ markiert. Ein großer Teil der heutigen Exploit-Entwicklung besteht darum aus dem Umgehen dieser Schutzmechanismen. Oft braucht es mehrere Lücken hintereinander, eine sogenannte Exploit-Kette: die erste verrät Speicheradressen, die zweite erlaubt das Ausführen von Code, die dritte verschafft Administratorrechte.
Zwischen Bug-Bounty-Programmen und Schlagzeilen
In den Nachrichten taucht das Thema meist unter dem Stichwort Zero-Day auf. So heißt eine Lücke, die ausgenutzt wird, bevor der Hersteller ein Update bereitstellen konnte. Auch Berichte über Spähsoftware auf den Handys von Journalisten gehören hierher. Dahinter steckt fast immer eine aufwendig entwickelte Exploit-Kette.
Legal begegnet einem das Handwerk in Bug-Bounty-Programmen und bei Penetrationstests. Dabei beauftragt ein Unternehmen Fachleute, die eigenen Systeme anzugreifen, um Schwachstellen vor den Kriminellen zu finden. Wichtig ist die Grenze: Solche Tests sind nur mit ausdrücklicher Erlaubnis des Betreibers zulässig. Ohne Erlaubnis ist schon der Versuch in Deutschland strafbar.
Ein verbreiteter Irrtum ist, Exploit-Entwicklung habe etwas mit dem Erraten von Passwörtern zu tun. Das ist ein völlig anderes Vorgehen. Hier geht es um Fehler im Programmcode selbst, nicht um schwache Zugangsdaten. Neu ist, dass KI-Modelle beim Aufspüren solcher Fehler helfen. Sicherheitsforscher setzen sie zur Codeanalyse ein, Angreifer vermutlich ebenso.