Es ist das Dilemma der digitalen Forensik: Rechner herunterfahren und die Festplatte in Ruhe durchsuchen? Oder am lebenden Objekt forschen und unter Zeitdruck flüchtige Spuren im RAM verfolgen? Besser wäre es, den RAM-Inhalt für spätere Analysen zu konservieren. Der erste Schritt dazu: Rechner aus!
|
Inhalt |
|---|
|
32 | Live-Forensik Forensik muss sich nicht im Labor abspielen, nachdem alles vorbei 38 | Windows-Analyse Ein BKA-Ausbilder erklärt, wie Beamte mit Hilfe von 44 | OCFA für Reihenuntersuchungen Die niederländische Polizei hat mit der Open Computer 46 | File-Carving Foremost, Scalpel & Co. erkennen Datenstrukturen und setzen aus 50 | Fundgrube Flash Flashspeicher und deren Dateisysteme halten prinzipbedingt |
Tatort Serverraum: Der Einbrecher benötigt weder Dietrich noch den Schutz der Nacht. Er kommt und geht übers Internet und sorgt sich nicht um Verhaftung auf frischer Tat. Aber er hinterlässt Spuren! Die zu finden und zu deuten, auch wenn der Angreifer sie verschleiert oder zu löschen versucht, ist in solchen Fällen die dringlichste Aufgabe des Admin und der Strafverfolgungsbehörden.
Das Forensik genannte Fachgebiet hält hierfür Tools bereit, die auch bei ganz banalen Problemen helfen, etwa als Undelete-Ersatz bei versehentlich gelöschten Files. Selbst wenn nur ein Serverdienst verrückt spielt, ohne dass ein Saboteur im Spiel war, empfehlen sich forensische Methoden bei der Aufklärung.
Der forensischen Vielfalt geschuldet widmet sich diese Linux-Magazin-Ausgabe den wichtigsten Aufgaben, vor denen Admins und Privatanwender stehen. Im Vordergrund stehen die Analyse am lebenden Objekt sowie die Untersuchung von Festplatten-Images. Beide Ansätze haben ihre Vor- und Nachteile, zum Beispiel hat bei Image-Analysen der Ertappte keine Chance mehr, seine Spuren zu verwischen. Freilich gehen bei der rabiaten Methode die Inhalte des Hauptspeichers flöten und damit eventuell die einzigen Hinweise auf den Täter.
Der vergessene Weg
Es gibt einen dritten Weg, der zu Unrecht wenig Beachtung findet: Speicheranalyse per RAM-Dump. Die ist nur in der traditionellen Variante so unsicher wie die anderen. Wer sich erst am Rechner anmelden muss, um »/dev/mem« auszulesen und auf einen Datenträger zu kopieren, läuft Gefahr, dass ihn der Eindringling entdeckt und sich augenblicklich zurückzieht. Oder ein Kernel-Rootkit manipuliert das Mem-Device und gaukelt dem Forensiker ein blütenreines System vor. Einem gehackten System ist nicht zu trauen, auch nicht seinem Kernel.
Dennoch implementieren kommerzielle Forensik-Programme eigene Speicheranalyse-Techniken ([1], [2]) und es gibt entsprechende Open-Source-Tools, etwa von Tobias Klein ([3], [4]) oder George M. Garner Jr. [5]. Die sind durchaus sinnvoll, da die meisten Eindringlinge eben doch nicht so versiert vorgehen.
Glücklicherweise existieren moderne Wege, um an den Speicherinhalt zu kommen. Einen gibt die Virtualisierung vor: Knackt ein Angreifer ein Gastsystem und schafft es nicht, aus diesem in den Host auszubrechen, dann hat der Admin leichtes Spiel. Aus dem Host heraus kann er in Ruhe den Speicher des Gastsystems sichern. Zum Beispiel bei Xen mit dem simplen Aufruf »xm save VM1 VM1.chk«. Nach Lust und Gespür kann er das System sogar weiterlaufen lassen und mehrere Snapshots anfertigen.
Flüchtigkeitsfalle
Für nicht virtualisierte Systeme gibt es spezialisierte Hardware-Erweiterungen, die den RAM-Inhalt kopieren [6]. Verblüffenderweise kann man Speicher sogar via Firewire kopieren [7]: Der IEEE-1394-Standard schreibt einen DMA-Zugriff vor (Direct Memory Access), infolge dessen ein fremdes Gerät den kompletten Speicher lesen kann, ohne dass das Betriebssystem involviert wäre.
Den Knüller lieferten Ende Februar aber Forscher der Princeton University zusammen mit einigen Kollegen. Ihnen gelang es, den RAM-Inhalt selbst nach einem Kaltstart des Rechners noch auszulesen [8]. In ihrem Forschungspapier [9] legen sie detailliert dar, wie sie einen Rechner ausschalten, wieder einschalten, den alten Hauptspeicherinhalt auslesen und daraus kryptographische Schlüssel rekonstruieren. Zwar zielt die Princeton-Gruppe auf Angriffstechniken ab, ihr Ansatz eignet sich aber auch für die Forensik.
Für Insider war die Tatsache, dass der Speicherinhalt einen Kaltstart übersteht, nicht überraschend ([10], [11], [12]). Nur genutzt hat dies bisher offenbar kaum jemand. Es ist verblüffend, wie lange die Daten erhalten bleiben. Je nach RAM-Typ überdauern sie einige Sekunden bis mehrere Minuten. Das genügt, um einen Rechner aus- und gleich wieder einzuschalten. Danach darf natürlich kein normales System booten, da dies den Speicher sofort wieder überschreibt.
RAM-Dumper für jeden
Da die Princeton-Gruppe ihre Tools nicht veröffentlicht, schrieb Robert Wesley McGrew kurzerhand ein eigenes Programm. Msramdump [13] nutzt einen simplen USB-Stick als Bootmedium sowie zur Ablage des RAM-Dump. Um dabei möglichst wenig Speicher zu zerstören, lädt bei McGrew der Bootloader Syslinux keinen Kernel, sondern nur ein knapp 3,5 KByte großes COM32-Executable, das den RAM-Inhalt auf den Stick überträgt (Abbildung 1). Der Quelltext des Tools ist nur gut 200 Zeilen lang. Entsprechend simpel ist die Kopierfunktion, sie beschreibt eine eigene Partition, ohne ein Dateisystem zu nutzen. Mit »dd« sind die Daten später schnell in ein File umkopiert.
![Abbildung 1: Das Mini-Bootsystem Msramdump kopiert den kompletten RAM-Inhalt auf den USB-Stick. Selbst nach einem Neustart bleiben Daten vom vorherigen System erhalten. (Quelle: [13])](https://www.linux-magazin.de/wp-content/uploads/2008/05/abb1_jpg-18-300x137.jpg)
Abbildung 1: Das Mini-Bootsystem Msramdump kopiert den kompletten RAM-Inhalt auf den USB-Stick. Selbst nach einem Neustart bleiben Daten vom vorherigen System erhalten. (Quelle: [13])
Da nach dem Wiedereinschalten der RAM seinen Inhalt behält, ist ab diesem Zeitpunkt keine Eile mehr nötig. Es empfiehlt sich, zuerst in die Bios-Einstellungen des Rechners zu gehen und dort den RAM-Test abzuschalten oder, je nach Bios, Quick Boot zu aktivieren. Beim RAM-Test würde das Bios sonst den Speicher überschreiben. Außerdem muss der Rechner vom USB-Device booten.
Wer ganz sicher gehen will, dass er jede RAM-Zelle rettet und das Kopierprogramm nichts überschreibt, sollte das Video der Princeton-Forscher [8] als Handlungsvorlage nutzen. Mit einem simplen Luftdruckspray kühlen sie die RAM-Chips und schaffen es so, den Inhalt über viele Minuten bis Stunden zu konservieren (Abbildung 2). Damit bleibt Zeit, die Chips in einen anderen Rechner einzubauen – zusätzlich zum dort schon vorhandenen RAM. Praxistauglicher ist aber der Ansatz mit dem USB-Stick.
![Abbildung 2: Sieht nach einem Defekt aus, ist aber nur ein tiefgekühlter Speicherchip. In diesem Zustand hält er seine Daten minutenlang auch ohne Stromversorgung. (Quelle: [8])](https://www.linux-magazin.de/wp-content/uploads/2008/05/abb2_jpg-12-300x200.jpg)
Abbildung 2: Sieht nach einem Defekt aus, ist aber nur ein tiefgekühlter Speicherchip. In diesem Zustand hält er seine Daten minutenlang auch ohne Stromversorgung. (Quelle: [8])
Zur vollständigen Daten-Akquisition gehört auch, anschließend den Inhalt der Festplatte in ein Daten-Image umzukopieren, um mit RAM- und Disk-Inhalt eine breite Basis für die anschließende Analyse zu besitzen.
Spurensuche
Je nach Zielsetzung ist beim Untersuchen des RAM-Dump beliebig viel Aufwand nötig. Eine einfache Analyse mit »strings« gibt dem Forensiker vielleicht schon den entscheidenden Hinweis, etwa wenn er den Inhalt einer E-Mail oder einer IRC-Sitzung findet. Sogar die Carving-Tools, die ein eigener Artikel in diesem Heft vorstellt, helfen hier weiter.
Programme, die auch die Struktur des Speichers beachten, sind vor allem für Windows-RAM-Dumps verfügbar, selbst wenn viele unter Linux laufen. Zum Beispiel das PM-Dump-Tool aus Joe Stewarts Truman-Projekt [14], es rekonstruiert aus einem physikalischen Speicherabbild den virtuellen Adressraum. Oder PT-Finder von Andreas Schuster ([15], [16]), der die Prozesstabelle aus einem Dump ermittelt. Auch Harlan Carvey hat für sein Buch “Windows Forensic Analysis” RAM-Analysetools geschrieben [17], Chris Betz entwickelte Memparser [18].
Einen Abstraktionsschritt weiter gehen Tools wie das in Python geschriebene Volatility-Framework [19]. Es erkennt nicht nur die Prozesse, sondern auch deren Sockets und Netzverbindungen, die gelinkten DLLs und die geöffneten Files (Abbildung 3). Außerdem extrahiert es die geladenen Kernelmodule und kümmert sich um das Mapping von virtuellen zu physikalischen Adressen. Leider versteht auch dieses Tool nur Dumps von Windows-Systemen.

Abbildung 3: Die Tools aus dem Volatility-Framework analysieren Windows-Speicherabzüge, zum Beispiel zeigen sie Verbindungen, Sockets, Systemzeit, DLLs, geöffnete Files und vieles mehr.
Vorteil nicht genutzt
Obwohl die Analyse unter Linux deutlich einfacher sein sollte, weil nicht nur die Strukturen vollständig bekannt sind, sondern sich eine Analysesoftware sogar beim Kernelcode bedienen darf, ist entsprechende Software schwer zu finden. Als wohltuende Ausnahme ist die Masters Thesis von Jorge M. Urrea [20] zu nennen, die den RAM-Dump und Swapspace eines Open-Suse-10-Systems analysiert. Im Anhang seiner Arbeit befindet sich auch der Perl-Code, mit dem er seine Analysen durchführte.
Auch Mariusz Burdach beschreibt eine Linux-Analyse [21] und veröffentlicht die Idetect-Tools dazu auf seiner Seite [22] zusammen mit Windows-Analysewerkzeugen wie dem Windows Memory Forensic Toolkit (WMFT).
In Zukunft könnte Fatkit, das Forensic Analysis Toolkit, die Lücke schließen. Es ist laut Homepage [23] stark modularisiert und analysiert sowohl Windows- als auch Linux-Dumps. Dabei zeigt es die Informationen auf verschiedenen Abstraktionsebenen. Leider ist Fatkit derzeit noch nicht für die Allgemeinheit erhältlich, die Entwickler Aaron Walters und Nick L. Petroni Jr. kündigen aber bereits die Features der ersten Version an.
Tools gefragt
Neue Techniken, um zuverlässige RAM-Dumps von gekaperten Systemen zu ziehen, machen Speicheranalysen zunehmend interessant. Leider mangelt es noch an freien Werkzeugen, die nach dem Vorbild der Festplattenanalyse dem Forensiker helfen. Bleibt zu hoffen, dass sich die Situation bessert und die wenigen vorhandenen Tools reifen – damit das Schnüffeln in den RAM-Innereien Spaß macht oder wenigstens Erfolg hat.
|
Infos |
|---|
|
[1] Knttools und Kntlist: [http://www.gmgsystemsinc.com/knttools/] [2] Encase: [http://www.guidancesoftware.com] [3] Process Dumper: [http://www.trapkit.de/research/forensic/pd/] [4] Memory Parser: [http://www.trapkit.de/research/forensic/mmp/] [5] Forensic Acquisition Utilities (FAU): [http://www.gmgsystemsinc.com/fau/] [6] Brian D. Carrier und Joe Grand, “A Hardware-Based Memory Acquisition Procedure for Digital Investigations”: [http://www.digital-evidence.org/papers/tribble-preprint.pdf] [7] Becher, Dornseif und Klein, “FireWire – all your memory are belong to us”: [http://md.hudora.de/presentations/#firewire-cansecwest] [8] Princeton University, Center for Information Technology Policy, RAM-Analyse: [http://citp.princeton.edu/memory/] [9] Halderman, Schoen, Heninger, Clarkson, Paul, Calandrino, Feldman, Appelbaum, Felten, “Lest We Remember – Cold Boot Attacks on Encryption Keys”: [http://citp.princeton.edu/pub/coldboot.pdf] [10] Dan Farmer und Wietse Venema, “Forensic Discovery”: Addison-Wesley 2005: [http://www.porcupine.org/forensics/forensic-discovery/chapter8.html] [11] Peter Gutmann, “Secure Deletion of Data from Magnetic and Solid-State Memory”: [http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html] [12] Peter N. Biddle, “Attack isn\’t news, and there are mitigations”: [http://peternbiddle.wordpress.com/2008/02/22/attack-isnt-news-and-there-are-mitigations/] [13] Msramdmp: [http://mcgrewsecurity.com/projects/msramdmp/] [14] Truman – The Reusable Unknown Malware Analysis Net: [http://www.secureworks.com/research/tools/truman.html] [15] Andreas Schuster, “PTFinder Version 0.3.00 verfügbar”: [http://computer.forensikblog.de/2006/09/ptfinder_0_3_00.html] [16] PTFinder FE: [http://sourceforge.net/project/showfiles.php?group_id=215906] [17] Windows IR/CF Tools: [http://sourceforge.net/projects/windowsir/] [18] Memparser: [http://www.dfrws.org/2005/challenge/memparser.shtml] und [http://sourceforge.net/projects/memparser] [19] Volatility – Volatile memory artifact extraction utility framework: [https://www.volatilesystems.com/default/volatility] [20] Jorge M. Urrea, “An Analysis of Linux RAM Forensics”, Masters Thesis, Naval Postgraduate School Monterey, California: [http://cisr.nps.navy.mil/downloads/theses/06thesis_urrea.pdf] [21] Mariusz Burdach, “Digital forensics of the physical memory”: [http://forensic.seccure.net/pdf/mburdach_digital_forensics_of_physical_memory.pdf] [22] Idetect: [http://forensic.seccure.net] [23] 4tphi Research Laboratories, “Fatkit – The Forensic Analysis ToolKit”: [http://www.4tphi.net/fatkit/] |






