iOS UIPasteboard
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Die Datenfreigabe innerhalb und zwischen Anwendungen auf iOS-Geräten erfolgt über den UIPasteboard
Mechanismus, der in zwei Hauptkategorien unterteilt ist:
Systemweiter allgemeiner Pasteboard: Dieser wird verwendet, um Daten mit beliebigen Anwendungen zu teilen und ist so konzipiert, dass Daten über Geräte-Neustarts und App-Deinstallationen hinweg bestehen bleiben, eine Funktion, die seit iOS 10 verfügbar ist.
Benutzerdefinierte / benannte Pasteboards: Diese sind speziell für die Datenfreigabe innerhalb einer App oder mit einer anderen App, die dieselbe Team-ID teilt, und sind nicht dafür ausgelegt, über die Lebensdauer des Anwendungsprozesses, der sie erstellt, hinaus zu bestehen, gemäß den Änderungen, die in iOS 10 eingeführt wurden.
Sicherheitsüberlegungen spielen eine bedeutende Rolle bei der Nutzung von Pasteboards. Zum Beispiel:
Es gibt keinen Mechanismus für Benutzer, um die App-Berechtigungen zum Zugriff auf das Pasteboard zu verwalten.
Um das Risiko einer unbefugten Hintergrundüberwachung des Pasteboards zu verringern, ist der Zugriff auf den Vordergrund der Anwendung beschränkt (seit iOS 9).
Die Verwendung von persistenten benannten Pasteboards wird aus Datenschutzgründen zugunsten von gemeinsamen Containern nicht empfohlen.
Die mit iOS 10 eingeführte Universal Clipboard-Funktion, die das Teilen von Inhalten über Geräte hinweg über das allgemeine Pasteboard ermöglicht, kann von Entwicklern verwaltet werden, um die Datenablaufzeit festzulegen und die automatische Inhaltsübertragung zu deaktivieren.
Es ist entscheidend, sicherzustellen, dass sensible Informationen nicht versehentlich im globalen Pasteboard gespeichert werden. Darüber hinaus sollten Anwendungen so gestaltet sein, dass sie den Missbrauch von globalen Pasteboard-Daten für unbeabsichtigte Aktionen verhindern, und Entwickler werden ermutigt, Maßnahmen zu ergreifen, um das Kopieren sensibler Informationen in die Zwischenablage zu verhindern.
Statische Analyse
Für die statische Analyse suchen Sie im Quellcode oder in der Binärdatei nach:
generalPasteboard
, um die Nutzung des systemweiten allgemeinen Pasteboards zu identifizieren.pasteboardWithName:create:
undpasteboardWithUniqueName
zur Erstellung von benutzerdefinierten Pasteboards. Überprüfen Sie, ob die Persistenz aktiviert ist, obwohl dies veraltet ist.
Dynamische Analyse
Die dynamische Analyse umfasst das Hooking oder Tracing spezifischer Methoden:
Überwachen Sie
generalPasteboard
für die systemweite Nutzung.Verfolgen Sie
pasteboardWithName:create:
undpasteboardWithUniqueName
für benutzerdefinierte Implementierungen.Beobachten Sie veraltete
setPersistent:
-Methodenaufrufe, um die Persistenzeinstellungen zu überprüfen.
Wichtige Details, die überwacht werden sollten, sind:
Pasteboard-Namen und Inhalte (zum Beispiel Überprüfung auf Strings, URLs, Bilder).
Anzahl der Elemente und Datentypen, die vorhanden sind, unter Verwendung von Standard- und benutzerdefinierten Datentypprüfungen.
Ablauf- und lokal nur-Optionen durch Überprüfung der
setItems:options:
-Methode.
Ein Beispiel für die Nutzung eines Überwachungstools ist objection's pasteboard monitor, der das generalPasteboard alle 5 Sekunden auf Änderungen abfragt und die neuen Daten ausgibt.
Hier ist ein einfaches JavaScript-Skriptbeispiel, inspiriert von der Vorgehensweise von objection, um alle 5 Sekunden Änderungen vom Pasteboard zu lesen und zu protokollieren:
References
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Last updated