Programmierung und Betrieb eines Rechners lassen sich nicht unterscheiden
Für das Verständnis eines Exploits ist es nach Dulliens Ansicht auch wichtig, die grundlegende Beziehung zwischen von der CPU verarbeiteten Daten und den Instruktionen eines Programmes zu sehen. Denn jedes Programm ist auf eingegebene Daten angewiesen, die dann zu Problemen führen können - etwa, wenn ein Kontaktformular Namen entgegennimmt, diese aber nicht korrekt um möglicherweise enthaltene Befehle bereinigt und damit zum Beispiel die Ausführung von Code ermöglicht.
Letztlich sei ein Programm aus Sicht eines Angreifers nur ein Datenstrom, mit dem eine Interaktion möglich ist, erklärt Dullien. Tatsächlich muss ein Exploit immer lokale Begebenheiten eines Rechners aufnehmen, um einen erfolgreichen Angriff durchführen zu können. Ein Angreifer würde also letztlich mit den bereitgestellten Daten in die Programmierung eines Computers eingreifen.
Ein Angreifer muss seine Attacke vorbereiten - in den meisten Szenarien ist es zum Beispiel notwendig, Daten in den Speicher zu schreiben, um sie dann im Falle eines Angriffs nutzen zu können. Dies ist zum Beispiel für einen Angriff notwendig, der auf einen Bitflip bei Rowhammer folgt.
Nachdem der Angriff vorbereitet ist, wird ein "weird state" ausgelöst. Zu diesem Zeitpunkt operiert der Computer also nicht mehr so wie vorgesehen. Ausgehend von einer oder mehreren Veränderungen der Instruktionen verändert sich das nachfolgende Verhalten im Zusammenspiel von Hardware und Software. Dies ist, was Dullien dann als "weird machine" beschreibt. Durch die in einem Exploit vorhandenen Instruktionen "programmiert" der Angreifer diesen Computer dann für weitere Aktionen.
Ein Exploit stellt formalisierte Sicherheitsannahmen in Frage
Ein Exploit ist nach Ansicht von Dullien also eine Kombination aus einer erfolgreichen Vorbereitung des Rechners, dem Setup, der Initialisierung, bei der ein "weird state" ausgelöst wird und der danach folgenden Veränderung des Systems durch den Exploit-Code. Die Kombination all dieser Dinge könne dann dazu führen, dass formal definierte Sicherheitsannahmen eines Programms verletzt werden.
Ein solchermaßen formalisiertes Nachdenken über IT-Sicherheit und die Sicherheit konkreter Systeme bezeichnet Dullien als wichtigen Schritt für die Ausbildung und für die Gestaltung formaler Sicherheitsanforderungen an Software. Denn nur über ein solches Modell sei es überhaupt möglich, Annahmen zu treffen, ob ein bestimmtes System durch einen Exploit angegriffen werden kann oder eben nicht.
Denn das Denken über IT-Sicherheit sei häufig davon geprägt, Mitigationen für bestimmte definierte Probleme vorzuschlagen - also kleinere Fixes oder Workarounds, die ein Problem aber letztlich nicht lösen. So kann die Verwendung von Address Space Layout Randomization (ASLR) zwar dabei helfen, die Ausnutzung von Speicherfehlern im Heapspeicher zu erschweren - ist aber kein vollständiger Schutz. Außerdem würden durch neue Mitigationen häufig auch neue Komplexitäten in den Code eingebaut, was dann wiederum zu Fehlern führen könnte.
Auch ist es laut Dullien in der Vergangenheit immer wieder zu Missverständnissen oder unterschiedlichen Bewertungen gekommen. Intel habe zum Beispiel Rowhammer zunächst nicht als Sicherheitsproblem eingestuft, sondern nur als Problem der Zuverlässigkeit.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Hacker: Was ist eigentlich ein Exploit? |
- 1
- 2
Sorry, jetzt erst gesehen. Du beharrst also weiterhin auf deiner imperativen Sichtweise...
Manchmal denk' ich echt, Golem ist für Schüler gemacht.
Da liegt dein Fehler Es heißt "IT-News für Profis" und nicht "IT-News für IT-Profis" Auch...
Danke, Sie haben es verstanden :)
Hier steht wirklich nichts.