Die Bereitstellung einer React Native-Anwendung bedeutet, ausführbaren Code auf Benutzergeräten auszuführen, auf denen eine vollständige Isolation unmöglich ist.
Angreifer inspizieren Bundles, fangen Datenverkehr ab und prüfen den lokalen Speicher auf offene Sessions. Um Produktions-Builds abzusichern, muss die Client-Umgebung vom ersten Tag an als unsicher betrachtet werden.
Kurz gesagt
- •
Lokaler Speicher wie AsyncStorage ist auf gerooteten Geräten lesbar und darf niemals Passwörter im Klartext oder langlebige Master-Geheimnisse enthalten.
- •
Parallele API-Anfragen erfordern eine Mutex-Synchronisation, um Race Conditions bei der Rotation von Refresh-Token zu verhindern.
- •
Network Pinning minimiert Man-in-the-Middle-Risiken, erfordert jedoch eine sorgfältige Planung von Zertifikats-Rotationszyklen.
- •
Native Export-Konfigurationen müssen exportierte Aktivitäten einschränken und Intent-Extras validieren, um unbefugten Zugriff auf Komponenten zu verhindern.
Managing Client Storage and Token Lifecycles
Alles, was in einem Anwendungs-Binary ausgeliefert oder in standardmäßigen lokalen Caches abgelegt wird, kann von einem entschlossenen Analysten extrahiert werden.
Client-Umgebungen fungieren als feindliches Terrain, in dem Tools zur Inspektion des lokalen Speichers auf gerooteter oder Jailbroken-Hardware frei laufen.
Authentifizierungs-Token müssen strikt kurzlebig und widerrufbar bleiben.
Bei der Handhabung paralleler HTTP-Anfragen, die unautorisierte Antworten auslösen, muss ein Mutex-Mechanismus den Refresh-Token-Ablauf absichern.
Ohne diese Synchronisationsprüfung können parallele Anfragen gleichzeitige Token-Rotationen auslösen und aktive Benutzersitzungen vorzeitig ungültig machen.
Securing Network Layers and Certificate Pinning
Standardmäßige HTTPS-Konfigurationen basieren auf systemweiten Zertifizierungsstellen, die bei der Proxy-Analyse durch benutzerinstallierte Zertifikate überschrieben werden können.
Die Implementierung von Certificate Pinning bindet den Netzwerk-Stack der App an bestimmte erwartete Serverzertifikate oder Public Keys.
Diese Einschränkung hindert Standard-Proxy-Tools daran, verschlüsselten Payload-Datenverkehr zu inspizieren.
Teams müssen einen verlässlichen Zeitplan für die Zertifikatsrotation etablieren, bevor sie Pinning in der Produktion aktivieren, um zu verhindern, dass aktive Clients bei abgelaufenen Zertifikaten ausgesperrt werden.
Hardening Native Boundaries and Exported Components
React Native-Anwendungen verbinden JavaScript-Logik mit nativen Android- und iOS-Schichten, wodurch an der Schnittstelle eigene Angriffsflächen entstehen.
Unter Android müssen Entwickler exportierte Activities, Services und Broadcast Receiver im Anwendungsmanifest prüfen.
Komponenten, die keinen externen Aufruf erfordern, sollten den Export-Flag explizit auf false setzen.
Eingehende Intent-Extras erfordern vor der Ausführung eine strenge Validierung, um schädliche App-Handoffs abzuwehren.
Ordnungsgemäße ProGuard- und Hermes-Konfigurationsregeln stellen sicher, dass Release-Builds Code korrekt verschleiern, ohne die Ausführung nativer Module zu beschädigen.
Appamass integriert robuste Sicherheits-Baselines direkt in plattformübergreifende Architektur-Pipelines, um Benutzersitzungen zu schützen, ohne die Release-Geschwindigkeit zu opfern.
Überprüfen Sie Ihre nativen Schnittstellen, Speicherschichten und Netzwerkkonfigurationen, bevor Sie Ihren nächsten mobilen Build an die Production-Stores übergeben.
Quelle
React Native App Security Threat Model and Production Hardening Guide
https://dev.to/amitkumar13/react-native-app-security-threat-model-storage-auth-network-production-hardening-4dm




