Darmowy fragment publikacji:
Tytuł oryginału: Windows Forensic Analysis Toolkit, Third Edition:
Advanced Analysis Techniques for Windows 7
Tłumaczenie: Grzegorz Kowalczyk
ISBN: 978-83-246-6652-2
Syngress is an imprint of Elsevier. 225 Wyman Street, Waltham, MA 02451, USA.
Copyright © 2012 Elsevier Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording, or any information storage and retrieval system, without
permission in writing from the Publisher.
This book and the individual contributions contained in it are protected under copyright by the Publisher
(other than as may be noted herein).
This edition of Windows Forensic Analysis Toolkit: Advanced Analysis Techniques for Windows 7 by Harlan
Carvey is published by arrengement with ELSEVIER INC., a Delaware corporation having its principal place
of business at 360 Park Avenue South, New York, NY 10010, USA.
Translation copyright © 2013 Helion SA.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji
w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także
kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich
niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą
również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych
w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/anasl3
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis treĂci
Przedmowa ........................................................................................................................................... 9
PodziÚkowania ................................................................................................................................... 15
O autorze ............................................................................................................................................ 17
O korektorze merytorycznym ............................................................................................................ 19
ROZDZIA 1. Zaïoĝenia analizy systemów komputerowych ............................................................. 21
Wprowadzenie ................................................................................................................................21
Założenia analizy systemów komputerowych ............................................................................24
Wersje systemu Windows ......................................................................................................25
Reguły i zasady przeprowadzania analizy ............................................................................27
Dokumentacja ..........................................................................................................................40
Konwergencja ...........................................................................................................................42
Wirtualizacja .............................................................................................................................44
Konfiguracja środowiska śledczego .............................................................................................46
Podsumowanie ...............................................................................................................................50
ROZDZIA 2. Szybka reakcja na incydenty ....................................................................................... 51
Wprowadzenie ................................................................................................................................51
Jak być przygotowanym do sprawnego reagowania na incydenty? ........................................53
Pytania .......................................................................................................................................55
Najważniejszy element — przygotowania ............................................................................57
Dzienniki zdarzeń (logi) .........................................................................................................62
Gromadzenie danych .....................................................................................................................68
Szkolenia ...................................................................................................................................72
Podsumowanie ...............................................................................................................................74
ROZDZIA 3. Usïuga VSS — kopiowanie woluminów w tle .............................................................. 75
Wprowadzenie ................................................................................................................................75
Czym jest usługa kopiowania woluminów w tle? ......................................................................76
Klucze w rejestrze ....................................................................................................................78
Praca z kopiami VSS we włączonych systemach .......................................................................79
Pakiet ProDiscover ..................................................................................................................83
Pakiet F-Response ....................................................................................................................83
Praca z kopiami VSS w binarnych obrazach dysków ................................................................86
Metoda z wykorzystaniem plików VHD ..............................................................................88
Metoda z wykorzystaniem oprogramowania VMware ......................................................93
Poleć książkęKup książkę 6
Analiza Ăledcza i powïamaniowa
Automatyzacja dostępu do kopii VSS ...................................................................................97
ProDiscover ............................................................................................................................100
Podsumowanie .............................................................................................................................103
Literatura i inne źródła ................................................................................................................103
ROZDZIA 4. Analiza systemu plików ..............................................................................................105
Wprowadzenie ..............................................................................................................................106
Tablica MFT ..................................................................................................................................107
Mechanizm tunelowania w systemie plików ......................................................................114
Dzienniki zdarzeń systemowych ................................................................................................116
Dziennik zdarzeń systemu Windows ..................................................................................121
Folder Recycle Bin .......................................................................................................................125
Pliki prefetch .................................................................................................................................129
Zaplanowane zadania ..................................................................................................................134
Listy szybkiego dostępu ...............................................................................................................138
Pliki hibernacji ..............................................................................................................................145
Pliki aplikacji .................................................................................................................................146
Logi programów antywirusowych .......................................................................................147
Komunikator Skype ...............................................................................................................148
Produkty firmy Apple ...........................................................................................................149
Pliki graficzne (zdjęcia, obrazy) ...........................................................................................151
Podsumowanie .............................................................................................................................153
Literatura i inne źródła ................................................................................................................154
ROZDZIA 5. Analiza rejestru systemu Windows ............................................................................155
Wprowadzenie ..............................................................................................................................156
Analiza rejestru .............................................................................................................................157
Nomenklatura rejestru ..........................................................................................................158
Rejestr jako plik dziennika ....................................................................................................159
Analiza historii urządzeń USB .............................................................................................160
Gałąź System ...........................................................................................................................175
Gałąź Software ........................................................................................................................178
Gałęzie rejestru związane z profilem użytkownika ...........................................................188
Dodatkowe źródła informacji ..............................................................................................199
Narzędzia ................................................................................................................................202
Podsumowanie .............................................................................................................................204
Literatura i inne źródła ................................................................................................................204
ROZDZIA 6. Wykrywanie zïoĂliwego oprogramowania ..................................................................205
Wprowadzenie ..............................................................................................................................206
Typowe cechy złośliwego oprogramowania .............................................................................207
Początkowy wektor infekcji ..................................................................................................209
Mechanizm propagacji ..........................................................................................................212
Mechanizm przetrwania .......................................................................................................214
Artefakty ..................................................................................................................................219
Poleć książkęKup książkę
Spis treĂci
7
Wykrywanie złośliwego oprogramowania ...............................................................................222
Analiza logów .........................................................................................................................223
Skany antywirusowe ..............................................................................................................229
Zaglądamy głębiej ..................................................................................................................234
Złośliwe strony internetowe .................................................................................................251
Podsumowanie .............................................................................................................................254
Literatura i inne źródła ................................................................................................................254
ROZDZIA 7. Analiza zdarzeñ w osi czasu ...................................................................................... 255
Wprowadzenie ..............................................................................................................................256
Zestawienie zdarzeń w osi czasu ................................................................................................256
Źródła danych ........................................................................................................................259
Formaty czasu .........................................................................................................................260
Koncepcje ................................................................................................................................261
Zalety analizy czasowej .........................................................................................................263
Format .....................................................................................................................................267
Tworzenie historii zdarzeń w osi czasu .....................................................................................273
Metadane systemu plików ....................................................................................................275
Dzienniki zdarzeń ..................................................................................................................282
Pliki prefetch ...........................................................................................................................286
Dane z rejestru ........................................................................................................................287
Dodatkowe źródła danych ....................................................................................................290
Konwersja pliku zdarzeń na finalną postać ........................................................................292
Kilka uwag związanych z wizualizacją ................................................................................294
Studium przypadku .....................................................................................................................295
Podsumowanie .............................................................................................................................299
ROZDZIA 8. Analiza aplikacji ......................................................................................................... 301
Wprowadzenie ..............................................................................................................................301
Pliki logów .....................................................................................................................................303
Analiza dynamiczna .....................................................................................................................305
Przechwytywanie ruchu sieciowego ..........................................................................................310
Analiza pamięci zajmowanej przez aplikację ...........................................................................312
Podsumowanie .............................................................................................................................313
Literatura i inne źródła ................................................................................................................313
SKOROWIDZ ...................................................................................................................................... 315
Poleć książkęKup książkę 8
Analiza Ăledcza i powïamaniowa
Poleć książkęKup książkęAnaliza systemu plików
ROZDZIA
4
SPIS TRE¥CI
Wprowadzenie ................................................................................................................106
Tablica MFT....................................................................................................................107
Mechanizm tunelowania w systemie plików ................................................................... 114
Dzienniki zdarzeñ systemowych ........................................................................................116
Dziennik zdarzeñ systemu Windows.............................................................................. 121
Folder Recycle Bin...........................................................................................................125
Pliki prefetch...................................................................................................................129
Zaplanowane zadania ......................................................................................................134
Listy szybkiego dostÚpu....................................................................................................138
Pliki hibernacji ................................................................................................................145
Pliki aplikacji ..................................................................................................................146
Logi programów antywirusowych .................................................................................. 147
Komunikator Skype ..................................................................................................... 148
Produkty firmy Apple................................................................................................... 149
Pliki graficzne (zdjÚcia, obrazy)..................................................................................... 151
Podsumowanie................................................................................................................153
Literatura i inne ěródïa.....................................................................................................154
W TYM ROZDZIALE
x Tablica MFT.
x Dzienniki zdarzeñ systemowych (ang. Event Logs).
x Folder Recycle Bin.
x Pliki prefetch.
x Zaplanowane zadania.
x Listy szybkiego dostÚpu (ang. jump lists).
x Pliki hibernacji.
x Pliki aplikacji.
Poleć książkęKup książkę106
Rozdziaï 4
WPROWADZENIE
Podobnie jak inne systemy operacyjne, system Windows składa się z ogromnej liczby plików,
z których zdecydowana większość jest zapisana w innych formatach niż prosty tekstowy
ASCII. Bardzo wiele z tych plików nie wnosi niczego nowego pod względem analizy śledczej
i powłamaniowej, niemniej jednak istnieje szereg plików, które są lub mogą być nieocenio-
nym źródłem informacji dla analityka. W systemie można również znaleźć pewną liczbę zu-
pełnie nieznanych analitykowi plików, zapisanych w formacie, który nie poddaje się przeszu-
kiwaniu pod kątem występowania słów kluczowych. Oczywiście takie pliki mogą wnosić
wiele istotnych informacji do przeprowadzanej ekspertyzy, pod warunkiem jednak, że anali-
tyk będzie zdawał sobie sprawę z ich istnienia i będzie wiedział, jak przeanalizować i jak
interpretować ich zawartość.
Celem tego rozdziału nie jest przedstawianie po raz kolejny metod analizy systemu plików,
ponieważ takie zagadnienia były już wielokrotnie szczegółowo omawiane w wielu powszechnie
dostępnych źródłach. Zamiast tego chciałbym tutaj poruszyć sprawy związane z istnieniem
pewnych plików, pokazać, co wynika z faktu ich istnienia, oraz omówić techniki analizy ich
zawartości, które mogą być przydatne podczas prowadzenia dochodzenia, a które nie zaw-
sze są znane szerokiemu gronu analityków.
Jak już wspominałem wcześniej, system Windows składa się z ogromnej liczby plików
zapisanych w przeróżnych formatach. Takie pliki mogą zawierać interesujące informacje za-
pisane lub osadzone w określonych strukturach danych. Niektóre z takich struktur zostały
szczegółowo udokumentowane przez producentów oprogramowania, a poznanie budowy
innych struktur zawdzięczamy po prostu żmudnej pracy analityków. Powszechną praktyką
stosowaną przez wielu analityków jest rozpoczynanie ekspertyzy od przeszukiwania zawartości
dysków fizycznych, binarnych obrazów dysków twardych czy wybranych plików pod kątem
występowania określonych słów kluczowych, co pozwala na wstępne zidentyfikowanie
potencjalnych źródeł informacji. Taka metoda sprawdza się w przypadku prostych formatów
plików, ale powinieneś pamiętać, że istnieje cały szereg plików, których zawartość może mieć
nieocenione znaczenie dla prowadzonego dochodzenia, nawet jeżeli przeszukanie ich pod
kątem występowania określonych słów kluczowych nie przyniosło żadnych rezultatów.
W bardzo wielu przypadkach samo istnienie określonej struktury danych wewnątrz pliku
może stanowić cenną wskazówkę lub rozszerzyć kontekst analizowanych danych. Przykła-
dowo podczas jednej z analiz powłamaniowych związanych z kradzieżą danych przeszukiwanie
materiału dowodowego pod kątem potencjalnych numerów kart kredytowych przyniosło kilka
trafień w jednym z plików gałęzi rejestru (analizą zawartości rejestru będziemy się szczegółowo
zajmować w rozdziale 5.). Dokładniejsza analiza trafień wykazała, że wskazane numery nie
były ani nazwami kluczy rejestru, ani ich wartościami, ani nawet danymi — okazało się, że
odnalezione ciągi znaków znajdują się w niealokowanej przestrzeni pliku gałęzi rejestru. Dalsza
analiza wykazała, że bajty danych reprezentujące odnalezione ciągi znaków znajdują się w
sektorach dysku, które poprzednio były zajmowane przez jeden z usuniętych już dokumentów.
Poleć książkęKup książkęAnaliza systemu plików
107
Po prostu po usunięciu tego pliku zajmowane przez niego sektory dysku zostały oznaczone ja-
ko dostępne i po pewnym czasie zostały zajęte przez rozrastający się plik gałęzi rejestru.
Przedstawiony przykład doskonale pokazuje, że dobry analityk powinien wychodzić da-
leko poza proste wyszukiwanie słów kluczowych i ostrożnie formułować płynące stąd wnioski,
ponieważ może to mieć krytyczne znaczenie dla prowadzonego dochodzenia i może przy-
nieść odpowiedzi na wiele ważnych pytań związanych ze sprawą. Na przykład zastanów się
nad odkryciem, które omawialiśmy przed chwilą. Czy zdanie „Znalazłem poszukiwane nu-
mery kart kredytowych w rejestrze” naprawdę będzie miało jakąkolwiek wartość dla klienta
zlecającego ekspertyzę? A może znacznie ważniejsze byłoby dokładne opisanie miejsca, w któ-
rym takie numery zostały znalezione, i sposobu, w jaki się tam mogły znaleźć? Celem tego
rozdziału będzie zatem omówienie wewnętrznej struktury wybranych plików i pokazanie,
jaką wartość może mieć dla analityka dobra znajomość struktury plików.
TABLICA MFT
W systemie plików NTFS tablica MFT spełnia rolę głównej listy plików i zawiera szereg
metadanych szczegółowo opisujących wszystkie obiekty zapisane w systemie plików, takie
jak pliki, katalogi czy metapliki1. Metadane z systemu plików mogą mieć krytyczne znaczenie
dla rezultatów przeprowadzanej analizy, zwłaszcza jeżeli istnieje podejrzenie, że metadane
wybranych plików zostały celowo zmodyfikowane z zamiarem ukrycia lub zamaskowania
wykonanych operacji (takie działania są często określane w języku angielskim jako anti-
forensics, czyli działania mające na celu utrudnienie analizy śledczej i powłamaniowej).
Oczywiście w tym rozdziale nie znajdziesz rozbudowanego traktatu, szczegółowo opi-
sującego kompletną wewnętrzną strukturę tablicy MFT — ale też nie taki jest cel tej książki.
Zamiast tego skoncentrujemy się tutaj na określonych strukturach danych (lub inaczej, na
określonych atrybutach plików), które możesz wyodrębnić z poszczególnych rekordów w ta-
blicy MFT, a dyskusję na temat samej tablicy MFT ograniczymy do krótkiego opisu rekordów
MFT i dwóch wybranych atrybutów. W dalszej części rozdziału omówimy kilka narzędzi,
których możesz użyć do parsowania zawartości tablicy MFT. Nie będziemy jednak zbytnio
zagłębiać się w wewnętrzną budowę tablicy MFT, stąd nie powinieneś raczej oczekiwać, że po
przeczytaniu tego rozdziału będziesz w stanie tworzyć od podstaw własne narzędzia służące
do tego celu. Prawdopodobnie najlepszym, bardzo obszernym i szczegółowym źródłem in-
formacji na temat wewnętrznych tajemnic tablicy MFT i systemu plików NTFS i ich wyko-
rzystania w analizie śledczej i powłamaniowej jest wydana w 2005 roku wspaniała książka
Briana Carriera, zatytułowana File System Forensic Analysis (wydawnictwo Addison-Wesley
Professional)2.
1 W systemie plików NTFS każdy zapisany obiekt jest plikiem, stąd mówimy o plikach danych, plikach
reprezentujących katalogi i tak dalej — przyp. tłum.
2 Patrz strona http://www.pearsonhighered.com/educator/product/File-System-Forensic-Analysis/
9780321268174.page — przyp. tłum.
Poleć książkęKup książkę108
Rozdziaï 4
Każdy rekord w tablicy MFT składa się z 1024 bajtów. System plików NTFS traktuje każdy
obiekt w nim zapisany jako plik. Poszczególne rekordy w tablicy MFT reprezentujące kolejne
pliki zawierają szereg atrybutów przechowujących metadane opisujące plik, a czasami, w przy-
padku bardzo małych plików, przechowujących również całą zawartość pliku (tzw. atrybut
danych). Pierwsze 42 bajty każdego rekordu zajmuje nagłówek (ang. File Record Header),
który zawiera informacje takie jak liczba dowiązań (czyli liczba katalogów mających dowią-
zania do tego pliku, co pozwala na określenie liczby twardych dowiązań do pliku), informacje
o tym, czy dany rekord opisuje plik, czy katalog, czy dany plik lub katalog jest używany lub
usunięty, oraz dane o rozmiarze przestrzeni alokowanej i wykorzystywanej przez konkretny
plik (inaczej rozmiar pliku).
Wszystkie rekordy opisujące pliki i katalogi mają atrybut o nazwie $STANDARD_INFORMATION
($SIA), który zajmuje 72 bajty (dla systemów Windows 2000 i nowszych) i zawiera — oprócz in-
nych elementów — zestaw znaczników czasowych pliku, zapisanych w postaci standardowego,
64-bitowego obiektu FILETIME. Obiekt FILETIME zgodnie z definicją firmy Microsoft reprezentuje
liczbę 100-nanosekundowych interwałów czasowych, jakie upłynęły od 1 stycznia 1601 roku do
momentu zapisania danego znacznika. To właśnie z tymi znacznikami masz najczęściej do czy-
nienia, kiedy pracujesz na co dzień z systemem operacyjnym (na przykład są wyświetlane na
konsoli za pomocą polecenia dir lub w oknie menedżera plików Windows Explorer). W syste-
mie NTFS znaczniki czasowe są zapisywane w rekordach MFT w formacie UTC (ang. Universal
Time Coordinated). Oznacza to, że kiedy widzimy takie znaczniki czasu na przykład wyświetlone
w oknie programu Windows Explorer (lub w oknie wiersza poleceń za pomocą polecenia dir),
to system przed wyświetleniem automatycznie dokonuje ich konwersji na czas obowiązujący
w strefie czasowej, której ustawienia są zapisane w rejestrze systemowym na danym komputerze.
UWAGA
WyĂwietlanie znaczników czasu w aplikacjach informatyki Ăledczej
WiÚkszoĂÊ komercyjnych aplikacji Ăledczych pozwala na wyĂwietlanie znaczników czasu ostatniej
modyfikacji pliku, ostatniego dostÚpu do pliku i czasu utworzenia pliku (ang. MAC timestamps
— Modified, Accessed and Created) zgodnie z ustawieniami strefy czasowej wybranej przez
analityka. W programie ProDiscover Incident Response Edition takÈ operacjÚ moĝesz wykonaÊ,
wybierajÈc z menu gïównego polecenie File/Preferences, co spowoduje wyĂwietlenie na ekranie
okna dialogowego Preferences, tak jak to zostaïo przedstawione na rysunku 4.1.
RYSUNEK 4.1.
Ustawienia strefy czasowej w programie ProDiscover
Poleć książkęKup książkęAnaliza systemu plików
109
W atrybucie $SIA są przechowywane cztery znaczniki czasu: czas ostatniej modyfikacji pliku
(ang. Modified), czas ostatniego dostępu do pliku (ang. Accessed), czas ostatniej zmiany rekordu
MFT reprezentującego plik (ang. Changed) oraz czas utworzenia pliku (ang. Born, czyli czas
„narodzin” pliku). Komplet tych czterech znaczników jest często określany mianem znaczników
MACB, gdzie każda z liter reprezentuje odpowiedni znacznik. Czasami spotyka się nieco inny
sposób definiowania tych znaczników, znany jako znaczniki MACE — czas modyfikacji pliku
(ang. Modified), czas ostatniego dostępu do pliku (ang. Accessed), czas utworzenia pliku (ang.
Created) oraz czas ostatniej modyfikacji rekordu MFT tego pliku (ang. Entry modified). Dla
zachowania spójności i w celu uniknięcia nieporozumień w dalszej części tego rozdziału mówiąc
o znacznikach czasu, będziemy się trzymali notacji MACB. Znaczniki czasu są modyfikowane
i aktualizowane podczas normalnego działania systemu — na przykład kiedy jest tworzony
nowy plik, jego wszystkie znaczniki czasu są ustawiane na bieżącą datę i czas. Za każdym razem,
kiedy do pliku są wprowadzane jakiekolwiek zmiany (na przykład dane są dodawane, modyfi-
kowane czy usuwane przez użytkownika lub usługę), aktualizowany jest znacznik czasu ostat-
niej modyfikacji pliku. Jak za chwilę zobaczysz w ramce „Znacznik czasu ostatniego dostępu do
pliku”, sposób aktualizacji tego znacznika podlega kilku ściśle określonym regułom.
OSTRZE¿ENIE
Znacznik czasu ostatniego dostÚpu do pliku
WiÚkszoĂÊ analityków sÈdzi, ĝe kiedy dany plik jest otwierany lub w jakikolwiek inny sposób
„dotykany” przez system, znacznik czasu ostatniego dostÚpu do pliku (przechowywany w atrybucie
$SIA rekordu MFT) jest modyfikowany tak, aby odzwierciedlaÊ czas wykonania takiej operacji.
W praktyce jednak okazuje siÚ, ĝe znacznik czasu ostatniego dostÚpu do pliku zapisanego w systemie
NTFS na dysku twardym nie zawsze jest aktualny. Ze wzglÚdu na wydajnoĂÊ systemu plików NTFS
opóěnia zapis na dysku zaktualizowanego znacznika czasu ostatniego dostÚpu do pliku, przechowujÈc
jednak w pamiÚci operacyjnej systemu poprawne wartoĂci znaczników. System Windows aktualizuje
znaczniki na dysku dopiero wtedy, kiedy wartoĂÊ znacznika czasu zapisanego na dysku róĝni siÚ od
wartoĂci znacznika czasu przechowywanego w pamiÚci operacyjnej o co najmniej godzinÚ lub wiÚcej
(zgodnie z informacjami podanymi na stronie firmy Microsoft, patrz http://www.microsoft.com/
resources/documentation/windows/xp/all/proddocs/en-us/fsutil_behavior.mspx?mfr=true).
Oprócz tego w rejestrze systemu znajduje siÚ wpis NtfsDisableLastAccessUpdate (patrz
klucz HKLMSYSTEMCurrentControlSetControlFileSystem), którego ustawienie na wartoĂÊ 1
powoduje zablokowanie aktualizacji znacznika czasu ostatniego dostÚpu do pliku. W systemach
Windows XP oraz Windows 2003 wpis NtfsDisableLastAccessUpdate nie jest tworzony podczas
instalacji domyĂlnej. W razie potrzeby jednak moĝesz taki wpis utworzyÊ rÚcznie i nadaÊ mu
wartoĂÊ 1. Wykonanie takiej operacji jest zalecane w celu zwiÚkszenia wydajnoĂci systemu plików
w systemach speïniajÈcych rolÚ duĝych serwerów plików. W systemie Windows Vista (oraz jego
nastÚpcy, Windows 7) wpis NtfsDisableLastAccessUpdate jest tworzony podczas instalacji
systemu i domyĂlnie ustawiany na wartoĂÊ 1. Nie oznacza to jednak, ĝe znacznik czasu ostatniego
dostÚpu do pliku nigdy nie jest aktualizowany — w praktyce niektóre operacje, takie jak utworzenie
pliku, przeniesienie pliku do innego katalogu czy skopiowanie pliku, mogÈ powodowaÊ zmianÚ
wartoĂci tego znacznika. Zablokowanie aktualizacji znacznika odnosi siÚ zatem tylko do takich
operacji jak otwarcie pliku i przeglÈdanie jego zawartoĂci.
Poleć książkęKup książkę110
Rozdziaï 4
Oprócz wspomnianego atrybutu $SIA każdy plik zapisany w systemie plików NTFS ma
w swoim rekordzie MFT co najmniej jeden atrybut $FILE_NAME ($FNA). Atrybut ten składa się
z 66 bajtów metadanych oraz nazwy pliku. Każdy rekord MFT może mieć więcej niż jeden
atrybut $FNA, ponieważ oprócz standardowych długich nazw każdy plik może mieć również
krótką nazwę, zapisaną w starym formacie DOS 8.3 (aczkolwiek w razie potrzeby da się to za-
blokować, zmieniając wartość odpowiedniego wpisu w rejestrze). W praktyce oznacza to, że
jeżeli masz plik o nazwie To jest plik o bardzo długiej nazwie.doc, to będzie istniał również
atrybut $FNA zawierający nazwę to_jes~1.doc, która składa się z ośmiu znaków, separatora
w postaci kropki i trzech znaków rozszerzenia. Jak widać, w takiej sytuacji rekord MFT repre-
zentujący nasz plik będzie miał jeden atrybut $SIA oraz dwa atrybuty $FNA.
Oprócz nazwy pliku w atrybutach $FNA są przechowywane odwołania do katalogu nad-
rzędnego (co pozwala różnym narzędziom na całkowite zrekonstruowanie ścieżki do pliku)
oraz cztery znaczniki czasu zapisane w tym samym formacie co znaczniki w atrybucie $SIA.
Podstawowa różnica pomiędzy tymi znacznikami polega jednak na tym, że system Windows
nie aktualizuje znaczników atrybutu $FNA w taki sposób jak w przypadku znaczników prze-
chowywanych w atrybucie $SIA. Znaczniki czasu przechowywane w atrybucie $FNA repre-
zentują oryginalną datę i czas, kiedy plik został utworzony, przeniesiony lub kiedy została
zmieniona jego nazwa. Z tego względu parsowanie zawartości rekordów MFT wybranych
plików i porównywanie znaczników czasu przechowywanych w atrybutach $SIA i $FNA jest
jedną z typowych technik, wykorzystywanych przez analityków do sprawdzenia, czy znaczniki
w atrybucie $SIA nie zostały celowo zmodyfikowane przez użytkownika lub złośliwe opro-
gramowanie w celu ukrycia pliku albo zamaskowania wykonanej operacji.
W internecie jest dostępnych co najmniej kilka bezpłatnych narzędzi typu open source,
które pozwalają na wyodrębnianie atrybutów $SIA i $FNA z rekordów MFT. Jednym z takich
narzędzi jest skrypt napisany w języku Python przez Davida Kovara, noszący nazwę analy-
zeMFT.py (patrz strona https://github.com/dkovar/analyzeMFT). Skrypt zawiera kilka
elementów graficznych, stąd przed pierwszym użyciem powinieneś dokładnie przeczytać jego
dokumentację i zainstalować odpowiednie biblioteki na swoim komputerze. Innym rozwią-
zaniem może być otwarcie kodu źródłowego skryptu do edycji i zmiana wiersza noGUI
= False na wiersz noGUI = True. Jeżeli jesteś zapalonym użytkownikiem systemu Windows,
na stronie autora znajdziesz również instalator samodzielnej, wykonywalnej wersji Windows
tego narzędzia. Skrypt analyzeMFT.py oferuje kilka bardzo użytecznych opcji, z których
jedna, -a, pozwala na włączenie wykrywania „anomalii” (ang. turn on anomaly detection).
Użycie tej opcji powoduje sprawdzenie, czy 32 mniej znaczące bity znaczników czasu w atry-
bucie $SIA mają wartość 0 oraz czy data utworzenia pliku zapisana w atrybucie $FNA jest póź-
niejsza niż data zapisana w atrybucie $SIA. Pozytywny wynik dowolnego z tych testów może
wskazywać na próbę ręcznej modyfikacji znaczników czasu w celu ukrycia pliku lub zama-
skowania złośliwej aktywności. Przy okazji warto zaznaczyć, że kiedy używasz opcji wykrywania
anomalii, wyniki działania skryptu, zapisywane w formacie CSV, mają aż 53 kolumny, czyli na
przykład w arkuszu Excela będą zajmowały kolumny od A do BA.
Poleć książkęKup książkęAnaliza systemu plików
111
Jakiś czas temu napisałem w języku Perl swój własny skrypt, mft.pl, przeznaczony do
analizy znaczników czasu plików i katalogów (oraz innych informacji) przechowywanych
w MFT. Skrypt możesz znaleźć w materiałach dodatkowych do niniejszej książki3; szczerze
mówiąc, skrypt ten ustanowił dobrą bazę do napisania innych skryptów w języku Perl, po-
szerzonych o dodatkowe funkcjonalności. Jak się przekonasz w nieco dalszej części tego
rozdziału, skrypt mft.pl w czytelny i przyjazny dla użytkownika sposób wyświetla infor-
macje zawarte w nagłówkach rekordów MFT (ang. MFT File Entry Header) oraz atrybu-
tach $SIA i $FNA.
Analizując informacje zawarte w tablicy MFT, powinieneś zawsze pamiętać, że różne ope-
racje wykonywane przez użytkownika (poza prostym odczytywaniem i zapisywaniem za-
wartości pliku) mogą mieć wpływ na wartości znaczników czasu przechowywanych w atrybucie
$SIA. Więcej szczegółowych informacji na ten temat znajdziesz w artykule KB299648 bazy
wiedzy Microsoft, dostępnym na stronie http://support.microsoft.com/kb/299648. Na przykład
kopiowanie lub przenoszenie plików pomiędzy katalogami w obrębie jednej partycji NTFS
powoduje zachowanie znacznika czasu ostatniej modyfikacji pliku, ale kopiowanie spowoduje
zmianę znacznika czasu utworzenia pliku na bieżącą datę i czas, podczas gdy przenoszenie
pliku spowoduje zachowanie oryginalnej daty i czasu utworzenia pliku. Więcej ciekawych
informacji znajdziesz w wymienionym wyżej artykule bazy wiedzy Microsoft, ale na chwilę
obecną powinieneś po prostu zapamiętać, że to, czy i które znaczniki czasu zostaną zmodyfi-
kowane, zależy od wielu różnych czynników, takich jak to, czy plik jest kopiowany, czy prze-
noszony, czy jest przenoszony do innego katalogu na tej samej partycji, czy też jest przeno-
szony z jednej partycji na drugą itp.
UWAGA
Testowanie
Nie udaïo mi siÚ jeszcze znaleěÊ (ale ciÈgle szukam) peïnej dokumentacji szczegóïowo opisujÈcej
wpïyw wszystkich moĝliwych scenariuszy operacji plikowych na zachowanie poszczególnych
znaczników czasu. Z tego wzglÚdu dobry analityk powinien zawsze przetestowaÊ w praktyce
przyjÚte zaïoĝenia, kiedy podczas analizy napotyka niestandardowe warunki czy sytuacje.
Na przykïad jeĝeli podejrzewasz, ĝe plik zostaï skopiowany z przenoĂnej pamiÚci USB
sformatowanej w systemie FAT32 na partycjÚ NTFS, jak zachowaïy siÚ poszczególne znaczniki
czasu (zarówno dla pliku oryginalnego, jak i utworzonej kopii)? A co w przypadku kopiowania
plików pomiÚdzy udziaïami sieciowymi NTFS? W praktyce w takich sytuacjach zawsze warto
zasymulowaÊ warunki danej hipotezy i na wïasnej skórze zweryfikowaÊ, czy przyjÚte zaïoĝenia
byïy poprawne.
3 Patrz strona http://code.google.com/p/winforensicaanalysis/downloads/detail?name=wfa3e.zip can=2 q=
— przyp. tłum.
Poleć książkęKup książkę112
Rozdziaï 4
Znaczniki czasu przechowywane w atrybutach $SIA mogą być modyfikowane nie tylko
poprzez wykonanie opisanych wcześniej operacji, ale również w wyniku celowej działalności
użytkownika. Jeżeli dany użytkownik ma prawa zapisu konkretnego pliku, może również
ustawić znaczniki czasu dla tego pliku na arbitralnie wybraną datę i czas — takie modyfikacje
zostaną automatycznie zapisane w znacznikach czasu przechowywanych w atrybucie $SIA
pliku (zgodnie z artykułem http://msdn.microsoft.com/en-us/library/cc781134 takie zmiany
są wpisywane również w rekordach MFT reprezentujących katalogi). Dokonywanie takich
celowych zmian jest jedną z technik mających na celu utrudnienie lub zmylenie analizy śled-
czej i powłamaniowej, często określaną nazwą timestomping, która wzięła się od nazwy jed-
nego z pierwszych narzędzi służących do tego celu, timestomp.exe (aczkolwiek w czasie kiedy
pisałem tę książkę, praktycznie nie byłem w stanie znaleźć już kopii tego narzędzia w internecie).
To narzędzie pozwala na ustawienie wybranych znaczników czasu pliku na arbitralnie wy-
braną datę i czas. Spróbuj sobie wyobrazić potencjalne skutki jego użycia, kiedy system będący
przedmiotem dochodzenia został skonfiskowany pracownikowi w roku 2011, wstępna analiza
wykazała, że podejrzane pliki zostały utworzone w roku 2014, a znaczniki czasu ostatniego
dostępu pokazują, że użytkownik ostatnio korzystał z tych plików w roku 1984. Nawet tylko
jeden czy dwa pliki z tak zmodyfikowanymi znacznikami czasu byłyby wystarczającym po-
wodem do zakwestionowania również innych plików. Jedną z wad używania narzędzia time-
stomp.exe jest jednak to, że aplikacja ta wydaje się mieć tylko 32-bitową rozdzielczość czasu,
co powoduje, że jej użycie ustawia 32 mniej znaczące bity obiektu FILETIME na wartość 0.
Dzięki temu użycie tego narzędzia jest relatywnie proste do wykrycia — przykładowo, jak już
wspominałem wcześniej, wykonanie takiego testu jest częścią procesu „wykrywania anomalii”
w skrypcie analyzeMFT.py, napisanym w języku Python przez Davida Kovara.
Inną techniką modyfikacji znaczników czasu plików jest kopiowanie wartości znaczników
czasu z innego pliku, zwłaszcza takiego, który jest częścią oryginalnej instalacji systemu Win-
dows, jak na przykład kernel32.dll, zlokalizowany zazwyczaj w katalogu C:Windowssystem32.
Ta technika pozwala na uniknięcie problemów z rozdzielczością czasu, jakie trapią program
timestomp.exe, znacznie bardziej utrudnia wykrycie pliku podczas analizy śledczej (patrz roz-
dział 7.), a co więcej, taką operację można łatwo wykonać za pomocą standardowych funkcji
API (ang. Application Programming Interface) systemu Windows.
Analiza i porównywanie znaczników MACB z atrybutów $SIA i $FNA jest tylko jednym
z przykładów doskonale ilustrujących fakt, że znajomość struktury i mechanizmów działa-
nia MFT może być źródłem bezcennych informacji dla analityka prowadzącego dochodzenie.
Dobre zrozumienie budowy rekordów tablicy MFT i zasad, jakie rządzą ich tworzeniem,
może dostarczyć analitykowi wielu dodatkowych informacji na temat statusu i historii bada-
nych plików.
Poleć książkęKup książkęAnaliza systemu plików
113
UWAGA
Timestomping
Jak juĝ wspominaïem wczeĂniej, podczas pracy nad tÈ ksiÈĝkÈ nie udaïo mi siÚ znaleěÊ kopii
programu timestomp.exe w internecie. Nie stanowi to jednak ĝadnego problemu, poniewaĝ przy
uĝyciu innych narzÚdzi, takich jak na przykïad prosty skrypt w jÚzyku Perl, moĝna bez trudu
zmodyfikowaÊ znaczniki czasu danego pliku, kopiujÈc wartoĂci znaczników z innego, arbitralnie
wybranego pliku. Aby to zrobiÊ, zainstalowaïem interpreter ActivePerl firmy ActiveState4, a nastÚpnie
przy uĝyciu polecenia przedstawionego poniĝej zainstalowaïem bibliotekÚ Win32API::File::Time:
C:Perl ppm install win32api-file-time
Po zainstalowaniu tego moduïu mogïem go uĝyÊ do wywoïania dwóch funkcji Windows API,
pozwalajÈcych na odczytanie i zapisanie znaczników czasu wybranego pliku. Aby to zrobiÊ,
posïuĝyïem siÚ nastÚpujÈcymi poleceniami (fragment skryptu w jÚzyku Perl):
my ($atime, $mtime, $ctime) = GetFileTime ($file);
SetFileTime ($file2, $atime, $mtime, $ctime);
¿eby zilustrowaÊ dziaïanie tego mechanizmu, dodaïem parÚ wierszy wykorzystujÈcych
funkcjÚ stat() do sprawdzania znaczników czasu wybranego pliku, a nastÚpnie uruchomiïem
skrypt, który kopiowaï znaczniki czasu pliku kernel32.dll do pliku C: emp est.txt. Wyniki dziaïania
skryptu byïy nastÚpujÈce:
C:Windowssystem32kernel32.dll
Creation Time: Tue Feb 28 08:00:00 2006
Last Access : Mon May 30 21:14:22 2011
Last Write : Sat Mar 21 10:06:58 2009
C:Temp est.txt
Creation Time: Mon May 30 17:36:12 2011
Last Access : Mon May 30 17:36:12 2011
Last Write : Mon May 30 17:36:12 2011
C:Temp est.txt
Creation Time: Tue Feb 28 08:00:00 2006
Last Access : Mon May 30 21:14:22 2011
Last Write : Sat Mar 21 10:06:58 2009
Skrypt najpierw wyĂwietla wyniki dziaïania funkcji stat() dla pliku kernel32.dll (wszystkie
znaczniki czasu sÈ wyĂwietlane zgodnie z ustawieniami lokalnej strefy czasowej komputera;
w moim przypadku byï to standardowy czas letni wschodniego wybrzeĝa, czyli EDT5) oraz dla
pliku C: emp est.txt. NastÚpnie skrypt kopiuje wartoĂci znaczników czasu z pliku kernel32.dll
do pliku C: emp est.txt i ponownie wyĂwietla wyniki dziaïania funkcji stat() dla ostatniego pliku.
Znacznik czasu ostatniego dostÚpu do pliku kernel32.dll zostaï zmodyfikowany po uruchomieniu
skryptu i nastÚpnie skopiowany do pliku docelowego (w tym przykïadzie skrypt zostaï uruchomiony
na komputerze dziaïajÈcym pod kontrolÈ systemu Windows XP SP3).
4 Patrz strona http://www.activestate.com/activeperl — przyp. tłum.
5 EDT — Eastern Standard Time with Daylight Savings (UTC–4 h) — przyp. tłum.
Poleć książkęKup książkę114
Rozdziaï 4
Aby zweryfikowaÊ dziaïanie skryptu, przy uĝyciu programu FTK Imager skopiowaïem tablicÚ
MFT z systemu i pobraïem z niej odpowiednie dane przy uĝyciu omawianego juĝ wczeĂniej skryptu
mft.pl. Informacje dla pliku test.txt wyglÈdaïy nastÚpujÈco (wszystkie czasy sÈ wyĂwietlone
w formacie UTC, czyli Zulu6):
70319 FILE Seq: 15 Link: 1 0x38 3 Flags: 1
0x0010 96 0 0x0000 0x0000
M: Sat Mar 21 14:06:57 2009 Z
A: Tue May 31 01:14:22 2011 Z
C: Tue May 31 01:14:23 2011 Z
B: Tue Feb 28 11:59:59 2006 Z
0x0030 112 0 0x0000 0x0000
FN: test.txt Parent Ref: 67947 Parent Seq: 49
M: Mon May 30 21:36:12 2011 Z
A: Mon May 30 21:36:12 2011 Z
C: Mon May 30 21:36:12 2011 Z
B: Mon May 30 21:36:12 2011 Z
0x0080 48 0 0x0000 0x0018
Pierwszy zestaw znaczników MACB zostaï pobrany z atrybutu $SIA, a drugi zestaw z atrybutu
$FNA. Jak widaÊ, znaczniki czasu pobrane z atrybutu $SIA odpowiadajÈ rezultatom zwróconym
przez funkcjÚ stat() (oczywiĂcie po odpowiednim przeliczeniu róĝnic czasu wynikajÈcych z róĝnych
stref czasowych), podczas gdy znaczniki z atrybutu $FNA reprezentujÈ oryginalne wartoĂci znaczników
MACB tego pliku.
Mechanizm tunelowania w systemie plików
Kolejnym zagadnieniem związanym z systemem plików komputerów działających pod
kontrolą systemu Windows, które może mieć znaczący wpływ na wartości znaczników
MACB plików obserwowane podczas analizy, jest tunelowanie systemu plików (ang. file system
tunneling). Mechanizm ten jest spotykany zarówno w systemie FAT (ang. File Allocation Ta-
ble), jak i NTFS (ang. New Technology File System) i został szczegółowo opisany w artykule
KB172190 bazy wiedzy firmy Microsoft (patrz strona http://support.microsoft.com/kb/172190).
Pojęcie tunelowania systemu plików odnosi się do faktu, że jeżeli w ciągu określonego czasu
od momentu usunięcia danego pliku (domyślnie jest to 15 sekund) zostanie utworzony no-
wy plik o takiej samej nazwie, to rekord w tabeli plików (FAT lub MFT) należący do starego,
usuniętego pliku zostanie ponownie użyty i przypisany do nowo utworzonego pliku. Inaczej
mówiąc, jeżeli na przykład usuniesz plik o nazwie mójplik.txt (lub zmienisz jego nazwę) i za-
raz po tym utworzysz nowy plik o takiej samej nazwie (albo zmienisz nazwę innego pliku na
nazwę, jaką miał usunięty plik), to rekord w tablicy plików reprezentujący usunięty plik zo-
stanie ponownie wykorzystany dla nowego pliku, dzięki czemu dla nowego pliku zostanie za-
chowana data utworzenia oryginalnego, usuniętego pliku. Zgodnie z artykułem KB172190 bazy
6 Czas UTC (ang. Universal Time Coordinated) jest używany w nawigacji lotniczej i morskiej, gdzie jest
znany pod swoją wojskową nazwą Zulu Time (Zulu w alfabecie fonetycznym odpowiada literze z,
oznaczającej południk zerowy przebiegający przez londyńską dzielnicę Greenwich) — przyp. tłum.
Poleć książkęKup książkęAnaliza systemu plików
115
wiedzy firmy Microsoft taki mechanizm tunelowania został zaimplementowany w celu zacho-
wania kompatybilności wstecznej ze starszymi, 16-bitowymi aplikacjami systemu Windows,
które korzystały z mechanizmu bezpiecznego zapisu plików na dysku (ang. safe save).
Aby zilustrować działanie mechanizmu tunelowania systemu plików, utworzyłem na moim
komputerze, działającym pod kontrolą systemu Windows XP SP3, plik o nazwie test3.txt
zajmujący 31 bajtów i odczekałem kilka dni. Znaczniki czasu z atrybutu $SIA tego pliku, od-
czytane za pomocą funkcji stat() języka Perl, wyglądały następująco (w formacie UTC):
c: emp est3.txt 31 bytes
Creation Time: Mon May 30 21:41:48 2011 UTC
Last Access : Mon May 30 21:41:48 2011 UTC
Last Write : Mon May 30 21:41:48 2011 UTC
Następnie usunąłem plik test3.txt i natychmiast (w ciągu maksymalnie 15 sekund) ponow-
nie utworzyłem plik o takiej nazwie, wykonując z poziomu konsoli polecenie echo (na przy-
kład echo A tunnel test test3.txt). Nowa wersja pliku test3.txt zajmuje 18 bajtów,
a znaczniki czasu nowego pliku wyglądają następująco (jak poprzednio w formacie UTC):
c: emp est3.txt 18 bytes
Creation Time: Mon May 30 21:41:48 2011 UTC
Last Access : Fri Jun 3 20:39:18 2011 UTC
Last Write : Fri Jun 3 20:39:18 2011 UTC
Jak łatwo zauważyć, data utworzenia nowego pliku jest identyczna z datą utworzenia ory-
ginalnego pliku test3.txt, mimo że jego nowa wersja została „utworzona” 3 czerwca 2011 roku.
Aby zweryfikować to zachowanie, za pomocą programu FTK Imager wyeksportowałem tabli-
cę MFT tego dysku i „przepuściłem” ją przez skrypt mft.pl. Wartości znaczników MACB z atrybu-
tów $SIA i $FNA były następujące:
39630 FILE Seq: 60 Link: 1 0x38 3 Flags: 1
0x0010 96 0 0x0000 0x0000
M: Fri Jun 3 20:39:18 2011 Z
A: Fri Jun 3 20:39:18 2011 Z
C: Fri Jun 3 20:39:18 2011 Z
B: Mon May 30 21:41:48 2011 Z
0x0030 112 0 0x0000 0x0000
FN: test3.txt Parent Ref: 67947 Parent Seq: 49
M: Fri Jun 3 20:39:18 2011 Z
A: Fri Jun 3 20:39:18 2011 Z
C: Fri Jun 3 20:39:18 2011 Z
B: Mon May 30 21:41:48 2011 Z
Jak widać, czas utworzenia pliku (znacznik B) w obu atrybutach, $SIA i $FNA, odpowiada
czasowi utworzenia oryginalnego pliku, podczas gdy pozostałe znaczniki (MAC) zostały zmo-
dyfikowane i odpowiadają czasowi utworzenia nowego pliku. Pamiętaj, w tym przykładzie
utworzyłem z poziomu wiersza poleceń nowy plik — po utworzeniu pliku nie próbowałem
go otwierać (co mogłoby zmienić znacznik czasu ostatniego dostępu do pliku) ani w żaden
sposób modyfikować.
Poleć książkęKup książkę116
Rozdziaï 4
W praktyce wielokrotnie przekonywałem się, że zagadnienia, które omawialiśmy do tej
pory w tym rozdziale, mają ogromne znaczenie podczas ustalania czasu utworzenia plików
w systemach będących przedmiotem analizy śledczej czy powłamaniowej. Poprzez porówny-
wanie znaczników czasu utworzenia, zapisanych w atrybutach $SIA i $FNA podejrzanych pli-
ków, bardzo często udawało mi się znaleźć wyraźne ślady wskazujące na próby ukrycia takich
plików wśród innych plików systemowych i utrudnienia ich analizy. Całe zagadnienie stanie
się łatwiejsze do zrozumienia, kiedy przeczytasz rozdział 7., w którym będziemy się zajmować
analizą zdarzeń w osi czasu (ang. timeline analysis).
UWAGA
Indeksy $I30 w systemie plików NTFS
26 wrzeĂnia 2011 roku Chad Tilbury, instruktor SANS, zamieĂciï na swoim blogu wpis zatytuïowany
NTFS $I30 Index Attributes (patrz strona http://forensicmethods.com/ntfs-index-attribute; artykuï
ten zostaï zamieszczony kilka dni wczeĂniej na blogu SANS Forensic7). Chad wykonaï kawaï
naprawdÚ dobrej roboty, opisujÈc atrybuty indeksu oraz sposoby ich analizy i wykorzystania do
identyfikacji nazw usuniÚtych plików. W praktyce bardzo czÚsto zdarza siÚ, ĝe po zainfekowaniu
komputera pliki zïoĂliwego oprogramowania sÈ usuwane, czy to przez napastnika, czy nawet
nieumyĂlnie przez administratora lub uĝytkownika próbujÈcego ratowaÊ system. Atrybuty indeksu
mogÈ wskazaÊ usuniÚte pliki i dostarczyÊ informacji o ich znacznikach MACB — jak opisuje
Chad w swoim artykule, znaczniki czasu w atrybutach indeksu sÈ bardzo podobne do tych,
jakie moĝemy znaleěÊ w atrybucie $FNA rekordu MFT. Chad pokazuje równieĝ zastosowanie
skryptu indexparse.py, napisanego w jÚzyku Python przez Williego Ballenthina, speïniajÈcego
rolÚ parsera atrybutów indeksu. WiÚcej szczegóïowych informacji na temat skryptu znajdziesz
na stronie http://www.williballenthin.com/forensics/indx/index.html.
DZIENNIKI ZDARZE SYSTEMOWYCH
System Windows może rejestrować wiele różnych zdarzeń w dziennikach zdarzeń systemo-
wych (ang. Event Logs). Liczba i rodzaj rejestrowanych zdarzeń zależy od konfiguracji zasad
inspekcji komputera (ang. audit configuration) — sposoby określania bieżącej konfiguracji za-
sad inspekcji analizowanego systemu będziemy bardziej szczegółowo omawiać w rozdziale 5.
Pliki dzienników zdarzeń w systemach Windows 2000, Windows XP oraz Windows 2003
zawierają rekordy zdarzeń zapisane w dobrze udokumentowanym formacie binarnym (patrz
strona http://msdn.microsoft.com/en-us/library/aa363646(v=VS.85).aspx). Zgodnie z defini-
cją formatu w nagłówku każdego rekordu znajduje się specyficzny ciąg bajtów zwany „ma-
giczną liczbą” (ang. magic number), który w jednoznaczny sposób wyróżnia kolejne rekordy
pliku (włącznie z rekordem nagłówka pliku, zawierającym informacje o samym dzienniku
zdarzeń), tak jak to zostało przedstawione na rysunku 4.2.
7 Patrz strona http://computer-forensics.sans.org/blog/2011/09/20/ntfs-i30-index-attributes-evidence-of-
-deleted-and-overwritten-files — przyp. tłum.
Poleć książkęKup książkęAnaliza systemu plików
117
RYSUNEK 4.2.
Fragment rekordu dziennika zdarzeñ systemu Windows XP
Jak to zostało przedstawione na rysunku 4.2, ciąg znaków LfLe, czyli magiczna liczba re-
kordu dziennika zdarzeń, może być wykorzystany do identyfikacji poszczególnych rekordów
w dzienniku zdarzeń. 4 bajty danych poprzedzające magiczną liczbę rekordu (na rysunku 4.2
wspomniane cztery bajty reprezentują wartość 0xE0) określają rozmiar rekordu wyrażony
w bajtach. Taka informacja jest bardzo istotna nie tylko podczas parsowania pliku dziennika
zdarzeń na poziomie binarnym i wyodrębniania z pliku poszczególnych rekordów przy uży-
ciu różnych narzędzi (w tym własnych skryptów), ale również może być wykorzystana do
wyszukiwania i wyodrębniania rekordów dziennika zdarzeń ze zbiorów danych niemających
wyraźnie zaznaczonej struktury, takich jak niealokowana przestrzeń dysku twardego czy plik
wymiany, o których będziemy mówić nieco dalej w tym rozdziale.
Bardzo często zdarza się, że po wyodrębnieniu plików dzienników zdarzeń systemowych
z utworzonego wcześniej binarnego obrazu dysku próba otwarcia takich plików w przeglą-
darce dziennika zdarzeń (ang. Event Viewer; w polskiej wersji systemu Windows XP pro-
gram ten nosi nazwę Podgląd zdarzeń) kończy się wyświetleniem komunikatu o błędzie, in-
formującego, że plik dziennika zdarzeń jest „uszkodzony”. Najczęściej jednak w takiej sytuacji
plik dziennika nie jest uszkodzony, a prawdziwa przyczyna pojawienia się takiego komunikatu
jest związana z brakiem niektórych bibliotek DLL na komputerze, na którym przeprowadzamy
analizę pliku. Aby sobie poradzić z tym problemem, napisałem kilka własnych narzędzi, które
pozwalają na wydobycie z pliku dziennika zdarzeń informacji niezbędnych do przeprowa-
dzenia jego analizy. Pierwszym z tych narzędzi jest napisany w języku Perl skrypt evtrpt.pl,
który zbiera informacje o samych rekordach zdarzeń, takie jak częstość występowania po-
szczególnych rodzajów zdarzeń generowana według źródeł oraz identyfikatorów zdarzeń (ang.
event ID). Poniżej zamieszczam fragment wyników działania tego skryptu dla dziennika zda-
rzeń aplikacji (plik AppEvent.evt):
Source Event ID Count
------- ------- ------
SecurityCenter 1800 2
SecurityCenter 1807 192
Symantec AntiVirus 12 17
Symantec AntiVirus 14 17
Symantec AntiVirus 16 12
Symantec AntiVirus 53 3
Poleć książkęKup książkę118
Rozdziaï 4
Taki zestaw informacji pozwala na oszacowanie typów i liczby zdarzeń zapisanych w da-
nym pliku dziennika. Jest to dobry sposób na szybką ocenę zawartości dziennika zdarzeń
i sprawdzenie, czy w dzienniku zdarzeń znajdują się takie czy inne zdarzenia, które mogą mieć
znaczenie dla przeprowadzanej analizy. Informacja o liczbie zdarzeń poszczególnych typów
może być również przydatna do wielu innych celów. Na przykład jeżeli przeprowadzam analizę
systemu związaną ze złośliwym oprogramowaniem i w dzienniku zdarzeń widzę szereg rekor-
dów, których źródłem jest Symantec AntiVirus, to wiem, że taka aplikacja była zainstalowana
w badanym systemie, co może mieć istotne znaczenie dla przeprowadzanej analizy. Taka infor-
macja może być szczególnie przydatna w sytuacji, kiedy chciałbym zamontować binarny obraz
dysku jako kolejny dysk twardy w moim systemie i wykonać pełny skan jednym z programów
antywirusowych (w ramach jednego z etapów procesu wykrywania złośliwego oprogramowania,
o którym będziemy mówili w rozdziale 6.). W takiej sytuacji, znając zainstalowany wcześniej
program antywirusowy, mogę do wykonania skanu użyć innego programu. Analizę dzienni-
ków zdarzeń zazwyczaj rozpoczynam od sprawdzenia ustawień zasad inspekcji komputera
(ang. audit policy), aby przekonać się, jakich rekordów zdarzeń mogę się spodziewać w dzien-
niku. Z drugiej strony zdarzają się sytuacje, gdy na przykład pomimo że rejestrowanie zda-
rzeń związanych z logowaniem do systemu zostało włączone w ustawieniach zasad inspek-
cji komputera, to system był włączony przez długi czas z otwartą konsolą i nikt nie musiał się do
niego logować. W takiej sytuacji oczywiście w dzienniku Zabezpieczenia (ang. Security Event Log)
nie było żadnych zdarzeń związanych z logowaniem nowych użytkowników.
Skrypt evtrpt.pl podaje również informacje na temat zakresu dat, jaki obejmuje badany
dziennik zdarzeń, na przykład:
Date Range (UTC)
Thu Jan 18 12:41:04 2007 to Thu Feb 7 13:39:25 2008
Informacja o zakresie dat może być również bardzo użyteczna. Bardzo często zdarzało się,
że byłem proszony o dostarczenie informacji o tym, którzy użytkownicy logowali się do sys-
temu danego dnia lub w podanych ramach czasowych. Dzięki skryptowi evtrpt.pl mogłem
szybko sprawdzić, czy w danym dzienniku zdarzeń znajdę jakieś rekordy z interesującego
mnie okresu, czy też powinienem podarować sobie analizę dzienników zdarzeń i skon-
centrować się na analizie artefaktów pochodzących z innych źródeł.
UWAGA
Logi programów antywirusowych
WiÚkszoĂÊ powszechnie uĝywanych programów antywirusowych generuje takie czy inne rodzaje
logów. Wiele z nich jest zapisanych w prostym formacie tekstowym, dziÚki czemu moĝna je w ïatwy
sposób przeglÈdaÊ i analizowaÊ, zwïaszcza jeĝeli uda Ci siÚ zaimportowaÊ taki plik do programu
Excel. Bardzo czÚsto programy antywirusowe zapisujÈ równieĝ swoje rekordy w dzienniku zdarzeñ
aplikacji (ang. Application Event Log), aczkolwiek czasami taka opcja musi dopiero zostaÊ wïÈczona
przez uĝytkownika. Zdarza siÚ równieĝ i tak, ĝe program antywirusowy zapisuje wszystko w swoich
logach i nie pozostawia ĝadnego Ăladu w dzienniku zdarzeñ aplikacji.
Poleć książkęKup książkęAnaliza systemu plików
119
Kolejnym narzędziem, którego bardzo często używam do parsowania rekordów dzienni-
ków zdarzeń systemowych, jest napisany w języku Perl skrypt evtparse.pl, analizujący zawar-
tość plików dzienników zdarzeń na poziomie binarnym, lokalizujący poszczególne rekordy
i wyodrębniający je bez wywoływania jakichkolwiek funkcji Windows API. Takie podejście
do zagadnienia ma kilka niewątpliwych zalet, a jedną z najważniejszych jest to, że nie musisz
się przejmować faktem, iż plik dziennika zdarzeń wydaje się „uszkodzony”, co często zdarza
się w przypadku narzędzi wykorzystujących standardowe funkcje API systemu Windows.
Kolejną zaletą jest to, że skrypty w języku Perl nie są zależne od platformy, na której działają,
dzięki czemu możesz bez problemu uruchamiać takie skrypty na komputerach pracujących
pod kontrolą systemu Windows, Linux czy nawet Mac OS X. Skrypt evtparse.pl potrafi zapi-
sywać wyniki działania w formacie CSV (jest on bardzo wygodny, jeżeli chcesz analizować
wyniki działania w programie Excel) lub formacie TLN, wykorzystywanym do analizy zda-
rzeń w osi czasu (ang. timeline analysis), której zagadnienia będziemy szczegółowo omawiać
w rozdziale 7.
Wyodrębnienie rekordów z dziennika zdarzeń to jednak dopiero połowa sukcesu. W in-
ternecie możesz znaleźć cały szereg doskonałych źródeł dostarczających szczegółowych infor-
macji na temat tego, co poszczególne zdarzenia mogą znaczyć i jak należy je interpretować
zarówno osobno, jak i w powiązaniu z innymi zdarzeniami. Jednym z moich ulubionych
źródeł informacji o zdarzeniach jest portal EventID (patrz strona http://www.eventid.net/).
Roczny abonament w wysokości 24 dolarów naprawdę nie jest wygórowany, a w zamian
po zalogowaniu się do portalu pozwala nie tylko na wyszukiwanie i przeglądanie szczegóło-
wych informacji o zdarzeniach związanych z systemami operacyjnymi firmy Microsoft, ale
również na uczestniczenie w dyskusjach z innymi użytkownikami (zwykle są to admini-
stratorzy różnych systemów) na temat sytuacji i problemów, z jakimi zetknęli się w swoich
środowiskach. Warto również wspomnieć, że informacje o poszczególnych zdarzeniach
zawierają łącza prowadzące do odpowiednich artykułów z bazy wiedzy Microsoft, gdzie
możesz znaleźć dodatkowe dane. Jeżeli poszukujesz informacji na temat zdarzeń genero-
wanych przez określone aplikacje, to najlepiej sprawdzić w dokumentacji programu lub na
stronie jego producenta, gdzie różnego rodzaju blogi i fora mogą stanowić prawdziwą ko-
palnię wiedzy w tym zakresie.
Kolejnym ciekawym źródłem informacji na temat zdarzeń, które możesz znaleźć w dzienni-
ku Zabezpieczenia (ang. Security Event Log), jest portal Ultimate Windows Security Event Log
(patrz strona http://www.ultimatewindowssecurity.com/securitylog/encyclopedia/default.aspx).
Znajdziesz tam wyczerpującą listę zdarzeń wraz ze szczegółowymi objaśnieniami i wygodną
wyszukiwarką. Na stronie są zamieszczone opisy zdarzeń, które są generowane w systemach
Windows XP i Windows 2003, wraz z opisami ich odpowiedników w systemach Windows
Vista oraz Windows 2008.
Poleć książkęKup książkę120
Rozdziaï 4
WSKAZÓWKA
Analiza dzienników zdarzeñ
PrzeprowadzajÈc analizÚ systemu Windows, nie mam przygotowanej z góry listy zdarzeñ, których
poszukujÚ w kaĝdym przypadku. Zazwyczaj szukam zdarzeñ, które z takiego czy innego powodu
mogÈ byÊ zwiÈzane z celami prowadzonego dochodzenia lub ekspertyzy. Lista poszukiwanych
zdarzeñ jest równieĝ mocno uzaleĝniona od bieĝÈcych ustawieñ zasad inspekcji analizowanego
systemu. Podczas mojej pracy bardzo czÚsto spotykaïem siÚ z systemami z domyĂlnie, fabrycznie
ustawionymi zasadami inspekcji (lub z minimalnymi odstÚpstwami od ustawieñ domyĂlnych),
ale zdarzaïy siÚ równieĝ systemy, w których zasady inspekcji byïy znaczÈco zmodyfikowane
(na przykïad uĝytkownik zmieniaï domyĂlny rozmiar plików dzienników zdarzeñ systemowych).
KiedyĂ miaïem nawet okazjÚ analizowaÊ komputer dziaïajÈcy pod kontrolÈ systemu Windows
XP, na którym oprócz wielu innych ustawieñ, wïÈcznie z
Pobierz darmowy fragment (pdf)