Ein Exploit nutzt Schwachstellen bei der Softwareprogrammierung für Hackerangriffe oder auch für die Überprüfung des Programms aus. Das Wort kommt vom Englischen to exploit = ausnutzen. Ein Zero-Day-Exploit nutzt solche Sicherheitslücken gleich nach dem Start des Programms aus, wenn es für dieses noch keinen Patch des Herstellers gibt.
Wie kann ein Exploit funktionieren?
Es gibt in Programmen a) Schwachstellen bei der Neuprogrammierung und b) systemische Schwachstellen. Letztere existieren beispielsweise bei den gängigen Home- und Officerechnern, deren sogenannte Von-Neumann-Architektur nicht zwischen den Nutzdaten und dem Programmcode unterscheidet. Diese Architektur schreibt unter anderem bei einem Pufferüberlauf den Angreifercode in dafür nicht gedachte Speicherbereiche. Das erleichtert den Manipulationsversuch. Es gibt noch weitere Möglichkeiten wie Formatstringangriffe. In so einem Fall übergibt das Programm Benutzereingaben ungefiltert an Formatierungsfunktionen. Auch können Hacker oft eigenes Codes ausführen lassen, die ihm Privilegien des angegriffenen Programms via Shell liefern. Exploits lassen sich wie folgt klassifizieren:
- Remote-Exploits
- lokale Exploits
- DoS-Exploits
- SQL-Injection-Exploits
- Command-Execution-Exploits
- Zero-Day-Exploits
Lokale Exploits werden beim Öffnen von scheinbar völlig harmlosen Dateien wie etwa Officedokumenten aktiviert, wenn die Anwendung für diesen Dateityp durch eine unsaubere Verarbeitung eine Sicherheitslücke aufweist. Der Exploit kann sich in einer Excel- oder Worddatei und auch in einem PDF-Dokument verbergen. Er nutzt die Sicherheitslücken im betreffenden Programm aus und erhält damit eine höhere Privilegienstufe. Mit dieser kann er schädlichen Code ins Betriebssystem laden. Die gesamte Aktion heißt Payload (Nutzlast).
Es gibt etliche Exploit-Frameworks wie Metasploit, die ein separates Konfigurieren der Payload ermöglichen, doch sie kann auch im Exploit fest verankert sein. Remote-Exploits werden aus dem Netz mit manipulierten Datenpaketen eingespielt. Sie zielen auf Schwachstellen der Netzwerksoftware. DoS-Exploits lösen einen Denial-of-Service-Angriff aus, überlasten also das System, führen aber keinen fremden Programmcode aus und beinhalten auch keine Privilegieneskalation. Command-Execution-Exploits erlauben dem Angreifer, die Ausführung des Programmcodes auf dem angegriffenen Rechner zu steuern. Diese Exploits gelten als sehr gefährlich, weil sich damit das angegriffene System komplett übernehmen lässt. SQL-Injection-Exploits zielen speziell auf SQL-Datenbanken.
Beispiele für Hackerangriffe mit Exploits
2012 schaltete ein Exploit den Securitymanager von Java ab und konnte danach auf den betroffenen Rechnern beliebige Programme starten. 2014 trat eine Zero-Day-Lücke in MS-Office-Dokumenten nahezu aller Windowsversionen auf. Ebenfalls im Jahr 2014 griffen Hacker mit einem SQL-Injection-Exploit Kundendaten aus dem Playstationnetzwerk von Sony ab. Ebenfalls mit einem SQL-Injection-Exploit wurde das beliebte CMS WordPress im Jahr 2015 angegriffen. Die Sicherheitslücke befand sich im Analytics-Plug-in Slimstat. Rund eine Million Websites weltweit hätten damit von Hackern übernommen werden können. Der tatsächliche Schaden war weitaus geringer. Hacker testen vielfach nur Exploits, um sie gegebenenfalls zu einem späteren Zeitpunkt zu verwenden.
Gefahren durch Zero-Day-Exploits
Zero-Day-Exploits geben den Entwicklern null Tage (zero days) Zeit für einen Sicherheitspatch. Hacker wissen, dass neue Programme anfällig für Schwachstellen sind, weshalb sie gezielt auf Zero-Day-Exploits setzen. Die Gefahr besteht darin, dass die Schwachstelle manchmal erst lange nach diesem ersten Angriff aufgedeckt wird. Die Hacker selbst halten die Zero-Day-Exploits geheim, damit sie lange mit ihnen operieren können. Sie handeln auch untereinander damit oder bieten sie den Softwareentwicklern für hohe Summen an, was praktisch eine Erpressung darstellt.
Mit der zunehmenden Digitalisierung und damit der steigenden Programmvielfalt werden auch Zero-Day-Exploits immer interessanter: Die Preise hierfür haben sich im letzten Jahrzehnt in etwa verzehnfacht. Allerdings nutzt der Staat der Exploits ebenfalls. Der BND kauft offenbar Zero-Day-Exploits an und hört damit SSL-Verschlüsselungen ab. Solche Exploits kosten teilweise 100.000 Dollar. Die Bundesregierung soll dem BND für eine entsprechende Aktion (Codename „Swop“) allein 2015 rund 4,5 Millionen Euro zur Verfügung gestellt haben.
Gegenreaktion der Softwareentwickler
Private Entwicklerfirmen und staatliche Organe suchen seit etwa 2015 sehr gezielt und intensiv selbst nach möglichen Exploits, um die Sicherheitslücken schneller schließen zu können. Sobald sie diese erkannt haben, veröffentlichen die Hersteller Patches, mit denen die eigenen Systeme abgesichert, aber auch die Hackersysteme angegriffen werden. Das ist schon praktischer Cyberwar. Dieser dürfte sich künftig verschärften, weil heute alle modernen Systeme digitalisiert sind und durch Exploits große Gefahren für die Infrastruktur bestehen. Schon 2014 wurde nachgewiesen, dass sich sogar die digitale Steuerung moderner Autos per Exploit übernehmen und sich die Fahrzeuge damit fernsteuern lassen. Schwachstellen für Hackerangriffe fanden sich unter anderem in Infotainmentsystemen.