iOS App Extensions
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Uygulama uzantıları, uygulamaların diğer uygulamalar veya sistemle etkileşimde bulunarak özel özellikler veya içerik sunmasına olanak tanıyarak işlevselliğini artırır. Bu uzantılar şunları içerir:
Özel Klavye: Tüm uygulamalarda benzersiz bir klavye sunarak varsayılan iOS klavyesinin yerini alır.
Paylaş: Sosyal ağlara veya diğerleriyle doğrudan paylaşım yapmayı sağlar.
Bugün (Widget'lar): Bildirim Merkezi'nin Bugün görünümünden hızlı bir şekilde içerik sunar veya görevler gerçekleştirir.
Bir kullanıcı, bir ana uygulamadan metin paylaşmak gibi bu uzantılarla etkileşime girdiğinde, uzantı bu girişi kendi bağlamında işler ve görevini yerine getirmek için paylaşılan bilgileri kullanır; bu, Apple'ın belgelerinde ayrıntılı olarak açıklanmıştır.
Ana güvenlik unsurları şunlardır:
Uzantılar ve içerdikleri uygulamalar, doğrudan değil, süreçler arası iletişim yoluyla iletişim kurar.
Bugün widget'ı, uygulamasını belirli bir yöntemle açmasını isteyebilmesi açısından benzersizdir.
Paylaşılan veri erişimi, özel bir konteyner içinde izinlidir, ancak doğrudan erişim kısıtlanmıştır.
HealthKit dahil bazı API'ler, uygulama uzantılarına kapalıdır; ayrıca, iMessage uzantıları hariç uzun süreli görevler başlatamaz, kamera veya mikrofon erişimi yoktur.
Kaynak kodunda uygulama uzantılarını bulmak için Xcode'da NSExtensionPointIdentifier
araması yapın veya uzantıları gösteren .appex
dosyalarını içeren uygulama paketini inceleyin. Kaynak kodu olmadan, bu tanımlayıcıları uygulama paketinde bulmak için grep veya SSH kullanın.
Desteklenen veri türlerini belirlemek için bir uzantının Info.plist
dosyasını kontrol edin ve NSExtensionActivationRule
'u inceleyin. Bu yapılandırma, yalnızca uyumlu veri türlerinin ana uygulamalarda uzantıyı tetiklemesini sağlar.
Bir uygulama ile uzantısı arasında veri paylaşımı, "Uygulama Grupları" aracılığıyla ayarlanan ve NSUserDefaults
üzerinden erişilen paylaşılan bir konteyner gerektirir. Bu paylaşılan alan, uzantılar tarafından başlatılan arka plan transferleri için gereklidir.
Uygulamalar, özellikle özel klavyeler gibi belirli uzantı türlerini kısıtlayabilir, böylece hassas veri işleme güvenlik protokolleriyle uyumlu hale gelir.
Dinamik analiz şunları içerir:
Paylaşılan Öğeleri İnceleme: Paylaşılan veri türlerini ve kökenlerini görmek için NSExtensionContext - inputItems
'a bağlanın.
Uzantıları Belirleme: Verilerinizi hangi uzantıların işlediğini, NSXPCConnection
gibi iç mekanizmaları gözlemleyerek keşfedin.
frida-trace
gibi araçlar, süreçler arası iletişimin teknik detaylarına ilgi duyanlar için temel süreçleri anlamada yardımcı olabilir.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)