Wcześniej pisaliśmy o tym, że każdy plik cyfrowy (są wyjątki – pliki tworzone w Notatniku z rozszerzeniem .txt czy pliki bibliotek dynamicznych .dll) ma dodane informacje techniczne. Zakres tych informacji w przypadku każdego rodzaju plików będzie różny. Na przykład, pliki-zdjęcia (.jpg, .png itd.) będą zawierały w metadanych informacje o modelu kamery, jej producencie, warunkach, w których było robione zdjęcie, koordynaty geograficzne. Pliki .pdf zawierające oprócz tekstu zdjęcia będą miały metadane własne oraz metadane ukryte (metadane zdjęć) – o tym pisaliśmy w naszym poprzednim blogu o metadanych w plikach umieszczonych na oficjalnych stronach organów państwowych i służ specjalnych w Polsce i innych krajach. Wiemy, że metadane mogą zawierać informacje poufne i wrażliwe, w związku z czym należy je usuwać (różne formaty plików będą wymagały zastosowania różnych narzędzi i metod).
Wyobraźmy sobie jednak, że zależy nam na tym, żeby metadane pliku były zachowane – jest to pewnego rodzaju gwarancja autentyczności pliku. Mamy jednak pewien problem – musimy ukryć/zmienić rzeczywistą datę utworzenia pliku oraz czas pracy nad plikiem. Na przykład, nie chcemy, żeby z metadanych wynikało, że plik ten ściągnęliśmy z Internetu i wydajemy za swój. Co możemy w tej sytuacji zrobić?
Uwaga: metody z zakresu anti-forensics opisywane w naszym blogu są podawane wyłącznie w celach informacyjnych. Celem autorów nie jest szkolenie „cyberprzestępców”. W związku z tym autorzy zastrzegają sobie prawo do pewnych niedomówień i zmian umożliwiających wykrycie tego rodzaju manipulacji😊
Pliki w formacie .docx są de facto plikami-archiwami, których „rzeczywiste” rozszerzenie jest .zip. Możemy z łatwością o tym się przekonać, jeśli zmienimy rozszerzenie pliku w formacie .docx na .zip. Zobaczymy skompresowany folder zawierający podfoldery i pliki w formacie .xml (Extensible Markup Language) – rys. 1
Rozpakowujemy archiwum i otwieramy rozpakowany folder – rys. 2
Metadane będziemy oczywiście szukali w subfolderze o nazwie docProps (od angielskiego Document Properties). Wewnątrz znajdziemy dwa pliki – app.xml oraz core.xml.
Wybieramy, oczywiście, ten drugi (przyda się znajomość języka angielskiego) i otwieramy go w przeglądarce – rys. 3. Data utworzenia naszego pliku to 13 grudnia 2012 roku.
W pliku o nazwie app.xml znajdziemy natomiast czas pracy nad plikiem – rys. 4. W tym przypadku jest to 87 minut.
Aby zmienić te znaczenia, trzeba otworzyć w/w pliki w dowolnym redaktorze tekstowym – rys. 5
Jak widzimy, operacja ta jest stosunkowa prosta i nie wymaga zaawansowanej wiedzy z zakresu kryminalistyki cyfrowej. Niemniej jednak należy pamiętać o tym, że pliki .docx mają ukryte😊 metadane (czytaj nasz pierwszy wpis o metadanych), które mogą w sposób „niewytłumaczalny” pojawić się, kiedy przekażemy nasz plik via email, MS Teams czy dowolny inny komunikator internetowy.
PS: opisana metoda działa również w przypadku plików w formacie .pptx (MS PowerPoint) oraz .xlsx (MS Excel)
W poprzednim wpisie (o metadanych) opowiadaliśmy o tym, jakie znaczenie mają tego rodzaju informacje, jeśli chodzi o odtworzenie kolejności wydarzeń, ujawnienie związku pomiędzy pojedynczymi faktami itd. Podaliśmy również przykłady programów, które umożliwiają odczyt metadanych z plików różnego formatu. Programy te są wyjątkowo łatwe w obsłudze i dostępne dla każdego w sieci Internet. Niestety, jak się okazuje, metadane to nie jest tylko teoria. Otóż parę dni temu grupa naukowców z Uniwersytetu w Grenoble opublikowała wyniki badań nad danymi umieszczanymi na stronach służb specjalnych w kilkudziesięciu krajach zarówno Unii Europejskiej jak i państw spoza Unii. W abstrakcie artykułu widzimy następujące informacje:
„Organizacje [rządowe] coraz częściej publikują i udostępniają w formie elektronicznej dokumenty, takie jak pliki PDF. Niestety większość organów nie zdaje sobie sprawy z tego, że dokumenty te mogą zawierać informacje poufne, takie jak nazwiska autorów, szczegóły dotyczące systemów operacyjnych czy też architektury sieci komputerowych. Tego rodzaju dane mogą być wykorzystane przez hakerów, które dysponując tymi informacjami, są w stanie przeprowadzić pewnego rodzaju profilowanie i znaleźć „słabe punkty” w danej organizacji [chodzi tu o pracowników/funkcjonariuszy, którzy korzystają z przestarzałych wersji systemów operacyjnych czy wykazują niekompetentność w zakresie informatyki]. W artykule analizujemy ukryte dane znalezione w plikach PDF opublikowane przez organizację rządowe [służby specjalne]. Przebadano łącznie 39 664 plików PDF opublikowanych przez 75 służb specjalnych w 47 krajach. Udało nam się zmierzyć jakość i ilość informacji ujawnionych w tych plikach PDF. Zidentyfikowaliśmy tylko 7 agencji bezpieczeństwa, które oczyszczają kilka swoich plików PDF przed publikacją. Niestety, nadal byliśmy w stanie znaleźć poufne informacje w 65% tych oczyszczonych plików PDF. Niektóre służby używają słabe techniki sanityzacji [chodzi o techniki usuwania metadanych z umieszczanych na stronie dostępnej publicznie plików]”.
Spróbowaliśmy powtórzyć doświadczenia francuskich kolegów. Nie wdając się w szczegóły, udało się nam zobaczyć metadane [wrażliwe!] w przypadku większości plików dostępnych do pobrania na oficjalnych stronach internetowych wiodących służ polskich (Rysunek 1). Z ciekawości sprawdziliśmy oficjalne strony niektórych służb niemieckich, wynik jest taki sam. Podobnie tez jest w przypadku Rosji.
Każdy z Państwa może powtórzyć te doświadczenia korzystając z programów, o których pisaliśmy.
Informacje o tym artykule jako pierwszy podał na swoim blogu Bruce Schneier.
Metadane są najczęściej definiowane jako dane o danych (a set of data about other data). Nie jest to jednak definicja prawidłowa. Tak naprawdę, ze względu na różnorodność danych, które możemy zaliczać do metadanych, nie da się wypracować definicji uniwersalnej. Łatwej jest natomiast wymienić najczęściej spotykane rodzaje metadanych. Do tej kategorii zaliczamy m. in. nagłówki emailów, dane EXIF w plikach graficznych, dane o autorach, dacie utworzenia, modyfikacji i ostatniego dostępu w przypadku plików MS Word. Metadane znajdziemy również poza światem cybernetycznym. Na przykład, nazwa, obrazek na stronie tytułowej książki to są metadane. Mapa drogowa w nawigacji samochodowej to są metadane – dzięki nim lepiej radzimy sobie z obiektem bardziej skomplikowanym (teren realny).
Metadane pełnią różne funkcje, z których główną jest identyfikacja, opis danych [podstawowych] i ułatwienie procesu korzystania z tych danych. W systemach komputerowych metadane plików dzielą się na dwie grupy – metadane aplikacji, programu oraz metadane systemowe. Mówiąc w uproszczeniu, te pierwsze są przekazywane razem z plikiem do nowej lokalizacji, na przykład, za pośrednictwem emailu lub serwisu społecznościowego. Metadane systemowe pozostają, natomiast, w pamięci komputera, na którym utworzono (modyfikowano) dany plik cyfrowy – są to m. in. zapisy w MFT, czyli Master File Table.
W zależności od rodzaju pliku, zawartość metadanych „dodawanych” przez aplikację, program, może być różna. W przypadku plików MS Word w metadanych znajdziemy informacje o dacie utworzenia, modyfikacji i ostatniego dostępu do pliku, o autorze (autorach w przypadku, kiedy plik był modyfikowany przez różne osoby), wersji Worda, czasie pracy z danym plikiem, liczbie słów.
Tego rodzaju dane mogą okazać się pomocne na przykład w sytuacji, kiedy chcemy ustalić kto stworzył dany dokument i kiedy. Dodatkowo w plikach .docx znajdziemy dane o rodzaju systemu operacyjnego, jego wersji, dacie ostatniego drukowania dokumentu (Rys. 3).
W kryminalistyce cyfrowej częściej pojawia się jednak potrzeba ustalenia autentyczności plików graficznych – .jpg .bmp itd. W sprawach karnych może to być dowód sprawstwa (w przypadku plików-zdjęć pornograficznych ukazujących osoby nieletnie, zdjęć narkotyków zrobionych przez „handlarza” narkotykami w sieci Dark Web itd.) lub dowód przemawiający na korzyść obrony (w przypadku tzw. alibi cyfrowego). W sprawach cywilnych podobnego rodzaju dowody pojawiają się, na przykład, w sprawach patentowych – ustalenie pierwszeństwa, jeśli chodzi o wynalazek, sprawach rodzinnych, spadkowych. Można znaleźć i inne zastosowanie tego rodzaju danym. Na przykład, mamy zdjęcie, którego „twórcę” znamy (zdjęcie nr 1) oraz zdjęcie, którego „twórcę” nie znamy (zdjęcie nr. 2), ale potrafimy rozpoznać miejsce, gdzie zostało zrobione. Porównując metadane obu zdjęć ustalamy, że zdjęcie nr 2 zostało wykonane najprawdopodobniej przez tą samą osobę. Zbieżność metadanych w tym przypadku pomoże nam ustalić, kto jest „autorem” zdjęcia nr 2 oraz gdzie się znajdował, w czasie, kiedy było zrobione zdjęcie nr 2 – informacje te nie były dostępne na początku, wydedukowaliśmy to analizując i porównując metadane obu zdjęć (Rys. 4).
Metadane tego rodzaju plików można zobaczyć przy pomocy narzędzia o nazwie ExifTool od Phila Harvey’a – jest to najstarsza tego rodzaju aplikacja dostępna w Internecie.
ExifTool pozwala na przeglądanie oraz modyfikację dowolnych metadanych w plikach graficznych. Za jego pomocą można również przeglądać metadane w innych rodzajach plików – .pdf .docx itd.
Najprościej jest ściągnąć wersję Windows Executable. Rozpakowujemy archiwum i korzystamy z programy po prostu przeciągając pliki na ikonkę z wielbłądem (Rys. 6).
Jakiego rodzaju metadane możemy zobaczyć? Rodzaj sprzętu, na którym wykonano zdjęcie, jego model seryjny, data utworzenia, modyfikacji i ostatniego dostępu, koordynaty geograficzne miejsca, gdzie wykonano dane zdjęcie, dane techniczne (Rys. 7).
Analizując metadane plików zdjęciowych należy pamiętać o tym, że mogą one być łatwo zmienione – przy pomocy na przykład ExifTool. Istnieje kilka metod weryfikacji autentyczności plików zdjęciowych:
1. Zwracamy uwagę na to, co widzimy na zdjęciu – czy to, co widzimy na zdjęciu jest zgodne z tym, co widzimy w metadanych pliku (czy zgadza się pora roku, dnia, czy widać inne szczegóły, które pomogą ustalić, gdzie, w którym miejscu oraz kiedy wykonano przedmiotowe zdjęcie – rys. 8).
2. Analizujemy zgodność wewnętrzną metadanych. Należy pamiętać o tym, że data utworzenia pliku może być „starsza” lub „młodsza” od daty jego modyfikacji – te ostanie zdarza się w sytuacji, kiedy plik jest kopiowany do innej lokalizacji, do innego folderu – system operacyjny oznacza taki plik jako „nowoutworzony”, odpowiednio zmienia się też data utworzenia pliku. Bardziej stabilną jest data modyfikacji pliku – żeby ta data się zmieniła, plik musi być podany gruntownej modyfikacji – nie wystarczy, na przykład, tylko zmienić jego nazwę, trzeba zmienić zawartość (w przypadku zdjęć, na przykład, przy pomocy Photoshopu – rys. 9).
3. Analizujemy i porównujemy metadane w plikach eksperymentalnych – plikach wykonanych przy pomocy tego samego sprzętu
4. Analizujemy metadane systemowe, ich zgodność z metadanymi aplikacji zawartymi w pliku – warunkiem jest uzyskanie dostępu do komputera, na którym dany plik był otwierany lub zmieniany.
“It’s the oldest question of all, George. Who can spy on the spies?”
John le Carré, Tinker Tailor Soldier Spy
Dzisiejszy blog był zainspirowany przez Państwa komentarze (osobne podziękowania dla Pana Jakuba!). Bezpośrednim natomiast powodem była dość smutna wiadomość o odejściu Johna le Carré (1931-2020), którego książki (The Spy Who Came in from the Cold, Tinker Tailor Soldier Spy czy też ostatnia i niesamowita Agent Running in the Field) były i pozostaną inspiracją dla wielu pokoleń kryminalistyków.
W czasach Wojny Zimowej jednym z podstawowych problemów, z którym miały do czynienia służby bezpieczeństwa, było przekazywanie informacji (zdobytych) w taki sposób, żeby w sytuacji, kiedy wiadomość/list zostanie przechwycona/y a) nie ujawnić jej źródła, b) uniemożliwić odczyt treści wiadomości oraz c) nie dać podmienić wiadomości na inną. W sztuce szpiegowskiej stosowano w tych celach wiele rozwiązań – od prostych do dość zaawansowanych technicznie. Możemy zobaczyć, jak wyglądała ukryta wiadomość (wariant najprostszy) w filmie braci Coen Bridge of Spies opowiadającym o wymianie Rudolfa Abla na Francisa Gary Powersa – pilota amerykańskiego samolotu szpiegowskiego U-2 zestrzelonego nad terytorium Związku Radzickiego. Do zaawansowanych technicznie metod można zaliczyć tzw. microdot’y – tekst widoczny wyłącznie przy dużym powiększeniu zamaskowany pod kropkę lub zabrudzenie (Rys. 1).
Steganografia klasyczna opiera się o zasadę „matreshki” (rys. 2)
Technika cyfrowa zdecydowanie poszerza możliwości steganografii. Dostępne metody można podzielić na dwie grupy 1) te, gdzie trzeba popracować rączkami oraz 2) gotowe programy, które robią wszystko za nas (rys. 3).
Gotowe programy mają jednak kilka istotnych wad:
kryminalistycy cyfrowi wiedzą o ich istnieniu;
każdy może je ściągnąć i wypróbować, a więc będzie wiedział, jak wygląda wynik końcowy oraz (kryminalistyk cyfrowy) jak działa dany program;
gotowe programy zostawiają ślady cyfrowe (szczególnie w środowisku Windows), na podstawie których można domyślić się, jakiego programu steganograficznego używał nasz Kowalski.
W związku z powyższym w dzisiejszym blogu opiszemy metodę nr 1. Potrzebny nam będzie redaktor liczb szesnastkowych, na przykład znany nam już HxD Maëla Hörza z uroczego Saarbrücken😊 oraz program do archiwizowania/kompresji plików, na przykład darmowy 7-Zip. Plus, zwierzątko doświadczalne – plik z rozszerzeniem .jpg lub .gif.
Mamy plik secret.docx. Kompresujemy nasz plik w 7-Zip (klikamy na plik prawy przyciskiem myszki, w menu wybieramy 7-Zip – Add to „Secret.7z” – rys. 4).
Otwieramy nasz nowy plik secret.7z w HxD Editorze (rys.5), kopiujemy w całości (!) widoczny na ekranie kod szesnastkowy (nie zamykamy programu HxD).
Przeciągamy myszką plik-obrazek na ikonkę HxD. Przewijamy kod szesnastkowy do samego końca i dodajemy kod szesnastkowy pliku secret.7z. Zachowujemy plik (Save) (nie zwracamy uwagi na pojawiające się ostrzeżenie dotyczące zmiany rozmiaru pliku, zmiana ta nie jest na tyle znacząca, żeby tym się przyjmować) – rys. 6.
Gotowe! Mamy teraz nasz plik-obrazek, w którym schowaliśmy plik secret.docx. Jeśli zmienimy rozszerzenie pliku-obrazku na .7z będziemy mogli odtworzyć go w programie 7-Zip (Rys. 7- 8).
Podsumowanie: zaprezentowana metoda jest prosta w użyciu, a jednocześnie nie pozostawia za wiele śladów (programy do tworzenia skompresowanych plików są dość popularne, można je znaleźć na każdym komputerze). Pozostaje tylko poinformować naszego Adresata o zastosowanej metodzie steganograficznej. Jak to zrobić – odsyłam do książek J. Le Carré 😊
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ść.
W przypadku Kowalskiego, który wykorzystuje „tunelowanie” do celów legalnych, nie powinno to wywoływać żadnych obaw – dane o jego aktywności będą chronione przez operatora VPN zgodnie z umową. Co więcej, ze względu na to, że dane w „tunelu” są szyfrowane, operator VPN nie jest w stanie odczytać co dokładnie pobieramy/wysyłamy do Sieci.
Czy jest jednak możliwość identyfikacji użytkownika VPN w przypadku popełnienia przez niego przestępstwa cybernetycznego (z VPN może korzystać również sprawca przestępstwa pospolitego, na przykład, szukając informacji o ofierze, jej trybu życia, sposobach popełniania i wykrywania przestępstw)?
Odpowiedź na to pytanie brzmi „tak”. Otóż istnieje możliwość „dopasowania” czasu na obu końcach „tunelu” i w konsekwencji ustalenia tożsamości „atakującego”. Pokazuje to następujący przykład.
Ryan Lin (24 l.) został oskarżony o prześladowanie byłej współlokatorki Jennifer Smith (również 24 l.). Smith stała się ofiarą tzw. doxxingu – prześladowca rozpowszechniał informacje o jej życiu prywatnym, groził śmiercią, stworzył fałszywe profile internetowe Smith poświęcone fetyszom seksualnym. Aby ukryć swoją tożsamość w sieci, Lin używał różnych narzędzi, w tym sieci Tor i PureVPN. Korzystał też z anonimowych serwisów poczty elektronicznej i wysyłki SMS-ów (zostały później znalezione na jego dysku twardym w historii przeglądarki).