Achtung bei Software Development Kits SDK

Apps auf Sicherheit programmieren

25.04.2014 von Christian Vilsbeck
Zwar helfen Software Development Kits bei der Entwicklung von Apps, sie bilden aber nicht ausreichend die Sicherheitsanforderungen ab. Dafür werden den Programmierern inzwischen Expertensysteme angeboten. Allerdings werden nicht alle den professionellen Ansprüchen gerecht.

Das Bundesdatenschutzgesetz und andere sicherheitsrelevante Vorgaben sind nicht nur für die Betreiber und Nutzer mobiler Anwendungen und Services relevant, sondern auch für App-Entwickler. Danach muss eine App die Daten schützen, sofern sie personenbezogene Informationen verarbeitet.

Doch über diesen rein rechtlichen Aspekt hinaus gibt es hier noch weitere wichtige Aspekte, die einen sensiblen Umgang mit der Datensicherheit von Apps begründen. Dazu gehört einerseits die Wahrnehmung der Anwender und der Öffentlichkeit. Denn gerät eine App aufgrund von Sicherheitslücken in Verruf, beschädigt dies die Reputation des betroffenen Unternehmens. Gibt beispielsweise eine Bank eine unsichere App für das Online Banking heraus, wird sie von den Kunden als wenig vertrauenswürdig gesehen und dies schlägt auf das Image des Kreditinstituts insgesamt zurück.

Daneben erzeugt gerade der Business-Umgang mit mobilen Endgeräten einen hohen Sicherheitsanspruch. Darauf befinden sich im Regelfall vielfältige geschäftliche Informationen wie etwa Kontaktdaten, die von unsicheren oder gezielt auf eine Datenweitergabe ausgerichteten Apps Dritten zugänglich gemacht werden. Aber auch unnötige Lokalisierungen oder eine mangelhafte Sicherung lokaler Daten widersprechen den Sicherheitsbedürfnissen von mobilen Endgeräten der Mitarbeiter.

Auskunft-Apps
Geschäftsmodelle von Gratis-Apps: Freikaufen von Werbung
Nur 99 Cent und die Anzeigen erscheinen nicht mehr auf dem Bildschirm: Viele Gratis-Apps wie hier der „Android Assistant“ stopfen eine ohnehin überladenen Oberfläche noch mit Anzeigen voll – von denen sich der Nutzer dann durch Zahlung einer Gebühr befreien kann.
Geschäftsmodelle von Gratis-Apps: Datensammler
Sorgte Ende 2013 für Probleme: Die kostenlose „Taschenlampe“-App von Goldenshore Technologies sammelte nicht nur Daten der Nutzer, sondern gab sie auch an Anzeigenkunden weiter.
Geschäftsmodelle von Gratis-Apps: SMS-Verkauf
Vor dem Download dieser App sollte schon der gesunde Menschenverstand warnen: Nicht nur die schlechte automatische Übersetzung sondern vor allen Dingen das Geschäftsmodelle die „übriggebliebenen“ SMS weiterzuverkaufen sind mehr als dubios.
Geschäftsmodelle von Gratis-Apps: In-App-Käufe
Ein Geschäftsmodell, das besonders für Kinder und Jugendliche schnell gefährlich werden kann: In-App Käufe verführen schnell dazu, auch bei einer Gratis-App viel Geld auszugeben.
Gratis-Apps: Überall beliebt
Gratis-Apps werden besonders gerne von den Anwendern verwendet, die mit einem Android-Smartphone oder -Tablet unterwegs sind: Wie auch dieser Vergleich zu der Verwendung von Kauf-Apps unterstreicht (Quelle: Statista App Monitor)
Vorab prüfen: Zugriffsrechte
Was darf eine App beziehungsweise, welche Zugriffsmöglichkeiten benötigt sie? Bereits auf den verschiedenen Marktplätzen der mobilen Systemen (hier der Windows Store auf einem Windows Phone 8.1-System) kann der Nutzer in der Regel erfahren, auf welche Bereiche seines Geräts zugegriffen wird.
Vorab prüfen: Zugriffsrechte
An dieser Stelle wird leider allzu häufig „abgenickt“: Gerade bei der Installation von Gratis-Apps sollten Nutzer darauf achten, welche Berechtigungen das Programm auf dem Smartphone oder Tablet bekommen wird.
Vorab prüfen: App Info unter Android 4.4.2
Grundsätzliche Kontrolle möglich: Ein genauerer Blick in die App-Info, wie sie hier unter Android 4.4.2 (KitKat) bereitgestellt wird, gibt schon einen Eindruck davon, was eine App auf dem System darf und welche Daten sie verwenden kann.
Vorab prüfen: App Permission von F Secure
Welche meiner Apps greifen auf persönliche Daten zu? Die freie App App Permission von F-Secure zeigt dies recht übersichtlich auf.
Vorab prüfen: Schreibzugriff erforderlich?
Bedeutet nicht grundsätzlich, dass die Entwickler dieser App böse Absichten hatten: Nutzer müssen selbst entscheiden, ob sie es wie hier bei den Schreibzugriffen für sinnvoll und vertretbar halten, dass einen App diese Zugriffe bekommt.
Gefährliches Terrain: AppStores von Drittanbietern
Web-Store eines Drittanbieters für Apps (hier Amazon): Gerade dort finden Nutzer zwar viele Gratis-Anwendungen, müssen aber beispielsweise die „Installation von Apps unbekannter Herkunft“ zulassen.
Bezahl-App: Kostenpflichtig aber nutzlos
Es sind nur die Gratis-Apps, die versuchen die Nutzer mit dubiosen Geschäftspraktiken zu schädigen: Die App „Virus Shield“ befindet sich glücklicherweise nicht mehr im Google Play Store. Sie tat nichts, außer ein Symbol anzuzeigen – für 3,99 Dollar.

Falls Sie sich nach diesem Artikel noch mehr über die Sicherheit von Apps informieren wollen, dann empfehlen wir Ihnen unseren Praxisratgeber Mobile Security. Sie können den Titel für 2,99 Euro im iBookstore für das iPhone, iPad oder Mac OS X 10.9 herunterladen:

Praxisratgeber Mobile Security: Wie sicher sind Ihre Apps?

Sehr unterschiedliche Entwickler-Unterstützung

Wie groß dieses Problem ist, zeigen kürzlich durchgeführte Untersuchungen der TÜV TRUST IT GmbH. Danach weist etwa jede zweite der über 1000 analysierten Apps deutliche Sicherheitsmängel auf. Doch sieht man einmal von den Apps ab, deren Anbieter als Geschäftsmodell ein gezieltes Device Tracking im Sinn haben, um die gesammelten Daten beispielsweise an Werbenetzwerke zu verkaufen, resultieren die Sicherheitsschwächen meist aus Wissenslücken aufseiten der Entwickler.

Zwar stellen alle Anbieter von Betriebssystemen für die App-Entwicklung über kostenlose Software Development Kits (SDK) eine Sammlung von Werkzeugen und Anwendungen zur Verfügung, mit denen sich native Applikationen für die jeweilige Plattform entwickeln lassen. Allerdings sind die Themenbereiche Datensicherheit und Datenschutz in diesen SDKs in der Regel für professionelle Anwender nicht genügend und in der nötigen Detailtiefe berücksichtigt. Deshalb stehen die Entwickler vor der Frage, wie sie zu den notwendigen und richtigen Informationen gelangen können. Hierfür bieten sich derzeit drei Möglichkeiten an:

  1. Der autodidaktische Weg: Über eigene Recherchen im Internet oder durch den Kauf von Handbüchern kann das entsprechende Know-how aufgebaut werden. Das Problem hierbei ist jedoch, valide Quellen im Internet zu finden und das Wissen aktuell zu halten. Außerdem besteht erfahrungsgemäß eine große Schwierigkeit darin, aus der Fülle des recherchierbaren Contents die relevanten Informationen zu selektieren und dabei zusätzlich dedizierte Hinweise für die richtige Implementierung im spezifischen Projekt herauszufiltern.

  2. Einfache Expertensysteme: Von ersten Anbietern werden im Markt Unterstützungsleistungen für die Entwicklung sicherer Apps angeboten. Meist handelt es sich dabei um Checklisten, Whitepapers und ähnliche Dokumente, die zum Download bereitgestellt werden. Sie enthalten generische Maßnahmen und Hinweise für die Absicherung von Apps. Diese Angebote sind zumeist kostenfrei, richten sich aber an ambitionierte, unerfahrene Jungentwickler und eignen sich vor allem zur Aneignung von Basiswissen zu sicherer App-Entwicklung. Dass es sich dabei um eine Unterstützung für die semiprofessionelle Entwicklung handelt, zeigt sich insbesondere in folgendem Nachteil: Für die Begleitung von Projekten mit spezifischen Risikopotentialen, wozu beispielsweise die Verarbeitung besonders sensibler Daten, personenbezogene Daten oder eine sichere Kommunikation mit Backend-Systemen gehören, besitzen die einfachen Expertensysteme nicht die notwendige Detailtiefe.

  3. Kontextspezifische Expertensysteme: Diese ausgefeilteren Systeme sind für Entwicklerprofis gedacht, die ausgerichtet an den Funktionalitäten der zu entwickelnden App und kontextabhängiger Rahmenbedingungen eine spezifische Sicherheitsrichtlinie für dieses Projekt erzeugen. Darin enthalten sind alle bekannten Bedrohungen, übergeordnete generische Sicherungsmaßnahmen und plattformspezifische Implementierungshinweise. Außerdem enthalten diese Expertensysteme Best Practices als konkrete Code-Beispiele, die für die dedizierte Umsetzung im Projekt mit Copy & Paste genutzt werden können.

Der Vorteil der kontextspezifischen Expertensysteme liegt neben der größeren Detailtiefe und dem größeren Umfang der Hinweise auch darin, dass durch ihren methodischen Ansatz handhabbare, schlanke Vorgabedokumente entstehen. Sie beschreiben nur die für das spezifische Projekt notwendigen und relevanten Maßnahmen, statt ein umfangreiches Gesamtkompendium für die App-Entwicklung, welches alle Bedrohungen und Risiken für Apps beschreibt. Durch das gelieferte Know-how mit den kontinuierlich aktualisierten Informationen sind solche Expertensysteme jedoch nicht kostenfrei.

Restriktionen in der App-Entwicklung

Apps für den Einsatz in Unternehmen unterliegen in der Regel einem höheren Schutzbedarf als die Consumer-Apps. Schließlich dürfen die dienstlichen Daten, die mit diesen Apps verarbeitet werden, nicht in die Hände Unbefugter gelangen. Ebenso muss sichergestellt sein, dass die Kommunikationswege zwischen den mobilen Endgeräten und der firmeneigenen IT-Infrastruktur nicht kompromittierbar sind.

Diesen Anspruch müssen Unternehmen bei der Entwicklung mobiler Anwendungen erfüllen. Doch sie sind dabei häufig mit dem Problem kleiner Budgets konfrontiert, außerdem verfügen sie oftmals nicht über Ressourcen mit ausreichenden Erfahrungen in der Programmierung sicherer Apps.

Die Beschränkungen auf der fachlichen beziehungsweise Erfahrungsebene sind insofern nicht verwunderlich, weil die Entwickler mit vergleichsweise neuen Plattformen konfrontiert werden, die zudem eine große Vielfalt und Komplexität aufweisen. Hinzu kommt, dass Vorgehensmodelle aus der klassischen Softwareentwicklung wie etwa ein ausformulierter Secure Development Lifecycle (SDL) in den meisten Fällen aus Kostengründen von vornherein ausgeschlossen sind.

Auskunft-Apps
iOS und Android – Integrierte Sicherheitsfunktionen
Bereits vor drei Jahren sah Symantec eine deutliche Gefahr für Android-basierte Geräte gegenüber Datenverlust und Malware-Attacken. Daran hat sich grundlegend nichts geändert.
iOS und Android – Integrierte Sicherheitsfunktionen
Die Funktion der App-Isolation sieht Symantec bei Android besser als bei iOS.
iOS und Android – Integrierte Sicherheitsfunktionen
Empfehlenswerte Lektüre des BSI – das Überblickspapier Apple iOS.
iOS und Android – Integrierte Sicherheitsfunktionen
Trotz hoher Sicherheit erlaubt das Windows Phone von Microsoft die Verwendung von SD-Karten, kann sich am Markt jedoch immer noch nicht so recht behaupten.
iOS und Android – Integrierte Sicherheitsfunktionen
Professionelle Enterprise-Lösungen, hier von Good Technology, sorgen dafür, dass Unternehmensdaten in einem strenger geschützten Speicherbereich liegen.
iOS und Android – Integrierte Sicherheitsfunktionen
Ohne professionelles Mobile Device Management, hier von GOOD Technology, ist ein sicherer Betrieb von mobilen Geräten im Unternehmen kaum möglich.
iOS und Android – Integrierte Sicherheitsfunktionen
Wozu braucht eine Taschenlampen-App den Zugriff auf Push-Mitteilungen?
iOS und Android – Integrierte Sicherheitsfunktionen
Im Zweifelsfall nicht mehr benötigte Apps einfach deinstallieren.
iOS und Android – Integrierte Sicherheitsfunktionen
Zugriff auf das Dateisystem gibt es nur bei Android.

Entwicklung mit dem Threat Model

Genau wie bei der Einführung mobiler Services gilt auch hier: eine fundierte Risikoanalyse ist das Fundament für die Entwicklung sicherer Apps. Das dafür aus dem SDL entliehene Vorgehensmodell ist das Threat Model, die methodische Bedrohungsmodellierung.

Im Threat Model tragen Entwickler, Software-Architekten und Sicherheitsexperten die spezifischen Bedrohungen einer App zusammen, da sie häufig Dreh- und Angelpunkt einer Client-Server-Architektur ist und somit ein hohes Gefährdungspotenzial aufweist. Zu jeder Bedrohung wird anschließend eine Maßnahme definiert, die es bei der Implementierung zu berücksichtigen gilt.

Für die Implementierung sollten dann wiederum Sicherheitsvorgaben existieren, um den Entwicklern möglichst genaue Richtlinien für die sicherheitskritischen Funktionalitäten der App an die Hand zu geben. Doch je unkonkreter die Anforderungen und Vorgaben sind, desto weniger wirksam werden anschließend die implementierten Sicherheitsmaßnahmen sein.

Das Threat Model unterstützt jedoch nicht nur den eigentlichen Entwicklungsprozess, sondern ist auch die Basis für eine kontextspezifische Sicherheitsdokumentation für die jeweiligen Apps und Entwicklungsprojekte. Diese bietet eine ideale Grundlage für den sicherheitstechnischen Abnahmetest. Die Überprüfung sollte aus einem konventionellen Penetrationstest gegen App und Server bestehen.

Sofern es das Budget zulässt, empfiehlt sich eine ergänzende Prüfung der Teile des Programmcodes, die die sicherheitskritischen Funktionalitäten steuern. Diese Zusatzmaßnahme begründet sich darin, dass der Teufel häufig im Detail steckt und für viele Entwickler der richtige Umgang mit Kryptographie noch weitgehend Neuland ist. Aber selbst erfahrene Programmierer stoßen hier oftmals an ihre Grenzen. (cvi)