Mobile Frameworks wie Flutter, React Native, Cordova oder .NET MAUI versprechen eine effiziente plattformübergreifende Entwicklung. Mit einer gemeinsamen Codebasis lassen sich iOS- und Android-Anwendungen schneller umsetzen und pflegen.
Doch mit den Vorteilen entstehen auch neue Sicherheitsanforderungen. Jedes Framework bringt eigene Architekturen, Komponenten und Konfigurationsmöglichkeiten mit. Fehlerhafte Einstellungen, unsichere Datenspeicherung oder ein unzureichend geschützter Code können Angreifern zusätzliche Angriffsflächen bieten.
Bei Mobile App Pentests begegnen unseren Security Analyst*innen regelmäßig wiederkehrende Schwachstellen. Dabei ist auffällig, dass die Ursache meist nicht im Framework selbst liegt, sondern in dessen Konfiguration und Nutzung. Am Beispiel von Cordova, Flutter, React Native und .NET MAUI zeigt dieser Beitrag, welche Sicherheitslücken unseren Analyst*innen immer wieder begegnen und welche Aspekte Entwickler*innen deshalb besonders im Blick behalten sollten.
Cordova: Wenn Web-Schwachstellen zur App-Schwachstelle werden
Cordova verfolgt einen besonderen Ansatz: Anwendungen werden weitgehend mit Webtechnologien wie HTML, CSS und JavaScript entwickelt und innerhalb einer nativen WebView ausgeführt. Dadurch können Webentwickler*innen vergleichsweise einfach Mobile Apps erstellen.
Aus Sicherheitssicht entsteht jedoch eine Besonderheit: Schwachstellen aus der Webanwendung können direkten Einfluss auf die Mobile App haben. Besonders kritisch sind Cross-Site Scripting (XSS) Schwachstellen. Gelangt schadhaftes JavaScript in die Anwendung, kann es über Cordova Plugins auf native Gerätefunktionen zugreifen, sofern entsprechende Berechtigungen vorhanden sind. Dazu zählen beispielsweise Standortdaten, Kamera oder Dateisystemzugriffe.
Ein Beispiel ist der Zugriff auf Standortdaten über die Geolocation API:
navigator.geolocation.getCurrentPosition(
function (position) {
console.log("Latitude:", position.coords.latitude);
console.log("Longitude:", position.coords.longitude);
console.log("Accuracy (meters):", position.coords.accuracy);
},
function (error) {
console.error("Location error:", error);
},
{
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
}
);
Wird eine XSS-Schwachstelle ausgenutzt, kann eingeschleuster JavaScript-Code unter Umständen dieselben Schnittstellen nutzen wie der legitime Anwendungscode.
Darauf sollten Entwickler*innen bei Cordova achten
1. Die config.xml gezielt absichern
Die Datei config.xml definiert zentrale Sicherheitsregeln für die WebView. Zu weit gefasste Einstellungen bei access, allow-navigation oder allow-intent können unerwünschte Netzwerkzugriffe, das Laden externer Inhalte oder die Ausführung von Android Intents ermöglichen. Besonders in Kombination mit XSS-Schwachstellen steigt das Risiko erheblich.
2. Datei- und Pluginzugriffe beschränken
Unsichere Einstellungen wie AllowUniversalAccessFromFileURLs oder AndroidInsecureFileModeEnabled können Schutzmechanismen der Same Origin Policy aushebeln. Dadurch lassen sich lokale Dateien, gespeicherte Tokens oder Datenbanken auslesen. Auch Drittanbieter Plugins sollten regelmäßig auf Sicherheitsrisiken überprüft werden.
Besonderheit: Cordova bietet kein natives Certificate Pinning. Entwickler*innen sollten daher zusätzliche Maßnahmen implementieren, um Man-in-the-Middle-Angriffe auf die Serverkommunikation zu erschweren.
Flutter: Performance trifft auf zusätzliche Sicherheitsverantwortung
Flutter hat sich als eines der beliebtesten Cross-Platform Frameworks etabliert. Anwendungen werden in Dart entwickelt und für Android sowie iOS kompiliert. Dadurch entsteht eine performante und weitgehend native Benutzererfahrung.
Darauf sollten Entwickler*innen bei Flutter achten
1. Sensible Daten nicht ungeschützt speichern
Flutter stellt keine integrierte Secure-Storage-Funktion für sensible Daten bereit.
Für Zugangsdaten, Tokens oder API-Schlüssel sollte daher ein Plugin wie flutter_secure_storage verwendet werden. Dieses nutzt die nativen Sicherheitsmechanismen der Plattformen, etwa Android Keystore und iOS Keychain, anstatt sensible Daten über allgemeine Speichermechanismen wie SharedPreferences oder NSUserDefaults abzulegen.
2. Reverse Engineering erschweren
Mobile Apps können nach der Veröffentlichung analysiert und teilweise rekonstruiert werden. Flutter bietet die Möglichkeit, den Anwendungscode während des Build Prozesses zu verschleiern. Die Obfuscation erhöht zwar nicht die Sicherheit der Geschäftslogik selbst, erschwert Angreifern jedoch die Analyse der Anwendung deutlich.
Die Funktion lässt sich bereits beim Erstellen der Anwendung aktivieren:
flutter build apk --release --obfuscate
Gerade bei produktiven Apps sollte geprüft werden, ob diese Maßnahme Teil des Build-Prozesses sein sollte.
React Native: Native Komponenten sicher anbinden
React Native verbindet JavaScript Code mit nativen Plattformfunktionen. Dadurch lassen sich Anwendungen effizient für mehrere Betriebssysteme entwickeln. Gleichzeitig entstehen Sicherheitsanforderungen an die verwendeten Bibliotheken und Schnittstellen.
Darauf sollten Entwickler*innen bei React Native achten
1. Sichere Speicherung von Daten
Auch React Native stellt für die sichere Speicherung sensibler Daten keine integrierte Lösung bereit.
Für Zugangsdaten oder Tokens sollte daher eine geeignete Bibliothek, beispielsweise react-native-keychain, verwendet werden. Solche Bibliotheken nutzen die nativen Sicherheitsmechanismen der Plattformen, etwa Android Keystore und iOS Keychain, anstatt sensible Daten über allgemeine Speichermechanismen wie AsyncStorage abzulegen.
2. WebViews sorgfältig konfigurieren
Viele Anwendungen nutzen die Bibliothek react-native-webview, um Webinhalte einzubetten. Fehlkonfigurationen können dazu führen, dass unerwünschte Inhalte geladen oder lokale Ressourcen zugänglich werden. Besondere Aufmerksamkeit verdienen unter anderem Einstellungen wie originWhitelist, allowFileAccess, und mixedContentMode.
Eine restriktive Konfiguration kann beispielsweise so aussehen:
<WebView
originWhitelist={['https://api.example.com']}
mixedContentMode="never"
/>
.NET MAUI: Sicherheit vor allem im Anwendungscode
.NET MAUI ist der offizielle Nachfolger von Xamarin und ermöglicht die Entwicklung plattformübergreifender Anwendungen mit C# und .NET innerhalb der Microsoft-Welt. Anders als beispielsweise Cordova bringt es keine besonders charakteristischen, Framework spezifischen Angriffsflächen mit sich.
Der Fokus liegt daher vor allem auf der Qualität und Sicherheit des Anwendungscodes.
Darauf sollten Entwickler*innen bei .NET MAUI achten
Sichere Speicherung sensibler Informationen
Für Zugangsdaten, Tokens oder Zertifikate stellt .NET MAUI mit SecureStorage eine integrierte Lösung bereit. Diese nutzt die nativen Schutzmechanismen von Android Keystore und iOS Keychain, ohne dass Entwickler eigene Speicherlösungen implementieren müssen.
Darüber hinaus gelten die klassischen Anforderungen sicherer Softwareentwicklung: Eingaben validieren, Geheimnisse nicht im Quellcode hinterlegen und externe Bibliotheken regelmäßig aktualisieren.
Das Framework ist nur die halbe Miete
Ob Cordova, Flutter, React Native oder .NET MAUI: Jedes Framework bringt eigene Stärken und sicherheitsrelevante Besonderheiten mit. Während bei Cordova insbesondere die WebView und ihre Konfiguration im Fokus stehen, spielen bei Flutter und React Native die sichere Datenspeicherung sowie der Schutz vor Reverse Engineering eine wichtige Rolle. Bei .NET MAUI liegt der Schwerpunkt vor allem auf der sicheren Implementierung der Anwendungslogik.
Die Erfahrungen unserer Pentest Professionals aus Mobile App Pentests zeigen: Kritische Schwachstellen entstehen nur selten durch das Framework selbst. Wesentlich häufiger sind unsichere Konfigurationen, unzureichend geschützte sensible Daten oder Sicherheitsmechanismen, die nicht konsequent genutzt werden, etwa wenn Entwickler*innen fälschlicherweise davon ausgehen, dass die Standard-Speichermechanismen des Frameworks auch für Tokens oder Zugangsdaten geeignet sind. Wer die Besonderheiten seines Frameworks kennt und frühzeitig berücksichtigt, reduziert die Angriffsfläche seiner Anwendung erheblich.
Sie möchten die Sicherheit Ihrer Mobile App verbessern? Kontaktieren Sie uns, wir unterstützen Sie.



