5.8 KiB
Rozszerzenia aplikacji iOS
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów GitHub.
Rozszerzenia aplikacji zwiększają funkcjonalność aplikacji, umożliwiając im interakcję z innymi aplikacjami lub systemem, dostarczając niestandardowe funkcje lub treści. Te rozszerzenia obejmują:
- Niestandardowa klawiatura: Oferuje unikalną klawiaturę we wszystkich aplikacjach, zastępując domyślną klawiaturę iOS.
- Udostępnianie: Umożliwia udostępnianie w sieciach społecznościowych lub bezpośrednio innym osobom.
- Dzisiaj (Widżety): Dostarcza treści lub wykonuje zadania szybko z widoku "Dzisiaj" w Centrum powiadomień.
Kiedy użytkownik korzysta z tych rozszerzeń, na przykład udostępnia tekst z aplikacji gospodarza, rozszerzenie przetwarza ten wejściowy tekst w swoim kontekście, wykorzystując udostępnione informacje do wykonania swojego zadania, jak szczegółowo opisano w dokumentacji Apple.
Aspekty bezpieczeństwa
Kluczowe aspekty bezpieczeństwa obejmują:
- Rozszerzenia i aplikacje, w których się znajdują, komunikują się za pomocą komunikacji międzyprocesowej, a nie bezpośrednio.
- Widżet Dzisiaj jest wyjątkowy, ponieważ może zażądać otwarcia swojej aplikacji za pomocą określonej metody.
- Dostęp do udostępnionych danych jest dozwolony w ramach prywatnego kontenera, ale bezpośredni dostęp jest ograniczony.
- Pewne interfejsy API, w tym HealthKit, są niedostępne dla rozszerzeń aplikacji, które również nie mogą uruchamiać długotrwałych zadań, uzyskiwać dostępu do aparatu ani mikrofonu, z wyjątkiem rozszerzeń iMessage.
Analiza statyczna
Identyfikowanie rozszerzeń aplikacji
Aby znaleźć rozszerzenia aplikacji w kodzie źródłowym, wyszukaj NSExtensionPointIdentifier
w Xcode lub sprawdź paczkę aplikacji pod kątem plików .appex
, wskazujących na rozszerzenia. Bez kodu źródłowego użyj grep lub SSH, aby zlokalizować te identyfikatory w paczce aplikacji.
Obsługiwane typy danych
Sprawdź plik Info.plist
rozszerzenia, aby zidentyfikować obsługiwane typy danych za pomocą NSExtensionActivationRule
. Ta konfiguracja zapewnia, że tylko zgodne typy danych wywołują rozszerzenie w aplikacjach gospodarza.
Udostępnianie danych
Udostępnianie danych między aplikacją a jej rozszerzeniem wymaga wspólnego kontenera, skonfigurowanego za pomocą "Grup aplikacji" i dostępnego za pośrednictwem NSUserDefaults
. To wspólne miejsce jest niezbędne do transferów w tle inicjowanych przez rozszerzenia.
Ograniczanie rozszerzeń
Aplikacje mogą ograniczać określone typy rozszerzeń, zwłaszcza niestandardowe klawiatury, zapewniając zgodność z protokołami bezpieczeństwa w obszarze obsługi poufnych danych.
Analiza dynamiczna
Analiza dynamiczna obejmuje:
- Inspekcję udostępnionych elementów: Podłącz się do
NSExtensionContext - inputItems
, aby zobaczyć typy danych i pochodzenie udostępnionych informacji. - Identyfikowanie rozszerzeń: Odkryj, które rozszerzenia przetwarzają twoje dane, obserwując wewnętrzne mechanizmy, takie jak
NSXPCConnection
.
Narzędzia takie jak frida-trace
mogą pomóc w zrozumieniu podstawowych procesów, zwłaszcza dla tych, którzy interesują się technicznymi szczegółami komunikacji międzyprocesowej.
Referencje
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów GitHub.