Zadanie: ukryć plik (.pdf, .docx, .wav lub inny) na dysku twardym, a jednocześnie uniemożliwić jego otwarcie przez osoby trzecie nie stosując szyfrowania.
Przedstawimy Państwu dwie metody z zakresu tzw. antiforensics, tj. działań podejmowanych w celu ukrycia śladów (kryminalistycznych) przed detekcją – metodę dla „laików” oraz drugą, bardziej zaawansowaną metodę antykryminalistyczną.
Antiforensics – działania kontrwykrywcze, których celem jest zatarcie, ukrycie śladów (w tym tych zaliczanych do kategorii cyfrowych) stanowią przedmiot kryminalistyki.
Materiał udostępniany w danym blogu ma służyć wyłącznie do celów edukacyjnych i informacyjnych.
Rozwiązanie 1: zmienić rozszerzenie pliku
Każdy plik ma określone rozszerzenie (ang. extention) wskazujące na jego format – .doc, .docx, .pdf, .png, .wav, .avi itd. Oficjalną, pełną listę rozszerzeń plików można znaleźć na stronie https://fileinfo.com/ (Rys. 2).
Rozszerzenie pliku można łatwo zmienić na dowolne (również te, które w naturze nie istnieje). Na przykład, możemy zmienić rozszerzenie .docx na .jpg. Ikonka pliku zmieni się wtedy „automatycznie” (Rys. 2).
Dodatkowo, możemy umieścić plik ze zmienionym rozszerzeniem wśród innych plików tego samego rodzaju (steganografia). Można też zmienić nazwę naszego pliku na inną, bardziej odpowiadającą nowemu rozszerzeniu. Musimy tylko zapamiętać, jak się nazywa plik i gdzie się znajduje. Po zmianie rozszerzenia pojawi się problem z otwarciem pliku, ale po przywróceniu oryginalnego rozszerzenia wszystko będzie działać jak trzeba.
Niestety (na szczęście😊), programy kryminalistyczne do analizy śladów cyfrowych takie, jak słynny Autopsy mają funkcję (moduł) rozpoznawania plików z niepoprawnym rozszerzeniem.
Na poziomie binarnym każdy plik jest kombinacją jedynek i zer (=jeżyk binarny lub kod binarny – Rys. 3). Każda jedynka, każde zero to jest jeden bit. Kombinacja z ośmiu jedynek i zer tworzy jeden bajt.
W kryminalistyce cyfrowej nie stosuje się jednak kodu binarnego – jest on trudny do zapamiętania i niewygodny dla człowieka. Zamiast tego używa się kodu heksadecymalnego, szesnastkowego, gdzie ta sama informacja binarna jest kodowana przy pomocy kombinacji z liczb (od 0 do 9) i liter (A, B, C, D, E, F). Na rysunku 4 widzimy, że ten sam tekst (plik .txt) w reprezentacji szesnastkowej jest znacznie krótszy i łatwiej odbierany (Rys. 4). W tej uproszczonej formie dane (binarne) mogą być swobodnie odczytane przez człowieka (human-readable).
W zapisie heksadecymalnym każdy znaczek – litera czy liczba – oznacza 4 bity. Kombinacja z literki i liczby/dwóch literek lub dwóch liczb reprezentuje więc jeden bajt (8 bit). Po prawej stronie („Decoded text”) widzimy przedstawienie naszego kodu w ASCII – tabeli, składającej z 256 symboli. Na przykład, kombinacja 74 w ASCII reprezentuje literę „t” małe (z tabelą ASCII można się zapoznać na stronie https://www.ascii-code.com/ ).
Zobaczyć zawartość pliku w języku heksadecymalnym można przy pomocy specjalnego edytora, na przykład HxD – https://mh-nexus.de/en/hxd/
Każdy plik (oprócz plików z rozszerzeniem .txt) ma podpis/sygnaturę cyfrową (w języku angielskim file signature, file header lub magic bytes). Jest on „zakodowany” w pierwszych kilkunastu bitach (Rys. 5). Na stronie https://www.filesignatures.net/ znajdziemy oficjalną bazę podpisów/sygnatur plików.
W naszym przypadku podpis cyfrowy pliku tworzą pierwsze 64 bity – 50 4B 03 04 14 00 06 00 (jak widzimy na Rys. 6, 32-bitowa sygnatura 50 4B 03 04 odpowiada dokumentom MS Office). W ASCII jest to zapis „PK…” – widzimy go po prawej stronie w „Decoded text”.
Jeśli zmieniamy wyłącznie rozszerzenie pliku (rozwiązanie 1), to na poziomie binarnym plik będzie dalej plikiem w formacie .docx. Musimy, więc, zmienić podpis cyfrowy pliku. Na przykład, na ten odpowiadający często spotykanym plikom w formacie .png – pliki-obrazki (Rys. 7).
Jak widać, nasz plik otrzymał nowy podpis cyfrowy i jest teraz plikiem w formacie .png Zostało tylko zmienić rozszerzenie pliku z .docx na .png (rozwiązanie 1), nazwę pliku oraz umieścić go wśród innych plików-obrazków.
Ważne: Opisana metoda działa również w przypadku „chmury” – możemy umieścić zmodyfikowany plik w naszym „schowku” wirtualnym. Provider usługi (Microsoft, Google) nie będzie mógł wtedy „zajrzeć” do środka. Plus, osoba nieupoważniona, która uzyska dostęp do naszego konta, nie będzie mogła odczytać, co jest w tym pliku.
Metoda 2 jest bardziej skomplikowana w porównaniu do rozwiązania pierwszego, ale jest też skuteczniejsza – nie udało nam się znaleźć żadnego programu komercyjnego, który potrafiłby rozpoznać rzeczywisty format pliku, który ma zmienioną sygnaturę binarną. Rozwiązania tego problemu istnieją tylko w teorii. To oznacza, że jeśli dysk zawierający podobny plik trafi do biegłego, temu ostatniemu będzie łatwiej uznać plik za uszkodzony i pominąć go w raporcie niż próbować odczytać jego zawartość.