Das Open Web Application Security Project (OWASP) ist eine Non-Profit-Organisation mit dem Ziel, die Sicherheit von mobilen und Web-basierten Anwendungen und Diensten zu verbessern. Sie unterstützt die sichere Software-Entwicklung mit einer Checkliste der zehn häufigsten Risiken. Was ist bei der App-Entwicklung hinsichtlich der Sicherheit zu berücksichtigen?
Zunächst einmal haben es Software Developer bei Anwendungen für mobile Endgeräte mit grundsätzlich anderen Risiken zu tun, als bei einem Laptop oder PC. Die Sicherheit von Daten und Apps wird auf Smartphones und Tablets über vier Schichten realisiert: Hardware, Betriebssystem (OS), API und Apps. Auf der Hardware-Ebene sorgen eine Gerätevollverschlüsselung sowie ein geschützter Bootloader dafür, dass nur valide Software beim Gerätestart geladen wird. Das OS stellt eine Sandbox bereit, in der Apps isoliert und geschützt ablaufen, also keine Manipulation des Gesamtsystems vornehmen können. Weitere Sicherheits-Features auf OS-Ebene sind Funktionen zur sicheren Kommunikation mit verschiedenen Netzen oder die Benutzeridentifizierung per PIN oder Gesichtserkennung. Über die APIs wird eine Laufzeitumgebung für Anwendungen bereitgestellt. Mithilfe dieser Plattform erfolgt beispielsweise die Kommunikation der Apps untereinander. Auch werden hier Rechte, Berechtigungen und der Datenschutz umgesetzt, also welche Apps dürfen auf welche Komponenten des Smartphones zugreifen. Die vierte Schicht umfasst die eigentlichen Anwendungen, die Apps. Diese verarbeiten Nutzerdaten, Passwörter und andere Zugänge, erzeugen Log-Files und regeln die persönlichen Datenschutzeinstellungen wie z. B. das Erfassen von Nutzungsstatistiken. Die Nutzung von Cloud-Diensten erfolgt ebenfalls auf dieser Ebene. Ein wichtiger Aspekt hinsichtlich des Sicherheitskonzepts ist , dass heute viele Hersteller ihre eigene Cloud für das Smartphone mitbringen und Apps diese nutzen, entweder direkt über APIs oder indirekt, beispielsweise durch Backups.
Die häufigsten Risiken und somit potenziellen Fehlerquellen bei der Entwicklung von mobilen Apps beschreibt das OWASP mit Hilfe einer 10-Punkte-Liste, die Software Developern eine gute Orientierung bietet. Im Folgenden finden Sie eine kurze Erläuterung der OWASP Mobile Top 10 und Tipps von uns.
Sichere Apps: 10 Fehlerquellen, die bei der Entwicklung zu beachten sind:
M1 Improper Platform Usage
Dieser Punkt bezieht sich auf die inkorrekte Nutzung der Plattform und beschreibt eine Vielzahl von möglichen Sicherheitsproblemen. Ein typisches Beispiel ist die Vergabe von zu vielen Berechtigungen für eine App. Wenn eine Taschenlampen-App Zugriff auf das Adressbuch, die Fotos oder den Standort von Nutzenden verlangt, kann dies schon als Angriff auf persönliche Daten verstanden werden.
Ein weiterer Tipp an Developer: Bei der Integration der virtuellen Tastatur sollte darauf geachtet werden, dass sicherheitsrelevante Eingaben der Anwendenden nicht in das Wörterbuch aufgenommen werden und somit nicht als Vorschlag in der Liste der Autovervollständigung auftauchen.
M2 Insecure Data Storage
Dieser Aspekt betrifft den Zugriff auf das Dateisystem von Mobilgeräten durch Dritte; sei es z. B. nach einem Diebstahl oder wenn man während eines Security-Checks am Flughafen oder bei einer Grenzkontrolle abgelenkt ist. Dabei können Angreifende dann Schwachstellen im OS ausnutzen und Malware installieren, um auch künftig Daten auslesen zu können. Eine Gerätevollverschlüsselung schützt hier nur bei ausgeschaltetem Gerät, der Flugmodus reicht nicht aus.
M3 Insecure Communication
Die unsichere Kommunikation beschreibt das Risiko, dass Developer den Netzwerk-Datenverkehr nicht oder nicht korrekt über TLS (Transport Layer Security) bzw. HTTPS absichern. Developer sollten beachten, dass Mobilgeräte neben dem Netzwerk-Datenverkehr über WLAN oder Mobilfunk über viele weitere Schnittstellen Daten austauschen, wie z. B. Bluetooth, SMS, E-Mail, USB, NFC, die Kamera oder Spracheingabe.
M4 Insecure Authentication
Angreifende können einer App oder Backend-Servern eine falsche Identität vorspiegeln, indem zum Beispiel eine Prüflogik für Identitätsinformationen ausgetrickst wird. Für Developer ist es wichtig zu wissen, dass auf den Einsatz von TLS nicht verzichtet werden darf, auch wenn dies allein noch kein Allheilmittel ist.
M5 Insufficient Cryptography
In diesen Bereich fallen Sicherheitslücken, die durch unsicher eingesetzte kryptographische Verfahren durch Developer entstehen. Ursache sind oft veraltete und damit potenziell unsichere Algorithmen. Developer sollten auf geprüfte und vorhandene kryptographische Verfahren zurückgreifen.
M6 Insecure Authorization
Bei der unsicheren Berechtigung gelingt es einem Angreifenden, ohne die notwendige Berechtigung auf Funktionen zuzugreifen. So wurden in der Vergangenheit Daten aus Corona-Testzentren über nicht korrekt konfigurierte Server abgegriffen.
M7 Client Code Quality
Fehlerhafte oder qualitativ mangelhafte Programmierung macht Apps anfällig für Datendiebstahl. Die Installation einer Spyware und nur ein einziger Anruf, mit dem zugleich im Hintergrund eine Spionage-Software nachgeladen wird, können die volle Kontrolle über das Endgerät ermöglichen. Mangelhafte Dritt-Software oder anfällige Programmiersprachen können die Code-Qualität negativ beeinflussen und sollten vermieden werden.
M8 Code Tampering und M9 Reverse Engineering
Ist die Funktionsweise einer App rekonstruierbar, lässt sich diese auch manipulieren. So können Angreifende geistiges Eigentum stehlen, Lizenzprüfungen umgehen oder mit Schadcode angereicherte Klone von Apps verbreiten. Eine Root- oder Jailbreak-Erkennung wie häufig bei Banking-Apps vorhanden, oder beispielsweise die SafetyNet API für Android-Geräte erschweren die Angriffe und reduzieren das Risiko.
M10: Extraneous Functionality
Funktionen im Programmcode, die nur in der Entwicklungsphase genutzt und in der anschließenden Produktivversion nicht wieder entfernt wurden, können die Sicherheit der App oder serverseitiger Dienste gefährden.