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.

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)