iOS App Extensions
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örevleri yerine getirir.
Bir kullanıcı, 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.
Güvenlik Hususları
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.
Statik Analiz
Uygulama Uzantılarını Belirleme
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ürleri
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.
Veri Paylaşımı
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.
Uzantıları Kısıtlama
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
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 işleyen uzantıları keşfetmek için
NSXPCConnection
gibi iç mekanizmaları gözlemleyin.
frida-trace
gibi araçlar, süreçler arası iletişimin teknik detaylarına ilgi duyanlar için temel süreçleri anlamaya yardımcı olabilir.
Referanslar
Last updated