SZCZEGÓŁOWY SPIS TREŚCI
ODTŁUMACZA
PRZEDMOWA
WPROWADZENIE
Dlaczego napisałem tę książkę
Co wyróżnia tę książkę
Dlaczego warto korzystać z linii poleceń
Docelowi czytelnicy i wymagania
Kto powinien przeczytać tę książkę
Niezbędna wiedza.
Preinstalowana platforma i oprogramowanie
Jak zorganizowana jest ta książka
Zakres tej książki
Konwencje i format
kierunki i wyzwania
i OSS w kontekście dochodzeniowo-śledczym
stosowania Linuxa i OSS w laboratoriach informatyki śledczej
Jądro Linuxa i urządzenia pamięci masowej
urządzenia
systemów plików przez jądro systemu
i powłoki systemu
zadaniami
Organizowanie zebranych dowodów i danych z wyjścia poleceń
nazewnictwa dla plików i katalogów
Skalowalna struktura katalogów śledztwa
Zapisywanie wyjścia poleceń za pomocą przekierowania
Ocena logistyczna infrastruktury zabezpieczenia
Rozmiary obrazów i wymagane miejsce na dysku
plików
rzadkie
Zgłaszane rozmiary plików i obrazów
i kopiowanie obrazów dowodowych
Szacowanie czasów ukończenia zadań
Wydajność i wąskie gardła
Ciepło i czynniki środowiskowe
Ustanawianie ochrony przed zapisem
Sprzętowe blokery zapisu
Programowe blokery zapisu
Linuxowe bootowalne płyty CD do informatyki śledczej
z trybami fizycznego dostępu tylko do odczytu
podejrzanego sprzętu komputerowego
sprzętowej konfiguracji komputera i usuwanie dysku
sprzętu w badanym komputerze
Podłączenie zabezpieczanego dysku do hosta śledczego
Przegląd sprzętu hosta zabezpieczenia
Identyfikacja podejrzanego napędu
Sprawdzanie informacji zwracanych przez badany dysk
Dokumentowanie danych identyfikacyjnych urządzenia
Sprawdzanie możliwości i funkcji dysku za pomocą hdparm
Wydobycie danych SMART za pomocą smartctl
Włączanie dostępu do ukrytych sektorów
Dostęp do obszaru serwisowego dysku
Zabezpieczenie hasłem ATA i dyski samoszyfrujące
Identyfikacja i odblokowanie dysków chronionych hasłem ATA
Identyfikacja i odblokowanie dysków samoszyfrujących Opal
Szyfrowane pendrive’y
Podłączanie nośników wymiennych
optyczne
Napędy taśmowe
pamięci
Podłączanie innych nośników
Inne urządzenia z dostępem do bloków lub znaków
obrazu za pomocą narzędzi typu dd
unixowe dd i GNU dd
obrazów w formatach dowodowych
ewfacquire
ftkimager
Pozyskiwanie obrazu z jednoczesnym zapisem w kilku miejscach
Zastosowanie kryptografii podczas zabezpieczania dowodów cyfrowych
Podstawy kryptograficznych funkcji skrótu
haszowania
obrazu za pomocą PGP lub S/MIME
Znaczniki czasu RFC-3161
Obsługa awarii i błędów dysku
Obsługa błędów w narzędziach informatyki śledczej
Inne metody w przypadku awarii dysku
Pozyskiwanie obrazu nośnika przez sieć
Zdalne pozyskiwanie obrazów dowodowych za pomocą rdd
Bezpieczne, zdalne tworzenie obrazu za pomocą ssh
Zdalne pozyskiwanie do kontenera dowodowego SquashFS
Pozyskiwanie obrazu zdalnego dysku w formatach EnCase i FTK
Zabezpieczanie działającego systemu za pomocą migawek Copy-On-Write
spis treści
Zabezpieczanie nośników wymiennych
Karty pamięci
Dyski optyczne
Taśmy magnetyczne
RAID i systemy wielodyskowe.
Zabezpieczanie zastrzeżonych układów RAID
JBOD i RAID-0 – striping dysków
Microsoft Dynamic Disks
RAID-1 – mirroring dysków
Linux RAID-5
Podsumowanie
Zastosowania kompresji obrazów
Standardowe, linuxowe narzędzia do obsługi kompresji
Format skompresowany EnCase EWF
Format skompresowany FTK SMART
Kompresja wbudowana w AFFlib
Skompresowane kontenery dowodowe SquashFS
Operowanie podzielonymi obrazami
Polecenie GNU split
Podział obrazów podczas akwizycji
Dostęp do zawartości podzielonego obrazu
Ponowne składanie podzielonych obrazów
Sprawdzanie integralności obrazów dowodowych
Sprawdzanie kryptograficznego skrótu utworzonego podczas zabezpieczenia
Ponowne obliczanie haszy obrazów dowodowych
Kryptograficzne skróty podzielonych obrazów nieprzetworzonych
Znajdowanie niepasujących do siebie okien haszowania
Sprawdzanie poprawności podpisów cyfrowych i znaczników czasu
Przekształcanie formatów obrazów
Zamiana obrazów nieprzetworzonych
Konwersja z formatu EnCase/E01
Konwersja formatu AFF
Kryptograficzne zabezpieczanie obrazu
Szyfrowanie GPG
Szyfrowanie
Wbudowane szyfrowanie w formatach dowodowych
Uniwersalne szyfrowanie dysków
Klonowanie i powielanie dysków
Przygotowanie klona dysku
obrazu na klonie dysku
Przesyłanie i przechowywanie obrazów
Niedrogie dyski do przechowywania i przenoszenia danych
Przesyłanie dużych ilości danych przez sieć
Bezpieczne zamazywanie i usuwanie danych
Usuwanie pojedynczych plików
Bezpieczne zamazywanie zawartości nośników danych
Wykorzystanie komendy ATA Security Erase Unit
Niszczenie kluczy szyfrowania dysków
Podsumowanie
UZYSKIWANIE DOSTĘPU
Pliki obrazów pozyskanych w celach dowodowych
Pliki nieprzetworzonych obrazów dysków oraz urządzenia pętli
Pliki obrazów w formatach dowodowych
Przygotowanie obrazów startowych za pomocą xmount
Obrazy maszyn wirtualnych (VM)
VMWare VMDK
Systemy plików szyfrowane z poziomu systemu operacyjnego
FileVault
i VeraCrypt
Określanie układu partycji oraz typów systemów plików
systemów plików
Wyodrębnianie zawartości partycji
Wyodrębnianie poszczególnych partycji
Znajdowanie i wyodrębnianie usuniętych partycji
Identyfikowanie i wyodrębnianie przestrzeni między partycjami
Wydobycie sektorów z obszarów HPA i DCO
Wydobywanie innych fragmentarycznych danych
slack space z systemów plików
Wyodrębnianie nieprzydzielonych bloków systemu plików
Ręczne wyodrębnianie za pomocą przesunięć
ogó LN y z A r y S i NF or M A ty K i ś L e D cze J

Szkic historycznego tła rozwoju działu informatyki, jakim jest informatyka śledcza, pomaga wyjaśnić, w jaki sposób zmieniała się ona na przestrzeni lat. Dodatkowo ułatwia uchwycenie kontekstu niektórych problemów i wyzwań, przed jakimi stają specjaliści zawodowo związani z tą branżą.
Historia informatyki śledczej
W tej części omawiam rozwój nowoczesnej informatyki śledczej jako działu nauk informatycznych.
Koniec wieku XX
Historia informatyki śledczej jest bardzo krótka w porównaniu z czasem istnienia większości dziedzin i działów nauki. Najwcześniejsze prace dochodzeniowo-śledcze związane z komputerami przypadały na lata osiemdziesiąte, kiedy eksperci byli prawie wyłącznie pracownikami organów ścigania lub organizacji wojskowych. W tamtym
czasie nastąpił wzrost liczby komputerów domowych i serwisów BBS dostępnych przez połączenia wdzwaniane. Zapoczątkowało to zainteresowanie informatyką śledczą w społeczności pracowników organów ścigania. W 1984 roku FBI opracowało pionierski program do analizy dowodów cyfrowych. Ponadto wzrost nadużyć i ataków internetowych doprowadził do utworzenia w 1988 roku Computer Emergency Response Team (CERT) – zespołu reagowania na incydenty w sieci Internet. CERT został utworzony przez agencję DARPA (Defense Advanced Research Projects Agency) na Uniwersytecie Carnegie Mellon w Pittsburgu i do dzisiaj jest z nim związany.
W latach dziewięćdziesiątych nastąpił znaczny wzrost dostępu do Internetu, a komputery osobiste w domu były już codziennością. W tym czasie informatyka śledcza stała się główną problematyką wśród organów ścigania. W 1993 roku FBI zorganizowało pierwszą z wielu międzynarodowych konferencji dla stróżów prawa, poświęconych dowodom w postaci elektronicznej. W 1995 roku powstała IOCE (International Organization of Computer Evidence), która rozpoczęła opracowywanie zaleceń dotyczących standardów postępowania w cyfrowym śledztwie. Pojęcie „przestępczości komputerowej” stało się rzeczywistością nie tylko w Stanach Zjednoczonych, lecz także na arenie międzynarodowej. W 1999 roku Association of Chief Police Officers (ACPO) opracowało przewodnik dobrych praktyk dla brytyjskich funkcjonariuszy organów ścigania, którzy zajmowali się dowodami opartymi na technologiach komputerowych. Pod koniec lat dziewięćdziesiątych powstało pierwsze oprogramowanie o otwartym kodzie źródłowym, służące informatykom śledczym. Był nim The Coroner’s Toolkit stworzony przez Dana Farmera i Wietsego Venema.
2000–2010
Po przełomie tysiącleci wiele czynników zwiększyło zapotrzebowanie na informatykę śledczą. Tragedia z 11 września 2001 roku miała ogromny wpływ na to, jak świat zaczął postrzegać bezpieczeństwo i reagowanie na incydenty. Skandale księgowe dotyczące firm Enron i Arthur Andersen doprowadziły do stworzenia w Stanach Zjednoczonych ustawy Sarbanesa-Oxleya. Ma ona na celu ochronę inwestorów dzięki poprawie dokładności i wiarygodności ładu informacyjnego (oświadczeń o stanie firmy). Akt ten wymaga, aby organizacje sformułowały oficjalne procedury procesów dochodzeniowych i reagowania na incydenty, zwykle obejmujące pewne elementy informatyki śledczej lub gromadzenia cyfrowego materiału dowodowego. Wzrost znaczenia własności intelektualnej (IP) miał również wpływ na organizacje prywatne. Oszustwa internetowe, wyłudzanie informacji i inne naruszenia własności intelektualnej i nazw zastrzeżonych spowodowały dalszy wzrost zapotrzebowania na śledztwa i gromadzenie dowodów. Udostępnianie plików w sieciach peer-to-peer (począwszy od Napstera) wraz z pojawieniem się cyfrowego prawa autorskiego w postaci ustawy Digital Millennium Copyright Act (DMCA) doprowadziło do wzrostu zapotrzebowania na dochodzenia dotyczące naruszeń cyfrowego prawa autorskiego. Od 2000 roku społeczność zajmująca się informatyką śledczą poczyniła ogromne postępy, nadając tej dziedzinie postać dyscypliny naukowej. Konferencja DFRWS w 2001 roku przyniosła ważne definicje i wyzwania stające przed społecznością śledczych. Zdefiniowano wtedy informatykę śledczą jako:
Wykorzystanie naukowo udowodnionych i potwierdzonych metod zabezpieczania, gromadzenia, weryfikacji, identyfikacji, analizy, interpretacji, dokumentacji
i prezentacji cyfrowego materiału dowodowego, pozyskanego ze źródeł elektronicznych, w celu umożliwienia lub ułatwienia rekonstrukcji działań określanych jako przestępcze lub pomocy w przewidywaniu nielegalnych czynów, będących zakłóceniami zaplanowanych czynności1
Podczas gdy społeczność śledczych określała cele i zakres działań budujących naukowe podstawy tej dziedziny, opracowano również standardy postępowania, wytyczne i najlepsze praktyki w zakresie stosowanych procedur. Grupa badawcza Scientific Working Group on Digital Evidence (SWGDE) określiła definicje i standardy, w tym wymogi standardowych procedur operacyjnych (Standard Operating Procedures – SOP) dla organów ścigania.
We Francji podczas konferencji IOCE 2000 pracowano nad sformalizowaniem procedur działania techników-funkcjonariuszy dzięki wytycznym i listom kontrolnym. 13. INTERPOL Forensic Science Symposium, również we Francji, wyznaczyło wymagania stawiane grupom zaangażowanym w infor matykę śledczą i określiło obszerny zestaw norm i zasad dla władz i organów ścigania. Amerykański Departament Sprawiedliwości opublikował szczegółowy przewodnik szybkiego reagowania dla stróżów prawa (US DOJ Electronic Crime Scene Investigation: A Guide for First Responders). W ramach projektu NIST’s Computer Forensics Tool Testing (CFTT) napisano natomiast specyfikację narzędzia do tworzenia obrazu dysku (Disk Imaging Tool Specification).
W ciągu tego dziesięciolecia ukazało się kilka recenzowanych czasopism naukowych mających na celu prezentowanie stale rosnącego zasobu wiedzy. International Journal of Digital Evidence (IJDE) powstał w 2002 roku (i zakończył działalność w 2007 r.), a Digital Investigation: The International Journal of Digital Forensics & Incident Response został utworzony w 2004 roku.
2010–obecnie
W latach po 2010 roku wiele wydarzeń zmieniło podejście do badania i gromadzenia dowodów z cyberataków i naruszeń bezpieczeństwa danych.
Serwis WikiLeaks (http://www.wikileaks.org/) zaczął publikować materiały, które wyciekły z amerykańskiego wojska, w tym filmy i depesze dyplomatyczne. Anonimowi zyskali rozgłos w związku z rozproszonymi atakami typu DoS (Denial of Service) i innymi działaniami haktywistów. LulzSec naruszył bezpieczeństwo i ujawnił dane z HBGary Federal i innych firm.
Badanie szkodliwego oprogramowania Advanced Persistent Threat (APT) stało się głównym zagadnieniem w branży. Opinia publiczna poznała zakres rządowych technik wywiadowczych z zastosowaniem złośliwego oprogramowania, stosowanych zarówno wobec innych rządów, jak i sektora prywatnego. Został odkryty robak Stuxnet, atakujący systemy SCADA. Szczególnym przypadkiem jego działania było zakłócenie systemów kontrolnych irańskiego programu jądrowego. Mandiant opublikował swoje dochodzenie w sprawie APT1, jednostki do walki cybernetycznej w chińskiej armii. Edward Snowden ujawnił obszerne repozytorium dokumentów, odsłaniające zakres hackowania przez NSA. Publikacja danych włoskiej firmy HackingTeam ujawniła, że z profesjonalnego rynku exploitów korzystają rządy, organy ścigania i fir my sektora prywatnego.
1 Gary Palmer, „A Roadmap for Digital Forensic Research”. Digital Forensics Research Workshop (DFRWS), 2001. Technical report DTR-T0010-01, Utica, New York.
Badanie podejrzanego sprzętu komputerowego
Gdy komputer lub notebook zostanie skonfiskowany w warunkach polowych lub dostarczony do laboratorium informatyki śledczej w celu analizy, można sprawdzić więcej niż tylko same dyski wewnętrzne. Badanie powinno polegać na pełnym przeglądzie konfiguracji sprzętu komputerowego, ustawień BIOS, sprzętowego zegara itd.
uwaga Zakres tej książki obejmuje zabezpieczanie nośników „post mortem”, czyli dysków i komputerów, które zostały wyłączone. W zależności od organizacji może być opracowany proces selekcji metodą triage na okoliczność przybycia na miejsce przestępstwa lub incydentu, w którym znajdują się włączone i działające maszyny. Ten proces selekcji może obejmować robienie zdjęć ekranów, uruchamianie narzędzi zrzutu pamięci czy używanie oscylatorów myszy (mouse jigglers) w celu uniemożliwienia aktywacji wygaszaczy ekranu chronionych hasłem. Selekcja metodą triage prowadzona na pracujących maszynach przez zespoły szybkiego reagowania wykracza poza zakres tej książki.
Analiza sprzętowej konfiguracji komputera i usuwanie dysku
Przed odłączeniem przewodów od napędów lub odkręceniem mocowania nośników we wnękach należy zrobić zdjęcie badanego komputera, aby udokumentować konfigurację sprzętu, liczbę zawartych w nim dysków oraz sposób, w jaki są one podłączone do płyty głównej.
Ostrożnie usuwaj dyski, zwłaszcza jeśli są w starych komputerach, które nie były otwierane przez wiele lat. Górną część każdego dysku można sfotografować, aby zarejestrować numer seryjny i inne informacje zapisane na etykiecie. Zanotuj położenie przewodu łączącego każdy z dysków z płytą główną. Jeśli płyta główna ma wiele portów SATA, zwróć uwagę na to, z którego korzystał dany dysk.
Wysuń tacki napędów optycznych, aby potwierdzić, że nie zawierają żadnych płyt. Większość napędów optycznych ma otworek, przez który można ręcznie zwolnić drzwiczki napędu bez włączania jego zasilania.
Sprawdź gniazda PCI pod kątem napędów PCI SATA Express lub PCI NVMe. Jeśli płyta główna ma gniazdo M.2 lub mSATA, sprawdź, czy nie ma w nim modułu SSD.
Inspekcja sprzętu w badanym komputerze
Po usunięciu wszystkich napędów z obudowy badanego komputera włącz zasilanie płyty głównej i zanotuj konfigurację BIOS-u, zegara, kolejność rozruchu, potencjalne logi BIOS-u, wersję itd.
Jeśli potrzebujesz dodatkowych informacji na temat tego komputera, zapoznaj się z nim za pomocą bootowalnej płyty CD do informatyki śledczej, która zawiera różne narzędzia do analizy sprzętu, takie jak lshw, dmidecode, biosdecode, lspci i inne
Możesz uzyskać pewne charakterystyczne dla dostawcy sprzętu informacje za pomocą narzędzi przeznaczonych do tego celu – na przykład vpddecode dla sprzętu IBM i Lenovo, a w przypadku sprzętu firmy Compaq również informacje o właścicielu zapisane w specjalnym znaczniku.
Sprawdź i udokumentuj wszelkie dodatkowe komponenty sprzętu, takie jak moduły pamięci lub karty PCI.
Podłączenie zabezpieczanego dysku do hosta śledczego
Po podłączeniu badanego dysku do stacji roboczej śledczego (za pośrednictwem mechanizmu blokowania zapisu) należy określić właściwe urządzenie blokowe odpowiadające podejrzanemu dyskowi. Aby wiarygodnie zidentyfikować badany nośnik (podłączony do hosta zabezpieczenia), trzeba wyświetlić listę urządzeń pamięci masowej, potwierdzić wszelkie unikatowe identyfikatory skojarzone z dyskiem fizycznym i określić odpowiedni plik urządzenia w /dev. W tej części omówiono te kroki bardziej szczegółowo.
Przegląd sprzętu hosta zabezpieczenia
Zrozumienie konfiguracji sprzętowej hosta zabezpieczenia jest przydatne podczas poprawiania wydajności, planowania wymaganej pojemności, utrzymywania stabilności platformy, rozwiązywania problemów, wyodrębniania błędów i zmniejszania ryzyka błędu ludzkiego. W tej części zobaczysz przykłady narzędzi, których możesz użyć do wyświetlania listy i przeglądania konfiguracji sprzętu komputerowego.
Za pomocą narzędzia lshw możesz wygenerować szybki przegląd sprzętu stacji roboczej informatyka śledczego:
# lshw -businfo
Informacje przekazane przez magistrale (bus info) opisują adresy specyficzne dla poszczególnych urządzeń, takie jak pci@domain:bus:slot.function, scsi@host.channel. target.lun czy usb@bus:device.
Możesz również użyć lshw, aby wyszukać dołączony, specyficzny typ urządzenia. Na przykład:
# lshw -businfo -class storage Bus info Device
usb@2:5.2 scsi22 storage Forensic SATA/IDE Bridge
# lshw -businfo -class disk Bus info Device
scsi@22:0.0.0 /dev/sdp disk 120GB SSD 850 Należy pamiętać, że scsi22 wskazuje na scsi@22:.0.0.0, które to odnosi się do /dev/sdp. Identyfikację linuxowego pliku urządzenia, odpowiadającego podłączonemu, fizycznemu dyskowi, omówiono w kolejnych akapitach.
Jeśli badany dysk został podłączony zewnętrznie, prawdopodobnie jest wpięty przez USB, Thunderbolt, FireWire lub eSATA (a w rzadszych przypadkach może się zdarzyć, że przez Fibre Channel).
# lspci
Jeżeli dysk został podłączony wewnętrznie, prawdopodobnie jest wpięty za pomocą przewodu SATA, gniazda PCI Express, interfejsu M.2 albo przewodu SAS (lub ewentualnie przez starsze złącza, takie jak tradycyjne SCSI czy IDE).
Można wyświetlić listę urządzeń podłączonych do magistrali PCI (w tym do tradycyjnego PCI i PCI Express) za pomocą narzędzia lspci:
Magistrala PCI dzieli urządzenia według klas (odwiedź http://pci-ids.ucw.cz/, aby uzyskać więcej informacji na temat identyfikatorów PCI i klas urządzeń). Urządzenia pasujące do klasy mass storage controller (identyfikator klasy 01) są interesujące, ponieważ zarządzają podłączonymi nośnikami pamięci masowej.
Nowsze wersje lspci (od wersji 3.30 pciutils) mogą wyświetlać magistralę PCI według klasy urządzeń, co może być przydatne do wyodrębnienia interesującego sprzętu. Następujące polecenie wyświetla listę urządzeń kontrolera pamięci masowej SATA (klasa o ID 01, podklasa o ID 06):
# lspci -d ::0106
To polecenie wylicza wszystkie urządzenia kontrolerów pamięci masowej SCSI, IDE, RAID, ATA, SATA, SAS i NVMe w systemie:
# for i in 00 01 04 05 06 07 08; do lspci -d ::01$i; done
Inną klasą PCI, która może zarządzać podłączonymi nośnikami danych, jest klasa serial bus controller (o ID 0C). Następujące polecenie wyświetla listę wszystkich urządzeń klasy kontrolera magistrali szeregowej USB (klasa o ID 0C, identyfikator podklasy 03):
# lspci -d ::0C03
Ta komenda wylicza wszystkie kontrolery magistrali szeregowej FireWire, USB i Fibre Channel w hoście zabezpieczenia:
# for i in 00 03 04; do lspci -d ::0C$i; done
Jeśli podejrzany dysk jest podłączony przez USB, nie pojawi się na magistrali PCI. Można wpisać urządzenia USB oddzielnie, używając lsusb. Bez opcji polecenie generuje listę wszystkich podłączonych urządzeń USB:
# lsusb
Bus 001 Device 005: ID 0951:1665 Kingston Technology
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
W tym przypadku pamięć USB jest podłączona do magistrali USB numer 1 i przypisano jej identyfikator urządzenia USB 5. Uruchomienie lsusb −v zapewni bardziej szczegółowe dane wyjściowe, dotyczące urządzenia USB23.
Poprzednie narzędzia i przykłady zawierają przegląd kontrolerów nośników danych i sprzętu podłączanego do stacji roboczej śledczego. Strony podręcznika użytkownika24 lshw (1), lspci (8) i lsusb (8) wyjaśniają dodatkowe parametry i funkcje, których można użyć, aby wyświetlić więcej szczegółów na temat sprzętu.
Identyfikacja podejrzanego napędu
Znajomość sprzętu stacji roboczej śledczego, zwłaszcza dostępnych systemów magistral i kontrolerów, pomoże ci zlokalizować miejsce, w którym dysk jest podłączony. Następnym krokiem jest identyfikacja badanego dysku za pomocą potwierdzenia różnych informacji, takich jak numer seryjny, unikalny numer modelu lub inna szczególna właściwość.
Możesz użyć wielu podejść do identyfikacji badanego urządzenia. Jeśli podejrzany dysk jest podłączony przez magistralę USB i znaleziony za pomocą narzędzia lsusb, można uzyskać więcej informacji na jego temat, wskazując vendor:productID (identyfikator producenta i identyfikator urządzenia), w następujący sposób:
# lsusb -vd 0781:5583
Bus 004 Device 002: ID 0781:5583 SanDisk Corp.
idVendor 0x0781 SanDisk Corp.
idProduct 0x5583
bcdDevice 1.00
iManufacturer 1 SanDisk
iProduct 2 Ultra Fit
iSerial 3 4C530001200627113025
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
Z tych danych wyjściowych można wykorzystać unikalne informacje o urządzeniu (numer seryjny itd.), aby zidentyfikować podłączony nośnik w celu potwierdzenia, że jest dyskiem poddawanym oględzinom. Jeśli numer seryjny lub inne szczególne właściwości pasują do podłączonego fizycznie dysku, prawidłowo zidentyfikowałeś urządzenie.
23 W danych wyjściowych lsusb −v deskryptor urządzenia iSerial w Linux Foundation...root hub będzie wskazywał adres urządzenia kontrolera USB na magistrali PCI. 24 Manual pages – man.
których narzędzia informatyki śledczej nie obsługują bezpośrednio. Kolejne fragmenty zawierają również przykłady bezpiecznego montowania (w trybie tylko do odczytu) plików obrazów jako zwykłych systemów plików hosta zabezpieczenia. Dzięki temu możliwe jest uzyskiwanie dostępu oraz przeglądanie ich zawartości za pomocą programów codziennego użytku, takich jak menedżery plików, pakiety biurowe, przeglądarki plików, odtwarzacze multimedialne itp.
Pliki obrazów pozyskanych w celach dowodowych
Podstawą wielu metod i przykładów przedstawianych w tej części jest linuxowe urządzenie pętli (nie mylić z urządzeniem pętli zwrotnej, które jest interfejsem sieciowym). Urządzenie pętli to pseudourządzenie, które może być powiązane ze zwykłym plikiem, dzięki czemu staje się on dostępny jako urządzenie blokowe w katalogu /dev Systemy Linux zazwyczaj domyślnie tworzą 8 urządzeń pętli, które mogą nie wystarczyć w przypadku hosta zabezpieczenia. Można tę liczbę zwiększyć podczas uruchamiania systemu w sposób automatyczny albo ręcznie. Aby utworzyć 32 urządzenia pętli, należy dodać podczas uruchomienia max_loop=32 do wiersza GRUB_ CMDLINE_LINUX_DEFAULT= w pliku /etc/default/grub. Po ponownym uruchomieniu powinny być dostępne 32 gotowe do użycia urządzenia pętli. Skrypt sfsimage używa urządzeń pętli do montowania kontenerów dowodowych SquashFS. Rozdział ten omawia również różne obrazy maszyn wirtualnych, używanych przez popularne systemy wirtualizacji, takie jak QEMU, VirtualBox, VMWare i Microsoft Virtual PC. Opisałem w nim także uzyskiwanie dostępu do systemów plików, szyfrowanych na poziomie systemu operacyjnego, takich jak BitLocker Microsoftu, FileVault Apple, Linux LUKS i VeraCrypt (powstały z rozgałęzienia kolejnych wersji kodu TrueCrypt). Ale zacznijmy od najprostszej formy obrazu – nieprzetworzonego obrazu dysku, uzyskanego za pomocą narzędzia do akwizycji typu dd.
Pliki nieprzetworzonych obrazów dysków oraz urządzenia pętli
Najprostszym przykładem zastosowania urządzenia pętli jest użycie go do nieprzetworzonego obrazu dysku (możliwego do uzyskania za pomocą najprostszego wywołania polecenia dd). Komenda losetup podłącza i odłącza urządzenia pętli w systemie Linux. W następującym przykładzie tworzy ona urządzenie blokowe z zawartością pliku image.raw:
# losetup --read-only --find --show image.raw /dev/loop0
W tym przykładzie flagi wskazują, że pętla powinna być tylko do odczytu (--read-only ). Należy użyć pierwszego dostępnego urządzenia ( --find ), wyświetlając je po wykonaniu tego polecenia (--show ). Wskazany nazwą plik (image.raw) stanie się dostępny jako podłączone do systemu urządzenie blokowe.
Wywołanie polecenia losetup bez dodatkowych parametrów wyświetla status wszystkich skonfigurowanych urządzeń pętli. Można więc będzie zobaczyć to utworzone wcześniej:
# losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE /dev/loop0 0 0 0 1 /exam/image.raw
Urządzenie /dev/loop0 w tym przypadku wskazuje na /exam/image.raw, można więc uzyskać dostęp do jego zawartości za pomocą dowolnych narzędzi, które są w stanie pracować z urządzeniami blokowymi. Na przykład polecenie Sleuth Kit mmls potrafi wyświetlić tablicę partycji pliku image.raw za pomocą urządzenia pętli:
# mmls /dev/loop0
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000000 0000002047 0000002048 Unallocated 02: 00:00 0000002048 0058597375 0058595328 Linux (0x83)
03: 00:01 0058597376 0078129151 0019531776 Linux Swap / Solaris x86 (0x82)
04: 00:02 0078129152 0078231551 0000102400 NTFS (0x07)
05: 00:03 0078231552 0234441647 0156210096 Mac OS X HFS (0xaf)
Gdy urządzenie pętli nie jest już potrzebne, można je po prostu odłączyć w następujący sposób:
# losetup --detach /dev/loop0
Urządzenia pętli dają się dostosowywać i konfigurować. W poprzednim przykładzie z użyciem mmls system plików zaczynał się w sektorze 2048. Można określać przesunięcie początku danych za każdym razem, gdy uruchamiane jest narzędzie do analizy śledczej, ale łatwiej jest mieć osobne urządzenie dla każdej partycji (np. /dev/ sda1). Istnieje możliwość utworzenia oddzielnego urządzenia pętli za pomocą polecenia losetup tylko dla wybranej partycji przez podanie odpowiednich flag przesunięcia początku danych (--offset) oraz ich rozmiaru (--sizelimit). Zwyczajowo jednak stosuje się narzędzie mapowania urządzeń.
Aby zmapować tablicę partycji, można zastosować dmsetup wywołane ręcznie, tak jak zostało to opisane w części „RAID i systemy wielodyskowe” na stronie 185. Narzędzie kpartx automatyzuje jednak tworzenie urządzeń partycji dla danego pliku obrazu. Zabezpieczony dowodowo obraz, zawierający cztery partycje, został użyty w następnym przykładzie w celu zademonstrowania działania narzędzia kpartx. Mapuje ono poszczególne partycje na utworzone w tym celu urządzenia:
# kpartx -r -a -v image.raw
add map loop0p1 (252:0): 0 58595328 linear /dev/loop0 2048
add map loop0p2 (252:1): 0 19531776 linear /dev/loop0 58597376
add map loop0p3 (252:2): 0 102400 linear /dev/loop0 78129152
add map loop0p4 (252:3): 0 156210096 linear /dev/loop0 78231552
Jak widać, narzędzie kpartx odczytuje tablicę partycji dysku lub pliku obrazu. Tworzy następnie urządzenie pętli dla całego obrazu, po czym kolejne urządzenia mapowania dla poszczególnych partycji. Flaga -r zapewnia, że pętla odpowiadająca dyskowi oraz mapowania partycji są dostępne tylko do odczytu. Flaga -a nakazuje kpartx mapować wszystko, co znajdzie. Użycie flagi -v zwiększającej liczbę wypisywanych informacji pozwala udokumentować dane wyjściowe polecenia i wskazać, co zostało zmapowane.
W tym przykładzie tworzone jest urządzenie pętli (/dev/loop0) z zawartością całego pliku obrazu. Umożliwia ono bezpośredni dostęp do jego zawartości przez urządzenie blokowe. Ponadto urządzenia partycji są udostępniane w katalogu /dev/mapper. Można więc uzyskać do nich dostęp za pomocą narzędzi informatyki śledczej pracujących z całymi partycjami, bez konieczności określania jakichkolwiek przesunięć początkowych danych. Oto przykładowe polecenia z pakietu Sleuth Kit dla kilku wybranych partycji:
# fsstat /dev/mapper/loop0p1
FILE SYSTEM INFORMATION
File System Type: Ext4
Volume Name:
Volume ID: d4605b95ec13fcb43646de38f7f49680
# fls /dev/mapper/loop0p3
r/r 4-128-1: $AttrDef
r/r 8-128-2: $BadClus
r/r 8-128-1: $BadClus:$Bad
r/r 6-128-1: $Bitmap
r/r 7-128-1: $Boot
d/d 11-144-2: $Extend
r/r 2-128-1: $LogFile
r/r 0-128-1: $MFT
# fsstat /dev/mapper/loop0p4
FILE SYSTEM INFORMATION
File System Type: HFS+
File System Version: HFS+ Zmapowany na urządzenie, zawarty w obrazie system plików może być bezpiecznie zamontowany w trybie tylko do odczytu. Umożliwia to dostęp do jego zawartości za pomocą standardowego menedżera plików, aplikacji i innych narzędzi do analizy plików. Można zamontować i odmontować partycje urządzenia pętli metodą pokazaną w kolejnym przykładzie:
# mkdir p3
# mount --read-only /dev/mapper/loop0p3 p3
# mc ./p3
# umount p3
# rmdir p3
W tym przypadku katalog p3 reprezentujący partycję został utworzony w tym samym katalogu, w którym zapisany jest plik nieprzetworzonego obrazu. Następnie p3 został użyty jako punkt montowania. (Wybrany punkt montowania może znajdować się w dowolnym miejscu systemu plików hosta zabezpieczenia). Midnight Commander (mc ) to tekstowy menedżer plików (klon Norton Commandera) użyto go w tym przykładzie do przeglądania plików zamontowanej partycji. Jeśli punkt montowania nie jest już potrzebny, polecenie umount odmontowuje system plików. (To polecenie jest napisane poprawnie, tylko z jednym n w środku w porównaniu z angielskim unmount). Komenda rmdir usuwa katalog będący wcześniej punktem montowania. Opisana procedura prezentuje tradycyjny, unixowy sposób montowania i odmontowywania systemu plików w systemie hosta. Jeśli pętla odpowiadająca dyskowi oraz mapowania partycji nie są już potrzebne, można je wszystkie usunąć, używając kpartx z flagą ( -d) wraz z nazwą pliku obrazu. Odbywa się to w następujący sposób:
# kpartx -d image.raw loop deleted : /dev/loop0
Należy zwrócić uwagę, że to usunięcie nie ma wpływu na zawartość obrazu dysku. To pętla i mapowania są usuwane, a nie obraz dysku. Nie jest on również modyfikowany. Jeśli nieprzetworzony obraz ma uszkodzoną lub nadpisaną tablicę partycji, można przeszukać go pod kątem zawartych systemów plików i użyć dmsetup do ich ręcznego zmapowania jako urządzeń (za pomocą tablic dmsetup). Podczas tworzenia, montowania, odmontowywania lub odłączania urządzenia pętli wymagane są uprawnienia roota. Są one również potrzebne do bezpośredniej pracy z urządzeniami /dev/loopX za pomocą narzędzi informatyki śledczej. Przykłady pokazane w tej części były uruchamiane przez użytkownika root. Miało to na celu zmniejszenie złożoności zapisanych poleceń, ułatwiając w ten sposób ich zrozumienie. Poprzedzanie poleceń komendą sudo może być używane przez zwykłych użytkowników do uruchamiania poleceń w sposób uprzywilejowany.
Pliki obrazów w formatach dowodowych
Pakiet oprogramowania ewflib zawiera narzędzie o nazwie ewfmount do „montowania” zawartości obrazów w for matach dowodowych, dzięki czemu ich zawartość staje się dostępna za pośrednictwem zwykłego pliku nieprzetworzonego obrazu.
Kolejny przykład prezentuje grupę plików *.e01. Polecenie mkdir tworzy punkt montowania raw, w którym zostanie udostępniony plik nieprzetworzonego obrazu: