Achtung bei Software Development Kits SDK
Apps auf Sicherheit programmieren
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.
- 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)