iOS Uygulama Uzantıları

Reading time: 3 minutes

tip

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)

HackTricks'i Destekleyin

Uygulama uzantıları, uygulamaların diğer uygulamalar veya sistemle etkileşimde bulunarak özel özellikler veya içerik sunmasına olanak tanıyarak uygulamaların 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 yapma imkanı 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ı, 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 detaylandırılmış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 gibi belirli API'ler uygulama uzantılarına kapalıdır; ayrıca iMessage uzantıları dışında uzun süreli görevler başlatamaz, kamera veya mikrofona erişemezler.

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

Bir uzantının Info.plist dosyasını kontrol ederek NSExtensionActivationRule ile desteklenen veri türlerini belirleyin. 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 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.

Referanslar

tip

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)

HackTricks'i Destekleyin