Exploits: Ausnutzung von Sicherheitslücken

Exploits

Computer, Smartphones oder andere IT-Systeme sind ständig der Bedrohung ausgesetzt, dass sie angegriffen und missbräuchlich verwendet werden. Die Angreifer gehen dabei mit verschiedenen Methoden vor, z.B. mit Hilfe von Social Hacking. Eine andere Möglichkeit sind Malware, die gezielt zum Angreifen von IT-Systemen programmiert und in Umlauf gebracht werden.

Jedoch können auch gewöhnliche Programme ein Sicherheitsrisiko darstellen, wenn sie technische Lücken enthalten, die von den Programmierern der Software unbemerkt existieren und von Angreifern ausgenutzt werden können. Das Ausnutzen solcher Sicherheitslücken werden auch Exploits genannt und bedeutet übersetzt Ausnutzen.

Im Gegensatz zu Malware werden Fehlfunktionen und Sicherheitslücken, die für Exploits verwendet werden, nicht gezielt programmiert. Sie entstehen oft durch fehlerhafte Programmierung, das ungünstige Zusammenspiel verschiedener Beteiligter bei der Entwicklung eines Programms, das ungünstige Zusammenspiel verschiedener Hardware und Softwarepakete oder durch die technische Weiterentwicklung. Was heute noch sicher war, kann in einigen Monaten plötzlich eine Sicherheitslücke offenbaren. Von den Angreifern werden Sicherheitslücken z.B. durch die systematische Analyse des Quellcodes eines Programms, durch systematisches Probieren und Testen oder manchmal auch nur durch ein Zufall entdeckt.

Das gefährliche an Exploits ist, dass sie in der Regel nicht bekannt sind und die Angreifer daher solange im Verborgenem operieren können, bis es entdeckt wird. Ist ein Exploit bekannt, stellen die Hersteller von Programmen oder Betriebssystemen zumindest innerhalb des zugesagten Supportzeitraums normalerweise ein Sicherheitsupdate bereit, um die Schwachstelle zu schließen. Ist eine Schwachstelle nach Supportende bekannt, handhaben die Hersteller das unterschiedlich. Manche bieten bei schwerwiegenden Sicherheitslücken aus Kulanz trotzdem eine Aktualisierung an, andere verweisen auf das Supportende und empfehlen den Benutzern eine neue Version bzw. ein anderes Produkt. Es kommt auch vor, dass manche Hersteller gar nicht reagieren. Problematisch ist auch, wenn der Hersteller die Entwicklung eines Produkts eingestellt hat bzw. nicht mehr existiert.

Ausgenutzt werden die Schwachstellen häufig mittels präparierter Dateien, die von den Programmen geöffnet und verarbeitet werden, z.B. durch eine Bilddatei, die vom Bildbetrachtungsprogramm geöffnet wird. So kann ein Angreifer versuchen, das Programm zur Ausführung eines eigenen Codes zu bringen und dadurch z.B. erweiterte Rechte erlangen und weitere schädliche Aktionen durchzuführen. Unterschieden werden Exploits unter anderem wie nachfolgend nach verschiedenen Arten.

Zero-Day Exploits (0 Tage Exploits)

Wird ein Exploit vom Hersteller oder von der Öffentlichkeit nicht oder spät entdeckt, so dass ein oder mehrere Hacker Zeit haben, diese im verborgenen missbräuchlich zu verwenden, betrachtet man das als Zero-Day Exploit. Damit ist gemeint, dass für die Hersteller eines Produkts keine Zeit bzw. 0 Tage Zeit verbleiben, um Gegenmaßnahmen in Form von Sicherheitsupdates oder ähnliches zu treffen. So kann ein Exploit ungehindert für missbräuchliche Zwecke eingesetzt und genutzt werden. Selbst nach der Entdeckung durch die Öffentlichkeit oder den Hersteller betrachtet man diese in der Regel als Zero-Day Exploits, weil die Hersteller in der Regel eine gewisse Zeit benötigen, um eine Schwachstelle zu schließen bzw. den Benutzern die Möglichkeit hierfür anzubieten. Weil keine Abwehrmechanismen existieren, gelten Zero-Day Exploits als besonders gefährlich.

Zero-Day Exploits sind bei Hackern besonders beliebt und sie versuchen diese soweit es geht geheim zu halten. Es kommt auch vor, dass diese zum Teil gegen hohe Summen in Hackerkreisen weitergereicht werden. Es kann auch passieren, dass diese an die Produkthersteller oder sogar an staatliche Stellen gegen Geld angeboten werden. Das muss jedoch nicht zwangsläufig bedeuten, dass danach Abwehrmechanismen entwickelt werden. Denn, z.B. staatliche Stellen haben nicht immer ein Interesse an Abwehrmechanismen gegen Zero-Day Exploits. Sie würden nämlich nach Kenntniserlangung z.B. selbst in die Lage versetzt, im Rahmen der Verbrechensbekämpfung oder ähnliches Angriffe gegen "feindliche Systeme" durchzuführen und da ist die Versuchung da, bestimmte Zero-Day Exploits weiterhin geheim zu halten und den Herstellern nicht mitzuteilen.

In manchen Fällen wird ein Zero-Day Exploit erst am Tage eines großangelegten bzw. aufsehenerregenden Angriffs bekannt. Ein Angriff über ein Zero-Day Exploit wird Zero-Day Attacke genannt. Eine umstrittene Methode, um Zero-Day Exploits aufzuspüren ist, wenn Sicherheitsexperten mit verschiedenen Methoden versuchen, Sicherheitslücken zu entdecken.

Lokale Exploits

Werden Exploits auf dem lokalen Rechner ausgeführt, z.B. über eine Datei, die mit einem Programm geöffnet und verarbeitet wird, nennt man diese lokale Exploits. Kennzeichnend hierfür ist, dass keine weiteren externen Ressourcen benötigt werden, z.B. über das Netzwerk. Lokale Exploits nutzen z.B. die Schwachstellen im Programm oder im Betriebssystem aus, um schädliche Aktionen durchführen zu können. Das kann z.B. über ganz gewöhnliche Bild- oder Textverarbeitungsdateien geschehen.

Remote-Exploits

Exploits können auch über das Internet bzw. Netzwerk zum Einsatz kommen. Dabei werden spezielle Datenströme zu der Software geschickt, die den Internet- oder Netzwerkverkehr verarbeitet. Durch die Verarbeitung der zum Teil manipulierten Datenströme kann die Schwachstelle in der Software ausgenutzt werden. Man nennt diese auch Remote-Exploits.

SQL-Injections

Eine Anwendung arbeitet häufig mit einer SQL-Datenbank zusammen. Beispielsweise werden viele Webseiten im Zusammenspiel mit einer Programmiersprache wie z.B. PHP und einer MySQL-Datenbank erstellt und betrieben. Das ist insofern gefährlich, weil über das Internet im Grunde jeder die Möglichkeit hätte, die SQL-Datenbank zu manipulieren, z.B. über ein Kontaktformular. Dabei können in die Formularfelder z.B. Datenbank-Befehle eingegeben werden, die bei fehlerhafter Verarbeitung die Datenbank manipulieren oder eigentlich geschützte Inhalte wie z.B. Benutzernamen und Passwörter ausgeben können. Das Ausnutzen von Schwachstellen, die SQL-Datenbanken betreffen, werden auch SQL-Injections genannt. Die Datenbank muss dabei nicht unbedingt im Internet stehen. Auch lokal oder über das interne Netzwerk erreichbare SQL-Datenbanken können betroffen sein.

Command-Execution-Exploits

Bei dieser Methode wird versucht, eigenen Code auf dem Zielrechner auszuführen. Das ist zwar nicht ganz so einfach, weil die Angreifer hierfür gute Kenntnisse über Speicherbelegung einer Anwendung haben und den Code exakt platzieren müssen. Dafür ist es jedoch gefährlicher. Wenn es nämlich funktioniert, dann können sie weitgehende Privilegien auf dem Zielsystem erlangen.

Denial of Service-Exploits (DoS-Exploits)

Bei dieser Methode geht es nicht darum, fremde Programmcodes einzuschleusen. DoS-Exploits werden hauptsächlich dafür verwendet, um ein System lahmzulegen, z.B. Server im Internet. Das betreffende System wird dabei mit sehr vielen Anfragen bombardiert, so dass eine weitere Verarbeitung der Anfragen entweder mit erheblicher Verzögerung oder gar nicht geschieht. Die Vorgehensweise ist vergleichbar mit einer Bushaltestelle. Wenn sehr viele Menschen sich zur Bushaltestelle drängeln, ist der Platz irgendwann voll und es gibt für kaum einen Menschen eine Möglichkeit, in den Bus einzusteigen.

Schutz vor Exploits

Da es sich bei Exploits um Ausnutzung von zumindest überwiegend unbekannten Sicherheitslücken handelt, gibt es auf technischer Ebene keinen wirksamen Schutz dagegen. Trotzdem kann man sehr viel tun, um zumindest im Falle eines Missbrauchs den Schaden zu minimieren. Hierfür sollte man sich zunächst einige allgemeine Sicherheitsmaßnahmen individuell erarbeiten. Daneben sollte man Maßnahmen gegen Social Hacking erarbeiten und technische Vorkehrungen zum Schutz vor Malware treffen. Zuletzt sollte man natürlich auch technische Vorkehrungen zum Schutz vor Exploits treffen, womit zwar ein Exploit evtl. nicht verhindert werden kann, die aber dafür sorgen könnten, die Risiken und Schäden zu minimieren. Es sollten auch in den Medien Nachrichten zum Thema beachtet werden, um möglichst schnell reagieren zu können.