Das unterscheidet ihn von bisherigen Jailbreaks

Der Electra-Jailbreak für IoS 11

15.08.2018
Von   
Mark Zimmermann leitet hauptberuflich das Center of Excellence (CoE mobile) zur mobilen Lösungsentwicklung bei der EnBW Energie Baden-Württemberg AG in Karlsruhe. Er weist mehrere Jahre Erfahrung in den Bereichen Mobile Sicherheit, Mobile Lösungserstellung, Digitalisierung und Wearables auf. Der Autor versteht es, seine Themen aus unterschiedlichsten Blickwinkeln für unternehmensspezifische Herausforderungen darzustellen. Neben seiner hauptberuflichen Tätigkeiten ist er Autor zahlreicher Artikel in Fachmagazinen.
Lange gab es keine öffentlichen Jailbreaks für aktuelle iOS 11 Geräte. Das Electra-Team hat dies nun geändert. Mit dem erschienenen Electra-Tool nimmt das Jailbreak-Thema, kurz vor der Veröffentlichung von iOS 12, wieder gewaltig an Fahrt auf.
Electra Jailbreak Screenshot
Electra Jailbreak Screenshot
Foto: Mark Zimmermann Screenshot

Was ist ein Jailbreak?

Ein Jailbreak (deutsch "Gefängnisausbruch") bedeutete, dass das iOS-Betriebssystem manipuliert wird. Im Originalzustand ist iOS ein sogenanntes geschlossenes System, auf dem nur Apps installiert und ausgeführt werden, die von Apple zugelassen sind. Dies sorgt unter anderem für die hoch gelobte Sicherheit im Vergleich zu anderen Plattformen.

Lesetipp: Diese Apps haben die Welt verändert

Durch einen Jailbreak erlangen Anwender (und Apps) vollen Zugriff auf das Datei-System eines iOS-Gerätes und bekommen sogenannte Root-Rechte. Sinngemäß haben die Anwender (und Apps) damit eine Art "Gott-Modus" zur Verfügung.

Mit diesen Berechtigungen können beispielsweise Apps installiert werden, die von Apple nicht autorisiert wurden. Viele Anwender haben in der Vergangenheit ihr iOS-Gerät mit dieser Hilfe um Funktionen erweitert, die Apple von Haus aus nicht vorgesehen hat.

Jailbreaks sind wahre Goldgruben. Findet jemand eine Möglichkeit einen Jailbreak durchzuführen, bieten einschlägige Kreise gutes Geld für diese Erkenntnisse. Dies und die Tatsache, dass das öffentliche Jailbreaken durch zunehmend neue Funktionen von iOS immer "uninteressanter" wurde, führte zu dem gefühlten "einschlafen" der Jailbreak-Szene

Electra-Team knackt iOS 11

Das Entwickler-Team Electra hat sich nun zurückgemeldet und bewiesen, dass die Jailbreak-Szene noch am Leben ist. Mit einem eigens bereitgestellten Tool können iOS Geräte mit den iOS-Versionen 11.2 bis 11.3.1 entsprechend manipuliert werden. Auch für das Apple TV scheint es ein Update des Tool zu geben.

Das perfide an dem Jailbreak ist die integrierte Verschleierung gegenüber Jailbreak-Erkennungsmethoden. Diese Methoden nutzen häufig Banking-Apps und andere Apps um einen Betrieb auf einem nicht kompromitierten System sicherzustellen.

Das Electra-Team gibt sich hierbei von Haus aus Mühe einen Jailbreak-Tweak mitzuliefern, der dabei helfen soll, Jailbreak-Erkennung auf einem jailbroken iPhone oder iPad zu umgehen. Die Erkennungsmethoden sollen so ins Leere laufen.

Lesetipp: Keine Reparatur eines iPhones mit Jailbreake

Das Electra-Team wendet so neun verschiedene Methoden zur Vermeidung von Jailbreak-Erkennungstechniken an. Damit schafft es der Electra Jailbreak bei mehr als 90 Apps, aus dem öffentlichen AppStore, nicht erkannt zu werden.

So können Entwickler Indizien für einen Jailbreak erkennen

Wenn Sie Entwickler einer App sind oder solche beauftragen, wollen Sie - je nach Schutzbedarf und -nivau Ihrer App -sicherlich erkennen, ob die App auf einem jailbroken iOS-Gerät ausgeführt wird. Es gibt viele Indizien, die auf einen Jailbreak hinweisen können. Erst einmal die allgemein üblichen, für einen JailBreak Check:

Prüfen Sie das "nicht" vorhanden sein folgender Verzeichnisse bzw. Dateien:

  • /user/lib/limits.dylib

  • /pguntether

  • /System/Library/Caches/Computer.apple.xpcd/xpcdcache.dylib

  • /panguaxe

  • /System/Library/LaunchDaemons/io.pangu.untether.plist

  • /evas0n7

  • /taig/taig

  • /usr/lib/panguxpcd.dylib

  • /xuanyuansword

  • /System/Library/LaunchDaemons/io.pangu.axe.untether.plist

  • /xuanyuansword.installed

  • /panguaxe.installed

  • /System/Library/LaunchDaemons/com.evad3rs.evasi0n7.untether.plist

  • /System/Library/Caches/vom.apple.dyld/neble-dylibs-to-overdrive-cache

  • /bin/bash

  • /bin/sh

  • /Applications/Cydia.app/Cydia

  • /usr/sbin/sshd

Lesetipp: App Permissions - Darf meine App alles?

Zusätzlich können Entwickler prüfen, ob folgende Kernel boot arguments gesetzt sind:

  • amfi

  • csenforcementdisable

  • launchctlenforcecodesign

Abseits dieser (nicht) "Präsenzprüfung" gibt es weitere Schritte um einen Jailbreak zu erkennen. So können Entwickler die Sandbox darauf prüfen, ob ihre App diese Sandbox schreibend verlassen können. Beim Verzeichnis "/Application" darf es sich um keinen Symlink handeln. Ein Prozess-Fork darf nicht möglich sein. Das RootFS muß "read only" sein. Eine SSH Verbindung darf, da Apple keinen SSH Server auf iOS bereit hält, nicht möglich sein.

SysCtl ist ein Werkzeug zur Überprüfung und Änderung von Kernel-Parametern zur Laufzeit. Dies kann zur Abfrage von Werten genutzt werden, hier dürfen die folgenden Werte keine "disable" Rückmeldungen geben:

Security.mac.socketenforce, Security.mac.pipeenforce, Security.mac.systemenforce, Security.mac.vmenforce, Security.mac.vnodeenforce, Security.mac.poisixshmenforce, Security.mac.sysvmsgenforce, Security.mac.poisxsemenforce, Security.mac.deviceenforce, Security.mac.procenforce, Security.mac.sysvshmenforce, Security.mac.sysvsemenforce

Es ist bei allem zu beachten, das auch iOS Veränderungen unterliegt. Teilweise geben sogar einzelne Tests, gerade wenn diese zu "einfach" implementiert werden, eine Rückmeldung, die als Jailbreak verstanden werden kann. Stetige Prüfung der Routinen, auf neue iOS Versionen und eine gewissenhafte Implementierung sind hier gefragt. Entwickler sollten ferner mit einer gewissen "Indizmenge" arbeiten und nicht gleich beim ersten Verstoß einer Routine handeln.

Das sind die Merkmale für den Electra-Jailbreak

Mithilfe der Befehle dyldimagecount() und dyldgetimagename() können Entwickler unbekannte DYLD Bibliotheken zur Laufzeit ihrer App identifizieren. Diese Routinen liefern (zum Zeitpunkt dieses Artikels) valide Treffer für mindestens eine der folgenden Bibliotheken des Electra-Jailbreaks:

  • amfid_payload.dylib

  • TweakInject.dylib

  • pspawn_payload.dylib

Da diese Bibliotheken sich natürlich auch jederzeit, durch das Electra-Team, umbenennen lassen, gibt es noch einen Trick im Katz- und Maus-Spiel.

Lesetipp: Werkzeugkasten für eine erfolgreiche App-Entwicklung

Diese Bibliotheken haben ja die ordinäre Aufgabe, die oben aufgeführten Jailbreak-Prüfungen zu unterbinden. Daher lade ich Sie zu einem Gedankenexperiment ein:

Wenn die Bibliotheken den Entwickler nicht mehr prüfen lassen, ob Cydia auf dem System installiert ist (er bekommt immer die Rückmeldung, es sei nicht da, obwohl es da ist), könnte der Entwickler die zu prüfende Datei selbst erzeugen und danach auf Existenz prüfen. Auf einem jailbroken iOS-Gerät wird er die Datei erzeugen können und wenn er danach mitgeteilt bekommt, das sie nicht da ist, dürfte es sich mit ziemlich sicherer Wahrscheinlichkeit, um einen gestarten Jailbreak handeln.

JailBreak Prüfungen sind "böse"

Apple mag keine Apps mit Jailbreak Prüfungen. Dies wird besonders an einem Fall vom Mai 2016 deutlich. Apple hatte damals die App "SecInfo" des Entwicklers Stefan Esser aus dem AppStore entfernt. Sollten Sie also eine App mit entsprechenden Prüfungen vorsehen, bedenken Sie das Risiko einer Ablehnung oder nachträglichen Entfernung durch Apple.