Pozyskiwanie i analiza danych z Androida
Pozyskiwanie i analizowanie danych z Androida
Pozyskiwanie i analiza danych z Androida to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Architektura pamięci Androida
Aby skutecznie pozyskiwać dane z Androida, trzeba wiedzieć, gdzie się znajdują.
- /data/data/<package>/ — piaskownica każdej aplikacji: bazy danych, shared_prefs, pliki i pamięć podręczna.
- /data/media/0/ — pamięć użytkownika (zdjęcia, pobrane pliki).
- /data/system/ — konta, ustawienia blokady i statystyki użycia.
Większość śladów aplikacji znajduje się w bazach danych SQLite i plikach preferencji XML wewnątrz piaskownicy aplikacji, do której nie można uzyskać dostępu bez roota lub mechanizmu tworzenia kopii zapasowej.
ADB i wymagania wstępne debugowania
Android Debug Bridge (ADB) jest podstawowym kanałem logicznego pozyskiwania danych. Wymaga włączenia debugowania USB oraz autoryzowania klucza hosta.
- Bez włączonego debugowania i odblokowanego ekranu dostęp przez ADB jest zablokowany.
- Sam monit o autoryzację zmienia stan urządzenia — należy to udokumentować.
Najpierw zweryfikuj połączenie i zarejestruj właściwości urządzenia:
adb devices -l
adb shell getprop ro.build.version.release # Android version
adb shell getprop ro.product.model # Device model
adb shell getprop ro.crypto.state # encrypted / unencryptedLogiczne pozyskiwanie danych za pomocą kopii ADB
adb backup tworzy archiwum .ab z danymi aplikacji, umożliwiające wykonanie kopii zapasowej. Jest to metoda niewymagająca roota i szeroko dostępna, ale ograniczona: wiele aplikacji ustawia allowBackup=false.
- Pobiera dane aplikacji, pliki APK (z opcją
-apk) oraz pamięć współdzieloną. - Pomija aplikacje, które rezygnują z tworzenia kopii zapasowych, oraz usunięte rekordy.
Utwórz i przekonwertuj kopię zapasową do analizy:
# Create a full backup (user must confirm on device)
adb backup -apk -shared -all -f android_backup.ab
# Convert the .ab to a readable tar (android-backup-extractor)
java -jar abe.jar unpack android_backup.ab android_backup.tar
tar -xvf android_backup.tarEkstrakcja systemu plików
Ekstrakcja systemu plików kopiuje drzewo katalogów, w tym piaskownice aplikacji oraz pliki dziennika SQLite WAL/SHM zawierające niezsynchronizowane rekordy.
- Wymaga root, agenta informatyki śledczej albo metody wykorzystującej exploit lub bootloader.
- Zachowuje pliki -wal i -shm — mają one kluczowe znaczenie, ponieważ najnowsze wiersze mogą znajdować się wyłącznie w nich.
Podczas pobierania baz danych SQLite należy zawsze pobierać także powiązane pliki dziennika:
adb pull /data/data/com.whatsapp/databases/msgstore.db ./out/
adb pull /data/data/com.whatsapp/databases/msgstore.db-wal ./out/
adb pull /data/data/com.whatsapp/databases/msgstore.db-shm ./out/Realne możliwości pozyskiwania fizycznego
Obraz fizyczny jest kopią bit po bicie pamięci NAND, w tym nieprzydzielonej przestrzeni, w której mogą zachować się usunięte dane. Na współczesnym Androidzie jest najtrudniejszy do uzyskania.
- Szyfrowanie FBE oznacza, że surowy zrzut NAND jest szyfrogramem bez klucza użytkownika.
- Metody obejmują exploity producenta, tryby EDL/bootloader lub chip-off (ostateczność, metoda destrukcyjna).
- W praktyce ekstrakcja systemu plików w stanie AFU często dostarcza więcej użytecznych danych niż zaszyfrowany obraz fizyczny.
Metodę fizyczną należy wybrać tylko wtedy, gdy jest uzasadniona, a odszyfrowanie możliwe.
SQLite: sedno dowodów z Androida
Większość artefaktów Androida stanowią bazy danych SQLite. Analitycy odpytują je bezpośrednio, aby odzyskać wiadomości, rejestry połączeń i znaczniki czasu.
- Należy otwierać je w trybie tylko do odczytu, aby uniknąć modyfikowania pliku dowodowego.
- Znaczniki czasu są często wyrażone jako milisekundy epoki uniksowej.
Zbadaj bazę danych kontaktów z ekstrakcji:
sqlite3 -readonly contacts2.db
sqlite> .tables
sqlite> SELECT display_name, data1
...> FROM view_v_contacts LIMIT 20;Odzyskiwanie usuniętych rekordów SQLite
Usunięcie wiersza w SQLite często jedynie oznacza miejsce strony jako wolne. Możliwe do odzyskania pozostałości znajdują się w:
- Stronach freelist i nieprzydzielonych obszarach pliku .db.
- Dzienniku -wal, który zachowuje wcześniejsze wersje wierszy sprzed punktu kontrolnego.
Narzędzia do carvingu odtwarzają te rekordy. Uruchom proces odzyskiwania dla bazy danych:
# Carve deleted rows from freelist + WAL
python3 sqlite_carver.py --db msgstore.db --wal msgstore.db-wal \
--out recovered_messages.csv
# Cross-check live vs recovered counts in your notesOś czasu i dekodowanie znaczników czasu
Tworzenie osi czasu pozwala korelować zdarzenia między aplikacjami. Wyzwaniem jest wiele formatów znaczników czasu używanych przez Androida.
- Epoka uniksowa (ms) — większość baz wiadomości.
- Epoka uniksowa (s) — wiele dzienników systemowych.
- Czas WebKit/Chrome — mikrosekundy od 1601 roku (historia przeglądarki).
Należy zawsze normalizować dane do UTC i odnotować strefę czasową urządzenia. Przykładowa konwersja w SQLite:
-- Convert epoch milliseconds to readable UTC
SELECT datetime(timestamp/1000, 'unixepoch') AS sent_utc,
key_remote_jid, data
FROM messages
ORDER BY timestamp DESC LIMIT 25;Kluczowe artefakty systemowe
Oprócz danych aplikacji artefakty systemowe Androida ujawniają zachowanie użytkownika i sposób korzystania z urządzenia.
- usagestats — które aplikacje były uruchamiane i kiedy.
- accounts.db / accounts_ce.db — powiązane konta Google i konta aplikacji.
- net stats / netpolicy — zużycie danych przez poszczególne aplikacje.
- Wi-Fi config (WifiConfigStore.xml) — znane sieci, przydatne w kontekście geolokalizacji.
Dane te potwierdzają lub podważają twierdzenia dotyczące tego, kto korzystał z urządzenia i kiedy.
Automatyczne parsowanie za pomocą ALEAPP
Ręczne parsowanie nie skaluje się. ALEAPP (Android Logs Events And Protobuf Parser) przetwarza ekstrakcję systemu plików i generuje ustrukturyzowany raport HTML/CSV.
- Parsuje usagestats, ostatnią aktywność, powiadomienia, uprawnienia aplikacji i inne dane.
- Należy użyć go do wstępnej analizy, a następnie ręcznie zweryfikować kluczowe ustalenia na podstawie surowych baz danych.
Należy uruchomić ALEAPP dla katalogu ekstrakcji:
python3 aleapp.py -t fs -i ./android_filesystem/ -o ./aleapp_report/
# Open ./aleapp_report/index.html to review parsed artifactsWeryfikacja i zabezpieczenia przed manipulacją
Nigdy nie należy ufać pojedynczemu narzędziu. Należy zweryfikować automatyczne wyniki na podstawie danych źródłowych oraz porównać je z wynikami innych narzędzi.
- Należy ponownie wykonać kluczowe zapytania ręcznie w sqlite3, aby potwierdzić wyniki parsera.
- Należy zwracać uwagę na oznaki działań antyforensycznych: wyczyszczone logi, zmodyfikowane znaczniki czasu, aplikacje do bezpiecznego usuwania danych lub aplikacje czatowe z ustawieniami znikających wiadomości.
- Należy potwierdzić, że hash obrazu jest taki sam przed analizą i po niej.
Powtarzalność i weryfikacja krzyżowa sprawiają, że ustalenia można obronić.
Szybki test
Pozyskują Państwo bazę danych SQLite aplikacji czatowej. Jakie pliki towarzyszące należy również zebrać, aby nie pominąć niedawno wysłanych wiadomości?
Podsumowanie: pozyskiwanie i analiza danych z Androida
Można już pozyskiwać i analizować dowody z Androida od początku do końca.
- Dane aplikacji znajdują się w piaskownicach poszczególnych aplikacji jako bazy SQLite i preferencje XML.
- ADB backup = łatwe pozyskanie logiczne; file-system extraction (root) zachowuje WAL; physical jest najtrudniejszą metodą w przypadku FBE.
- Należy odzyskiwać usunięte rekordy ze stron freelist i WAL.
- Należy normalizować znaczniki czasu do UTC oraz dekodować formaty epoki i WebKit.
- Należy używać ALEAPP do wstępnej analizy, a następnie ręcznie weryfikować wyniki za pomocą sqlite3.
- Należy zwracać uwagę na manipulacje antyforensyczne i ponownie sprawdzać hash obrazu.
Następnie: część dotycząca iOS.
Często zadawane pytania
Czy lekcja „Pozyskiwanie i analiza danych z Androida” jest bezpłatna?
Tak — pełny tekst „Pozyskiwanie i analiza danych z Androida” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Pozyskiwanie i analiza danych z Androida”?
Pozyskiwanie i analizowanie danych z Androida Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?
Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Pozyskiwanie i analiza danych z Androida”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?
Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy informatyki śledczej urządzeń mobilnych
- Pozyskiwanie i analiza danych z Androida
- Pozyskiwanie i analiza danych z iOS
- Aplikacje, artefakty i raportowanie