App Security Testing

Schützen, was wirklich zählt

23. Dezember 2015, 7:00 Uhr | Oliver Stein/wg, Produkt-Manager bei M-Way Solutions, www.mwaysolutions.com,

Standard-Apps für Mobilgeräte wie E-Mail und Kalender sind nur der Anfang bei der Mobilisierung von Geschäftsprozessen. "Enterprise Apps" sind zwar stark im Kommen, aber auch sie decken den Bedarf an mobiler Funktionalität nicht ab. Laut einer IBM-Fiberlink-Erhebung von 2014 werden daher vermehrt Consumer Apps für den Unternehmensgebrauch zugelassen: Rund 62 Prozent der verteilten Anwendungen sind Privat-anwender-Apps. Es stellt sich die Frage, wie sich dennoch die Sicherheit von Unternehmensdaten gewährleisten lässt.Mobile Endgeräte und mit ihnen mobile Apps haben ihren Siegeszug längst angetreten. Neue Smartphones erhalten bei der Veröffentlichung viel Aufmerksamkeit, es sind jedoch die Apps, die maßgeblich über den Erfolg einer Plattform entscheiden. Die einfache Bedienbarkeit dieser Geräte führt aber auch dazu, dass Anwender sich ebenso einfach bedienbare Apps mit einem angemessenen, nicht zu hohen Funktionsumfang wünschen. Dedizierte Aufgaben werden daher häufig auf mehrere Apps verteilt (zum Beispiel Facebook, Facebook Messenger, Facebook Seitenmanager), um die Komplexität einzelner Apps möglichst gering zu halten. Das Resultat: Anwender und Unternehmen sehen sich mit einer Vielzahl von Apps konfrontiert. Die Entscheidung, welche Apps sinnvoll und vor allem sicher sind, wird zunehmend schwierig, denn die Sicherheitsanforderungen zur Platzierung von Apps in den öffentlichen App Stores sind eher gering: Eine Prüfung der veröffentlichten Apps erfolgt meist nur in Hinblick auf Stabilität und Inhalt, jedoch weniger auf die Implementierung spezifischer Sicherheitsfunktionalität. Die hohen Sicherheitsanforderungen von Unternehmen spielen bei der Entwicklung von Consumer Apps oft nur eine untergeordnete Rolle.   Consumer Apps im Unternehmen Mitarbeiter wünschen sich, Apps auch geschäftlich nutzen zu dürfen, die sie bereits privat kennen und schätzen gelernt haben. Doch dies ist häufig mit erheblichen Risiken verbunden: Eine heterogene Entwicklerlandschaft und oft laxe Kontrollen der App Stores sorgen dafür, dass Apps mitunter gravierende Sicherheitslücken aufweisen. Dies macht einen unbeschränkten Einsatz im Unternehmen zu einem riskanten Unterfangen: Apps haben die Möglichkeit, direkt auf Gerätefunktionen zuzugreifen - etwa per Mikrofon den Nutzer "abzuhören" oder das Adressbuch auszulesen. Nicht selten werden Benutzer durch kostenfreie oder günstige Apps gelockt, die sich allerdings häufig auch über das Erheben und Weiterreichen von Daten finanzieren. Kein Wunder, dass bereits simple Anwendungen Zugriff auf die Internetverbindung verlangen - so können sie auch unbemerkt Informationen versenden. So gibt es Taschenlampen-Apps, die das (Unternehmens-)Adressbuch auslesen und dieses unverschlüsselt auf fernöstlichen Servern ablegen. Eine App kann auch Einfallstor zum Gerät oder im schlimmsten Fall sogar zum Unternehmensnetzwerk sein. Daher ist es zwingend notwendig, geeignete Sicherheitsmaßnahmen zu ergreifen und Prozesse zu etablieren, um das Risiko einzelner Anwendungen zu minimieren. Wollen Unternehmen also Consumer Apps nutzen, so ist es notwendig, einen Anfrage- und Freigabeprozess, etwa über eine Funktion des Enterprise App Stores, zu definieren.   Sicherheitsanforderungen an Apps Für den reibungslosen Einsatz im Unternehmen müssen Apps deren Sicherheitsanforderungen entsprechen. Um dies zu gewährleisten, ist es notwendig, zunächst alle Systeme und Schnittstellen zu betrachten, mit denen die App kommuniziert. Dazu muss der App-Tester hinter die Fassade der Apps blicken - bei unternehmenseigenen Apps gestaltet sich dies eher unkompliziert, da sie entweder im Unternehmen selbst oder in Zusammenarbeit mit einem externen Partner entwickelt wurden und somit im Quellcode vorliegen. Bei Consumer Apps wird es jedoch schwierig, denn in den wenigsten Fällen sind Entwickler dazu bereit, Einblick in ihren Quellcode oder die Architektur der Anwendung zu gewähren - es gilt, geeignete Mittel und Wege zu finden, Apps dennoch auf ihre Sicherheitsaspekte hin zu untersuchen. Grundsätzlich reicht der mögliche Detaillierungsgrad beim Prüfen von Apps von einer oberflächlichen automatischen Prüfung bis hin zu dedizierten Penetrationstests, bei denen Fachleute die Anwendung selbst, aber auch Schnittstellen und Server tiefgreifend (in der Regel manuell) prüfen und angreifen. Nur so kann man sicherstellen, dass wirklich alle Anwendungsfälle und Angriffsszenarien abgedeckt sind. Neben den genannten Testmethodiken unterscheidet man zwischen dynamischer und statischer Analyse. Unter einer statischen Analyse ist zunächst alles angesiedelt, was der Tester ohne Interaktion mit der App analysieren kann. Dies beinhaltet daher im Wesentlichen eine Analyse des Quellcodes oder der vorhanden Binärdateien. Eine dynamische Analyse setzt im Gegensatz zur statischen Analyse auf eine Interaktion mit der eigentlichen App. Häufig muss der Tester dabei auch Backend-Server überprüfen und Schnittstellen ansprechen. Die dynamische Analyse beinhaltet somit auch Angriffe gegen den Dienst oder die Anwendung selbst durchgeführt. Die verschiedenen Testmöglichkeiten bringen dabei unterschiedlichste Herausforderungen mit sich. Nicht in jedem Fall ist es gewünscht oder gar erlaubt, eine App bis in das letzte Detail zu testen. Bei einer unternehmenseigenen App ist dies eher unproblematisch, bei der App eines Fremdanbieters aber ist es nicht ohne Weiteres möglich, Angriffe gegen dessen Infrastruktur durchzuführen. Daher muss man sich zunächst bewusst machen, in welchem Rahmen es sinnvoll ist, eine App zu testen - man kann die Tests etwa auf die Abendstunden verschieben, in denen der Server wenig belastet ist und der laufende Betrieb nicht gestört wird. Eine weitere Herausforderung stellt die teilweise starke Abhängigkeit von Betriebssystemfunktionen dar. Zusätzlich setzten einige Tests gar administrative Berechtigungen (Root oder Jailbreak) voraus. Tests sind daher sehr plattformabhängig und man muss die Testmethodik gegebenenfalls überarbeiten, sobald ein Hersteller benötigte Funktionalität verändert oder entfernt. Hochentwickelte Schadsoftware, die im Verborgenen agiert, verschlüsselt kommuniziert und sich gegebenenfalls erst bei einem speziellen Event aktiviert, lässt sich kaum mit einem rein automatisierten Sicherheitstest ausfindig machen. Daher ist es oft unumgänglich, auch manuelle Testverfahren in Betracht zu ziehen. Eine weitere Herausforderung stellen die regelmäßigen Updates dar, die Apps in der Regel erfahren. Jedes Update verändert potenziell das Verhalten und den Funktionsumfang der App. Um daher eine valide Aussage zu ihrer Beschaffenheit treffen zu können, muss das Unternehmen folglich auch jedes Update prüfen lassen. Nur so lässt sich sicherstellen, dass die Testergebnisse tatsächlich noch dem aktuellen Zustand der App entsprechen und das sich das Sicherheitsniveau nicht verändert hat. Wenn sich eine App dabei als untauglich für den Unternehmenseinsatz erweist, sollte das Unternehmen ihren Einsatz auch konsequent verhindern, etwa durch Blacklisting innerhalb des MDM-Systems. Zumindest sollte die IT den Benutzer per Mail oder Push-Nachricht darüber informieren, dass er eine "gefährliche" App einsetzt. Schlägt die EMM-Software bei dieser Gelegenheit gleich eine sichere Alternativ-App mit ähnlichem Leistungsumfang vor, so wirkt dies einer Schatten-IT entgegen und läßt die Unternehmens-IT in einem positiven Licht erscheinen. Genauso wichtig wie das regelmäßige Testen der Apps ist das Einbinden dieser Tests in einen übergreifenden Freigabeprozess. Denn was nützt die sicherste App, wenn sie nicht die funktionalen und qualitativen Anforderungen erfüllt? Moderne MAM-Lösungen (Mobile-Application-Management) bieten hier integrierte, granular definierbare Workflows, mit deren Hilfe der Systemverantwortliche jede neue App durch die notwendigen Freigaben bis zur Veröffentlichung im Unternehmens-App-Store führen kann. Je mehr Apps im Unternehmen zm Einsatz kommen (sollen), desto wichtiger wird dieser standardisierte Prozess: Niemand will schließlich Hunderte von .IPA- und .APK-Dateien per E-Mail durch die Gegend schicken und Freigaben einholen. Idealerweise lassen sich die Apps in der Testphase automatisch auf die Geräte der Tester schieben und dort direkt bewerten. Dies erhöht den Durchsatz und hilft, "Bequemlichkeitsfehler" zu vermeiden.   Fazit Mit der rasanten Verbreitung der Consumer Apps steigt auch deren Einsatz im Unternehmen stark an. Damit sind sensible Unternehmensdaten so gefährdet wie nie, da viele Apps aus den öffentlichen App Stores nicht den Sicherheitsanforderungen der Unternehmen entsprechen. Ein präventives Verbot aller Consumer Apps ist heutzutage allerdings keine Alternative. Durch eine vorgelagerte Überprüfung der Apps können Unternehmen kritische Sicherheitsrisiken frühzeitig erkennen. Durch Abgleich der Testergebnisse mit den für das Unternehmen festgelegten Sicherheitsprofilen kann dann eine individuelle Bewertung nach dem Ampel-Verfahren (grün-gelb-rot) erfolgen. Diese Information wird dann idealerweise in nachfolgende Prozesse und Systeme einfließen, beispielsweise in den Enterprise App Store eines Mobile-App-Managements und/oder die Black- oder Whitelists eines Mobile-Device-Managements (MDM). So lässt sich der Aufwand in der IT-Abteilung reduzieren.

Definierte granulare Freigabestufen und Kommunikationswege für jeden einzelnen Prozessschritt im App-Lebenszyklus. Bild: M-Way Solutions

Sicherheitsprüfung einer App mit Ausgabe von Status, Verletzungen und Warnungen. Bild: M-Way Solutions
LANline.

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Lampertz GmbH & Co. KG

Matchmaker+