iOS App Extensions
Uygulama uzantıları, uygulamaların diğer uygulamalarla veya sistemle etkileşimde bulunarak özel özellikler veya içerik sağlamasını sağlayarak uygulamaların işlevselliğini artırır. Bu uzantılar şunları içerir:
Özel Klavye: Varsayılan iOS klavyesini değiştirerek tüm uygulamalarda benzersiz bir klavye sunar.
Paylaş: Sosyal ağlarda veya doğrudan diğer kişilerle paylaşım yapmayı sağlar.
Bugün (Araçlar): Bildirim Merkezi'nin Bugün görünümünden hızlı bir şekilde içerik sağlar veya görevleri gerçekleştirir.
Bir kullanıcı, örneğin bir ana uygulamadan metin paylaşırken, uzantı bu girişi kendi bağlamında işler ve görevini yerine getirmek için paylaşılan bilgileri kullanır, Apple'ın belgelerinde ayrıntılı olarak açıklandığı gibi.
Güvenlik Düşünceleri
Ana güvenlik yönleri şunları içerir:
Uzantılar ve içerdikleri uygulamalar doğrudan değil, ara işlem iletişimi yoluyla iletişim kurar.
Bugün aracı, uygulamasının belirli bir yöntem aracılığıyla açılmasını isteyebilir.
Paylaşılan veri erişimi, özel bir konteyner içinde izin verilir, ancak doğrudan erişim kısıtlanır.
SağlıkKit gibi belirli API'ler, uygulama uzantılarına kapalıdır ve uzantılar uzun süreli görevler başlatamaz, kamera veya mikrofona erişemez, yalnızca iMessage uzantıları hariç.
Statik Analiz
Uygulama Uzantılarını Tanımlama
Kaynak kodunda uygulama uzantılarını bulmak için Xcode'da NSExtensionPointIdentifier
arayın veya uzantıları gösteren .appex
dosyalarını uygulama paketi içinde 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ında NSExtensionActivationRule
kontrol edin. 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ındaki veri paylaşımı, "App Groups" aracılığıyla kurulan 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ı Sınırlama
Uygulamalar, özellikle özel klavyeler gibi belirli uzantı türlerini sınırlayabilir, böylece hassas veri işleme işlemleri güvenlik protokolleriyle uyumlu olur.
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ı Tanımlama: Verilerinizi işleyen uzantıları görmek için
NSXPCConnection
gibi dahili mekanizmaları gözlemleyin.
frida-trace
gibi araçlar, özellikle ara işlem iletişiminin teknik ayrıntılarına ilgi duyanlar için altta yatan süreçleri anlamada yardımcı olabilir.
Referanslar
Last updated