Jamf Blog

Gefälschter Flugzeugmodus: Eine mobile Manipulationstechnik zur Aufrechterhaltung der Konnektivität

Jamf Threat Labs hat eine Technik entwickelt, die nach der Ausnutzung des Angriffs auf iOS 16 einen funktionierenden Flugzeugmodus vortäuscht. In der Realität schaltet der Angreifer/die Angreiferin nach erfolgreicher Ausnutzung des Geräts einen künstlichen Flugzeugmodus ein, der die Benutzeroberfläche so verändert, dass Symbole für den Flugzeugmodus angezeigt werden und die Internetverbindung zu allen Apps außer der Angreiferapp unterbrochen wird. Dadurch kann der Angreifer/die Angreiferin den Zugriff auf das Gerät aufrechterhalten, auch wenn der Benutzer/die Benutzerin glaubt, dass es offline ist. Diese Technik wurde bisher noch nicht in freier Wildbahn beobachtet und ist nur auf einem bereits ausgenutzten oder jailbroken Gerät möglich.

Forschung unter der Leitung von Hu Ke und Nir Avraham.

Wurde der Flugzeugmodus manipuliert?

Wie der Name schon sagt, ist der Flugzeugmodus so konzipiert, dass die Passagiere ihr mobiles Gerät während des Fluges sicher nutzen können, indem sie die drahtlosen Mobilfunkfunktionen ausschalten, um Interferenzen mit wichtigen Fluggeräten zu vermeiden.

Der Flugzeugmodus wird jedoch nicht nur auf Reisen verwendet, sondern auch, um den Akku zu schonen und um sich von unserer ständig verbundenen Welt zu lösen. Sie wurde sogar als Meditationstechnik vorgeschlagen.

Für diejenigen, die unter Cyber-Paranoia und Technophobie leiden, kann es ein nützlicher psychologischer Trick sein das Telefon in den Flugmodus zu versetzen, um Ruhe zu finden und ein Gefühl von mehr Privatsphäre zu bekommen.

Aber sollten Sie den Flugzeugmodus verwenden, um Ihre Sicherheit und Privatsphäre zu schützen?

Heute werden wir uns mit der Technologie befassen, die dem Flugzeugmodus von iOS zugrunde liegt, um einen Ansatz zu demonstrieren, der es einem böswilligen Akteur/einer böswilligen Akteurin ermöglichen würde, eine Mobilfunkverbindung für eine App aufrechtzuerhalten, selbst wenn der Benutzer/die Benutzerin glaubt, den Flugzeugmodus aktiviert zu haben.

Die Unterschicht

Wir beginnen mit einer Analyse der Funktionsweise des Flugzeugmodus. Zwei Daemons übernehmen die Hauptaufgabe des Umschaltens des Flugzeugmodus. SpringBoard kümmert sich um Änderungen an der Benutzeroberfläche, während CommCenter für den Betrieb der zugrunde liegenden Netzwerkschnittstelle zuständig ist. Beachten Sie, dass das CommCenter auch für die Verwaltung der Funktion verantwortlich ist, mit der Benutzer*innen den mobilen Datenzugriff für bestimmte Apps sperren können.

Wie Sie sehen können, zeigt die Netzwerkschnittstelle pdp_ip0 (Mobilfunkdaten) unter normalen Bedingungen keine IPv4/IPv6-IP-Adressen mehr an, wenn der Benutzer/die Benutzerin den Flugzeugmodus aktiviert. Das zelluläre Netz ist abgeschaltet und unbrauchbar, zumindest auf der Ebene des Benutzerraums.

Erstellen eines künstlichen Flugzeugmodus

In diesem Abschnitt zeigen wir, wie wir einen künstlichen Flugzeugmodus geschaffen haben, bei dem die Änderungen an der Benutzeroberfläche beibehalten werden, während die Mobilfunkverbindung für eine ausgewählte App erhalten bleibt (in einem Angriffsszenario wäre dies die Malware des Angreifers/der Angreiferin, die er als Teil eines Geräteexploits installiert hat).

Wir beginnen mit der Verfolgung der Konsolenprotokolle. Beachten Sie, dass beim Einschalten des Flugzeugmodus das früheste relevante Protokoll das folgende zu sein scheint: „#N Benutzer*innen Flugmodus-Einstellung ändert sich von...“

Wir verwenden diese Zeichenfolge, um den Code zu finden, der im Disassemblierer darauf verweist. Es handelt sich um eine symbolfreie C++-Funktion, die Sie hier finden:

In der Hoffnung, dass diese Funktion früh genug in der Kette von Aufrufen steht, die den Flugzeugmodus aktivieren, haben wir sie erfolgreich abgefangen und durch eine leere Funktion ersetzt, die nichts tut. Das Ergebnis war ein falscher Flugzeugmodus. Wenn der Benutzer/die Benutzerom nun den Flugzeugmodus aktiviert, wird das Gerät nicht vom Mobilfunknetz getrennt und der Internetzugang ist ununterbrochen.

Beibehaltung der erwarteten Benutzererfahrung

Es sind zusätzliche Änderungen an der Benutzeroberfläche erforderlich, damit der Angriff wie ein typisches Flugzeugmodus-Erlebnis aussieht. Ein kleines Beispiel war, das Handy-Symbol zu dimmen und den Benutzer/die Benutzerin daran zu hindern, damit zu interagieren.

Um dies zu erreichen, haben wir zwei Objective-C-Methoden eingebunden und ein Stück Code eingefügt, das das zelluläre Symbol anpasst, um den gewünschten Effekt zu erzielen. -[SBStatusBarStateAggregator _noteAirplaneModeChanged] and -[CCUIModularControlCenterOverlayViewController _beginPresentationAnimated:interactive:]

Scheinbare Trennung der Internetverbindung

Nach dem Aktivieren des Flugzeugmodus ohne Wi-Fi-Verbindung würde man erwarten, dass beim Öffnen von Safari keine Verbindung zum Internet hergestellt werden kann. In der Regel erscheint ein Benachrichtigungsfenster, das den Benutzer/die Benutzerin auffordert, den Flugzeugmodus auszuschalten. Um diesen Effekt zu erzielen, werden wir die oben erwähnte CommsCenter-Funktion zum „Blockieren des mobilen Datenzugriffs für bestimmte Apps“ verwenden und sie mit der unten aufgeführten Hakenfunktion als Flugzeugmodus tarnen.

Die Screenshots unten zeigen die gefälschte Benutzererfahrung mit der Meldung, die normalerweise von der Funktion „Blockieren des mobilen Datenzugriffs für bestimmte Apps“ kommt, auf der linken Seite und das Ergebnis des Einhängens des Benachrichtigungsfensters, das wie die typische Flugzeugmodusmeldung aussieht, auf der rechten Seite.

Das Ersetzen des Benachrichtigungsfensters ist eine Sache, aber wie haben wir die Internetverbindung für Safari unterbrochen, ohne den Flugzeugmodus zu aktivieren und das gesamte Gerät zu beeinträchtigen? Schließlich ist dies das wichtigste Zeichen dafür, dass der Flugmodus aktiviert ist.

Wie funktioniert das Warnfenster „Mobilfunkdaten sind ausgeschaltet“?

Ähnlich wie bei der früheren Icon-Manipulation haben wir festgestellt, dass der System-UI-Manager SpringBoard das Alarmfenster aufruft, nachdem er vom CommCenterbenachrichtigt wurde. Wenn wir einen Schritt tiefer gehen, kommen wir zu dem Schluss, dass das CommCenter vom Kernel über eine registrierte Beobachter-/Rückruffunktion benachrichtigt wurde.

CommCenter`CellularUsagePolicyController::createNEConfigurationStore_sync

-> NetworkExtension.framework`-[NEPathEventObserver initWithQueue:eventHandler:]

-> libnetwork.dylib`network_config_cellular_blocked_observer_create

Diese network_config_* Funktionen rufen intern socket()/ioctl() auf, um mit dem Kernel zu interagieren:

network_config_cellular_blocked_observer_create

-> network_config_policy_observer_create

-> __network_config_policy_observer_create_block_invoke

-> network_config_setup_policy_event_watcher

-> socket(32, 3, 1)

-> ioctl(...)

Wir haben `fsevents` genutzt und festgestellt, dass der CommCenter Daemon auch eine SQL-Datenbankdatei /private/var/wireless/Library/Databases/CellularUsage.db verwaltet. In dieser Datenbank wird der Status des mobilen Datenzugriffs der einzelnen Apps aufgezeichnet.

Der Wert von „flags“ wird auf 8 gesetzt, wenn eine App für den Zugriff auf Mobilfunkdaten gesperrt ist. Dies ist nützlich, da wir eine Liste von App-Bundle-IDs aus dieser SQL-Datenbankdatei lesen und ihren voreingestellten Wert erhalten können.

Mithilfe dieser Datenbank mit den IDs der installierten Apppakete können wir nun mit dem folgenden Code selektiv den Zugriff einer App auf Wi-Fi- oder Mobilfunkdaten blockieren oder zulassen. In Kombination mit den anderen oben beschriebenen Techniken scheint der gefälschte Flugzeugmodus nun genauso zu funktionieren wie der echte, außer dass die Internetsperre nicht für Prozesse gilt, die keine Apps sind, wie z. B. ein Backdoor-Trojaner.

Jamf Executive Threat Protection kann ausgeklügelte Angriffe erkennen, um Ihre Benutzer*innen zu schützen.

Jamf Blog abbonieren

Industrietrends, Apple Neuigkeiten und das Neueste von Jamf, direkt in Ihrer Inbox.

Um mehr darüber zu erfahren, wie wir Ihre Informationen sammeln, verwenden, offenlegen, übertragen und speichern, werfen Sie bitte einen Blick auf unsere Datenschutzbestimmungen.