Zu den Möglichkeiten forensischer Untersuchungen in IaaS-Cloud-Umgebungen Andreas Kolb 1,2 Christoph Wegener 1 Dominik Birk 3 1 Ruhr-Universität Bochum, Horst Görtz Institut für IT-Sicherheit 2 PricewaterhouseCoopers AG 3 Cloud-Investigation.com 19. Februar 2013
Zum Hintergrund ein Fallbeispiel aus den USA: IT-Infrastruktur eines Cloud-Anbieters wurde von Kriminellen genutzt Obwohl dem Cloud-Anbieter weder eine Mitschuld, noch ein Fehlverhalten vorgeworfen wurde, beschlagnahmte das FBI alle Server samt der darauf enthaltenen Daten und alle Backups des Unternehmens Entsprechend musste der Cloud-Anbieter den Betrieb einstellen, was ihm und völlig unbeteiligten Kunden enormen wirtschaftlichen Schaden zufügte
Überblick Cloud Computing Besonderheiten der Cloud-Forensik Beispiel OpenStack Übertragbarkeit Lösungsansätze Fazit
Cloud Computing
Generisches Cloud-Modell (IaaS) Cloud-Modell nach Sempolinski und Thain (IaaS) Front-End Image- Archive Netzwerk- Dienste Cloud Controller Computing Node: VM 1 VM 2... Hypervisor Betriebssystem Hardware... Computing Node: VM 1 VM 2... Hypervisor Betriebssystem Hardware
Besonderheiten der Cloud-Forensik
Eine Cloud kann als System aus zwei Schichten betrachtet werden: Infrastrukturebene: Cloud-Framework Netzwerk Physische Server und deren Betriebssysteme...
Eine Cloud kann als System aus zwei Schichten betrachtet werden: Infrastrukturebene: Cloud-Framework Netzwerk Physische Server und deren Betriebssysteme... Virtuelle Ebene: Wird von der Infrastrukturebene erzeugt VMs Speicherdienste Benutzerschnittstellen (z.b. Webinterface)
Virtuelle Ebene Besonderheiten der Cloud-Forensik Virtuelle Ebene
Virtuelle Ebene Virtuelle Ebene Kein direkter Zugriff auf die Infrastrukturebene:
Virtuelle Ebene Virtuelle Ebene Kein direkter Zugriff auf die Infrastrukturebene: Kein Zugriff auf beendete virtuelle Maschinen Beweissicherung nur in laufender VM selbst durchführbar Risiko: Durch Beweissicherung werden Daten verändert
Virtuelle Ebene Virtuelle Ebene Kein direkter Zugriff auf die Infrastrukturebene: Kein Zugriff auf beendete virtuelle Maschinen Beweissicherung nur in laufender VM selbst durchführbar Risiko: Durch Beweissicherung werden Daten verändert Infrastrukturebene kann kompromittiert sein: Angriffe aus Infrastrukturebene nicht aufklärbar Beweissicherung ist Manipulationen aus der Infrastrukturebene ausgesetzt
Infrastrukturebene Besonderheiten der Cloud-Forensik Infrastrukturebene
Infrastrukturebene Bestimmung der Hardware Grundvoraussetzung, um eine forensische Untersuchung beginnen zu können Problem: Cloud-Infrastrukturen können aus mehreren Zehntausend Servern bestehen Wie lassen sich gesuchte physische Server einer bestimmten virtuellen Ressource oder eines Anwenders bestimmen?
Infrastrukturebene Sichern des Speichers VM1: VM2: Virtueller Speicher Pseudo-physischer Speicher Physischer Speicher Doppelte Fragmentierung
Infrastrukturebene Sichern des Speichers Snapshot einer VM statt Memorydump des Nodes?
Infrastrukturebene Sichern des Speichers Snapshot einer VM statt Memorydump des Nodes? Keine doppelte Fragmentierung Es wird kein Speicher unbeteiligter VMs gesichert Keine zusätzliche Software notwendig Aber: Speicher beendeter VMs kann nicht gesichert werden Unklar: Enthält ein Snapshot auch den freien Speicher einer VM?
Infrastrukturebene Sichern des Speichers Snapshot einer VM statt Memorydump des Nodes? Keine doppelte Fragmentierung Es wird kein Speicher unbeteiligter VMs gesichert Keine zusätzliche Software notwendig Aber: Speicher beendeter VMs kann nicht gesichert werden Unklar: Enthält ein Snapshot auch den freien Speicher einer VM? Live-Migration zur Isolation von VMs vor einer forensischen Untersuchung?
Infrastrukturebene Sichern virtueller Festplatten Falls virtuelle Festplatte noch nicht gelöscht: Welches Datenformat besitzt sie? Kann sie auch außerhalb des Hypervisors ausgelesen werden?
Infrastrukturebene Sichern virtueller Festplatten Falls virtuelle Festplatte bereits gelöscht ist: Wiederherstellung möglich? Carving (Content-basiert) Metadaten-basiert
Infrastrukturebene Sichern virtueller Festplatten Falls virtuelle Festplatte bereits gelöscht ist: Wiederherstellung möglich? Carving (Content-basiert) Metadaten-basiert Wiederherstellung einzelner Dateien aus einer gelöschten virtuellen Festplatte möglich?
Infrastrukturebene Sichern virtueller Festplatten Falls virtuelle Festplatte bereits gelöscht ist: Wiederherstellung möglich? Carving (Content-basiert) Metadaten-basiert Wiederherstellung einzelner Dateien aus einer gelöschten virtuellen Festplatte möglich? Problem: Daten werden schneller überschrieben: Start einer VM überschreibt Daten Durch Speicherkonsolidierung weniger ungenutzter Speicher Problem: Zuordnung wiederhergestellter Daten
Infrastrukturebene Virtuelle Festplatten Doppelte Fragmentierung: Datei Betriebssystem-Ebene??? D 1 D 2? D 3 D 4?? Virtuelle Festplatte??? D 1 D 2? D 3? D 4? Physische Festplatte Zusätzliche Fragmentierung
Infrastrukturebene Virtuelle Festplatten Zerteilte Blöcke: D 1 Datei D 2 Betriebssystem-Ebene Datei? D 1? D 2? Virtuelle Festplatte?? D 11 D 12?? D 21 D 22?? Physische Festplatte (Blöcke der virtuellen Festplatte größer als die der physischen) Zusätzliche Fragmentierung
Infrastrukturebene Virtuelle Festplatten Verschmolzene Blöcke: Datei Betriebssystem-Ebene??? D 1 D 2? D 3 D 4?? Virtuelle Festplatte??? D 1 D 2? D 3 D 4?? Physische Festplatte (Blöcke der virtuellen Festplatte kleiner als die der physischen) Dateianfang u.u. nicht mehr am Blockanfang Fragmente verschiedener Dateien in einem Block
Beispiel OpenStack
Einführung OpenStack Beispiel OpenStack Einführung OpenStack
Einführung OpenStack Einführung Cloud-Framework, mit dem sich Cloud-Infrastrukturen gemäß des Service-Modells IaaS aufbauen lassen Schnittstellen-kompatibel zu Amazons EC2/S3 Im Jahr 2010 von Rackspace und der NASA ins Leben gerufen Mittlerweile 150 Unternehmen beteiligt; darunter Microsoft, Dell, Intel, Hewlett Packard und Yahoo Dell und HP bieten bereits Cloud-Dienste auf Basis von OpenStack an die Deutsche Telekom hat dies angekündigt
Einführung OpenStack Client OS-API Amazon S3-API HTTP OS-API Amazon EC2-API OS-API Dashboard Nova-API Network Scheduler Keystone Queue Volume Swift Proxy Glance API Compute DB Account Container Object Glance Registry Hypervisor DB DB DB DB VM... VM Swift Glance Nova
Ergebnisse der Versuche Beispiel OpenStack Ergebnisse der Versuche
Ergebnisse der Versuche Bestimmung der Hardware Keystone (Cloud Controller) und Dashboard (Webinterface): Server allgemein bekannt
Ergebnisse der Versuche Bestimmung der Hardware Keystone (Cloud Controller) und Dashboard (Webinterface): Server allgemein bekannt Nova (Virtualisierung): Server aller Nova-Komponenten können direkt abgefragt werden (Feature) Alle jemals gestarteten VM können aus der Datenbank ausgelesen werden Migrationen können über Log-Files nachvollzogen werden
Ergebnisse der Versuche Bestimmung der Hardware Swift (Speicherdienst): Storage-Nodes aller gespeicherten Daten können direkt abgefragt werden (Feature) Zuordnung von gespeicherten Daten zu Storage-Nodes erfolgt über Hashtables
Ergebnisse der Versuche Bestimmung der Hardware Swift (Speicherdienst): Storage-Nodes aller gespeicherten Daten können direkt abgefragt werden (Feature) Zuordnung von gespeicherten Daten zu Storage-Nodes erfolgt über Hashtables Kein Verzeichnis vorhandener Entitäten, sondern Berechnungsvorschrift Werden im Storage-Cluster Festplatten entfernt oder hinzugefügt, ändert sich die Zuordnung: Gespeicherte Daten werden auf andere Storage-Nodes verschoben
Ergebnisse der Versuche Bestimmung der Hardware Swift (Speicherdienst): Storage-Nodes aller gespeicherten Daten können direkt abgefragt werden (Feature) Zuordnung von gespeicherten Daten zu Storage-Nodes erfolgt über Hashtables Kein Verzeichnis vorhandener Entitäten, sondern Berechnungsvorschrift Werden im Storage-Cluster Festplatten entfernt oder hinzugefügt, ändert sich die Zuordnung: Gespeicherte Daten werden auf andere Storage-Nodes verschoben Sind gesuchte Daten bereits gelöscht, werden u.u. falsche Storage-Nodes ermittelt
Ergebnisse der Versuche Auslesen virtueller Festplatten Virtuelle Festplatte besteht aus zwei Dateien: Base-Image (Datenformat: raw): VM-Vorlage, die u.a. das Betriebsystem enthält Root-Disk (Datenformat: qcow2): Speichert Änderungen am Base-Image (Dateigröße wächst)
Ergebnisse der Versuche Auslesen virtueller Festplatten Virtuelle Festplatte besteht aus zwei Dateien: Base-Image (Datenformat: raw): VM-Vorlage, die u.a. das Betriebsystem enthält Root-Disk (Datenformat: qcow2): Speichert Änderungen am Base-Image (Dateigröße wächst) Auslesen möglich Hash-Werte beweisen, dass korrektes Auslesen möglich ist
Ergebnisse der Versuche Wiederherstellung gelöschter virtueller Festplatten Per Carving: Virtuelle Festplatte beginnen mit den immer gleichen Bytes Wachstum der Root-Disk hat starke Fragmentierung zur Folge: Durchschnittliche Fragmentgröße von 670 KB (10 MB bei Eucalyptus mit statischer virtueller Festplatte) Problem beim Carving
Ergebnisse der Versuche Wiederherstellung gelöschter virtueller Festplatten Per Carving: Virtuelle Festplatte beginnen mit den immer gleichen Bytes Wachstum der Root-Disk hat starke Fragmentierung zur Folge: Durchschnittliche Fragmentgröße von 670 KB (10 MB bei Eucalyptus mit statischer virtueller Festplatte) Problem beim Carving Metadaten-basiert: Kein spezielles Cloud-Problem Bei ext3 nicht möglich
Ergebnisse der Versuche Wiederherstellung einzelner Dateien auf gelöschten virtuellen Festplatten Grundsätzlich möglich: Dateien auf virtuellen Festplatten werden transparent gespeichert
Ergebnisse der Versuche Wiederherstellung einzelner Dateien auf gelöschten virtuellen Festplatten Grundsätzlich möglich: Dateien auf virtuellen Festplatten werden transparent gespeichert Grundsätzliche Probleme: Fragmentierung Zuordnung zu einer virtuellen Festplatte i.a. nicht möglich Daten werden schneller überschrieben
Ergebnisse der Versuche Daten in Swift Objects werden direkt als Datei gespeichert Container, Accounts und alle Metadaten in dedizierten SQLite-Datenbanken Metadaten gelöschter Entitäten bleiben teilweise erhalten Wiederherstellung gelöschter Objects technisch machbar, Zuordnung schwierig
Ergebnisse der Versuche Snapshots (1) (2) (3) (4) (5)?????????????? S S S S S S S??? S S S S S S S??? S Freier Speicher der VM Belegter Speicher der VM Freier Speicher des Nodes Belegter Speicher des Nodes 1. Reboot eines Nodes
Ergebnisse der Versuche Snapshots (1) (2) (3) (4) (5)?????????????? S S S S S S S??? S S S S S S S??? S Freier Speicher der VM Belegter Speicher der VM Freier Speicher des Nodes Belegter Speicher des Nodes 1. Reboot eines Nodes 2. Eine VM wird gestartet
Ergebnisse der Versuche Snapshots (1) (2) (3) (4) (5)?????????????? S S S S S S S??? S S S S S S S??? S Freier Speicher der VM Belegter Speicher der VM Freier Speicher des Nodes Belegter Speicher des Nodes 1. Reboot eines Nodes 2. Eine VM wird gestartet 3. In der VM wird eine Software gestartet, die den freien Speicher mit einem Test-String beschreibt
Ergebnisse der Versuche Snapshots (1) (2) (3) (4) (5)?????????????? S S S S S S S??? S S S S S S S??? S Freier Speicher der VM Belegter Speicher der VM Freier Speicher des Nodes Belegter Speicher des Nodes 1. Reboot eines Nodes 2. Eine VM wird gestartet 3. In der VM wird eine Software gestartet, die den freien Speicher mit einem Test-String beschreibt 4. Software wird beendet, der beschriebene Speicher damit wieder freigegeben
Ergebnisse der Versuche Snapshots (1) (2) (3) (4) (5)?????????????? S S S S S S S??? S S S S S S S??? S Freier Speicher der VM Belegter Speicher der VM Freier Speicher des Nodes Belegter Speicher des Nodes 1. Reboot eines Nodes 2. Eine VM wird gestartet 3. In der VM wird eine Software gestartet, die den freien Speicher mit einem Test-String beschreibt 4. Software wird beendet, der beschriebene Speicher damit wieder freigegeben 5. Über den Hypervisor wird der Speicher der VM ausgegeben
Ergebnisse der Versuche Snapshots (1) (2) (3) (4) (5)?????????????? S S S S S S S??? S S S S S S S??? S Freier Speicher der VM Belegter Speicher der VM Freier Speicher des Nodes Belegter Speicher des Nodes Ergebnis: Es wird weniger Speicher ausgegeben als zuvor in der VM belegt war Der ausgegebene Speicher kann nicht den gesamten Speicher der VM enthalten
Ergebnisse der Versuche Live-Migration Analoges Vorgehen, aber: Kein Snapshot Stattdessen: VM wird migriert, auf Quell- und Ziel Node wird anschließend gleichzeitig ein Memorydump erstellt
Ergebnisse der Versuche Live-Migration Analoges Vorgehen, aber: Kein Snapshot Stattdessen: VM wird migriert, auf Quell- und Ziel Node wird anschließend gleichzeitig ein Memorydump erstellt Ergebnis: VM belegt auf dem Ziel-Node noch ca. ein Drittel des Speichers, den sie auf dem Quell-Node belegt hat Test-String ist 9 Mal im Speicher des Ziel-Nodes aber über 100 Mal im Speicher des Quell-Nodes vorhanden Bei der Live-Migration gehen Daten verloren
Übertragbarkeit
Weitere Cloud-Frameworks Weitere Cloud-Frameworks Untersucht wurden außerdem die Cloud-Frameworks: Eucalyptus (ausführlich, analog zu OpenStack) OpenNebula, Nimbus (auf Basis der Dokumentationen)
Weitere Cloud-Frameworks Weitere Cloud-Frameworks Untersucht wurden außerdem die Cloud-Frameworks: Eucalyptus (ausführlich, analog zu OpenStack) OpenNebula, Nimbus (auf Basis der Dokumentationen) Wichtige Gemeinsamkeit: Kein Cloud-Framework virtualisiert selbst, alle steuern einen vorhandenen Hypervisor: KVM XEN (vsphere, Hyper-V)
VM aktiv: Gesuchte Daten noch nicht gelöscht a) VM aktiv: Gesuchte Daten noch nicht gelöscht Bestimmung der Hardware: Vermutlich unproblematisch: Informationen werden in SQL-Datenbanken gespeichert Speicher: Snapshots können alle genannten Hypervisor erstellen Aber: Unvollständige Snapshots mindestens bei KVM/virsh
VM aktiv: Gesuchte Daten noch nicht gelöscht a) VM aktiv: Gesuchte Daten noch nicht gelöscht Virtuelle Festplatten: Auslesen der Standard-Datenformate: KVM und XEN: konnten hier beweisbar korrekt ausgelesen werden (raw und qcow2) Hyper-V, vsphere: In Literatur beschrieben
VM aktiv: Gesuchte Daten noch nicht gelöscht a) VM aktiv: Gesuchte Daten noch nicht gelöscht Virtuelle Festplatten: Auslesen der Standard-Datenformate: KVM und XEN: konnten hier beweisbar korrekt ausgelesen werden (raw und qcow2) Hyper-V, vsphere: In Literatur beschrieben
VM aktiv: Gesuchte Daten noch nicht gelöscht b) Gesuchte Daten bereits gelöscht Bestimmung der Hardware: Nicht zu verallgemeinern
VM aktiv: Gesuchte Daten noch nicht gelöscht b) Gesuchte Daten bereits gelöscht Bestimmung der Hardware: Nicht zu verallgemeinern Speicher, virtuelle Festplatten: Gleiche grundsätzliche Probleme Logging
Lösungsansätze
Logging Lösungsansätze Logging
Logging Vollständiges Logging Eine VM ist ein deterministisches System Nicht-deterministischer Input gelangt nur über die Netzwerkschnittstelle in die VM Wird der gesamte nicht-deterministische Input aufgezeichnet, kann die VM anschließend abgespielt werden
Logging Vollständiges Logging Eine VM ist ein deterministisches System Nicht-deterministischer Input gelangt nur über die Netzwerkschnittstelle in die VM Wird der gesamte nicht-deterministische Input aufgezeichnet, kann die VM anschließend abgespielt werden Idee in der Software ReVirt implementiert Ursprünglich für Malware-Analyse, aber auch in Clouds ist Einsatz denkbar
Logging Verzögertes Löschen Virtuelle Festplatten werden beim Beenden einer VM nicht gelöscht, sondern in ein spezielles Verzeichnis verschoben werden eine Art Papierkorb Erst wenn ein Mangel an physischem Speicher auftritt, werden die Daten der ältesten VM im Papierkorb gelöscht
Notfallpläne Lösungsansätze Notfallpläne
Notfallpläne Gute Vorbereitung ist alles Trotz der bestehenden Probleme ist eine Vorbereitung auf forensische Untersuchungen möglich und sinnvoll:
Notfallpläne Gute Vorbereitung ist alles Trotz der bestehenden Probleme ist eine Vorbereitung auf forensische Untersuchungen möglich und sinnvoll: Wie lässt sich die Hardware bestimmen, die für einen bestimmten Kunden oder eine bestimmte VM eingesetzt wurde? Welche Server können mit welchen Folgen für die Cloud-Infrastruktur ausgeschaltet werden? Wie lassen sich mit dem eingesetzten Hypervisor Snapshots erstellen? Welche Daten umfassen die Snapshots? Welches Datenformat wird für virtuelle Festplatten eingesetzt? Wie kann das verwendete Datenformat ausgelesen werden? Wie lassen sich gelöschte Daten in Speicherdiensten finden? Kommen verteilte Dateisysteme zum Einsatz?
Fazit
Sicherung vorhandener Daten möglich, aber: Hardware muss bestimmt werden Live-Migration kann zu Datenverlust führen Snapshots können unvollständig sein
Sicherung vorhandener Daten möglich, aber: Hardware muss bestimmt werden Live-Migration kann zu Datenverlust führen Snapshots können unvollständig sein Wiederherstellung gelöschter Daten ist problematisch: Fragmentierung Beweisbare Zuordnung zu i.a. nicht möglich Daten werden schneller überschrieben
Sicherung vorhandener Daten möglich, aber: Hardware muss bestimmt werden Live-Migration kann zu Datenverlust führen Snapshots können unvollständig sein Wiederherstellung gelöschter Daten ist problematisch: Fragmentierung Beweisbare Zuordnung zu i.a. nicht möglich Daten werden schneller überschrieben Forensik wird teilweise die Grundlage entzogen Informationen müssen vorher durch Logging erzeugt werden Notfallpläne sinnvoll
Danke für Ihre Aufmerksamkeit! - Fragen?
Anhang
Außerbetriebnahme virtueller Festplatten c3c3c3c3c3c3c3 Datei in der VM VM-OS b2b2b2b2b2b2b2b2 Virtuelle Festplatte Node-OS a1a1a1a1a1a1a1a1a1a1a1a1a1a1 Physische Festplatte Node-OS a1 b2 c3 a1 c3 a1 b2 b2