Dawno, dawno temu w odległej galaktyce… Takimi słowami chciałbym zacząć ten tekst zważywszy na to, o czym będzie traktował. Nie, to nie wstęp do następnej części Gwiezdnych Wojen, a Lord Vader nie zabierze Was na Ciemną Stronę. Wstęp odnosi się do czeluści kodu binarnego, który często jest odległy, ogromny i niezrozumiały, a który bardzo często dostarcza informatykom śledczym (specjalistom mobile forensics) ciekawą historię z niestety nie zawsze dostępnym happy endem.
Kod binarny, który kryje za sobą tajemnice w postaci danych, w świecie Mobile Forensics jest spotykany często natomiast rzadko prawidłowo interpretowany i analizowany. Z pewnością dlatego, iż badanie jego zawartości nie jest proste i przyjemne. Pozwolę sobie zatem zabrać Was na Dobrą Stronę mocy…
Wyobraźmy sobie sytuację, w której do analizy otrzymujemy telefon bez interfejsu kablowego. Połączenie dzięki radia Bluetooth jest niedostępne i jedyną możliwą drogą do ekstrakcji danych jest interfejs JTAG. Sytuacja spotykana często i jestem pewny, iż osoby mające do czynienia na co dzień z analizą urządzeń mobilnych skiną głową zgadzając się ze mną.
Sprawa jest skomplikowana już na etapie samej ekstrakcji, gdyż odczyt danych przez złącze JTAG do łatwych nie należy i potrzeba odpowiedniego sprzętu i wiedzy by wyodrębnić dane w odpowiedni sposób. Nie będę się jednak w tym artykule rozpisywał nad takim modelem ekstrakcji danych, gdyż owy tekst traktuje o analizie, a nie o sposobach odczytu. Idąc dalej, zakładamy sytuację, w której odczyt ląduje na naszym dysku twardym w postaci pliku BIN (pliku binarnego), który w dowolnej aplikacji wygląda tak jak na Rys 1.
Rys. 1 Kod heksadecymalny
Na pierwszy rzut oka nie wygląda to w żaden sposób zachęcająco. Wręcz przeciwnie. Kod heksadecymalny dla człowieka nie jest w żaden sposób czytelny bez użycia odpowiednich narzędzi. Osobiście nie znam nikogo poza bohaterami filmu Matrix, którzy czytają biegle w HEXie.
Idealną sytuacją, w której przychodzi nam się zmierzyć z plikiem binarnym jest zastosowanie mechanizmów automatycznego dekodowania, dostępnego np. w oprogramowaniu XRY Wówczas sprawa jest bardzo prosta – wystarczy zaimportować w odpowiedni sposób plik binarny do XRY, a on dzięki odpowiednio zaimplementowanym mechanizmom ‘przeczyta’ plik BIN i pokaże w prosty sposób znalezione informacje, takie jak wiadomości SMS, MMS, e-mail, spis kontaktów, spis połączeń czy też różnego rodzaju pliki multimedialne. Jednakże złośliwość (świadoma bądź nie) producentów urządzeń mobilnych oraz systemów operacyjnych, pod kontrolą których pracują te urządzenia często stawiają nas w sytuacji, w której wykorzystanie metod automatycznego dekodowania nie jest dostępne. W takiej sytuacji musimy skorzystać z metod alternatywnych.
Zaawansowane metody analizy danych wymagają specjalistycznej wiedzy, ale przede wszystkim równie zaawansowanych narzędzi – na przykład XACT firmy MicroSystemation. Z pozoru prosty program, jednak przy odpowiednich umiejętnościach daje bardzo szerokie spektrum analizy plików binarnych.
Jak to wygląda w praktyce? Sprawdzamy!
Przy analizie pliku binarnego przede wszystkim musimy być świadomi metod zapisu informacji przez systemy urządzeń mobilnych. Na początku przyjrzyjmy się wiadomościom SMS, ciągle lubianemu formatowi przekazywania informacji przez Polaków.
Międzynarodowym standardem wiadomości SMS jest alfabet GSM, który domyślnie zapisuje treści wiadomości w ciągach 7-bitowych. Tak, to nie pomyłka – 7 bitów, które nie dość, iż są oczywiście zapisane w heksadecymalnym formacie, to jeszcze ‘przeczytają’ plik BIN i pokażą w prosty sposób znalezione informacje, takie jak wiadomości SMS, MMS, e-mail, spis kontaktów, spis połączeń czy też różnego rodzaju pliki multimedialne. Jednakże złośliwość (świadoma bądź nie) producentów urządzeń mobilnych oraz systemów operacyjnych, pod kontrolą których pracują te urządzenia często stawiają nas w sytuacji, w której wykorzystanie metod automatycznego dekodowania nie jest dostępne. W takiej sytuacji musimy skorzystać z metod alternatywnych.
Zaawansowane metody analizy danych wymagają specjalistycznej wiedzy, ale przede wszystkim równie zaawansowanych narzędzi – na przykład XACT firmy MicroSystemation. Z pozoru prosty program, jednak przy odpowiednich umiejętnościach daje bardzo szerokie spektrum analizy plików binarnych. Jak to wygląda w praktyce? Sprawdzamy!
Przy analizie pliku binarnego przede wszystkim musimy być świadomi metod zapisu informacji przez systemy urządzeń mobilnych. Na początku przyjrzyjmy się wiadomościom SMS, ciągle lubianemu formatowi przekazywania informacji przez Polaków. Międzynarodowym standardem wiadomości SMS jest alfabet GSM, który domyślnie zapisuje treści Z pomocą przychodzi wspomniany wcześniej XACT, który wyposażony w różne metody przeszukiwania plików binarnych jest w stanie znaleźć ciągi wiadomości 7-bit oraz od razu przetłumaczyć je w przystępny dla wszystkich sposób. To, co widzimy (Rys. 2) to efekt końcowy.
Rys. 2 7-bitowy ciąg przetłumaczony przez rozwiązanie XACT firmy MSAB.
XACT odnalazł ciąg w formie ciągu 7-bitowego CA 30 B9 0C 12 BF 41 E2 3C 3B DC 06 DD 41 F3 35 BB 0C 4F 97 41 i automatycznie zdekodował go na prostą wiadomość „Jadę bo byłam w sklepie”. Prawda, iż treść jest przystępna? Wiadomości SMS jak to zostało pokazane, są możliwe do wyodrębnienia z plików binarnych. Co zatem z plikami, na przykład graficznymi? Dzisiaj prawie wszystkie urządzenia mobilne wyposażone są w cyfrowe aparaty fotograficzne. Za statystykami – w kończącym się 2015 roku zostało wykonanych na świecie ponad trylion zdjęć. Idąc dalej tym tropem, ponad 78% wszystkich tych zdjęć zostało wykonanych dzięki urządzeń mobilnych.
XRY – MSAB
Na zdjęciach odnalezionych w urządzeniach mobilnych znajdziemy wszystko co możemy sobie wyobrazić, a choćby więcej. W analizie urządzeń mobilnych, pliki multimedialne, a zwłaszcza zdjęcia są bardzo często wykorzystywane jako dowody w sprawie. Przyjrzyjmy się zatem możliwościom ekstrakcji plików graficznych bezpośrednio z pliku binarnego. Tutaj również warto wspomnieć o zapisie plików graficznych – dla przykładu plik z rozszerzeniem JPEG, który najczęściej znajduje się w pamięci urządzenia mobilnego po wykonaniu zdjęcia przez użytkownika. Każdy plik posiada tzw. sygnaturę pliku, czyli ciąg bajtów określający typ pliku. Dla plików z rozszerzeniem JPEG sygnatura to pierwsze trzy bajty, na którą składają się „FF D8 FF” (w zapisie heksadecymalnym). Spróbujmy dzięki XACT przeszukać plik binarny pod względem występowania sygnatury pliku JPEG (Rys. 3).
Rys. 3 Przeszukiwanie plików binarnych pod kątem występowania sygnatury pliku JPEG dzięki XACT.
Jak widać na rysunku nr 3, w całym pliku binarnym wartość HEX „FF D8 FF” została odnaleziona 9301 razy. Nie oznacza to jednak, iż wszystkie wartości heksadecymalne stanowią sygnaturę plików. W takim razie zastosujmy dodatkowy mechanizm dostępny w XACT, który dostarczy nam wszystkie pliki graficzne już poddane analizie pod kątem sygnatur plików. Wyszukiwarka odnalazła ponad 5000 plików graficznych JPEG (Rys. 4).
Rys. 4 Przeszukiwanie plików binarnych pod kątem występowania sygnatury pliku JPEG dzięki XACT.
Naszym oczom we wskazanym wcześniej folderze ukazują się pliki graficzne i co więcej, również te skasowane i odzyskane.
Alternatywne metody pozyskiwania danych do łatwych i przyjemnych nie należą jednak warto znać mechanizmy, dzięki którym jest to możliwe. Na przykładzie treści wiadomości SMS oraz plików graficznych starałem się pokazać takie możliwości oraz zachęcić wszystkich, którzy pracują z urządzeniami mobilnymi by praktykować takie działania. Pokażcie swoją moc i stójcie zawsze po jej Dobrej Stronie. I jak to mówią – Niech moc będzie z Wami!