1 Einleitung
Inhalt
1.1 Motivation für die Thesis
1.2 Eingrenzung des Themas
1.3 Abgrenzung des Themas
1.4 Überblick über die Thesis
1.5 Gestaltung und Form
1.6 Thesis versus Buch
1.1 Motivation für die Thesis
Als Bestandteil des Masterstudiengangs „Digitale Forensik“ der Hochschule Albstadt-Sigmaringen habe ich 2013 im Rahmen einer Hausarbeit im Modul „Reverse Engineering“ ein Windows Binärprogramm analysiert. Dabei waren mir weder der Hochsprachen-Quelltext noch die Dokumentation des analysierten Programms bekannt. Das Programm forderte als Eingabe eine Seriennummer und prüfte diese auf Gültigkeit. Ich habe das Programm mittels IDA1 analysiert und den Prüfalgorithmus für die Seriennummer ermittelt. Des Weiteren habe ich meine Vorgehensweise dokumentiert und die von mir über das Programm gewonnenen Erkenntnisse auf der Grundlage von Assembler-Quelltext erläutert sowie mittels der Fundamental Modeling Concepts (vgl. Knöpfel et al. 2005; Tabeling 2006, S. 253-321) modelliert.
Im Rahmen der Hausarbeit wurden durch mich ca. 170 Zeilen Assemblercode analysiert und dokumentiert. Die zu Grunde liegende Programmdatei war knapp 9 Kilobyte groß und kann somit als „kleines“ Programm bezeichnet werden. Die Funktionsweise des Programms zu verstehen, bewerte ich im Nachgang als beherrschbare Herausforderung. Obwohl beherrschbar, war die Erstellung der Hausarbeit für mich dennoch mit einem verhältnismäßig hohen Aufwand verbunden. Dieser Aufwand ergab sich nicht aus der eigentlichen Analysetätigkeit, sondern vielmehr aus der geforderten Dokumentation der Vorgehensweise und der Ergebnisse sowie dem Anspruch, das mittels Reverse Engineering gewonnene Wissen über das System angemessen zu kommunizieren.
Bei der Hausarbeit hat mir u.a. auch mein Wissen über Softwaresysteme und ihre Modellierung geholfen, welches mir im Rahmen meines Studiums der „Softwaresystemtechnik“ am Hasso-Plattner-Institut der Universität Potsdam insbesondere durch Prof. Dr.-Ing. Siegfried Wendt und Dr.-Ing. Peter Tabeling vermittelt wurde. Speziell bei der Dokumentation und der Modellierung konnte ich hinsichtlich der Anforderungen einige Parallelen zur Softwaretechnik erkennen. Die Hausarbeit hat für mich einige grundsätzliche Fragen aufgeworfen:
- Welche Bedeutung hat Reverse Engineering für die digitale Forensik?
- Welche forensisch relevanten Informationen können mittels Reverse Engineering gewonnen werden?
- Kann Reverse Engineering als Methode der Softwaretechnik unverändert für forensische Zwecke übernommen werden?
- Ist der Aufwand für Dokumentation, Modellierung und Kommunikation in der Praxis gerechtfertigt?
- Wie können Erkenntnisse im Reverse Engineering angemessen modelliert, beschrieben und kommuniziert werden?
- Können etablierte Methoden und Techniken aus der Softwaretechnik und insbesondere aus der Systemmodellierung bei der Modellierung, Beschreibung und Kommunikation helfen?
- Lässt sich eine Verbindung zwischen der Systemtheorie der Softwaretechnik und der Theorie über digitale Spuren herstellen?
Auf Grund meiner beruflichen Tätigkeit2 war mir bekannt, dass durch die deutschen Sicherheitsbehörden in der Praxis bereits Methoden und Techniken des Reverse Engineering für forensische Zwecke (unabhängig von der Schadsoftwareanalyse oder der Umgehung von Sicherheitsmechanismen) eingesetzt werden. Nach meiner persönlichen Einschätzung wird der Bedarf an Reverse Engineering und entsprechend ausgebildeten Spezialisten in den kommenden Jahren zunehmen. Eine theoretische Fundierung des Reverse Engineering innerhalb der digitalen Forensik erscheint mir daher nicht nur aus wissenschaftlicher Sicht, sondern auch für die Strafverfolgungspraxis der deutschen Sicherheitsbehörden relevant. Bei einer groben Sichtung der Fachliteratur stellte ich Folgendes fest:
- Reverse Engineering als eine grundlegende Methode aufzufassen, mittels der forensisch relevante Information über digitale Systeme gewonnen werden können (beispielsweise Erkenntnisse über digitale Spuren), ist nicht verbreitet.
- Innerhalb der digitalen Forensik wird Reverse Engineering derzeit überwiegend als Methode für die Analyse von Schadsoftware und zur Umgehung von Sicherheitsmechanismen eingesetzt.
- In der digitalen Forensik ist die Anwendung von Methoden und Techniken der Systemmodellierung und eine damit einhergehende systemorientierte Sichtweise nicht verbreitet.
Aus den vorgenannten Gründen habe ich mich dazu entschlossen, die Anwendung von Reverse Engineering in der digitalen Forensik unter besonderer Berücksichtigung der Systemmodellierung als Gegenstand meiner Masterthesis zu wählen.
1.2 Eingrenzung des Themas
Unter dem Begriff „Reverse Engineering“ werden üblicherweise Methoden und Techniken zur Analyse von Systemen zusammengefasst. Die Ziele von Reverse Engineering bestehen im Allgemeinen darin, die inneren Strukturen eines Systems und deren wechselseitige Abhängigkeiten zu identifizieren sowie eine Repräsentation des betrachteten Systems in einer anderen Form oder auf einem anderen Abstraktionsniveau zu gewinnen. Innerhalb der Softwaretechnik wird Reverse Engineering überwiegend der Softwarewartung zugerechnet und als Vorstufe zum Reengineering gesehen. Daher wird Reverse Engineering in diesem Anwendungsbereich primär durch die Perspektive eines Ingenieurs bestimmt, der für einen Auftraggeber ein neues System erstellen oder ein bereits bestehendes System modifizieren soll. Die Systemmodellierung stellt dabei entsprechende Methoden, Verfahren und Standards zur Beschreibung und Modellierung von Systemen bereit. Sie hat sich in der Softwaretechnik insbesondere als Hilfsmittel zur Komplexitätsbeherrschung, Dokumentation, Kommunikation und Arbeitsteilung bewährt.
In der digitalen Forensik werden Methoden der Informatik zur gerichtsfesten Sicherung und Auswertung digitaler Beweismittel angewendet. Forensiker greifen dabei in ihrer praktischen Arbeit auch auf Methoden und Techniken aus dem Bereich des Reverse Engineering zurück. Im Gegensatz zur Sichtweise eines konstruierenden Ingenieurs wird dieser Anwendungsbereich durch die Perspektive eines analysierenden Forensikers bestimmt. Dessen Aufgabe besteht in der Regel darin, spezielle forensische Problemstellungen zu lösen bzw. forensische Fragestellungen eines juristisch oder kriminalistisch motivierten Auftraggebers zu beantworten. In Abgrenzung zur Softwaretechnik reichen die Einsatzszenarien für Reverse Engineering hierbei von der Unterstützung der Kryptoanalyse, der Überwindung von Sicherheitsmechanismen und der Schadsoftwareanalyse über die Analyse unbekannter Dateiformate, Datenbankstrukturen und Netzwerkprotokolle bis hin zu umfangreichen Untersuchungen „regulärer“ System- und Anwendungssoftware.
Nach eigenen Erfahrungen ist die praktische Vorgehensweise im Reverse Engineering aktuell dadurch gekennzeichnet, dass forensisch relevante Systeme und Datenstrukturen in der Regel durch einzelne Spezialisten analysiert werden. Eine Kommunikation über Analyseergebnisse mit anderen Spezialisten sowie Außenstehenden ist die Ausnahme. Wenn eine Kommunikation stattfindet, erfolgt diese üblicherweise sehr nahe an der technischen Realisierung (Assemblersprachen und hexadezimale Repräsentationen). Eine systematische und strukturierte Modellierung und Beschreibung findet man selten. In den Anwendungsbereichen Kryptoanalyse, Überwindung von Sicherheitsmechanismen und Schadsoftwareanalyse werden zielgerichtet statische und dynamische Analysemethoden eingesetzt und Systeme häufig als „Whitebox“ untersucht. Bei der Analyse regulärer System- und Anwendungssoftware zur Ermittlung forensisch relevanter digitaler Spuren hingegen dominiert die „Blackbox“-Methodik. In einigen wenigen Anwendungsgebieten, beispielsweise in der Mobilfunk- und Netzwerkforensik, ist bereits vereinzelt ein arbeitsteiliges Vorgehen zwischen einzelnen Spezialisten und auch zwischen verschiedenen Sicherheitsbehörden zu beobachten.
Als eine mögliche Folge der gesellschaftlichen und technologischen Veränderungen ist es nach eigener Bewertung nicht unwahrscheinlich, dass der Bedarf für Reverse Engineering in der digitalen Forensik zunehmen wird. So wird beispielsweise der herkömmliche stationäre Computer mit einer überschaubaren Anzahl von klassischen Anwendungsprogrammen zunehmend durch mobile und smarte Endgeräte mit einer unüberschaubaren Masse an mobilen Anwendungen („Apps“) verdrängt. Dadurch vervielfacht sich die Anzahl der forensisch relevanten Software. Zugleich ist Anwendungssoftware „kleiner“ geworden, die Innovations- und Entwicklungszyklen haben sich verkürzt und die Anzahl der Entwickler erhöht. Auf der anderen Seite ermöglichen die wachsenden Speichergrößen sowie zunehmende Prozessorleistungen und Netzwerkbandbreiten größere und komplexere Systemsoftware sowie die Realisierung komplexer und verteilter Anwendungen.
Die Hersteller von forensischen Werkzeugen können mit diesen Veränderungen sowie der Dynamik nur schwer Schritt halten. In der Folge nehmen die Defizite bei der werkzeuggestützten und automatisierten forensischen Arbeit zu. Die Sicherheitsbehörden versuchen diese Defizite mit eigenem Personal, Fachwissen und einer Arbeitsteilung bei der Analyse forensisch relevanter Systeme und Anwendungen auszugleichen. Die steigende Nachfrage nach sicheren Systemen und Verschlüsselung erhöht die Komplexität und den Aufwand für forensische Analysen zunehmend. Die zuvor beschriebenen Aspekte und Zusammenhänge lassen sich grundsätzlich auch auf den Bereich der Schadsoftwareanalyse übertragen.
Aus der forensischen Perspektive ergeben sich eine Reihe spezieller Anforderungen an das Reverse Engineering. So müssen forensische Erkenntnisse auf einer wissenschaftlichen Vorgehensweise beruhen sowie objektiv nachprüfbar und ggf. auch wiederholbar sein. Dies gilt grundsätzlich auch für Erkenntnisse, die mittels Reverse Engineering gewonnen werden. Des Weiteren muss ein Forensiker in der Lage sein, über seine Analyseerkenntnisse sowohl mit anderen Spezialisten als auch mit seinen Auftraggebern zu kommunizieren. Hierfür bedarf es geeigneter Dokumentations- und Kommunikationsmöglichkeiten.
Die aus den gesellschaftlichen und technologischen Veränderungen resultierenden Herausforderungen für das Reverse Engineering machen zukünftig unter Umständen eine noch intensivere Arbeitsteilung erforderlich. In diesem Fall wäre ein weiterer Anstieg des Aufwandes für Modellierung, Beschreibung und Kommunikation zu erwarten. Erschwerend kommt hinzu, dass im forensischen Kontext häufig sehr wenige Informationen als Ausgangspunkt für eine Analyse vorliegen. So kann in der Regel nicht auf einen kommentierten Quellcode in einer Hochsprache oder Systemdokumentation zurückgegriffen werden.
Mit den aktuellen Ansätzen der Praxis (und hier insbesondere die nur unzureichend ausgeprägten Fähigkeiten zur Modellierung, Beschreibung und Kommunikation) können nach eigener Einschätzung die beschriebenen Herausforderungen langfristig nicht zufriedenstellend bewältigt werden. Die für die Zwecke der Softwaretechnik entwickelten Methoden und Standards der Systemmodellierung könnten entsprechende Lösungsansätze liefern.
Die Hauptthesen der Arbeit werden wie folgt formuliert:
- Innerhalb der digitalen Forensik kann ein Teilgebiet „Forensisches Reverse Engineering“ mit spezifischen Merkmalen abgegrenzt werden.
- Im forensischen Reverse Engineering bestehen besondere Herausforderungen bei der Modellierung, Beschreibung und Kommunikation über Strukturen von programmierten digitalen Systemen.
- Diese Herausforderungen lassen sich durch die Anwendung von Systemmodellierung beherrschen.
Das Ziel der vorliegenden Arbeit besteht darin, entsprechende Beziehungen zwischen Systemmodellierung, Reverse Engineering und digitaler Forensik aufzuzeigen. Des Weiteren sollen charakterisierende Merkmale von forensisch motivierten Reverse Engineering herausgearbeitet werden. Die Abbildung 1.2-1 zeigt schematisch die Einordnung des Themas in eine Struktur der Wissenschaften. Die Teilgebiete, die im Fokus dieser Arbeit stehen, wurden mit grauer Schattierung hervorgehoben.
Abbildung 1.2-1: Einordnung des Themas
1.3 Abgrenzung des Themas
Die Masterthesis ist als theoretische sowie interdisziplinäre Literaturarbeit angelegt. Zu den im Abschnitt 1.1 aufgeworfenen Problem- un...