Obrazy dysków

Obraz dysku (forensic image) jest w informatyce śledczej podstawową metodą zabezpieczenia dowodów cyfrowych.

Obraz dysku zawiera całą adresowalną zawartość urządzenia od pierwszego do ostatniego sektora, bez względu na to jakie dane ona zawiera.

Zacznę od przykładu czegoś co nie jest obrazem dysku. Istnieje wiele narzędzi do archiwizacji dysków takich jak Acronis TrueImage, Norton Ghost, Clonezilla. Używane są one powszechnie do tworzenia kopii zapasowych dysków. Główną ich zaletą jest to, że kopiują one tylko przestrzeń dysku która jest w użyciu. Wolna przestrzeń nie jest kopiowana, dzięki czemu obraz wykonany jest szybciej i jest mniejszy. Świetne rozwiązanie w IT jednak w informatyce śledczej unikajmy jak ognia.

W informatyce śledczej potrzebujemy pełnego obrazu, razem z tak zwaną wolną przestrzenią – to właśnie tam są przecież najciekawsze rzeczy.

Można wyróżnić dwa podstawowe typy obrazów:

  • Klony (kiedyś popularne, ale dzisiaj coraz rzadziej stosowane)
  • Obrazy skopiowane do pliku

Klonowanie

Klonowanie dysku polega na skopiowaniu jego binarnej zawartości, kropka w kropkę na inny dysk. Aby było to możliwe dysk docelowy powinien mieć taką samą lub większą pojemność niż dysk źródłowy. Po sklonowaniu nowy dysk będzie miał identyczną zawartość. Jeżeli na przykład podłączymy go do tego samego komputera (nie róbmy tego z prawdziwym dowodem!), wystartuje on system w identyczny sposób.

Istnieje kilka pułapek w klonowaniu. Po pierwsze, jeżeli sklonujemy dysk na dysk większy, co jest regułą, w przyszłości nie będziemy wiedzieć gdzie na tym dysku skończył się klon, a gdzie zaczęła się resztka dysku docelowego.

Należy zatem przede wszystkim:

  • Udokumentować dokładną wielkość dysku źródłowego w sektorach.
  • Dysk docelowy przygotować do kopiowania poprzez jego pełne nadpisanie. Dzięki temu nie ryzykujemy, że na dysku docelowym pozostaną dane z poprzedniej zawartości. To bardzo ważny aspekt również dlatego, że poprzednia zawartość może pozostać w związku z błędami zapisu w trakcie tworzenia obrazu. Polecam nadpisanie innym hexem niż 00h lub FFh, na przykład F6 a nawet tekstem “DYSKDOCELOWY” jeżeli nasz sprzęt to obsługuje. Da nam to dodatkową wskazówkę gdzie dysk docelowy się zaczął.

Obecnie istnieją dyski o sektorach 512 bajtów i 4 KB – nie należy ich mieszać. Nigdy nie należy klonować do dysku SSD! Zbyt wiele dzieje się tam pod maską i dowód może ulec zmianie w związku z komendami TRIM lub garbage collections.

W trakcie klonowania tworzony jest hasz dysku źródłowego. Po ukończeniu tworzony jest hasz dysku docelowego – ale tylko dla identycznej ilości sektorów. Hasze powinny być takie same.

Nigdy nie podłączamy klonu bez blokera! Prawie na pewno zawartość i hasz ulegną zmianie. Windows może na przykład tylko zmienić dirty bit (mówi on nam czy nośnik został odmontowany prawidłowo) na partycji i po sprawie.

Klon tworzymy zwykle poprzez wybranie odpowiedniej opcji w urządzeniu do klonowania (np. Image Masster Solo 4) lub używając komendy dd w Linuksie. Poniżej krótko przedstawię klonowanie w Linuksie.

Jak wszystkim powszechnie wiadomo w Linuksie wszystko jest plikiem – również cała zawartość dysków reprezentowana jest jako plik na przykład /dev/sda lub /dev/sdb. Aby sklonować dysk:

  • Podłączmy dysk źródłowy i docelowy,
  • Używamy komendy „fdisk -l” aby upewnić się który jest który.
  • Używamy komendy: „dd if=/dev/sda of=/dev/sdb” gdzie if to dysk źródłowy a of docelowy. If oznacza input file a of output file. Dysk zostanie sklonowany, komenda jest bardzo lakoniczna – nie zobaczymy żadnej informacji zwrotnej, jeżeli nie pojawią się błędy.

Powyżej przedstawiłem tylko “Hello Wolrd!” klonowanie. W praktyce zastosujemy inną odmianę komendy dd (dcfldd) z kilkoma dodatkowymi opcjami.

Obrazy skopiowane do pliku

Klonowanie dysku czasami może okazać się najlepszą opcją ale zwykle jest powiązane ze zbyt wieloma niedogodnościami. Lepiej jest skopiować obraz do pliku. Zawartością takiego pliku będzie kropka w kropkę taka sama co zawartość dysku źródłowego. Kropka w kropkę brzmi trochę nie na miejscu, ale dobrze obrazuje ideę. Kropka w kropkę– czyli co do jednego bitu. Istnieje kilka formatów, ale dwa podstawowe to:

  1. DD
  2. E01 (uaktualniony ostatnio do EX01)

Obrazy dysków możemy podzielić na:

  • skompresowane i nieskompresowane,
  • używające pojedynczego pliku lub segmentowane,
  • zaszyfrowane lub niezaszyfrowane.

DD – nazwa pochodzi od komendy Linuksa opisanej już wyżej w celu sklonowania dysku. Wystarczy małą modyfikacja, żeby zapisać obraz dysku do pliku:

dd if=/dev/sda of=/mnt/sdb1/image.dd

W powyższym przykładzie dysk sda zostanie zapisany do pliku image.dd. To tylko podstawowa komenda – w praktyce użyjemy nieco bardziej złożonej.

Format DD jest:

  • nieskompresowany,
  • może używać jednego pliku (jak w przykładzie) lub wielu segmentów,
  • nie używa szyfrowania.

DD to po prostu identyczna kopia dysku źródłowego. Będzie dokładnie takiej samej wielkości a wygenerowanie haszu tego pliku i urządzenia dyskowego da taki sam rezultat. O ile wszystko poszło dobrze oczywiście,,,

Zalety DD:

  • Format obsługiwany przez praktycznie każde oprogramowanie śledcze.
  • W wielu zastosowaniach będzie szybszy niż skompresowane obrazy.

Wady:

  • Brak kompresji powoduje duże rozmiary plików docelowych.
  • Brak wbudowanego szyfrowania.

E01 (oraz EX01) – format obrazu dysku wprowadzony przez Guidance Software, producenta Encase Forensics. Mimo, że jest to format własnościowy, specyfikacja jest dobrze znana i jest on wspierany w świecie informatykiśledczej przez większość oprogramowania, włączając w to konkurencję Guidance Software..

Format E01 może być:

  • Skompresowany lub nieskompresowany.
  • Może używać jednego pliku (chociaż nie jest to oficjalnie wspierane) lub wielu segmentów.
  • Może być zaszyfrowany.

Format E01 jest swego rodzaju ulepszeniem formatu DD. Zwiera wszystko to co DD, całą zawartość binarną dysku źródłowego, jednak tym razem jest ona ładnie opakowana.

Nazwa E01 pochodzi od rozszerzenia pierwszego segmentu. Kolejne segmenty będą miały rozszerzenia e02,e03, e04 itd. Nazywa się go również EWF czyli Expert Witness Format. Stąd nazwa linuksowego programu do tworzenia obrazów, ewfaquire.

Format E01 zawiera sekcję Header w której zawarte są podstawowe informację dotyczące obrazu – datę utworzenia obrazu, hasz, dodatkowy opis itp. Ponadto format ten posiada wbudowany mechanizm wykrywania błędów. W tym celu używa on 32-bitowego CRC32 w celu sprawdzania mniejszych fragmentów obrazu. Domyślnie każde 32 KB obrazu ma swoje podsumowanie. Nigdy nie zdarzyło mi się, żeby było to potrzebne, ale zawsze dobrze mieć taką opcję.

Wraz z wersją 7, Encase wprowadził uaktualnienie, format EX01, nie zdobył on jednak jeszcze większej popularności, poza użytkownikami Encase’a.

W praktyce format ten nie ma wad które warto by wymienić. Jest na tyle elastyczny, że pozwala dobrać rodzaj obrazu wybrany przez nas sposób. Problemy mogą pojawić się z implementacją w narzędziach go obsługujących. Na przykład, co jest dosyć ciekawe, dużo lepszą implementację ma FTK Imager niż sam Encase.

Generalnie polecam używanie e01 jako domyślnego formatu a innych jeżeli zajdzie taka konieczność.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *