Digitale Forensik. unter Microsoft Windows.
Transcrição
Digitale Forensik. unter Microsoft Windows.
Digitale Forensik. unter Microsoft Windows. Andreas Schuster Deutsche Telekom AG Konzernsicherheit [email protected] Digitale Forensik unter Microsoft Windows. Agenda. 1. 1.1 1.2 1.3 Probleme in einer Closed-Source-Umgebung Registry NTFS Ereignisprotokoll 2. 2.1 2.2 2.3 2.4 Analyse des Arbeitsspeichers Keylogger TCP/IP Kompromittierung Persistenz 3. Fazit Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 2 Digitale Forensik unter Microsoft Windows. Probleme in einer Closed-Source-Umgebung. Kapselung der Systemfunktionalität durch eine definierte Schnittstelle (API) Vorteile: umfassende, überwiegend frei zugängliche Dokumentation der Schnittstelle (MSDN, Technet, Knowledge Base) Konstanz der Schnittstelle über viele Jahre erleichtert Entwicklern beiderseits der API die Softwarepflege Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 3 Digitale Forensik unter Microsoft Windows. Probleme in einer Closed-Source-Umgebung. Nachteile bei Verwendung der API: Scheitern bei unvollständigen Daten (z. B. nach Rekonstruktion gelöschter Daten) Anfälligkeit gegenüber gezielten Manipulationen (anti-forensic techniques) Inkaufnahme eines möglichen Informationsverlusts Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 4 Digitale Forensik unter Microsoft Windows. Probleme in einer Closed-Source-Umgebung. Nachteile bei Umgehung der API: Reverse-Engineering Zulässigkeit Aufwand Zuverlässigkeit Gefahr grundlegender Veränderungen durch jedes einzelne Service-Pack oder Hotfix. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 5 Probleme in einer Closed-Source-Umgebung. Beispiel: Registry. Binärformat von Microsoft undokumentiert, aber gut verstanden. Offline Registry Editor von Peter Nordahl (1997) Parse::Win32Registry von James Macfarlane (2006) Nützliche Meta-Daten: Access Control Lists Zeitpunkt des letzten Schreibzugriffs Erschlagende Fülle von Informationen, teilweise in Ressource Kits und der Knowledge Base dokumentiert. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 6 Probleme in einer Closed-Source-Umgebung. Beispiel: NTFS. von Microsoft nicht dokumentiert, Hauptarbeit durch Linux-NTFS Projekt Brian Carriers „File System Forensic Analysis“ gehört an den Arbeitsplatz. Alternate Data Streams alias multiple $DATA-Attribute sollten mittlerweile kein Problem mehr darstellen. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 7 Probleme in einer Closed-Source-Umgebung. Beispiel: NTFS. Zeitmarken für Creation Time Modified Time MFT Modified Time Accessed Time Zeitmarken existieren in den Attributen $STANDARD_INFORMATION $FILE_NAME Welcher Satz wird angezeigt, welchen Satz verändern Anti-forensic Tools (z. B. Timestomper). Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 8 Probleme in einer Closed-Source-Umgebung. Beispiel: Ereignisprotokoll. Ereignisprotokoll (Event Log Service): zentraler Protokollierungsdienst ähnlich syslog(8) jedoch unerwartetes Verhalten: Die Ereignismeldung wird im Moment des Betrachtens konstruiert. Dateiformat wird nach mehr als 10 Jahren meistens verstanden. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 9 Probleme in einer Closed-Source-Umgebung. Beispiel: Ereignisprotokoll. Unter Verwendung der API: Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 10 Probleme in einer Closed-Source-Umgebung. Beispiel: Ereignisprotokoll. Unter Verwendung der API: Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 11 Probleme in einer Closed-Source-Umgebung. Beispiel: Ereignisprotokoll. Unter Umgehung der API: 4 Flags: DIRTY – Daten geschrieben, Dateikopf und –rumpf sind bis zum Schließen der Datei inkonsistent. WRAPPED – der älteste Datensatz steht hinter dem jüngsten. FULL – maximale Größe erreicht, Datenverlust ist aufgetreten. PRIMARY – gesetzt nur bei Dateien, die der Dienst aktuell beschreibt Unterschiedliche Behandlung bei BackupEventLog und ClearEventLog. von der Version des Dienstes abhängig. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 12 Probleme in einer Closed-Source-Umgebung. Beispiel: Ereignisprotokoll. Unter Umgehung der API: Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 13 Der Standardfließtext. Die zu vermittelnden Informationen. Fließtext: TeleGrotesk halbfett, 22 Punkt, Zeilenabstand 0,9 Zeilen, nach einem Absatz 0,5 Zeilen, Farbe Schwarz. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 14 Digitale Forensik unter Microsoft Windows. Analyse des Arbeitsspeichers. Aus dem Vortrag von Steve Wood Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 15 Digitale Forensik unter Microsoft Windows. Analyse des Arbeitsspeichers. Operation in der Regel unterhalb der API bestenfalls „graue Dokumentation“: Codebeispiele Symboldateien für Debugger Kernel-Binary Möglichkeiten zur Auswertung eines Speicherabbildes: 1. Suche nach Folgen druckbarer Zeichen 2. Rekonstruktion interner Datenstrukturen 3. Suche nach Objekten Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 16 Analyse des Arbeitsspeichers. Suche nach druckbaren Zeichen. strings(1) gibt Folgen von mindestens 4 druckbaren Zeichen aus Achtung bei Multi-Byte-Zeichensätzen (UTF-16, UCS-2, …) Null-Byte führt sonst zu vorzeitiger Terminierung bzw. Unterdrückung des Strings. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 17 Auswertung. Demo - BinText. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 18 Analyse des Arbeitsspeichers. Rekonstruktion interner Datenstrukturen. Einfache Strukturen dominieren: Baum doppelt verkettete Liste: kd> dt _LIST_ENTRY nt!_LIST_ENTRY +0x000 Flink +0x004 Blink : Ptr32 _LIST_ENTRY : Ptr32 _LIST_ENTRY Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 19 Analyse des Arbeitsspeichers. Rekonstruktion interner Datenstrukturen. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 20 Analyse des Arbeitsspeichers. Rekonstruktion interner Datenstrukturen. PsActive ProcessHead smrss rk explorer flink blink flink blink flink blink Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 21 Analyse des Arbeitsspeichers. Rekonstruktion interner Datenstrukturen. PsActive ProcessHead smrss rk explorer flink blink flink blink flink blink rk flink blink Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 22 Analyse des Arbeitsspeichers. Rekonstruktion interner Datenstrukturen. Vorteile: relativ einfache Technik umfangreiche Informationen Nachteil: enfache Umgehung durch Direct Kernel Object Manipulation (DKOM) Leistungsfähigstes Programm seiner Art ist KnTList von George M. Garner. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 23 Analyse des Arbeitsspeichers. Suche nach Datenstrukturen. Einfaches, lineares Durchsuchen des Speicherabbildes. Schwierigkeit: Formulierung einer geeigneten „Signatur“ hinreichende Trennschärfe Robustheit gegenüber Manipulation (DKOM im weiteren Sinn) Welche Daten sind essentiell? Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 24 Analyse des Arbeitsspeichers. Suche nach Datenstrukturen. 1. Speicherverwaltung – POOL_HEADER 2. Kernel-Objekte – OBJECT_HEADER 3. spezifische Struktur – hier: EPROCESS Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 25 Analyse des Arbeitsspeichers. Suche nach Datenstrukturen. _POOL_HEADER beschreibt eine einzelne Allokation. Die Struktur ist u.a. in den Debug-Symbolen des Kernels dokumentiert. >dt nt!_POOL_HEADER +0x000 PreviousSize +0x000 PoolIndex +0x002 BlockSize +0x002 PoolType +0x004 PoolTag +0x004 AllocatorBackTraceIndex +0x006 PoolTagHash : : : : : : : Pos 0, Pos 9, Pos 0, Pos 9, Uint4B Uint2B Uint2B 9 7 9 7 Bits Bits Bits Bits Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 26 Analyse des Arbeitsspeichers. Suche nach Datenstrukturen.. BlockSize: Größe dieses Blocks. Zeiger “vorwärts” zum nächsten Block. PreviousSize: Größe des vorhergehenden Blocks. Zeiger “zurück” zum vorherigen Block. 0 für den ersten Block einer Speicherseite. Für beide Werte gilt: Angabe in Einheiten zu 8 Bytes (Windows 2000: 32 Bytes). Angabe beinhaltet den _POOL_HEADER (8 Bytes), muss also mindestens 1 sein. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 27 Analyse des Arbeitsspeichers. Suche nach Datenstrukturen. Deklaration im Windows Development Kit, Datei wdm.h: typedef enum _POOL_TYPE { NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType, NonPagedPoolCacheAligned, PagedPoolCacheAligned, NonPagedPoolCacheAlignedMustS, MaxPoolType } POOL_TYPE; 0000 0001 0010 0011 0100 0101 0110 0111 Werte größer als 31 zeigen einen Session Pool an. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 28 Analyse des Arbeitsspeichers. Suche nach Datenstrukturen. PoolType (Wert im Speicher) ist um 1 erhöht. In der Praxis werden unterschieden: 0 = Block ist freigegeben ungerade = non-paged pool gerade = paged pool Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 29 Analyse des Arbeitsspeichers. Suche nach Datenstrukturen. Gemäß Dokumentation der Funktion ExAllocatePoolWithTag im MSDN: bis zu 4 Zeichen ASCII Werte zwischen 0 und 127 in little-endian (umgekehrter) Reihenfolge gespeichert ‘1234’ wird als ‘4321’ gespeichert Jeder Ausführungspfad soll ein eigenes PoolTag verwenden. Es gibt kein Verzeichnis fürPoolTags. Jede Anwendung kann jedes beliebige (Einschränkungen s.o.) PoolTag verwenden! Versehentliche oder absichtliche “Mitbenutzung” von PoolTags anderer Anwendungen (siehe skape & Skywing 2005 über Microsoft PatchGuard x64) Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 30 Analyse des Arbeitsspeichers. Beispiel 1 – Keylogger. Zurück zum Beispiel… Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 31 Analyse des Arbeitsspeichers. Beispiel 1 – Keylogger. Annahme: es handelt sich tatsächlich um einen Auszug aus einem Pool. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 32 Analyse des Arbeitsspeichers. Beispiel 1 – Keylogger. Wie ist der Block zu interpretieren? Präfix „CM“ deutet bereits auf den Configuration Manager des Kernels hin (Registry). „CMVa“ steht laut Liste von PoolTags des Debuggers für „value cache value tag“. Suche nach Verwendung des PoolTags führt auf den Kernel, dort auf die Funktion CmpGetValueKeyFromCache. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 33 Analyse des Arbeitsspeichers. Beispiel 1 – Keylogger. Ein kurzer Codeauszug der Fundstelle: 0049764B 00497650 00497652 00497657 0049765A 0049765B 0049765D 00497662 00497664 00497666 0049766A 0049766E 00497670 00497672 00497675 00497678 ; CmpGetValueKeyFromCache(x,x,x,x,x,x,x) call _HvGetCellSize@8 ; HvGetCellSize(x,x) mov edi, eax push 'aVMC' ; Tag lea eax, [edi+4] push eax ; NumberOfBytes push PagedPool ; PoolType call _ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x) test eax, eax jz short Alloc_CMVa_failed and word ptr [eax], 0 ; set first dword in alloc to 0 mov [eax+2], di ; set second dword in alloc to data size mov ecx, edi mov edx, ecx shr ecx, 2 lea edi, [eax+4] ; destination buffer starts at 4th byte rep movsd ; copy cell Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 34 Analyse des Arbeitsspeichers. Beispiel 1 – Keylogger. Aufruf u. a.durch: ZwSetValueKey und NtSetValueKey erzeugt bzw. ersetzt den Wert eines Schlüssels. ZwQueryValueKey und NtQueryValueKey gibt die Werte eines geöffneten Schlüssels zurück. Abschließende Deutung: der Wert „E:\aradamax keylogger.exe“ wurde als Wert in die Registry geschrieben oder von dort gelesen. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 35 Analyse des Arbeitsspeichers. Beispiel 2 – TCP/IP. Netzaktivität: Microsoft Windows XP SP 2 als Guest OS in VMware 5.5.x Netcat (nc.exe) wird gestartet und erwartet Verbindungen Port 666/tcp. Einige Minuten später wird Netcat wieder beendet. Es gab keinen Verbindungsbau. Die VMware-Sitzung wird angehalten; VMware speichert den “physischen Speicher” der virtuellen Maschine in einer Datei. Ziel: Finde Hinweise auf die Ausführung von Netcat. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 36 Analyse des Arbeitsspeichers. Beispiel 2 – TCP/IP. 1. 2. 3. 4. 5. 6. 7. 192.168.186.128:138/UDP, 0.0.0.0:135/TCP, 0.0.0.0:0/IGMP, 0.0.0.0:0/GRE, 0.0.0.0:1029/UDP, 127.0.0.1:1025/TCP, 0.0.0.0:666/TCP, 8. 192.168.186.128:139/TCP, … PID=4, PID=800, PID=884, PID=4, PID=948, PID=1508, PID=1448, PID=4, 2006-07-17 22:08:47 2006-07-17 22:08:40 2006-07-17 22:08:49 2006-07-17 22:08:51 2006-07-17 22:09:46 2006-07-17 22:08:51 2006-07-17 22:11:15 (defunct) 2006-07-17 22:08:47 Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 37 Analyse des Arbeitsspeichers. Beispiel 2 – TCP/IP. Suche nach TCP Connection Objects in ähnlicher Weise: 192.168.186.128:1037 -> 213.253.9.70:80, PID=884 192.168.186.128:1038 -> 213.253.9.70:80, PID=884 192.168.186.128:1039 -> 64.4.21.93:80, PID=884 PID 884 verweist auf eine Instanz von svchost.exe. Es gibt keine Hinweise auf eine TCP-Verbindung zu nc.exe. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 38 Analyse des Arbeitsspeichers. Beispiel 3 – Kompromittierung. Prozessaktivität: DFRWS 2005 Memory Analysis Challenge http://www.dfrws.org/2005/challenge/index.html Frische Installation von Microsoft Windows 2000. „Der Besitzer hatte wenig Zeit, das System abzusichern.“ Der Computer fällt durch ungewöhnlichen Datenverkehr auf. (NIDS?) Gegeben sind 2 mittels dd erstellte Speicherabbilder (vor/nach Neustart). Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 39 Analyse des Arbeitsspeichers. Beispiel 3 – Kompromittierung.. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 40 Analyse des Arbeitsspeichers. Beispiel 3 – Kompromittierung. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 41 Analyse des Arbeitsspeichers. Beispiel 3 – Kompromittierung. LSASS.EXE (Local Security Authority Subsystem) startet gewöhnlich keine Kindsprozesse. Metasploit.exe deutet auf die Verwendung des gleichnamigen Exploit-Baukastens hin. Die weitere Untersuchung zeigt, dass UMGR32.EXE das Trojanische Pferd „BackOrifice“ ist. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 42 Analyse des Arbeitsspeichers. Beispiel 3 – Kompromittierung. Das Trojanische Pferd startet einen Prozess „dfrws2005.exe“. Der Prozess terminiert unmittelbar ohne Hinweis auf einen Fehler. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 43 Analyse des Arbeitsspeichers. Beispiel 3 – Kompromittierung. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 44 Analyse des Arbeitsspeichers. Beispiel 3 – Kompromittierung. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 45 Analyse des Arbeitsspeichers. Beispiel 4 – Persistenz von Speicherinhalten. Prozesse, die augenscheinlich vor dem Systemstart (2005-06-05 00:32:27) ausgeführt wurden: Date 2005-06-03 2005-06-03 2005-06-04 Time 01:25:53Z 01:25:54Z 23:36:31Z Image Name csrss.exe winlogon.exe winlogon.exe PID 168 164 176 Nach einem weiteren Warmstart (2005-06-05 15:00:56): Date 2005-06-03 2005-06-05 2005-06-05 Time 01:25:53Z 00:32:40Z 00:32:43Z Image Name csrss.exe smss.exe csrss.exe PID 168 156 180 Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 46 Digitale Forensik unter Microsoft Windows. Fazit. Autoritative Dokumentation reicht nicht „bis auf‘s letzte Bit hinab“. Notwendiges Reverse-Engineering erfordert hohen Aufwand. (Rest-) Unsicherheit über die wahren Zusammenhänge zwingt zu vorsichtigem Vorgehen und zurückhaltenden Interpretationen der beobachteten Daten. Nützliche, bisweilen verblüffende Ergebnisse rechtfertigen den Aufwand. Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 47 Digitale Forensik unter Microsoft Windows. Weitere Informationen. Harlan Carvey: Windows Forensics and Incident Recovery Addison Wesley, 2005 Harlan Carvey: Windows Forensic Analysis DVD Toolkit Syngress Media, 2007 http://computer.forensikblog.de/ Digitale Forensik unter Microsoft Windows Andreas Schuster 09.05.2007, Seite 48 Vielen Dank für Ihre Aufmerksamkeit. Andreas Schuster Deutsche Telekom AG Konzernsicherheit [email protected]