Was versteht man unter einem Exploit?
Juli 22, 2022
Immer wieder sorgen Exploits in verbreiteter Hard- und Software für Aufsehen. Sie sollten sich regelmäßig informieren, ob Ihr Netzwerk von zurzeit im Umlauf befindlichen Exploits betroffen sein könnte.
Der Exploit bezeichnet eine Schwachstelle in einer Software oder in einem Betriebssystem, die für nicht vorgesehene Aktionen ausgenutzt wird. Zumeist verschaffen sich Angreifer damit einen Zugriff oder erhöhte Rechte in einem System. Sowohl Hacker als auch Sicherheitsforscher sind regelmäßig auf der Suche nach ausnutzbaren Schwachstellen. Dabei verfolgen sie unterschiedliche Zielrichtungen. Hacker nutzen die festgestellten Exploits für eigene Zwecke, etwa einen Verkauf in Darknet-Foren. Sicherheitsforscher hingegen teilen die Schwachstelle zumeist dem Hersteller mit und räumen ihm vor der Bekanntmachung eine angemessene Zeit für die Fehlerbehebung ein. Sie profitieren anschließend von ihrem Fund, indem sie nach der Veröffentlichung ihr Renommee steigern.
Für Verantwortliche in Unternehmen spielen beide Varianten eine Rolle. Kursieren Exploits für eingesetzte Software im Internet, gefährdet das die Sicherheit des eigenen Netzwerks. Wenn Hersteller Updates anbieten, die als sicherheitsrelevant eingestuft werden, so beheben sie häufig bereits bekannte Schwachstellen.
Ein paar Begriffserklärungen rund um den Exploit
Beschäftigt man sich mit der Thematik der Exploits, so begegnen einem ein paar Begriffe, deren Bedeutung wir nachfolgend kurz zusammenfassen:
-
Bugs: Sind Fehler in Software. Diese führen zu nicht vorgesehenen Abläufen in Programmen und produzieren in harmloseren Fällen fehlerhafte Ausgaben. Im ungünstigsten Fall kann der Fehler für schadhafte Aktionen ausgenutzt werden.
-
Exploits: Bezeichnen eine ausnutzbare Schwachstelle in einer regulären Software und auch eine Anleitung oder den Programmcode, um dies praktisch durchzuführen. Der Beweis, dass ein Exploit funktioniert, wird als Proof-of-Concept bezeichnet.
-
Viren: Sind eigenständig lauffähige Programme mit schadhaften Funktionen. Diese müssen im Gegensatz zu Exploits erst auf das angegriffene System eingeschleust werden und können auch von Virenscannern erkannt werden.
-
Whitehat-Hacker: Sind Hacker, die Schwachstellen nur finden und darauf hinweisen wollen. Ihnen geht es darum, ihre Fähigkeiten und ihr Ansehen sowie die Sicherheit in Programmen zu verbessern.
-
Blackhat-Hacker: Hierbei handelt es sich oft um Cyber-Kriminelle, die von festgestellten Schwachstellen finanziell profitieren wollen. In manchen Fällen geht es ihnen auch darum, Unternehmen aus politischen oder ideologischen Gründen zu schaden.
-
Bughunter: Befinden sich auf der "Jagd" nach Softwarefehlern. Sie untersuchen Programme entweder im Auftrag der Entwickler oder profitieren von Prämien. Große Unternehmen wie Google und Apple setzen gezielt Preisgelder aus, um Bughunter zu animieren, ihre Software auf Fehler zu testen.
Buffer Overflow - der Klassiker unter den Exploits
Softwareentwickler wissen heutzutage um die Gefahren, die durch fehlerhafte Implementierungen drohen. Viele Programmiersprachen verfügen über Schutzmechanismen für bekannte Angriffsvarianten. Dennoch finden Hacker immer wieder neue Wege, um Programmabläufe zu manipulieren. Ein simpler Exploit, der in dieser Form auf aktuellen Systemen nicht mehr funktioniert, konnte früher durch überlange Eingaben provoziert werden. Dabei machten sich Hacker zwei Umstände zunutze:
- Alle Informationen in Rechnern werden binär verarbeitet. Erst durch die Interpretation der Software erhalten sie ihre Formatierung. So könnte beispielsweise die Ziffernfolge "0100 0001" sowohl den Buchstaben A darstellen, als auch die Zahl 65.
- Rechner arbeiten bei der Befehlsausführung im Prozessor mit einem sogenannten Stapelspeicher (Stack). Dieser wächst von unten nach oben und es werden sowohl Werte als auch Adressen aus dem Arbeitsspeicher dort abgelegt.
In Sprachen wie C müssen Programmierer für jeden Eingabewert den notwendigen Speicherplatz einer Variablen zuvor reservieren. Reservierte der Entwickler beispielsweise Speicher für acht Zeichen, um dort eine Eingabe vom Nutzer abzulegen und prüfte später nicht, ob diese länger als vorgesehenen war, so wurden die Werte im Stack überschrieben, die unmittelbar darunter lagen. Gerade beim Aufruf von Programmfunktionen ist es üblich, dass dort die Rücksprungadresse abgelegt wird, an der später mit der Programmausführung weitergemacht werden soll. Daher führte in einem solchen Fall die überlange Eingabe zu einem Programmabsturz. Entsprach der Binärwert des Überhangs hingegen einer tatsächlich im Arbeitsspeicher vorhandenen Adresse, so setzte der Rechner dort mit der Programmausführung fort. An dieser Stelle platzierte der Hacker zuvor seinen schadhaften Programmcode und bekam so das System unter Kontrolle. Schutzmaßnahmen gegen solche Angriffe sind unter anderem die Randomisierung von Speicheradressen, die es verhindern, dass ein Hacker vorausberechnen kann, wo sein Schadcode abgelegt wird und das Ersetzen von Funktionen, die Eingaben ungeprüfter Länge verarbeiten.
Was Exploits so gefährlich macht
Das große Problem ist, dass Exploits aus eigentlich erwünschter und notwendiger Software ein unkalkulierbares Sicherheitsrisiko machen. Dagegen helfen kein Virenscanner und auch keine sonstigen Vorsichtsmaßnahmen. Zudem arbeiten große Programme heutzutage meist mit Drittanbieter-Modulen, die als Bibliotheken eingebunden werden. Befinden sich darin ausnutzbare Schwachstellen, so gefährdet dies im ungünstigsten Fall gleich unzählige weitere Software-Produkte. So war dies 2021 bei der Java-Bibliothek "Log4J" der Fall, die in etlichen populären Programmen verwendet wird und aus diesem Grund eine Art Erdbeben in der IT-Sicherheitslage verursachte, als ein Exploit veröffentlicht wurde. Direkt nach der Bekanntgabe war für viele Verantwortliche nicht ersichtlich, ob Software im eigenen Unternehmen Log4J nutzte. In vielen Fällen blieb nur die temporäre Verbannung von möglicherweise betroffenen Programmen. Ein weiteres Beispiel war der "Heartbleed-Bug". Bei diesem machte ein Fehler in der Bibliothek OpenSSL Verschlüsselungsprotokolle wie TLS angreifbar, die einen Quasistandard in diesem Bereich darstellen.
Die Sicherheitslage im Blick behalten
Für Verantwortliche in Unternehmen ist es wichtig, die Lage in der IT-Sicherheit im Auge zu behalten. Nur dann können sie umgehend reagieren, wenn eigene Systeme von einem Exploit bedroht sein könnten. Hierfür gibt es mehrere gute Quellen im Netz, wo man sich dazu informieren kann. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) beispielsweise betreibt die Seite des CERT Bund, auf dem über aktuelle Sicherheitslücken informiert wird.
Das BSI unterscheidet dabei Warnung für Exploits in vier Stufen:
- Theoretisch: Ein Fehler, der in Zukunft ausgenutzt werden könnte
- Ausnutzbar: Es existiert mindestens ein Proof-of-Concept für den Bug
- Aktiv: Die Sicherheitslücke wird bereits für schadhafte Aktionen genutzt
- Exploit veröffentlicht: Es kursieren Anleitungen und Software, die das Ausnutzen der Schwachstelle ermöglichen
Maßnahmen zum Schutz vor Exploits
Verantwortliche sollten sich bewusst sein, welches Gefahrenpotential Exploits haben können. Wird eine Schwachstelle bekannt, die das eigene Netzwerk betrifft, ist schnelles Handeln essenziell. Zumindest sollten betroffene Rechner möglichst vom Internet getrennt werden. Aus den genannten Gründen ist es zudem wichtig, dass die gesamte Software auf den eingesetzten Geräten so aktuell wie möglich gehalten wird. Ein Einfallstor kann sich etwa auch in Routern oder IoT-Hardware befinden. Wenn Sie Ihr Netzwerk auf Schwachstellen testen möchten, sollten Sie einen Penetration-Test in Erwägung ziehen. Die Sicherheitsexperten nutzen dabei die aktuellsten Exploits und stellen fest, ob Ihr System ausreichend dagegen gehärtet ist. Sollte dies nicht der Fall sein, erhalten Sie konkrete Hinweise zur Behebung der Schwachstellen.