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.
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:
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.
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.
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.
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)