
Sicherheit mobiler Apps: häufige Schwachstellen und Lösungen
Die häufigsten Sicherheitslücken in iOS- und Android-Apps, von unsicherer Speicherung bis zu Secrets im Code, und wie Sie Ihre App dagegen absichern.
Kurz gefasst: Die meisten Sicherheitslücken in mobilen Apps gehen auf eine Handvoll wiederkehrender Fehler zurück: sensible Daten im ungeschützten Speicher, API-Schlüssel im App-Code, ein Backend, das der App blind vertraut, und unsaubere Authentifizierung. Die wichtigste Regel für die Sicherheit mobiler Apps lautet daher: Alles, was auf dem Gerät liegt, kann ausgelesen werden. Geheimnisse gehören ins Backend, Tokens in den Keychain bzw. Keystore, und jede Anfrage wird auf dem Server geprüft.
Warum mobile Apps eigene Sicherheitsrisiken haben
Eine Webanwendung läuft auf Ihrem Server, eine mobile App auf dem Gerät des Nutzers. Wer die App installiert, hat das komplette Programmpaket in der Hand und kann es mit frei verfügbaren Werkzeugen entpacken, untersuchen und verändern. Dazu kommen verlorene oder gestohlene Geräte, unsichere WLANs und Geräte mit Root- oder Jailbreak-Zugang.
Eine gute Orientierung bieten die OWASP Mobile Top 10 und der Prüfstandard MASVS der OWASP. Sie beschreiben die typischen Risikobereiche und konkrete Prüfkriterien. Die folgenden Punkte decken die Fehler ab, die in der Praxis am häufigsten auftauchen.
Die häufigsten Schwachstellen
Unsichere Datenspeicherung
Tokens, Passwörter oder personenbezogene Daten landen oft in Speicherorten, die nicht dafür gedacht sind: in UserDefaults unter iOS, in SharedPreferences unter Android oder in AsyncStorage bei React Native. Diese Speicher sind nicht verschlüsselt und lassen sich bei Zugriff auf das Gerät oder ein Backup auslesen.
Die Lösung sind die Systemspeicher für Geheimnisse: der Keychain unter iOS und der Android Keystore. In React Native greifen Sie über Bibliotheken wie expo-secure-store oder react-native-keychain darauf zu. Speichern Sie außerdem nur, was die App wirklich offline braucht.
Secrets im App-Code
API-Schlüssel für Zahlungsdienste, KI-Schnittstellen oder Datenbanken haben im App-Paket nichts verloren. Auch verschleiert lassen sie sich mit überschaubarem Aufwand extrahieren. Alle Aufrufe, die einen geheimen Schlüssel brauchen, laufen über Ihr eigenes Backend, das den Schlüssel verwahrt und die Anfrage nach Prüfung weiterreicht.
Ein Backend, das der App vertraut
Ein häufiger Denkfehler: „Die App lässt das nicht zu, also passiert es nicht.“ Jede Prüfung, die nur in der App stattfindet, lässt sich umgehen, denn die Schnittstelle kann auch ohne App direkt angesprochen werden. Berechtigungen, Preise, Limits und Eingabevalidierung müssen deshalb auf dem Server geprüft werden. Die Grundlagen dazu beschreibt unser Beitrag zu Web-Sicherheit und typischen Angriffen, sie gelten für mobile Backends genauso.
Schwache Authentifizierung
Mobile Apps sollten OAuth 2.0 mit PKCE über den System-Browser nutzen, nicht über eine eingebettete WebView, in der die App Zugangsdaten mitlesen könnte. Access Tokens sollten kurzlebig sein, Refresh Tokens sicher gespeichert und serverseitig widerrufbar. Biometrische Entsperrung ist bequem, ersetzt aber keine serverseitige Sitzungsprüfung. Details zu Tokens und Sitzungen finden Sie in Authentifizierung mit OAuth, JWT und Sessions.
Unsichere Kommunikation
iOS erzwingt mit App Transport Security standardmäßig HTTPS, Android blockiert seit Version 9 unverschlüsselten Verkehr per Voreinstellung. Problematisch wird es, wenn Entwickler diese Schutzmechanismen für Tests abschalten und vergessen, sie wieder zu aktivieren. Certificate Pinning erhöht den Schutz gegen manipulierte Zertifikate, erfordert aber einen Plan für den Zertifikatswechsel, sonst sperren Sie bei einer Erneuerung Ihre eigenen Nutzer aus.
Deep Links und Datenlecks
Eigene URL-Schemata wie meineapp:// kann jede andere App ebenfalls registrieren. Für sensible Abläufe wie Login-Rückleitungen oder Passwort-Resets sind Universal Links unter iOS und App Links unter Android sicherer, weil sie an Ihre Domain gebunden sind. Achten Sie außerdem darauf, dass Logs, Absturzberichte und Screenshots im App-Umschalter keine sensiblen Daten enthalten.
So verankern Sie Sicherheit im Entwicklungsprozess
Sicherheit lässt sich schwer nachträglich einbauen. Bewährt hat sich ein schlankes Vorgehen: Zu Projektbeginn wird geklärt, welche Daten die App verarbeitet und wie schutzbedürftig sie sind. Daraus ergeben sich die Anforderungen an Speicherung, Authentifizierung und Backend. Abhängigkeiten werden automatisiert auf bekannte Schwachstellen geprüft, und vor wichtigen Releases lohnt sich ein Penetrationstest durch externe Fachleute.
Für Apps mit besonders schützenswerten Daten, etwa im Finanz- oder Gesundheitsbereich, kommen weitere Maßnahmen hinzu: Prüfung der App-Integrität über die Play Integrity API und Apple App Attest, Erkennung manipulierter Geräte und strengere Sitzungsregeln. Da mobile Apps fast immer personenbezogene Daten verarbeiten, gehört auch die DSGVO in die Planung. Unser praktischer Leitfaden zur DSGVO-konformen Softwareentwicklung hilft dabei.
Häufige Fragen (FAQ)
Ist React Native weniger sicher als native Entwicklung?
Nicht grundsätzlich. Die Risiken liegen fast immer in der Umsetzung, also in Speicherung, Kommunikation und Backend. Mit den richtigen Bibliotheken für sicheren Speicher und sauberer Konfiguration erreicht eine React-Native-App dasselbe Schutzniveau.
Reicht es, den App-Code zu verschleiern?
Nein. Obfuskation erschwert die Analyse, verhindert sie aber nicht. Sie ist eine zusätzliche Hürde, ersetzt aber nicht die Grundregel, keine Geheimnisse in die App zu packen und alles serverseitig zu prüfen.
Wie oft sollte eine App auf Sicherheit geprüft werden?
Automatisierte Prüfungen von Abhängigkeiten und Code laufen idealerweise bei jeder Änderung. Ein manueller Sicherheitstest lohnt sich vor dem ersten Release und nach größeren Änderungen an Authentifizierung, Zahlungen oder Datenhaltung.
Fazit
Sichere mobile Apps entstehen weniger durch Spezialwerkzeuge als durch eine klare Haltung: Das Gerät ist nicht vertrauenswürdig, das Backend entscheidet. Wer Geheimnisse vom Gerät fernhält, Systemspeicher nutzt und jede Anfrage serverseitig prüft, schließt die meisten Lücken, bevor sie entstehen.
Wenn Sie eine App planen oder eine bestehende App absichern möchten, sprechen Sie mit uns über App-Entwicklung.
Ähnliche Beiträge
- React Native oder Flutter? Cross-Platform-Apps 2026 im Vergleich
React Native und Flutter im Vergleich: Sprache, Architektur, Performance, Team und Wartung. Welches Framework für plattformübergreifende App-Entwicklung passt.
- Was kostet App-Entwicklung in Deutschland? Die Kostentreiber
Wovon die Kosten einer App-Entwicklung in Deutschland abhängen: Funktionsumfang, Plattformen, Backend, Design, Schnittstellen und laufender Betrieb nach dem Start.
- iOS-App mit Swift entwickeln: Was Sie vorher wissen sollten
Was vor der ersten iOS-App mit Swift zu klären ist: SwiftUI oder UIKit, Mac und Xcode, Apple-Entwicklerkonto, App-Store-Prüfung und Datenschutzangaben.
- Kotlin für Android: Warum es zum Standard wurde
Warum Google Kotlin zur ersten Wahl für Android-Apps gemacht hat, was die Sprache besser kann als Java und wann native App-Entwicklung sinnvoll ist.