Viele Apps nutzen Rechte auf dem Smartphone, die sie eigentlich nicht haben sollten. Ein Sicherheitstest hilft die Übeltäter auszusortieren.

Viele Apps nutzen Rechte auf dem Smartphone, die sie eigentlich nicht haben sollten. Ein Sicherheitstest hilft die Übeltäter auszusortieren.Fraunhofer SIT

Bei der App-Auswahl achten Anwender vor allem darauf, wie gut die Funktionen der App zu der Aufgabe passen, die sie mit der App erledigen wollen. Sicherheitskriterien werden bei der Auswahl häufig nicht berücksichtigt. Die Argumente: Durch das Abschottungskonzept der mobilen Betriebssysteme werden die Daten der Apps voneinander isoliert. Außerdem prüfen die App-Märkte die Apps vorab. Das sind zwei wichtige Schutzmechanismen, die in der Tat zu einem Sicherheitsgewinn führen. Allerdings prüfen die App-Märkte beispielsweise nicht auf sicherheitskritische Programmierfehler oder falsch verwendete kryptographische Verfahren. Zudem ist die Abschottung der Apps kein adäquater Schutz, wenn vertrauliche Unternehmensdaten bewusst mit einer App geöffnet werden oder ein Programmierfehler von Angreifern zum Auslesen der Daten ausgenutzt werden. Für den App-Einsatz im Unternehmen sind daher objektive Kriterien nötig, die die Sicherheitsqualität von Apps berücksichtigen. Dies ist wichtig, da die Sicherheitsqualität von Apps aktuell sehr unterschiedlich ist. Gründe dafür sind extrem kurze Entwicklungszeiten, geringe Budgets und fehlendes Know-how der Programmierer.

Leider liefern die Beschreibungen in den App-Märkten kaum Hinweise über die Sicherheitsqualität der einzelnen Apps. Ein erster Anhaltspunkt besteht lediglich darin, ob und wie die Sicherheitsfunktionen beschrieben sind. Wird beispielsweise das Verschlüsselungsverfahren für gespeicherte Daten genannt? Auf welche Daten greift die App zu? Warum werden welche Berechtigungen eingefordert? Das Fehlen dieser Hinweise kann ein erstes Indiz sein, welchen Stellenwert die Sicherheit bei der Entwicklung der Anwendung spielte. Die Sicherheitseigenschaften von Apps für den Unternehmenseinsatz lassen sich nur auf Basis praktischer Tests beurteilen. Dazu werden Eigenschaften und das Verhalten der Apps durch die Sicherheitsabteilung des Unternehmens überprüft. Bei einer größeren Anzahl von Apps kann es aufgrund des notwendigen Aufwands und Know-hows auch sinnvoll sein, dies durch externe Dienstleister ausführen zu lassen.

Appicaptor vom Fraunhofer SIT

App-Security-Check für iOS, Android & Co.

Das Fraunhofer SIT hat den Appicaptor entwickelt, ein Testwerkzeug, das prüft, ob Apps die Sicherheitsanforderungen von Unternehmen erfüllen. Das Testwerkzeug wird gegenwärtig zur Analyse von iOS und Android Apps verwendet, lässt sich jedoch auf andere Plattformen erweitern. Die Sicherheitsüberprüfung einer App dauert durchschnittlich zehn Minuten. Wie wichtig eine solche Prüfung ist, zeigen Probeläufe mit Pilotkunden für iPhone Apps: Von den 400 beliebtesten Business-Apps erfüllten über 300 nicht die Sicherheitsanforderungen des Unternehmens. Der Appicaptor generiert neben Black- oder Whitelists auch einen Testbericht, in dem die Ergebnisse detailliert beschrieben sind. Dadurch unterstützt das Werkzeug Unternehmen bei der Risikobewertung und der Einhaltung von Compliance-Vorschriften.

Verschlüsselte Kommunikation ist ein Muss

Ein erstes wichtiges Kriterium der Sicherheit von Unternehmensdaten ist die Absicherung der Kommunikation zwischen Apps und externen Quellen. Zum Abruf von Webseiteninhalten wird immer noch häufig unverschlüsselt über HTTP kommuniziert. Auch wenn die übermittelten Informationen an sich nicht vertraulich sind, können doch die zum Server übermittelten Parameter relevante Daten über den Nutzer preisgeben – zum Beispiel Positionsdaten oder verfängliche Suchbegriffe. Zudem besteht die Möglichkeit, dass Angreifer die empfangenen aktiven Seiteninhalte manipulieren. Dies ist kritisch, da dadurch ein Angreifer die App-Logik und Abläufe verändern kann sowie durch Einsetzen zusätzlicher Abfragen auch an sicherheitskritische Informationen gelangen kann. Teilweise wird schlicht das ‚S‘ für die sichere HTTPS-Variante bei URLs in der Entwicklung vergessen. So werden nicht nur die Daten für Angreifer lesbar übertragen, auch das zur Sitzungsteuerung verwendete Geheimnis (Sitzungstoken) lässt sich für weitere unberechtigte Interaktionen mit der Gegenstelle missbrauchen. Eingebettete Webseiten (Webviews) in Kombination mit der Verwendung von HTTP sind daher ein möglicher Angriffspunkt, der für Unternehmen zu verifizieren ist. Das erste Kriterium für App-Tests heißt also: Verschlüsselte Datenübertragung.

Das Traumpaar HTTPS und SSL

Mehr Sicherheit bietet der Einsatz von HTTPS und SSL. Allerdings treten bei der Implementierung immer wieder Fehler bei der Prüfung des Kommunikationspartners auf, der Zertifikatsprüfung. Bei der automatisierten Analyse von Android Apps mit dem Appicaptor Analyse Framework des Fraunhofer SIT auf ein einzelnes kritisches Fehlermuster zeigten 40 von etwa 2.500 Apps Schwächen, die Angreifern in öffentlichen Netzen das Mitlesen von sicherheitskritischen Daten trotz SSL/TLS-Verschlüsselung erlauben. Neben diesem Fehlermuster gibt es viele weitere, die sich teilweise stark zwischen Smartphone-Plattformen unterscheiden. Obwohl Apples Smartphone-Betriebssystem iOS aufgrund des Designs der Programmierschnittstellen hinsichtlich mangelhafter Zertifikatsprüfung weniger Fehlerpotenzial bietet, sind auch hier bereits Fehlermuster bekannt. Diese beruhen oft auf schlechten Internet-Ratschlägen, fehlendem Sicherheits-Know-how oder Code-Reste aus der Entwicklungszeit. Eine ungenügende oder fehlerhafte Zertifikatsprüfung ist damit ein erhebliches Risiko und sollte daher als Ausschlusskriterium gelten. Um dieses Kriterium zu testen, sind jedoch praktische Analysen der Kommunikationseigenschaften mit entsprechenden Netzwerk-Tools nötig oder automatisierte Tests, wie sie beispielsweise das Appicaptor Analyse Framework durchführt.

Lokale Verschlüsselung aktiviert

Für Smartphones besteht ein hohes Verlust- und Diebstahlrisiko. Daher ist der Schutz lokal abgespeicherter Unternehmensdaten durch Verschlüsselung eine wichtige Maßnahme. In iOS können App-Entwickler diesen als ‚Data Protection‘ bezeichneten Schutz unter anderem durch das Aktivieren einer Einstellung in der App-Entwicklung umsetzen. Die Daten sind dann mit einem Plattformschlüssel geschützt und bei Nutzung eines Gerätesperrcodes und der Wahl der entsprechenden Schutzklasse zusätzlich an diesen Schlüssel gebunden. Obwohl Entwickler diesen Schutz einfach aktivieren können, enthalten jedoch unter iOS 6 nur etwa 38 % der getesteten Top 400 iOS Apps, die für den Umgang mit besonders schützenswerten Unternehmensdaten (PDF und Office-Dokumente) konzipiert sind, dieses Schutzmerkmal. Die Standardeinstellung der Entwicklungsumgebung hat den Schutz nicht aktiviert. Mit iOS 7 ändert sich das Standardverhalten und damit erhält jede App stets den Schutz, solange dieser nicht explizit durch den Entwickler deaktiviert wurde. Dies verbessert das Schutzniveau erheblich. Von den getesteten Top 400 iOS Apps aller 23 Kategorien war dennoch bei knapp 5 % der Apps der Schutz explizit deaktiviert (Stand Januar 2014). So bleibt für Nutzer und Administrator das Problem, dass nicht erkennbar ist, ob der Schutz in der App aktiviert ist oder nicht. Zudem wirkt sich die sicherere, neue Standardeinstellung nicht bei Apps aus, die bereits vor dem jeweiligen Endgeräte-Update auf iOS 7 installiert waren. Dies dürfte gegenwärtig noch für einen Großteil der App-Installationen zutreffen. Kriterien für einen App-Test in diesem Bereich sind somit die Verwendung eines Plattformschlüssels, um Daten zu speichern, und die Ablage von abgeleiteten Schlüsseln an geschützten Orten.

Daten nicht unautorisiert weitergeben

Der Umgang mit Daten durch Apps geschieht für den Nutzer im Wesentlichen intransparent. Gerade das unautorisierte Übermitteln der Daten an Dritte entzieht sich einer Kontrollmöglichkeit und erfordert daher großes Vertrauen in die Anwendung. Auch wenn eine App das Vertrauen hinsichtlich der verarbeiteten Daten nicht direkt verletzt, so senden doch viele Apps Informationen unbemerkt an Dritte, über die diese ein genaues Bild des Nutzers erstellen können. Diese Informationsweitergabe passiert häufig über das Einbinden von Werbe-Netzwerken oder durch Entwickler, die über das Nutzungsverhalten, den Speicherverbrauch und Fehlersituationen informiert werden wollen. Dazu sammeln sie über spezielle Dienste und App-Diagnosemodule Informationen unbemerkt vom Nutzer. Die erhobenen Informationen enthalten eindeutige Identifikationsmerkmale, die mit Informationen aus der Nutzung von anderen Web-Diensten und den dort hinterlegten Identitäten verknüpft werden können. Anbieter dieser Dienstleistung erhalten die Nutzungsdaten aller Apps, die das entsprechende Diagnosemodul oder Werbenetzwerk enthalten. So erhält der Dienstleister ein detailliertes Bild darüber, wann wer welche App in welchem Kontext nutzt. Bemerkenswert dabei ist die weite Verbreitung dieser Informationssammler. In einer automatisierten Analyse mittels des Appicaptor Analyse Frameworks enthielten von den kostenlosen Top 400 iOS Apps etwa 72 % sogenannte Werbe- und Tracking-Module. Besonders kritisch ist zudem, dass bei 19 % der Apps die Entwickler zwischen fünf und zwölf verschiedene dieser Module in ihre Software integrierten. Ein Umstand, der auch bei aufmerksamem Studium der App-Beschreibung nicht ersichtlich ist.

Gehärteter Code ist besserer Code

Da das Vorhandensein von Programmierfehlern nicht ausgeschlossen werden kann, sollte gerade bei Apps im Unternehmenseinsatz das aktive Ausnutzen potenzieller Schwachstellen zumindest mit den verfügbaren Mitteln erschwert werden. Dieser als Härtung bezeichnete Ansatz lässt sich durch verschiedene Maßnahmen umsetzen. Für iOS können beispielsweise Einstellungen zur Entwicklungszeit vorgenommen werden, die bei der Übersetzung des Quellcodes durch den Compiler zusätzliche Schutzmechanismen aktivieren, die das Ausnutzen fehlerhafter Implementierungen zum Ausführen von Angriffen erschweren. Beispielsweise reduziert Automatic Reference Counting (ARC) das Risiko, das durch Fehler im Speichermanagement entstehen kann. Der Schutz kann Angriffe auf die Programmintegrität verhindern und mittels Address Space Layout Randomization (ASLR) wird der Aufwand erhöht, den Angreifer für das Ausnutzen von Schwachstellen investieren müssen. Dennoch sind bei 10 % der Top 400 Business Apps diese genannten Schutzmaßnahmen nicht vorhanden. Der Vergleich zu den potenziell unkritischeren Top 400 Utility Apps zeigt: ein stärkeres Bewusstsein für die Notwendigkeit der Härtung von Apps zur Absicherung von Unternehmensdaten ist gegenwärtig noch nicht zu erkennen.

Finger weg von der Kamera

Ein weiteres Kriterium ist die Information, welche Datentypen die App verarbeitet. So lässt sich beurteilen, ob die App prinzipiell Zugriff auf unternehmenskritische Daten erhält. Auch die Möglichkeit die App mittels Webseiten aufzurufen – das sogenannte URL-Schema – und die hierfür übergebenen Parameter sind Eigenschaften, die zu prüfen sind. Bei der fehlerhaften Verarbeitung der Parameter droht eine Manipulation des App-Verhaltens und somit auch der Abfluss von Daten beim Besuch präparierter Webseiten.

Der Umgang mit Datenquellen und -senken der Smartphones, wie etwa Adressbuch, SMS, Zwischenablage, GPS, Kamera und gespeicherten Bildern ist ebenfalls ein Kriterium für den Sicherheitstest. Auch die Nutzung von Cloud-Diensten kann als sicherheitskritisches Kriterium gewertet werden, da darüber Unternehmensdaten extern verfügbar gemacht werden.

Neben der Interaktion über das Nutzungsinterface laufen viele Apps auch unbemerkt im Hintergrund, meist um Informationen zu aktualisieren oder andere periodische Aufgaben autonom zu erledigen. Die Analyse dieser Eigenschaft kann aus verschiedenen Gründen notwendig sein. So sollten Apps in sicherheitskritischen Bereichen Kamera oder Mikrophone nicht unbemerkt aktivieren können.

App-Ray vom Fraunhofer Aisec

Apps telefonieren ungefragt nach Hause

Forscher des Fraunhofer-Instituts für Angewandte und Integrierte Sicherheit (Aisec) haben 10.000 der beliebtesten Android-Apps getestet und zum Teil gravierende Sicherheitslücken und Datenschutzverletzungen aufgedeckt. Alle Apps sind mit dem Analyse-Werkzeug App-Ray analysiert worden. App-Ray unterzieht Apps einer vollautomatischen Analyse und deckt mögliche Sicherheitsmängel auf. Hierzu forscht das Fraunhofer Aisec an statischen und dynamischen Analyseverfahren, mit denen sich sowohl typische Programmierfehler als auch unerwünschte Datenflüsse erkennen lassen.

Ein wichtiges Ergebnis des Tests ist, dass mehr als 9.000 (91 %) der getesteten 10.000 Apps eine Berechtigung (Permission) für den Aufbau einer Internetverbindung vom Nutzer verlangen. Dieser muss bei der Installation der jeweiligen App dieser Anfrage zustimmen, ohne zu wissen, wozu diese Verbindung genutzt wird. Weit kritischer für den Nutzer ist dabei die Tatsache, dass ein Großteil der Apps diese Verbindungen nutzt, um gleich beim Start der App ungefragt persönliche Daten zu verschicken. Insgesamt stellte der Test Datenübertragungen an 4.358 Server in der ganzen Welt fest – ohne Wissen und Zutun des Nutzers. Des Weiteren stellten die Forscher fest, dass rund 7000 Apps (69 %) unverschlüsselt mit der Außenwelt kommunizieren. 448 Apps sendeten eindeutige persönliche Daten wie die IMEI an Server im Netz. Der Nutzer hat in den wenigsten Fällen Einflussmöglichkeiten. So starten 1.732 der getesteten Apps direkt beim Start des Geräts und agieren permanent im Hintergrund. Ebenfalls signifikant ist mit fast 50 % (4.917) die hohe Anzahl der Apps, die den Aufenthaltsort des Gerätes bestimmen können. 3.930 lesen den Gerätestatus aus. Die Sicherheit des Nutzers wird zudem durch unzureichend programmierte Apps bedroht. So gibt ein gutes Viertel (26 %) der Apps zwar vor, eine sichere Verbindung zum Internet aufzubauen, schaltet aber die Prüfung des Serverzertifikats explizit ab, sodass die Verbindung leicht angreifbar ist.