Pozyskiwanie i analiza danych z iOS
Pozyskiwanie i analizowanie danych z iOS
Pozyskiwanie i analiza danych z iOS to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 3 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.
Model bezpieczeństwa iOS
Informatyka śledcza iOS jest kształtowana przez ściśle zintegrowany sprzętowy model bezpieczeństwa.
- Secure Enclave (SEP) — odizolowany koprocesor przechowujący materiał kluczowy; liczba prób podania kodu jest ograniczana sprzętowo.
- Data Protection — klucze szyfrowania poszczególnych plików powiązane z kodem i identyfikatorem UID urządzenia.
- Sandboxing — każda aplikacja jest ograniczona do własnego kontenera.
Oznacza to, że łamanie kodu metodą brute force jest ograniczane przez SEP, a surowy zrzut pamięci flash jest szyfrogramem. Dostęp zgodny z prawem zwykle wymaga, aby urządzenie było odblokowane za zgodą użytkownika lub znajdowało się w stanie AFU.
Klasy ochrony danych
Każdemu plikowi jest przypisywana klasa ochrony, która określa, kiedy dostępny jest jej klucz.
- Complete — klucz jest usuwany wkrótce po zablokowaniu urządzenia (najwyższy poziom ochrony).
- Complete Until First User Authentication — klucz staje się dostępny po pierwszym odblokowaniu (typowa domyślna klasa AFU).
- No Protection — klucz jest zawsze dostępny (rzadko stosowane).
Dlatego stan AFU ma w iOS kluczowe znaczenie: pliki w klasie dostępnej do pierwszego uwierzytelnienia stają się możliwe do odczytania, co odblokowuje większość danych użytkownika.
Pozyskiwanie kopii zapasowej iTunes/Finder
Najłatwiej dostępną metodą logiczną jest pozyskanie kopii zapasowej za pośrednictwem relacji parowania z hostem (z wykorzystaniem tego samego mechanizmu co iTunes/Finder).
- Wymaga prawidłowego pairing record (lockdown certificate) oraz odblokowanego urządzenia, aby taki rekord utworzyć.
- Zaszyfrowana kopia zapasowa (z ustawionym hasłem kopii) zawiera w rzeczywistości więcej danych: dane pęku kluczy, dane zdrowotne i zapisane hasła.
Należy utworzyć kopię zapasową za pomocą libimobiledevice, korzystając z właściwej autoryzacji:
idevice_id -l # list connected UDIDs
ideviceinfo -k ProductVersion # confirm iOS version
idevicebackup2 backup --full ./ios_backup/Struktura kopii zapasowej i manifestu
Kopia zapasowa iOS nie przechowuje plików pod ich nazwami. Haszuje ścieżki i zapisuje pliki płasko, a ich indeksowanie odbywa się za pomocą bazy SQLite Manifest.db.
- Manifest.db odwzorowuje domenę i ścieżkę względną na zahaszowaną nazwę pliku na dysku.
- Info.plist / Status.plist przechowują metadane urządzenia i kopii zapasowej.
- Zaszyfrowane kopie zapasowe wymagają również odszyfrowania klucza pęku kluczy za pomocą hasła kopii.
Należy odnaleźć znany artefakt za pomocą manifestu:
sqlite3 -readonly Manifest.db \
"SELECT fileID, domain, relativePath FROM Files
WHERE relativePath LIKE '%sms.db%';"Pełna ekstrakcja systemu plików
Pełna ekstrakcja systemu plików (FFS) wykracza poza dane dozwolone przez kopię zapasową i obejmuje całą partycję użytkownika, w tym pamięci podręczne aplikacji, artefakty wiedzy i bazy systemowe.
- Wymaga agenta lub exploita (np. opartego na checkm8 w przypadku podatnych starszych układów) oraz urządzenia w stanie AFU.
- Pozwala pozyskać artefakty pomijane przez kopie zapasowe: knowledgeC.db, interactionC.db, pamięci podręczne lokalizacji.
FFS jest złotym standardem współczesnej analizy iOS, gdy można ją uzyskać zgodnie z prawem, ponieważ ujawnia systemowe bazy danych dotyczące zachowania, niewidoczne w standardowej kopii zapasowej.
Najważniejsze bazy danych iOS
iOS przechowuje aktywność użytkownika w dobrze znanych bazach SQLite znajdujących się w domenach aplikacji.
- sms.db — iMessage i SMS (tabele: message, handle).
- CallHistory.storedata — rejestry połączeń.
- AddressBook.sqlitedb — kontakty.
- Photos.sqlite — metadane multimediów i odnośniki do zasobów.
Należy wykonać zapytanie dotyczące treści iMessage (tylko do odczytu) na podstawie ekstrakcji:
sqlite3 -readonly sms.db
sqlite> SELECT datetime(date/1000000000 + 978307200,'unixepoch') ts,
...> h.id, m.text
...> FROM message m JOIN handle h ON m.handle_id=h.ROWID
...> ORDER BY m.date DESC LIMIT 20;Znaczniki czasu Apple (Mac/Cocoa)
iOS często używa czasu epoki Apple/Cocoa: liczby sekund od 2001-01-01 UTC, a nie od 1970 roku. Niektóre bazy danych przechowują go w nanosekundach.
- Przesunięcie względem epoki Unix wynosi 978307200 sekund.
- Wartość
datew iMessage jest wyrażona w nanosekundach od 2001 roku; należy podzielić ją przez 1e9, a następnie dodać przesunięcie.
Błędne odczytanie epoki powoduje przesunięcie dat o 31 lat. Schemat konwersji:
-- Cocoa seconds -> UTC
SELECT datetime(ZDATE + 978307200, 'unixepoch') FROM ZRECORD;
-- iMessage nanoseconds -> UTC
SELECT datetime(date/1000000000 + 978307200, 'unixepoch') FROM message;Bazy danych zachowań
iOS przechowuje bogatą telemetrię zachowania dotyczącą funkcji systemowych, która jest niezwykle cenna przy tworzeniu osi czasu.
- knowledgeC.db — użycie aplikacji, tryb skupienia, blokowanie i odblokowywanie urządzenia, zdarzenia Siri.
- interactionC.db — komunikacja z kontaktami między aplikacjami.
- routined / cache_encryptedB.db — ważne lokalizacje.
Dane te występują wyłącznie w ekstrakcjach FFS (nie w standardowych kopiach zapasowych) i mogą ustalić, co użytkownik robił w konkretnej chwili — należy jednak zachować ostrożność w interpretacji, ponieważ niektóre zdarzenia są generowane przez system, a nie przez użytkownika.
Odzyskiwanie danych pęku kluczy
Pęk kluczy przechowuje hasła Wi-Fi, tokeny, dane uwierzytelniające aplikacji i certyfikaty. Jest szyfrowany za pomocą kluczy klas wyprowadzonych z kodu.
- Można go odzyskać z zaszyfrowanej kopii zapasowej iTunes (za pomocą hasła kopii) lub z ekstrakcji FFS.
- Elementy mają własną klasę ochrony; niektóre są dostępne wyłącznie w stanie AFU.
Zawartość pęku kluczy może ujawnić dostęp do kont i dodatkowy kontekst — należy obchodzić się z nią z taką samą ostrożnością prawną jak z wszelkimi materiałami zawierającymi dane uwierzytelniające.
Automatyczne parsowanie za pomocą iLEAPP
iLEAPP parsuje kopie zapasowe iOS oraz ekstrakcje FFS, tworząc ustrukturyzowane raporty obejmujące setki typów artefaktów.
- Dekoduje knowledgeC, sms, historię Safari, stany aplikacji i inne dane.
- Należy używać go do wstępnej analizy, a kluczowe ustalenia weryfikować na podstawie surowych baz SQLite.
Należy uruchomić iLEAPP dla kopii zapasowej lub ekstrakcji:
python3 ileapp.py -t fs -i ./ios_filesystem/ -o ./ileapp_report/
# Or -t itunes for a Finder/iTunes backup folderiCloud i weryfikacja krzyżowa
Dane usunięte z urządzenia mogą nadal być przechowywane w iCloud (kopie zapasowe, Photos, Messages in iCloud, dane aplikacji).
- Dostęp do iCloud wymaga odrębnego upoważnienia prawnego oraz właściwych danych uwierzytelniających lub tokenów.
- Należy porównywać ustalenia z urządzenia z kopiami w chmurze oraz z wynikami drugiego narzędzia.
Jak zawsze, należy potwierdzić hash ekstrakcji przed analizą i po niej oraz udokumentować wersje narzędzi i polecenia, aby inny biegły mógł odtworzyć wyniki.
Szybki test
Odczytują Państwo znacznik czasu iMessage jako epokę Unix, a data wychodzi o 31 lat za wczesna. Co poszło nie tak?
Podsumowanie: pozyskiwanie i analiza danych z iOS
Można już sprawnie pracować z całym stosem kryminalistyki iOS.
- Połączenie Secure Enclave + Data Protection sprawia, że stan AFU ma kluczowe znaczenie.
- Zaszyfrowane kopie zapasowe zawierają dane pęku kluczy i zdrowotne; ekstrakcje FFS dodatkowo obejmują bazy danych zachowań.
- Kopie zapasowe są indeksowane przez Manifest.db za pomocą zahaszowanych nazw plików.
- Najważniejsze dowody: sms.db, CallHistory, AddressBook, knowledgeC.db.
- Należy dekodować znaczniki czasu Apple/Cocoa (epoka 2001, +978307200).
- Należy przeprowadzać wstępną analizę za pomocą iLEAPP, ręcznie weryfikować wyniki i uwzględniać iCloud przy odpowiednim upoważnieniu.
Następnie: parsowanie artefaktów aplikacji i przygotowanie raportu.
Często zadawane pytania
Czy lekcja „Pozyskiwanie i analiza danych z iOS” jest bezpłatna?
Tak — pełny tekst „Pozyskiwanie i analiza danych z iOS” 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 iOS”?
Pozyskiwanie i analizowanie danych z iOS Ć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 3 z 4.
Ile czasu zajmuje lekcja „Pozyskiwanie i analiza danych z iOS”?
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