Auch bei der Strafverfolgung spielen virtuelle Systeme eine immer größere Rolle. Wie Ermittler mit KVM vermeintlich unlesbare Images von beschlagnahmten Servern auswerten, zeigt dieser Artikel.
Die Verdächtigen dürften sich die Augen gerieben haben, als ihr komplettes Netzwerk aus Servern auf einmal nicht mehr erreichbar war. Deutsche Strafverfolger hatten zugeschlagen und mehr als 50 Rechner, Root-Server und virtuelle Instanzen im Bundesgebiet sowie zahlreiche Maschinen im europäischen Ausland beschlagnahmt.
Mittlerweile stellen derartige Erfolge die fast schon typische Ausbeute einer einzelnen Aktion gegen Internetkriminalität dar. Aber mit Finden, Abschalten und Beschlagnahme ist es für die Beamten noch lange nicht getan, die wirkliche Arbeit der Beweissicherung fängt jetzt erst an.
Jäger und Gejagte
Es geht um Rechner, Server, virtuelle Server, Festplatten, Partitionen, Images und ganze Raid-Verbünde, oft handelt es sich bei den auszuwertenden Servern nur um Xen- oder Vserver-Instanzen, oder ein in flagranti erwischter Straftäter hat gar temporär ein virtuelles Betriebssystem in einer Datei benutzt, das er nach der Straftat durch einfaches Wipen des Image entsorgen wollte. Den Ermittlern stehen in all diesen Fällen die Dateisysteme der beteiligten Rechner für die Auswertung zur Verfügung, in der Regel erstellen sie dafür zunächst Images der beschlagnahmten Server, mounten diese in einem speziellen Linux-Auswertesystem und lassen dann ellenlange Grep- und Find-Befehle laufen.
Immer häufiger nutzen die Ermittler aber auch Virtualisierungsumgebungen, zum Beispiel um die Fallauswertung vor Gericht besser darlegen zu können, indem sie von sichergestellter Hardware Images erstellen und diese vor dem Richter in einer Virtualisierung booten.
VMware zusammen mit Live View ([1], Abbildung 1) ist dabei immer noch die am häufigsten eingesetzte Lösung, wegen des unkomplizierten Handlings tritt allerdings immer häufiger KVM an deren Stelle, vor allem wenn die Anzahl der sichergestellten Systeme zweistellig wird. Dabei gibt in der Regel nicht die Plattform (Windows oder Linux) den Ausschlag, sondern der Umgang mit den Filesystem-Images und virtuellen Instanzen.

Abbildung 1: VMware Live View ist immer noch eines der Standardtools der Forensiker, allerdings läuft ihm KVM gerade den Rang ab.
Wenn wie in dem eingangs beschriebenen Fall mehr als 50 Festplatten von Root-Servern auszuwerten sind, erweist sich die gefällige Mausklick-Oberfläche von VMware als ungeeignet, sie erfordert wahre Klick-Orgien. Auch wenn es nicht an Stabilität und Zuverlässigkeit mangelt, verlangen Massenauswertungen andere Ansätze. Dabei punktet KVM mit seinen einfachen, skriptbaren Kommandos.
Warum KVM?
Auch die Installation gestaltet sich vergleichsweise einfach, die beiden Pakete »kvm« und »libvirt-bin« aus dem Debian-Repository genügen völlig. KVM erweist sich gerade beim Umgang mit unterschiedlichen Plattformen als sehr tolerant, bietet direkten 64-Bit-Support out of the Box für AMD-Prozessoren (AM2-Sockel) und nutzt damit die kompletten 8 GByte Arbeitsspeicher des typischen Debian-Lenny-Auswertesystems der Forensiker.
Die Kernel Virtual Machine glänzt darüber hinaus durch sehr gute Performance, ausgezeichnete Netzwerkunterstützung und die Fähigkeit, USB-Geräte individuell an Gastsysteme durchzureichen. Zahlreiche Systeme automatisiert und gleichzeitig auf einer Maschine zu analysieren gelingt deutlich unkomplizierter als mit anderen Virtualisierungen.
Doch bevor KVM zum Einsatz kommt, muss der Ermittler Images erstellen oder aufbereiten, eine bisweilen langwierige und aufwändige Arbeit. Bei vorgefundenen virtuellen Hosts gestaltet sich das unterschiedlich kompliziert: Xen arbeitet standardmäßig mit Partitions-Images, die sich mit einfachen Kopierbefehlen auf die forensische Auswerteplattform übertragen lassen. Der Admin kann sie zwar ohne Umweg mounten, aber nur ein Xen-Host erweckt die virtuellen Maschinen wieder zum Leben.
Konvertieren
Auch VMware-Images lassen sich problemlos konvertieren, die Entwickler des KVM-Vorgängers Qemu stellen dafür das Umwandlungsprogramm »qemu-img« zur Verfügung. Das Tool liest nämlich nicht nur KVM- oder Raw-Images, sondern auch VMware- und sogar Microsofts Virtual-PC-Dateien. Die Anweisung »qemu-img convert image.vhd -O raw image.dd« verwandelt ein Virtual-PC-Image in ein Raw-File, das KVM problemlos starten kann, unabhängig vom enthaltenen Betriebssystem.
Weil aber VMware in der Default-Einstellung die Images in kleinere Dateien aufteilt, sollte der Admin außerdem die einzelnen Dateien noch mit Hilfe des »vmware-diskmanager« zu einem File zusammenführen, bevor er die Umwandlung startet.
Problematisch stellt sich die Situation dagegen mit den Instanzen von Vserver dar, weil diese ja den Kernel des Hostsystems verwenden und alle Dateien im Filesystem des Gastgebers versammelt sind. Die forensische Auswertung vollzieht sich hier folglich eher auf einer logischen als auf der physikalischen Ebene. Sie basiert im Wesentlichen auf den Informationen über Pfade und Dateien aus »/etc/«. Der größte Nachteil für Admins und Datenschützer erweist sich dabei für Ermittler häufig als praktisch: Vserver-Instanzen sind untereinander gegen Sniffen und Ausspionieren schlecht geschützt, das Datensammeln ist leicht.
Liegt dagegen ein nicht virtualisierter echter Server vor, muss der Ermittler eigens ein Image erstellen. Das folgende Beispiel zeigt das typische Vorgehen anhand eines sichergestellten Linux-Rechners, hier eines Suse-Groupware-Servers. Im Rahmen einer Beweissicherung hat es der Forensiker dabei schwerer als der normale Administrator, denn er darf den Inhalt der Original-Dateisysteme keinesfalls verändern.
Beim Erstellen des Abbilds einer sichergestellten Maschine kommt häufig die Linux-Live-Distribution GRML [2] zum Einsatz. Das mitgelieferte Ewfacquire aus dem freien Libewf-Paket [3] ermöglicht es dem Ermittler, pro sichergestellter Maschine ein Image im unter Forensikern verbreiteten Expert Witness Compression Format (EWF, [4]) zu erstellen. Die freie Libewf, von Forensikern lange erwartet, stammt von den niederländischen Strafverfolgungsbehörden und erweitert den Open-Source-Werkzeugkasten endlich um eine freie Alternative zu teurer kommerzieller Software.
Ewfacquire aus der Libewf
Weil Ewfacquire auch mit dem Raid-1-Verbund des Mailservers umgehen kann, hat es in diesem Fall zusätzlich einen technischen Vorsprung und erhält deshalb in vielen Fällen den Vorzug gegenüber den gängigen proprietären Programmen. Mit GRML erkennt das Live-System sogar den Hardware-Raid-Controller beim Booten automatisch und führt die Daten von mehreren Raid-Platten in ein Image zusammen. Das sichert der Ermittler in der Regel auf USB-Datenträger.
Jetzt gilt es, das gespeicherte Image read-only zu mounten, auszuwerten und später eine Kopie davon per KVM in einer virtuellen Umgebung zu starten, um die forensische Live-Auswertung zu ermöglichen. Im Normalfall bindet »mount-ewf« [5] das EWF-Image fehlerfrei ein:
# mount-ewf -o ro mailserver.E01 /mnt Using libewf-20080820. Tested with libewf-20080501.
Der Inhalt von »/mnt« lautet jetzt beispielsweise:
-r--r--r-- 1 root root 40020664320 1. Jan 1970 mailserver -r--r--r-- 1 root root 287 1. Jan 1970 mailserver.txt
Hier findet sich eine Datei namens »mailserver«, die wahrscheinlich das oder die Dateisysteme des gesicherten Systems enthält. Jetzt kann der Admin mit einem weiteren Mount-Befehl die Root-Partition aus der Datei »mailserver« einbinden oder sie KVM direkt zur Verfügung stellen.
Bekannte Probleme
Allerdings macht bei diesem Fall ein bekanntes Problem den Ermittlern zu schaffen. Admins kennen das: Systeme, auf denen einmal Windows installiert war, besitzen manchmal fehlerhafte Partitionstabellen. Die Maschinen können zwar booten, weil Linux die Tabelle richtig interpretiert, ein Mounten der Images mit dem auf FUSE basierenden Python-Programm Mount-ewf ist aber nicht möglich, da die CHS-Werte im ersten Sektor der Festplatte schlicht und einfach falsch sind. Benutzer, die USB-Sticks oder Speicherkarten unter Windows eingerichtet haben und diese dann unter Linux partitionieren wollten, können ein Lied von derartigen Problemen singen.
Genau das passiert hier, als der Mount-Befehl auf die Datei »mailserver« mit der vermeintlichen Root-Partition die Mitarbeit verweigert. Dann gibt ein »fdisk -lu mailserver« immer Aufschluss über die Ursache des Problems (Listing 1). Die CHS- und LBA-Werte der Partition 2 für die physische und logische Zuordnung stimmen offensichtlich nicht überein, deshalb scheitert auch der sich zunächst anbietende Versuch, mit
losetup -o $((899640*512)) -r /dev/loop0 mailserver
die Partition über einen Offset zu mounten. Dieser Weg führt aber offensichtlich nicht weiter.
|
Listing 1: Fehlerhafte |
|---|
01 # fdisk -lu mailserver 02 Device Boot Start End Blocks Id System 03 mailserver1 63 899639 449788+ 82 Linux swap/Solaris 04 mailserver2 * 899640 78156224 38628292+ 83 Linux 05 Partition 2 has different physical/logical endings: 06 phys=(1023, 254, 63) logical=(4864, 254, 63) |
Zugriff aufs System
Auch wenn das Image so nicht mountbar ist, kann der Ermittler auf dem Umweg über eine Virtualisierung wie KVM dennoch auf das System zugreifen. In der Regel ist dafür allerdings zunächst ein zeitaufwändiger Umweg notwendig. Der Fahnder muss die ».E0x«-Files von Ewfacquire in ein handliches Raw-Image konvertieren.
Zwar können Tools wie der Marktführer Encase [6] oder das Open-Source-Produkt Sleuthkit [7] auch mit den EWF-Dateien arbeiten, sie scheitern aber alle am häufig verwendeten XFS-Dateisystem, das sich gerade auf Webservern aufgrund seine guten Performance großer Beliebtheit erfreut.
An der Konvertierung führt in solchen Fällen kein Weg vorbei, als Werkzeug kommt seit Jahren unter Windows der kostenlose FTK-Imager ([8], Abbildung 2), unter Linux das relativ junge Kommando »ewfexport« aus dem Libewf-Paket (Abbildung 3) zum Einsatz. Beide Tools liefern am Ende ein DD-Image (»mailserver.dd«), das sich direkt mit KVM verwenden lässt.

Abbildung 2: Images von virtuellen Hosts umwandeln, das erledigt der FTK-Imager bequem und zuverlässig, aber leider nur als – immerhin kostenlose – Windows-Version.

Abbildung 3: Das Open-Source Tool Ewfexport aus dem Libewf-Paket wandelt Images aus dem Expert Witness Format (EWF) in Raw-Images um, die KVM direkt booten kann.
KVM als Retter
So können Ermittler und Admins dank der Virtualisierung auf Dateisysteme zugreifen, auf die ihnen Mount den Zugriff verweigert. Auch wenn die Partitionstabelle darauf unvollständig ist, wird der Linux-Kernel beim Start die fehlerhaften CHS- und LBA-Werte korrigieren. Das System kann starten, zumindest ist davon auszugehen, wenn das System früher auch problemlos gebootet hat. Höchste Zeit also, dies zu testen und das Image unter KVM zu starten.
Der Befehl ist einfach und lautet »kvm mailserver.dd«. Das Suse-Bootmenü öffnet sich im KVM-Fenster und startet das Gastsystem. Gegen Ende des Bootvorgangs meldet sich jedoch der Netzwerk-Daemon mit der Fehlermeldung, dass er die MAC-Adresse »00:0d:87:29:63:88« nicht zuordnen kann. Eigentlich ein ganz normaler Vorgang, da KVM die physikalische Netzwerkkarte des Originalsystems gegen eine virtuelle (RTL 8139) ausgetauscht hat. Diese Netzwerkkarte hat natürlich eine andere MAC-Adresse, sie braucht aber zuerst überhaupt eine Verbindung zum Hostsystem.
Virtuelles Netz
Das Netzwerk soll nicht im NAT-Modus, sondern als Brücke arbeiten, vielleicht ist ja später ein Austausch von Daten mit anderen KVM-Hosts notwendig. Bei einem Debian-Hostsystem steht die Bridge-Konfiguration in »/etc/network/interfaces«. Nach der Einrichtung der Brücke braucht die KVM-Instanz einen Neustart. Diesmal übergibt der Benutzer im Kommandozeilenaufruf zusätzliche Argumente:
kvm -m 2048 -net nic -net tap mailserver.dd
Der Parameter »-m 2048« weist dem virtuellen Server satte 2 GByte Arbeitsspeicher zu, bei 8 GByte Gesamtspeicher im Auswertesystem ist das leicht zu verkraften. Hier zeigt sich eine der großen Stärken von Linux auf moderner Hardware: Gerade die Kombination der AMD-64-Bit-CPUs mit dem schlanken und performanten Debian-System lassen die Windows-Konkurrenz (hier bleibt nur der Griff zu Vista oder Server 2008) neidisch werden. Die Redmonder Betriebssysteme genehmigen sich selbst schon einen deutlich größeren Teil der Ressourcen, vor allem Arbeitsspeicher. Das Debian-Team leistet hier hervorragende Arbeit.
MAC-Adresse korrigieren
Wieder bootet das virtuelle System, allerdings hat sich an der Fehlermeldung bezüglich einer erwarteten MAC-Adresse »00:0d:87:29:63:88« noch nichts geändert. Ein Blick in die KVM-Manpage liefert umgehend eine Lösung: Der Ermittler darf eine beliebige MAC-Adresse per Kommandozeile übergeben:
kvm -m 2048 -net nic,macaddr=00:0d:87:29:63:88 -net tap mailserver.dd
Die virtuelle Realtek-Netzwerkkarte hat jetzt erfolgreich die Kontrolle über das Netzwerk übernommen.
Nun steht die nächste Hürde an: Der Ermittler steht vor verschlossenen Toren. Welches Passwort benötigt Root? Vom Beschuldigten sind diesbezüglich verständlicherweise keine Information zu erwarten. Für einen erfahrenen Admin ist das kein Problem, der Forensiker muss aber zusätzlich darauf achten, das Beweismittel nicht zu verändern. Beim vorliegenden Image handelt es sich ja bereits um eine Kopie, nach einem Schreibzugriff könnte der Ermittler das Image jederzeit neu erstellen, was aber wieder mit erheblichem Zeitaufwand verbunden wäre. Deshalb wählt er einen anderen Weg: Zunächst will er alle Dateien unter Erhalt der Zeitstempel extrahieren. Dazu darf allerdings das Gastsystem nicht starten.
Und wieder GRML
Wieder kommt die Live-Distribution GRML ins Spiel, dieses Mal in einer virtuellen KVM-Umgebung, wo ihr folgender Befehl die sichergestellte virtuelle Festplatte und das CD-ROM-Laufwerk schon beim Bootvorgang übergibt:
kvm -m 2048 -net nic -net tap -cdrom /dev/cdrom -boot d mailserver.dd
Die Option »-cdrom /dev/cdrom« mountet die eingelegte CD, »-boot d« leitet den Bootvorgang auf CD-ROM um. Anstelle von »/dev/cdrom« kann auch ein ISO-Image herhalten.
Wenig überraschend startet auch mit diesem KVM-Aufruf ein Linux-System, aber dieses Mal ist es GRML. In der Instanz lautet der erste Befehl »fdisk -lu«. Er zeigt eine virtuelle Festplatte mit »hda5« als Root-Partition. Ein forensisch geeigneter Mount-Befehl lautet jetzt:
mount -o ro,noatime,noexec /dev/hda5 /mnt
Damit ist der Read-only-Zugang auf das Dateisystem sichergestellt. Jetzt helfen wieder FUSE und SSHfs die Daten zum Host-PC des Ermittlers zu übertragen:
sshfs 192.168.0.2:/media/case /mailserver/mnt
Nach dem zeitraubenden Kopieren befinden sich nun die Daten auf der Auswertestation des Ermittlers, was ohne Virtualisierung nicht möglich gewesen wäre.
Live-Zugriff mit USB
Zu guter Letzt kommt nochmals KVM ins Spiel, denn jetzt geht es an die Auswertung des laufenden Systems. Der Ermittler mountet das Raw-Image, aber jetzt mit Schreibzugriff. Dann testet er die üblichen Verfahren zum Zurücksetzen des Root-Kennworts.
- Er entfernt das »X« in der Zeile für
»root« in der Datei »/etc/passwd«. - Auch ein Chroot in das gemountete Verzeichnis mit einem
anschließendem Passwort-Reset bietet sich an. - Oder der Admin bootet das System mit Varianten von
»init=/bin/bash«.
Im Normalfall greift eine der genannten Maßnahmen und ermöglicht den Zugang in das virtuelle System. Die Ausgabe typischer forensischer Netzwerkbefehle wie »netstat -an« oder »lsof -i -n -P« sichert der Ermittler ebenso wie die Informationen über die letzten Zugriffe auf das System mit dem »last«-Befehl. Die Sicherung könnte wieder wie zuvor per SSHfs erfolgen, denkbar wäre aber auch eine USB-Festplatte am Gastsystem.
Auch das kann KVM, aber hier ist etwas Vorarbeit nötig: Vor dem Start holt der Admin die USB-Device-ID mit »lsusb«:
# lsusb Bus 002 Device 008: ID 13fe:1d00 Kingston Technology Company Inc. DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive
Nun weist er diese Gerätenummer dem Gastsystem zu:
kvm -m 2048 -net nic -net tap -usb -usbdevice:host: 13fe:1d00 mailserver.dd
Und schon steht der USB-Stick in der virtuellen Maschine zur Verfügung.
Eine wertvolle Alternative
KVM als Virtualisierung hilft Ermittlern genauso wie normalen Admins in vielen Fällen, wenn der Zugriff auf Images versperrt scheint. Wenn etwa eine fehlerhafte Partitionstabelle das Mounten verhindert, startet das Betriebssystem im Image mit KVM meist trotzdem. Zusammen mit einer Live-CD, Netzwerkzugriff oder einem USB-Stick stehen dann der Auswertung und dem Zugriff auf die Daten keine Steine mehr im Weg.
Weil dabei ausschließlich Befehlszeilentools zum Einsatz kommen, sind auch Skripte denkbar, die automatisiert Images umwandeln, mounten, eine Virtualisierung darauf starten und diese über SSH nach vorgegebenen Kriterien durchsuchen. 24 Stunden Laufzeit sind dabei allerdings keine Seltenheit.
|
Infos |
|---|
|
[1] VMware Live View: [http://liveview.sourceforge.net] [2] GRML: [http://grml.org] [3] Libewf: [http://www.uitwisselplatform.nl] [4] EWF-Format: [http://www.uitwisselplatform.nl/docman/index.php?group_id=53&selected_doc_group_id=85&language_id=1] [5] Mount-ewf: [http://www.uitwisselplatform.nl/forum/forum.php?forum_id=392] [6] Encase: [http://www.guidancesoftware.com] [7] Sleuthkit: [http://www.sleuthkit.org] [8] FTK-Imager: [http://www.accessdata.com/downloads.html] |





