Allgemeine Informationen
Apple bietet die kostenlose Entwicklungsumgebung „Xcode“ an, mit der sowohl iDevices als auch Anwendungen für OS X entwickelt werden können. Das iOS SDK ist ebenfalls kostenlos. Der Entwickler muss sich jedoch registrieren und eine jährliche Gebühr entrichten, um seine Anwendung über den APP-Store auch auf fremde Geräte installiert zu können.
- iOS ist ein Derivat des Mac OSX Betriebsystems, dass für ARM-Architektur optimiert wurde.
- Nativer Code ObjectiveC
- Sonstige Standards: WebKIT (Webbrowser)
- Java und Flash werden nicht unterstützt
- Geschlossenes System, dass die Entwicklung der Software, Herstellung der Hardware und den Vertrieb bis zum Endkunden vorsieht. Nur BlackBerry verfolgt ein ähnliches Konzept.
- Nur das „iOS Enterprise Developer Programm“ ermöglicht das Selbst-Signieren und Ausliefern eigener APPs (Mobile Application Management) ohne den Umweg über den Apple-Store.
Das Sandboxing-Konzept von Apple gibt nur ein einziges Regelwerk vor, das für alle APPs gleichermaßen gilt. Auch die eigenen Anwendungen für Telefonie, SMS und der Safari Webbrowser laufen in dem „mobile Mode“, der mit den wenigsten Rechten auskommen muss.
Das “ComCenter“, das unter anderem für das Parsen der SMS-Nachrichten verantwortlich ist und direkt mit dem Modem kommuniziert, läuft im „wireless Mode“. Als „privileged user“, also mit Root-Rechten, werden nur die wichtigsten Prozesse ausgeführt.
Besonderheiten der iOS-Plattform
Bei einem Jailbreak werden neben dem zusätzlichen APP-Store „Cydia“ auch weitere Anwendungen auf das Gerät installiert. Darunter eine „Command Line Shell“, über die Zugriffe auf Dienste des Kernels möglich sind. Dazu wird ein SSH-Port geöffnet, über den man sich über das Netzwerk verbinden kann. Das Standardpasswort „alpine“ wird wahrscheinlich von den wenigsten Nutzern geändert, was einem Eindringling eine Reihe von Angriffen ermöglicht.
Die Konfigurationsdaten sowie Passwörter für E-Mail Konto, WLAN, SMS-Center und VPN-Zugang können mit dem „iPhone Configuration Tool“ in sogenannten „Mobile Configuration Profiles“[2] gespeichert werden. Die Daten werden verschlüsselt an das jeweilige Endgerät übertragen. Diese Konfigurationsskripte können von Entwicklern genutzt werden, um Einschränkungen des iOS Systems zu umgehen, wie es bei „Snappli“[3] oder „Wajam“[4] der Fall ist[5].
Sicherheitsmerkmale
Der Safari Browser besitzt keine Plugins oder Frameworks, um Web-fremde Formate wie zum Beispiel PDF anzuzeigen. Hierzu wird eine spezialisierte APP gestartet, die im Vergleich zu der PC-Version nur einen reduzierten Funktionsumfang bietet. Die mögliche Angriffsfläche durch Softwarefehler (Exploits) wird so auf ein Minimum reduziert[1]. Trotzdem wurde bis heute immer eine Möglichkeit gefunden das Gerät zu „Rooten“, was bei iDevices als „Jailbreak“ bezeichnet wird.
Für Enterprise-Lösungen gibt es ein MDM (Mobile Device Management), bei dem auch Richtlinien (Policies) festgelegt werden können. Das MDM-Push-Zertifikat ist durch den kostenlosen „Certificate Signing Request“ bei Apple erhältlich. Die Auslieferung der Push-Nachricht (MCP) durch den MDM-Server erfolgt auf TCP-Port 1640 des iPhones. (Stand 04-2013)
Softwareupdates werden vom „Apple Push Notification Server“ (APNS) auf dem TCP-Port 5223 ausgeliefert. Die Quelle der Nachricht muss aus dem IP-Segment 17.0.0.0/8 direkt von Apple stammen. Zum heutigen Zeitpunkt werden MCP über den TCP-Port 5223 gesendet. Diese Portadressen können sich aber im Laufe der Zeit ändern.
Bei jedem iPhone in der Standardkonfiguration, kann es zwei offene Ports[6] geben. Der UDP-Port 5353 für das von Apple entwickelte „Bonjour Protokoll“ und der TCP-Port 62078 für die Synchronisation mit iTunes.
Telephony API
Das „Core Telephony Framework“[7] beinhaltet ebenfalls nur die üblichen Methoden, um auf das Modem und die SIM-Karte zugreifen zu können: “CTCall”, “CTCallCenter”, “CTTelefonyNetworkInfo”, „CTCarrier“ mit den Eigenschaften „allowsVOIP“ und „mobileCountryCode“.
Bei dem iOS Telephony Framework greift der ComCenter-Prozess direkt auf den RIL Daemon zu. Mittels Workarounds wie „Library Preloading“, „Terminal-in-the-middle“ und „Method interposition“ kann man an die RAW-Daten herankommen, bevor sie vom ComCenter-Prozess interpretiert werden. Eine genaue Beschreibung findet man ebenfalls in der Arbeit von Colin Mulliner[8].
Quellen und Links:
[1] Charlie Miller, Dionysus Blazakis, Dino Dai Zovi, Stefan Esser, Vincenzo Iozzo, Ralf-Philipp Weinmann “iOS Hacker‘s Handbook”, 2012, John Wiley & Sons, Inc., ISBN: 978-1-118-20412-2