- Rzeźbienie danych umożliwia odzyskiwanie plików poprzez analizę surowych danych bez użycia systemu plików.
- Bazuje na podpisach, nagłówkach, stopkach i magicznych liczbach, aby lokalizować i rekonstruować znane formaty.
- Narzędzia takie jak Photorec, Foremost czy Scalpel wdrażają te techniki przy użyciu różnych możliwości.
- Jego głównymi ograniczeniami są fragmentacja i utrata nazw, które algorytmy inteligentnego rzeźbienia próbują przezwyciężyć.

Grawerowanie danych (lub grawerowanie plików) może brzmieć egzotycznie, ale w rzeczywistości to jedna z technik, które ratują sytuację, gdy wszystko wydaje się stracone: sformatowane dyski, usunięte partycje, uszkodzone systemy plików… a mimo to wciąż możemy odzyskać pliki. To nie magia; chodzi o wykorzystanie wewnętrznej struktury plików i wyciśnięcie z dysku każdego bajtu, nawet jeśli system operacyjny twierdzi, że jest pusty.
Czym właściwie jest data carving?
Krótko mówiąc, carving danych to proces ekstrakcji sekwencji danych (plików) z większego zbioru danych bez polegania na strukturach systemu plików. DFRWS 2006 zdefiniował go jako ekstrakcję serii danych z większego zbioru danych, typową dla analizy nieprzydzielonego miejsca w systemie plików, z wykorzystaniem nagłówków i stopek plików do rozpoznawania konkretnych typów, całkowicie ignorując system plików.
Mówiąc prościej: zamiast pytać system plików: „Hej, gdzie jest ten plik?”, narzędzia do rzeźbienia odczytują dysk jako ogromny blok bajtów „w surowej postaci ”, a następnie poszukują plików na podstawie ich wewnętrznych sygnatur. To cyfrowy odpowiednik przeszukiwania wysypiska śmieci w poszukiwaniu obiektów rozpoznawanych po kształcie, bez inwentaryzacji tego, co tam wcześniej było.
Proces ten jest zazwyczaj stosowany do przestrzeni nieprzydzielonej lub nieulokowanej : obszarów oznaczonych przez system plików jako wolne, ale na których nadal znajdują się pozostałości starych plików. W przypadku poważnie uszkodzonych, ponownie partycjonowanych lub sformatowanych dysków możliwe jest wykonywanie pracy bezpośrednio na całej fizycznej powierzchni urządzenia.
Ważnym szczegółem jest to, że „wycinanie” danych nie ogranicza się do tradycyjnych dysków twardych . Dotyczy to również dysków SSD, kart SD, dysków USB , obrazów RAW do celów kryminalistycznych, zrzutów pamięci itd. Dopóki są bajty do analizy, można próbować „wycinać” z nich pliki.

Odzyskiwanie klasyczne kontra rzeźbienie plików
Tradycyjne odzyskiwanie danych opiera się na założeniu, że metadane systemu plików pozostają aktywne . Na przykład w systemach NTFS (Windows), FAT, ext4 (Linux) itp. po usunięciu pliku zazwyczaj oznaczany jest jako wolny tylko jego wpis w tabeli, ale dane pozostają do momentu ich nadpisania.
Dopóki istnieją te struktury, narzędzia mogą odczytywać tabele plików, podążać za wskaźnikami do bloków danych i rekonstruować plik, nawet jeśli jest on pofragmentowany. Potrafią również łatwo odróżnić, które bloki należą do aktywnych plików, a które są „osieroconymi”.
Problem? W przypadku wystąpienia któregokolwiek z tych scenariuszy, klasyczna metoda staje się podatna na ataki i nie można odzyskać niczego przydatnego :
- Plik został usunięty dawno temu a jego rekord w tabeli plików został ponownie wykorzystany.
- Dysk został sformatowany lub ponownie podzielony na partycje (na przykład instalujesz Linuksa na starym systemie Windows).
- Struktury systemu plików są uszkodzone z powodu uszkodzeń fizycznych, złośliwego oprogramowania lub błędów logicznych.
- Oryginalny system plików został nadpisany przez inny (typowy przykład: dysk Windows sformatowany jako ext4).
W takich przypadkach z pomocą przychodzi funkcja file carving : omija ona tabele, inody i tabele MFT, a zamiast tego skanuje surową przestrzeń dyskową urządzenia w poszukiwaniu znanych wzorców plików . To podejście jest bardziej „ślepe”, ale niezwykle przydatne, gdy nie ma niczego innego, na czym można by polegać.
Podpisy, nagłówki, stopki i magiczne liczby
Kluczem do rzeźbienia plików jest to, że prawie wszystkie typy plików mają rozpoznawalne sygnatury . Sygnatury te znajdują się zazwyczaj w nagłówku (na początku pliku), a czasami również w stopce (na końcu). Co więcej, wiele formatów przechowuje metadane w tych pierwszych kilku bajtach, takie jak całkowita długość pliku lub inne informacje strukturalne.
Koncepcja liczby magicznej jest kluczowa: to stała, która pozwala jednoznacznie zidentyfikować typ pliku, niezależnie od rozszerzenia przypisanego przez system operacyjny. Rozszerzenia (.jpg, .doc, .zip…) pomagają użytkownikowi i systemowi, ale tak naprawdę liczy się to, co znajduje się w pierwszych kilku bajtach pliku.
Na przykład standardowe pliki GIF zaczynają się od ciągów ASCII „GIF87a” lub „GIF89a” . W systemie szesnastkowym oznacza to konkretny nagłówek, który można wyszukać dowolnym narzędziem. W przypadku plików GIF typowa stopka zawiera bajt 0x3B („;”), również w ściśle określonych pozycjach.
Inny znany przykład: poprawnie sformatowany plik JPEG zaczyna się od 0xFFD8 i kończy na 0xFFD9 . Jeśli otworzymy obraz w edytorze szesnastkowym, zobaczymy ten podpis na początku i ten znacznik na końcu. Pomiędzy nimi istnieją inne znaczniki specyficzne dla formatu (segmenty, tablice Huffmana itp.), które pozwalają nam go zweryfikować.
W systemie Linux polecenie `file` korzysta z bazy danych liczb magicznych (znajdującej się w katalogu `/usr/share/file/magic` lub jego skompilowanej wersji, `magic.mgc` ) do identyfikacji rzeczywistego typu pliku poprzez analizę pierwszych kilku bajtów , a nie rozszerzenia. System Windows nie ma tak wydajnego, natywnego odpowiednika, ale narzędzia takie jak `filever` i programy innych firm oferują podobną funkcjonalność.
Jak krok po kroku przebiega proces rzeźbienia pliku
Ogólna logika jest bardzo podobna w większości narzędzi, choć każde z nich ma swoje własne triki. Krótko mówiąc, proces rzeźbienia pliku zazwyczaj przebiega według następujących podstawowych kroków :
1. Sekwencyjny odczyt urządzenia lub obrazu
Narzędzie odczytuje zawartość dysku, partycji lub obrazu kryminalistycznego w blokach (na przykład z 512 bajtów Domyślnie, choć wiele z nich pozwala na dostosowanie tego rozmiaru za pomocą parametrów takich jak -bBloki te są ładowane do pamięci, co umożliwia ich łatwą analizę.
2. Wyszukaj podpisy nagłówków i stopek
Na podstawie tych danych w pamięci program wyszukaj podpisy zdefiniowane w pliku konfiguracyjnym (na przykład przede wszystkim.conf (w przypadku Foremost). Każdy wpis konfiguracyjny wskazuje:
- Rozszerzenie, które ma zostać przypisane odzyskanemu plikowi (jpg, doc, gif, itp.).
- Jeżeli porównanie liczby magicznej jest rozróżniać wielkość liter lub nie.
- Rozmiar którą może zawierać plik, jeśli nie znaleziono stopki.
- Wartości nagłówka i opcjonalnie stopki w szesnastkowy lub ósemkowy.
- Opcje specjalne takie jak: ODWRÓĆ lub NASTĘPNIE dla wariantów wyszukiwania.
Po znalezieniu prawidłowego nagłówka narzędzie zakłada, że plik zaczyna się od niego i szuka odpowiedniej stopki lub, jeśli format na to pozwala, oblicza długość na podstawie informacji zawartych w samym nagłówku.
3. Ekstrakcja i ponowne składanie danych
Po zlokalizowaniu punktu początkowego i końcowego (lub szacowanego rozmiaru) program skopiuj wszystkie bloki, które są częścią pliku i zapisuje je do nowego pliku. W przypadku formatów bez zdefiniowanej stopki, ale z rozmiarem nagłówka (na przykład BMP), te metadane służą do określenia liczby bajtów do odczytania.
4. Walidacja odzyskanych plików
Najbardziej zaawansowane narzędzia nie ograniczają się do odzyskiwania „byle czego”: stosują walidatory specyficzne dla typu pliku aby sprawdzić, czy struktury wewnętrzne (tabele, sumy kontrolne, pola wymagane itp.) mają sens. Zmniejsza to liczbę fałszywych alarmów i pomaga wykrywać uszkodzone lub niekompletne pliki.
5. Organizacja wyników i raportu
Zwykle narzędzie tworzy katalog wyjściowy (na przykład wydajność lub ten wskazany za pomocą -o) i w jego obrębie generuje podfoldery poprzez rozszerzenie: jpg, gif, oleitp. Tworzy również plik audytu, typ audyt.txt, gdzie jest to udokumentowane:
- Parametry wykonania, czas rozpoczęcia i zakończenia.
- Nazwa analizowanego urządzenia lub obrazu.
- Liczba wyodrębnionych plików według typu.
- Nazwa każdego pobranego pliku, rozmiar i przesunięcie w obrazie źródłowym.
Typowe narzędzia do rzeźbienia pilnikami
W codziennej pracy związanej z odzyskiwaniem danych i analizą kryminalistyczną używa się wielu specjalistycznych narzędzi , które wdrażają te techniki rzeźbienia na różne sposoby, przy mniejszym lub większym stopniu automatyzacji i możliwościach walidacji.
Photorec
Photorec to prawdopodobnie jedno z najpopularniejszych narzędzi do rzeźbienia. Jest bezpłatne, otwarte i wieloplatformowePoczątkowo program został zaprojektowany do odzyskiwania zdjęć, ale dziś obsługuje setki typów plików. Działa poprzez odczytywanie obrazów lub urządzeń w formacie RAW i wyodrębnianie plików ze znanych sygnatur, bez zmiany oryginalnej zawartości.
Skalpel
Skalpel to kolejny klasyk w darmowym ekosystemie. Pozwala na bardzo szczegółowa konfiguracja podpisu poprzez plik konfiguracyjny, co czyni go bardzo elastycznym w środowiskach kryminalistycznych, gdzie ważne jest precyzyjne zdefiniowanie typów plików, których dotyczy wyszukiwanie. Zwykle jest uruchamiany z wiersz poleceń w systemie Linux i wymaga pewnego poziomu umiejętności technicznych.
Główny
Foremost powstał w wojsku (został opracowany dla Sił Powietrznych Stanów Zjednoczonych), a jego kod został później opublikowany. Jego filozofia koncentruje się na... rzeźbienie według wezgłowia/podnóżka i długości osadzeniaOpiera się na bardzo obszernym pliku konfiguracyjnym. Instaluje się łatwo w systemach Linux, a w systemie Windows można go używać po skompilowaniu. Cygwin, która działa jako warstwa zgodności POSIX.
W przypadku Foremost, aby użyć go w systemie Windows, należy skompilować go z kodu źródłowego w środowisku Cygwin , a następnie skopiować plik wykonywalny prior.exe , jego plik prior.conf oraz bibliotekę cygwin1.dll do tego samego katalogu. Stamtąd można go uruchomić tak, jak w systemie Linux, z tymi samymi opcjami i zachowaniem.
Scenariusze z życia wzięte, w których wykorzystuje się rzeźbienie danych
Poza teorią, rzeźbienie ma bardzo specyficzne i powszechne zastosowania zarówno w środowisku profesjonalnym, jak i domowym. Oto kilka typowych przykładów:
Odzyskiwanie plików usuniętych dawno temu
Gdy plik zostanie usunięty (na przykład, a podejmowane są próby jego odzyskania przy użyciu narzędzi takich jak Odzyskiwanie plików systemu WindowsJeśli system następnie ponownie wykorzysta swój wpis w tabeli plików, klasyczna metoda przestanie cokolwiek dostrzegać. Jednak dopóki bloki plików nie zostaną nadpisane, rzeźbienie danych będzie kontynuowane. Możesz nadal znajdować te nagłówki i odtwarzać dużą część treści.
Sformatowane dyski lub dyski z usuniętymi partycjami
Podczas formatowania lub ponownego partycjonowania zazwyczaj wpływają tylko obszary metadanych i struktura logiczna. Zawartość fizyczna pozostaje, przynajmniej początkowo. Dobry proces carvingu to umożliwia. prześlij zdjęcia, dokumenty i inne pliki z obszarów, które teraz wydają się „puste”.
Śledztwo kryminalistyczne w zakresie technologii cyfrowych
W analizie kryminalistycznej często pracuje się z Obrazy dysków RAW które przeszły niezliczone próby: ponowne instalacje systemów operacyjnych, złośliwe oprogramowanie, próby usunięcia itp. Wycinanie danych jest niezbędne do ich zlokalizowania dowody w nieprzydzielonej przestrzeni: stare wiadomości e-mail, dzienniki aplikacji, dokumenty tymczasowe lub „zapomniane” pliki, do których nie odwołuje się już system plików.
Odzyskiwanie uszkodzonych urządzeń
Na dyskach z uszkodzonymi sektorami lub dyskach SSD z problemami logicznymi system plików może zostać tak uszkodzony, że Nawet nie da się tego złożyćW tym przypadku również rzeźbienie na wcześniej stworzonym obrazie (aby nie pogłębiać szkód) może pozwolić na uratowanie przynajmniej części przydatnych informacji.
Ograniczenia wycinania plików: nazewnictwo, fragmentacja i fałszywe alarmy
Carving danych jest niezwykle skuteczny, ale nie jest cudownym lekarstwem. Ma ograniczenia strukturalne, które warto zrozumieć , aby uniknąć rozczarowań i wyciągania błędnych wniosków w analizie kryminalistycznej.
Utrata oryginalnej nazwy i trasy
Bez dostępu do systemu plików program nie ma możliwości poznania nazwy pliku ani folderu, w którym się znajduje. Dlatego narzędzia generują nazwy ogólne, takie jak 00032837.doc, image0001.jpgitp. Z punktu widzenia dowodowego lub użytkownika nakłada to obowiązek ręcznie przejrzyj zawartość aby określić jego istotność.
Fragmentacja pliku
Największą przeszkodą w klasycznym rzeźbieniu jest fragmentacja. Wiele prostych algorytmów Zakładają, że plik znajduje się w ciągłych blokachW praktyce, zwłaszcza na dyskach o dużym natężeniu ruchu, duże pliki (obrazy o wysokiej rozdzielczości, pliki PST wiadomości e-mail, bazy danych itd.) są zwykle dzielone na kilka fragmentów rozrzuconych po całym dysku.
Badania takie jak te przeprowadzone przez Simsona Garfinkela wykazały, że chociaż ogólny odsetek fragmentacji może wydawać się niewielki, wśród typów plików interesujących z punktu widzenia kryminalistyki, wskaźniki te gwałtownie rosną (na przykład znaczny odsetek plików JPG, DOC lub PST wydaje się być pofragmentowany). W takich przypadkach prosty proces obróbki nagłówków i stopek pozwala odzyskać niekompletne pliki lub pliki z osadzonymi w nich zbędnymi elementami z innych plików pośrednich.
Fałszywe alarmy i uszkodzone pliki
Im bardziej ogólny jest podpis typu pliku, Łatwiej jest o pojawienie się pozornych zbiegów okoliczności w danych losowych (np. widząc „PK” pliku ZIP w pliku tekstowym). Stąd tak ważne jest prawidłowe sprawdzenie struktury wewnętrznej: zadeklarowanej długości, wymaganych pól, spójności nagłówka itp.
Aby ograniczyć te problemy, opracowano podejścia takie jak rzeźbienie oparte na strukturze pliku, rzeźbienie semantyczne, zaawansowane rzeźbienie walidacyjne i rzeźbienie inteligentne , które łączą analizę struktury, wzorce statystyczne (entropia, rozkłady bajtów), a nawet analizę lingwistyczną, aby określić, czy blok pasuje do pliku kandydackiego.
Inteligentne rzeźbienie i zaawansowane techniki
Aby poradzić sobie z fragmentacją i poprawić jakość wyników, opracowano inteligentne algorytmy rzeźbienia . Ogólna idea polega na tym, aby odejść od zakładania, że wszystko jest spójne, i podejść do problemu jak do układanki składającej się z klocków , które należy ponownie złożyć w odpowiedniej kolejności.
Niektóre klasyczne prace (na przykład Shanmugasundarama) modelują rekonstrukcję pofragmentowanego archiwum jako ścieżkę hamiltonowską w grafie: każdy blok jest węzłem, a krawędzie reprezentują prawdopodobieństwo wystąpienia kolejnego bloku, w zależności od dopasowania ich zawartości. Następnie, w celu znalezienia najbardziej prawdopodobnej sekwencji, stosuje się heurystykę, przeszukiwanie alfa-beta oraz inne techniki teorii grafów i teorii gier .
Ogólnie rzecz biorąc, wielu współczesnych mistrzów rzeźbienia postępuje według trzech faz:
- Wstępnie przetworzony:dekompresuj, odszyfruj lub znormalizuj bloki, aby można je było analizować.
- Sprawdzony:klasyfikuj bloki według typu pliku, do którego prawdopodobnie należą (według sygnatury, entropii, wzorców wewnętrznych…).
- Złożony ponownie:uporządkuj fragmenty w najbardziej logicznej kolejności, aby odtworzyć kompletne pliki, nawet jeśli są bardzo pofragmentowane.
To podejście stanowi podstawę komercyjnych narzędzi , takich jak Adroit Photo Forensics czy Adroit Photo Recovery, zaprojektowanych do odzyskiwania zdjęć w naprawdę trudnych warunkach. Zazwyczaj opierają się one na bardzo rygorystycznych walidatorach dla każdego typu obrazu (JPEG, TIFF, RAW z aparatu itp.).
Dobre praktyki przed i w trakcie rzeźbienia
Jeśli przetwarzanie danych ma być wykorzystane w poważnym przypadku (niezależnie od tego, czy chodzi o firmę próbującą odzyskać dane, czy o dochodzenie kryminalistyczne), istnieje szereg sprawdzonych praktyk, których zawsze należy przestrzegać :
Utwórz obraz dysku
Zanim cokolwiek zrobisz, rozsądnie będzie wygenerować obraz urządzenia bit po bicie (na przykład z dd, dc3dd, Guymageritp.). Dzięki temu unika się dotykania oryginalnej płyty i można powtarzać procesy rzeźbienia przy użyciu różnych narzędzi i parametrów bez ryzyka uszkodzenia.
Zawsze pracuj na kopiach
Po utworzeniu obrazu głównego dobrym pomysłem jest zrobić kopie robocze i zastosować do nich narzędzia rzeźbiarskie. Pozwala to zachować niezmienne dowody na wypadek konieczności powtórzenia analiz, przedstawienia dowodów w sądzie lub po prostu weryfikacji wyników za pomocą nowych wersji narzędzi.
Dostosuj i przetestuj ustawienia
Narzędzia takie jak Foremost, Scalpel czy Photorec umożliwiają precyzyjne określenie typów plików, które mają być przeszukiwane, maksymalnych akceptowanych rozmiarów, sposobu interpretacji podpisów itp. Zaleca się przetestuj różne konfiguracjezwłaszcza jeśli wiesz z góry, jaki typ plików Cię interesuje (na przykład, czy będą to tylko dokumenty pakietu Office, czy tylko obrazy).
Sprawdź i przejrzyj ręcznie
Chociaż automatyczne walidatory pomagają, ostatecznie potrzebne jest coś jeszcze. recenzja ludzka Aby ocenić, czy odzyskany plik jest istotny, kompletny, czy też stanowi jedynie szum. W kontekście kryminalistycznym kluczowe jest również dokumentowanie każdego kroku, przechowywanie logów i utrzymywanie łańcucha dowodowego.
Gdy połączymy to wszystko z odpowiednio zorganizowanym podejściem i odpowiednimi narzędziami, przetwarzanie danych staje się jedną z najskuteczniejszych broni służących do odzyskiwania informacji w sytuacjach krytycznych , zarówno w środowisku zawodowym, jak i w bardziej prozaicznych przypadkach (klasyczne „sformatowałem kartę aparatu i miałem wszystkie zdjęcia z wakacji”).
Ostatecznie, prawdziwe zrozumienie, czym jest rzeźbienie danych, w jaki sposób wykorzystuje wewnętrzne podpisy plików i jakie są jego ograniczenia dotyczące fragmentacji , może decydować o tym, czy zrezygnujemy z tej sprawy, czy będziemy w stanie odzyskać dokumenty lub obrazy, które wydawały się utracone na zawsze.
Pisarz z pasją zajmujący się światem bajtów i technologii w ogóle. Uwielbiam dzielić się swoją wiedzą poprzez pisanie i właśnie to będę robić na tym blogu, pokazywać Ci wszystkie najciekawsze rzeczy o gadżetach, oprogramowaniu, sprzęcie, trendach technologicznych i nie tylko. Moim celem jest pomóc Ci poruszać się po cyfrowym świecie w prosty i zabawny sposób.