
Exploit
Ein Exploit ist ein Stück Code oder eine bestimmte Eingabe, die einen Fehler in einem Programm gezielt ausnutzt, um es zu etwas zu bringen, was es nicht tun sollte. Aus einem harmlosen Programmierfehler wird so ein Einfallstor für Angreifer.
Jedes größere Programm enthält Fehler. Meistens merkt man davon nichts, manchmal stürzt eine App ab. Ein Teil dieser Fehler lässt sich aber missbrauchen: Wer die richtige Eingabe schickt, bringt das Programm dazu, etwas völlig anderes zu tun als vorgesehen. Genau diese präparierte Eingabe nennt man einen Exploit. Das englische Wort bedeutet so viel wie « ausnutzen ». Der Fehler selbst heißt Schwachstelle oder Sicherheitslücke, der Exploit ist der passende Schlüssel dazu.
Vom Programmierfehler zum echten Schaden
Eine Sicherheitslücke allein richtet keinen Schaden an. Sie ist nur eine theoretische Möglichkeit. Erst der Exploit macht daraus einen praktischen Angriff. Deshalb unterscheiden Fachleute streng zwischen beidem. Eine Lücke, für die niemand einen funktionierenden Exploit hat, gilt als deutlich weniger dringend.
Besonders gefürchtet sind sogenannte Zero-Day-Exploits. Damit ist gemeint: Der Hersteller kennt die Lücke noch nicht und hatte null Tage Zeit, sie zu schließen. Ein Update existiert also nicht. Solche Exploits werden auf Schwarzmärkten für sechsstellige Summen gehandelt, teils auch von Geheimdiensten aufgekauft.
Der Schaden kann enorm sein. 2017 verbreitete sich die Erpressungssoftware WannaCry über einen Exploit für Windows und legte weltweit Krankenhäuser und Konzerne lahm. Ein Update gab es damals bereits, viele Systeme waren aber nicht aktualisiert. Das zeigt: Der Wettlauf zwischen Angreifern und Verteidigern entscheidet sich oft an der Frage, wie schnell Updates eingespielt werden.
Was beim Ausnutzen einer Lücke passiert
Viele Exploits nutzen aus, dass ein Programm Daten und Befehle nicht sauber trennt. Ein klassisches Beispiel ist der Pufferüberlauf: Ein Programm reserviert Platz für 100 Zeichen, der Angreifer schickt 500. Die überzähligen Zeichen landen in Speicherbereichen, in denen eigentlich Anweisungen stehen. Der Angreifer schreibt dorthin seine eigenen Anweisungen, und der Computer führt sie brav aus.
Ein Vergleich macht das Prinzip greifbar. Stell dir ein Formular vor, in dessen Namensfeld man statt eines Namens eine Anweisung an die Sachbearbeiterin schreibt. Wenn sie den Text nicht als Namen behandelt, sondern als Auftrag befolgt, ist das Formular unsicher. Genau dieser Denkfehler steckt hinter sehr vielen Exploits.
Das Ziel ist fast immer eines von zweien. Entweder erlangt der Angreifer mehr Rechte, als ihm zustehen, etwa Administratorrechte. Oder er bringt fremden Code zur Ausführung auf dem angegriffenen Rechner. Moderne Betriebssysteme wehren sich mit Schutzmechanismen dagegen, zum Beispiel indem sie den Speicher bei jedem Start anders anordnen. Erfolgreiche Angriffe kombinieren deshalb oft mehrere Exploits hintereinander.
Exploits in KI-Systemen und in den Nachrichten
In Meldungen tauchen Exploits regelmäßig auf, wenn Apple, Google oder Microsoft ein Notfall-Update veröffentlichen. Der Hinweis « wird bereits aktiv ausgenutzt » bedeutet dann, dass ein funktionierender Exploit im Umlauf ist. Für Nutzer heißt das schlicht: sofort aktualisieren. Auch der Aktienkurs eines Software-Unternehmens kann leiden, wenn eine schwere Lücke publik wird.
Nicht jeder Exploit wird von Kriminellen geschrieben. Sicherheitsforscher bauen sie absichtlich, um zu beweisen, dass eine Lücke echt ist. Solche Demonstrationen heißen Proof of Concept. Firmen zahlen für solche Meldungen Prämien, sogenannte Bug Bounties. Bei Wettbewerben wie Pwn2Own gibt es hohe Preisgelder für Teams, die aktuelle Software knacken.
Bei KI-Systemen verschiebt sich das Bild. Sprachmodelle lassen sich nicht über Speicherfehler angreifen, sondern über geschickt formulierte Texte. Man spricht dann von Prompt Injection: Eine versteckte Anweisung in einer Webseite oder E-Mail bringt den KI-Assistenten dazu, Regeln zu ignorieren. Das Grundprinzip ist dasselbe wie beim klassischen Exploit. Wieder trennt ein System Daten und Befehle nicht sauber genug.