iOS UIPasteboard
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Udostępnianie danych w ramach i między aplikacjami na urządzeniach iOS jest ułatwione przez mechanizm UIPasteboard
, który dzieli się na dwie główne kategorie:
Ogólny schowek systemowy: Używany do udostępniania danych z dowolną aplikacją i zaprojektowany tak, aby utrzymywać dane po ponownym uruchomieniu urządzenia i odinstalowaniu aplikacji, funkcja ta jest dostępna od iOS 10.
Niestandardowe / nazwane schowki: Służą specjalnie do udostępniania danych w obrębie aplikacji lub z inną aplikacją, która dzieli ten sam identyfikator zespołu, i nie są zaprojektowane do utrzymywania danych poza życiem procesu aplikacji, która je tworzy, zgodnie ze zmianami wprowadzonymi w iOS 10.
Rozważania dotyczące bezpieczeństwa odgrywają znaczącą rolę przy korzystaniu ze schowków. Na przykład:
Nie ma mechanizmu, który pozwala użytkownikom zarządzać uprawnieniami aplikacji do dostępu do schowka.
Aby zminimalizować ryzyko nieautoryzowanego monitorowania schowka w tle, dostęp jest ograniczony do momentu, gdy aplikacja jest na pierwszym planie (od iOS 9).
Użycie trwałych nazwanych schowków jest odradzane na rzecz wspólnych kontenerów z powodu obaw o prywatność.
Funkcja Uniwersalny schowek, wprowadzona w iOS 10, umożliwiająca udostępnianie treści między urządzeniami za pośrednictwem ogólnego schowka, może być zarządzana przez programistów w celu ustawienia wygasania danych i wyłączenia automatycznego transferu treści.
Zabezpieczenie, aby wrażliwe informacje nie były przypadkowo przechowywane w globalnym schowku, jest kluczowe. Dodatkowo aplikacje powinny być zaprojektowane tak, aby zapobiegać niewłaściwemu wykorzystaniu danych z globalnego schowka do niezamierzonych działań, a programiści są zachęcani do wdrażania środków zapobiegających kopiowaniu wrażliwych informacji do schowka.
W przypadku analizy statycznej przeszukaj kod źródłowy lub binarny w poszukiwaniu:
generalPasteboard
, aby zidentyfikować użycie ogólnego schowka systemowego.
pasteboardWithName:create:
i pasteboardWithUniqueName
, aby tworzyć niestandardowe schowki. Sprawdź, czy trwałość jest włączona, chociaż jest to przestarzałe.
Analiza dynamiczna polega na podłączaniu lub śledzeniu konkretnych metod:
Monitoruj generalPasteboard
w celu użycia systemowego.
Śledź pasteboardWithName:create:
i pasteboardWithUniqueName
dla niestandardowych implementacji.
Obserwuj przestarzałe wywołania metody setPersistent:
, aby sprawdzić ustawienia trwałości.
Kluczowe szczegóły do monitorowania obejmują:
Nazwy schowków i zawartość (na przykład sprawdzanie ciągów, adresów URL, obrazów).
Liczba elementów i typy danych obecnych, wykorzystując standardowe i niestandardowe kontrole typów danych.
Opcje wygasania i lokalne poprzez inspekcję metody setItems:options:
.
Przykładem użycia narzędzia monitorującego jest monitor schowka objection, który co 5 sekund sprawdza zmiany w generalPasteboard i wyświetla nowe dane.
Oto prosty przykład skryptu JavaScript, inspirowany podejściem objection, do odczytu i rejestrowania zmian z schowka co 5 sekund:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)