iOS App Extensions
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
App-Erweiterungen verbessern die Funktionalität von Apps, indem sie es ihnen ermöglichen, mit anderen Apps oder dem System zu interagieren und benutzerdefinierte Funktionen oder Inhalte bereitzustellen. Diese Erweiterungen umfassen:
Benutzerdefinierte Tastatur: Bietet eine einzigartige Tastatur in allen Apps und ersetzt die Standard-iOS-Tastatur.
Teilen: Ermöglicht das Teilen in sozialen Netzwerken oder direkt mit anderen.
Heute (Widgets): Liefert Inhalte oder führt Aufgaben schnell aus der Heute-Ansicht des Benachrichtigungszentrums aus.
Wenn ein Benutzer mit diesen Erweiterungen interagiert, wie z.B. das Teilen von Text aus einer Host-App, verarbeitet die Erweiterung diese Eingabe in ihrem Kontext und nutzt die geteilten Informationen, um ihre Aufgabe auszuführen, wie in der Dokumentation von Apple beschrieben.
Wichtige Sicherheitsaspekte umfassen:
Erweiterungen und ihre enthaltenen Apps kommunizieren über Interprozesskommunikation, nicht direkt.
Das Heute-Widget ist einzigartig, da es seine App über eine spezifische Methode öffnen kann.
Der Zugriff auf gemeinsam genutzte Daten ist innerhalb eines privaten Containers erlaubt, aber der direkte Zugriff ist eingeschränkt.
Bestimmte APIs, einschließlich HealthKit, sind für App-Erweiterungen tabu, die auch keine lang laufenden Aufgaben starten, auf die Kamera oder das Mikrofon zugreifen können, außer für iMessage-Erweiterungen.
Um App-Erweiterungen im Quellcode zu finden, suchen Sie nach NSExtensionPointIdentifier
in Xcode oder überprüfen Sie das App-Bundle auf .appex
-Dateien, die Erweiterungen anzeigen. Ohne Quellcode verwenden Sie grep oder SSH, um diese Identifikatoren im App-Bundle zu finden.
Überprüfen Sie die Info.plist
-Datei einer Erweiterung auf NSExtensionActivationRule
, um unterstützte Datentypen zu identifizieren. Diese Einrichtung stellt sicher, dass nur kompatible Datentypen die Erweiterung in Host-Apps auslösen.
Die Datenfreigabe zwischen einer App und ihrer Erweiterung erfordert einen gemeinsamen Container, der über "App-Gruppen" eingerichtet und über NSUserDefaults
zugegriffen wird. Dieser gemeinsame Raum ist notwendig für Hintergrundübertragungen, die von Erweiterungen initiiert werden.
Apps können bestimmte Erweiterungstypen einschränken, insbesondere benutzerdefinierte Tastaturen, um sicherzustellen, dass die Verarbeitung sensibler Daten mit Sicherheitsprotokollen übereinstimmt.
Dynamische Analyse umfasst:
Überprüfen von gemeinsam genutzten Elementen: Hook in NSExtensionContext - inputItems
, um gemeinsam genutzte Datentypen und Ursprünge zu sehen.
Identifizierung von Erweiterungen: Entdecken Sie, welche Erweiterungen Ihre Daten verarbeiten, indem Sie interne Mechanismen wie NSXPCConnection
beobachten.
Tools wie frida-trace
können helfen, die zugrunde liegenden Prozesse zu verstehen, insbesondere für diejenigen, die an den technischen Details der Interprozesskommunikation interessiert sind.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)