Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00579 008228 10457860 na godz. na dobę w sumie
Analiza śledcza i powłamaniowa. Zaawansowane techniki prowadzenia analizy w systemie Windows 7. Wydanie III - książka
Analiza śledcza i powłamaniowa. Zaawansowane techniki prowadzenia analizy w systemie Windows 7. Wydanie III - książka
Autor: Liczba stron: 328
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-6652-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> hacking >> bezpieczeństwo systemów
Porównaj ceny (książka, ebook, audiobook).

Kiedy spełni się najgorszy sen każdego administratora i użytkownika, kiedy zostaną przełamane wszystkie zabezpieczenia i intruz dostanie się do systemu, trzeba działać szybko i precyzyjnie. Jednym z kluczowych aspektów jest przeprowadzenie analizy powłamaniowej. Dzięki niej można ocenić skalę szkód i słabe punkty zabezpieczeń oraz podjąć działania mające na celu zapobieżenie takim incydentom w przyszłości.

W Twoje ręce oddajemy kolejne wydanie niezwykłej książki, napisanej przez jednego z najlepszych specjalistów w zakresie analizy śledczej i powłamaniowej. W trakcie lektury zdobędziesz szczegółową wiedzę na temat metod prowadzenia analizy w systemie Windows. Dowiesz się, jak analizować system plików, rejestr oraz logi systemu. Ponadto nauczysz się wykrywać złośliwe oprogramowanie oraz korzystać z usługi VSS. Znajdziesz tu także przydatną listę kontrolną, która pozwoli Ci błyskawicznie wkroczyć do akcji po wystąpieniu włamania. To obowiązkowa lektura dla każdego specjalisty od bezpieczeństwa systemów!

Poznaj najlepsze praktyki:

Obowiązkowa lektura dla każdego inżyniera bezpieczeństwa systemów!

Znajdź podobne książki Ostatnio czytane w tej kategorii

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)

Gdzie kupić całą publikację:

Analiza śledcza i powłamaniowa. Zaawansowane techniki prowadzenia analizy w systemie Windows 7. Wydanie III
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: