Kürzlich haben Wissenschaftler am Georgia Institute of Technology eine Methode herausgefunden, wie sich Schadcodes in Apps einbetten lassen, um Apples Sicherheitsmaßnahmen im App Store zu umgehen – die entsprechende Anwendung trägt den passenden Namen Jekyll. Dabei handelt es sich nicht um eine Petitesse, denn Apple setzt vieles daran, um iOS-Nutzern ein Gefühl der Sicherheit zu vermitteln, wenn sie ihre Geräte für tagtägliche Aufgaben wie Surfen im Netz oder Abrufen von Kontodaten verwenden.
Selten rutscht die eine oder andere App dennoch durch das Sicherheitsraster, Hacker versuchen aber immer wieder, böswillige Apps einzuschleusen. Aus diesem Grund arbeitet Apple kontinuierlich an Sicherheitstechnologien rund um sein mobiles Betriebssystem – angefangen von der App-Entwicklung bis hin zu der Art und Weise, wie die Programme unter iOS laufen.
Am Anfang steht die App-Überprüfung
Die erste Verteidigungslinie ist die App-Überprüfung . Während dieses Vorgangs prüft Apple jede App, um sicher zu stellen, dass diese nicht abstürzt und den entsprechenden Standards des App Stores entspricht. Im Rahmen dieses Prozesses unterziehen Apple-Mitarbeiter den Binär-Code sämtlicher Apps einer statischen Code-Analyse, um zu überprüfen, ob die Anwendungen private Daten auslesen können, die den Entwicklern eigentlich unzugänglich bleiben sollen. Dies ist beispielsweise wichtig, um zu vermeiden, dass eine App heimlich betrügerische Telefonate ausführt oder Datenbanken ohne das Wissen des Nutzers anzapft.

Obwohl dieser Vorgang Malware weitgehend aus dem App Store fernhält, hat er auch seine Grenzen. Da Apple jede Woche hunderte neuer Apps von Entwicklern erhält, können Mitarbeiter diese Anwendungen nur anhand von Stichproben beziehungsweise nicht immer im vollen Umfang untersuchen. Das heißt, die Mitarbeiter können jeder App nur eine begrenzte Aufmerksamkeit widmen, was wiederum bedeutet, dass sie ab und zu einen Fehler im App-Code übersehen. Im Fall von Georgia Tech war die Jekyll-App so konzipiert, dass der Schadcode erst dann aktiv wird, wenn eine eigens dafür erstellte Nachricht übers Internet versandt wurde. Dies erschwerte es den Apple-Mitarbeitern die Sicherheitslücke aufzudecken.
Vergrabene Schätze
Jede App, die auf einem iPhone oder iPad läuft, darf Daten lediglich innerhalb einer eigens vom Betriebssystem erstellen virtuellen Sandbox lesen und schreiben. Jeder Versuch, auf Daten von außerhalb zu zugreifen, wird vom Betriebssystem dadurch verweigert. Somit können Apps ausschließlich über von Apple zugelassene Kanäle kommunizieren. Schlüpft demnach eine App durch die manuelle Sicherheitskontrolle, verhindert die Sandbox , dass Anwendungen Daten wie Bank-Informationen ungewollt austauschen. Da der Sandbox-Vorgang am Anfang der Kette von Sicherheitsmaßnahmen steht, ist es äußert schwierig für Hacker dieses Sicherheits-System zu umgehen. Das ist natürlich anders, wenn der Nutzer ein Jailbreak-Gerät verwendet und darauf ungeprüfte Software von außerhalb des App Stores installiert.

Und um es Hackern noch schwieriger zu machen, trennt iOS den Speicher für Programmcodes vom Speicher für Daten. Dies vermeidet, dass eine App ausführbare Codes aus dem Internet ohne Zutun des Nutzers lädt.
Anatomie eines Überfalls
Leider lassen sich clevere Hacker nicht so leicht von diesen Sicherheitsmaßnahmen einschüchtern. Obwohl die Sandbox Apps davon abhält, sich gegenseitig Daten zuzuspielen, heißt das noch lange nicht, dass die Anwendungen keinen Zugang zu Informationen haben, die wiederum Dritthersteller-Software zur Verfügung stehen – dazu gehören Nutzerkontakte und Fotoalben.
Normalerweise kennzeichnen Apple-Mitarbeiter unerlaubten Zugang zu diesen Quellen, indem sie Apps im Einsatz überprüfen und den Binär-Code untersuchen – schaffen es Apps jedoch, Apples Analyse-Werkzeuge zu umgehen, erhalten diese Anwendungen Zugang zu Daten, die der Nutzer eigentlich streng privat halten möchte.
Aufgrund der dynamischen Eigenschaft der iOS zugrunde liegenden Technologien ist das nicht so schwierig wie es klingt. Sogar ein mittelmäßig ausgebildeter Entwickler könnte einen Code schreiben, der beispielsweise zwei offensichtlich unzusammenhängende Begriffe verwendet, diese entschlüsselt und so kombiniert, dass daraus der Name einer privaten API entsteht. Dadurch kommt das letzte Häppchen Code erst dann zum Einsatz, wenn die App läuft – vergleichbar mit einer Waffe, die der Angreifer unerkannt in Einzelteilen in ein Flugzeug schmuggelt und erst an Bord zusammensetzt.
Eine derartige Technik hinterlässt eigentlich genug Spuren, die ein cleverer Statikanalysator ohne Weiteres finden kann. Die Wissenschaftler am Georgia Institute of Technology waren jedoch etwas gewiefter. Sie haben es geschafft, ihre App in Einzelteile zu zerlegen, die sowohl harmlos als auch für die offizielle Funktion der Anwendung notwendig waren – dazu gehörten beispielsweise das Herunterladen von Informationen aus dem Internet und das Versenden von Web-Links per Mail. Kombinierte die App diese augenscheinlich unverdächtigen Eigenschaften, war sie in der Lage, unerlaubte Handlungen auszuführen, wie etwa in Nutzerkontakten herumzuschnüffeln und diese sogar auf eine vom Entwickler ausgewählte Webseite zu laden.
Entitlement: Sicherheit der Zukunft

Um dieses Problem zu bekämpfen, müsste Apple grundlegend die Art und Weise ändern, wie Apps auf System-Ressourcen zugreifen. Das heißt, Apple müsste eine Sandbox erstellen, die nicht nur das Datei-System umfasst, sondern auch andere Informationen wie eben Kontakte und Bilder. Würde Apple diese Neuerungen durchsetzen, könnte es für Schadsoftware nahezu unmöglich werden, auf dem Betriebssystem zu laufen. Entwickler könnten somit nur dann Zugriff auf Nutzerdaten zugreifen, wenn sie diese beantragen. Diese Berechtigungstechnologie (Entitlement) findet bereits Einsatz unter OS X. Hier bestimmt und reguliert sie, wie signierte Apps beispielsweise Zugang zu Netzwerken erhalten. iOS kann diese Berechtigungstechnologie für die Unterstützung von iCloud oder Push-Benachrichtigungen verwenden. In Zukunft wird Apple seine Berechtigungstechnologie auf alle möglichen Anwendungsbereiche ausweiten, die Entwickler nutzen möchten.
Der Clou am Entitlement ist, dass es die Sicherheit verbessert, ohne dabei den Funktionsumfang der Apps einzuschränken. Lediglich die Entwickler müssen sich künftig um Zugriffsrechte auf Quellen kümmern. Die Nutzer wiederum werden nach wie vor gefragt, welche Apps wann, wie und wo zugreifen können, während hinter den Kulissen ein deutlich verbessertes Sicherheits-System arbeitet.