Mobile App-Entwickler hinken laut einer Untersuchung zweier Forscher der Texas A&M Universität sicherheitstechnisch 20 Jahre hinter den Webentwicklern hinterher. Was so viel heißt wie – sie machen die gleichen Fehler wie die Webentwickler-Kollegen damals. Abner Mendoza und Guofei Gu veröffentlichten ihre Untersuchungsergebnisse in dem Bericht „Mobile Application Web API Reconnaissance: Web-to-Mobile Inconsistencies & Vulnerabilities“. Ein sehr empfehlenswerter Lesestoff für alle Entwickler mobiler Apps.
Vor zwanzig Jahren führte die falsche Programmierungsweise der Webentwickler zu vielen Sicherheitsvorfällen. Leidtragende waren dabei die Nutzer. Und dieser Tage gehen die Programmierfehler der mobilen Apps auch zur Lasten der Nutzer. Mobile Appentwickler filtern heute zwar die Benutzereingaben nach unsicheren Zeichenfolgen durch, aber das tun in der Branche erstaunlicherweise nur eine kleine Minderheit der Entwickler. Die allermeisten Apps enthalten im klientenseitigen Code die Business-Logik, wie Benutzereingabeprüfung, Benutzerauthentifizierung und Autorisierung. Diese sollte im serverseitigen Abschnitt des Codes angesiedelt sein. Damit könnten dann sofort alle einfachen HTTP-Anfrageparameter-Injektion-Angriffe verhindert werden. Angreifer könnten die mobile App so nicht mehr analysieren, da der Code ja nicht mehr auf dem Gerät selbst installiert ist. Die an die Server der mobilen App gesendet Ermittlung des Formats der Webanforderungen nachdem die Eingaben des Benutzers validiert wurden, sind nicht mehr möglich. Ein Angreifer kann dann keine Parameter solcher Anfragen mehr modifizieren.
Um dies alles herausfinden und beweisen zu können, haben die beiden Forscher ein System namens WARDroid zur Massenanalyse von mobilen Apps erstellt. Das Programm kann das Format der Webanfragen bestimmen und feststellen, ob die Apps anfällig sind für diese Art Angriffe. WARDroid testete 10.000 zufällig ausgewählte Apps im Google Play Store. Die Ergebnisse waren ziemlich ernüchternd: In über 4.000 Apps wurde die Verwendung der problematischen Logik in den APIs festgestellt, darunter waren auch 1.743 Apps mit unverschlüsselter HTTP-Kommunikation.
Um die Verwundbarkeit der Apps noch besser zu beweisen, analysierten Mendoza und Gu zusätzlich noch weitere 1.000 zufällig ausgewählte Apps manuell. Sie konnten in 962 der APIs Validierungslogikproblemen feststellen. Die Wissenschaftler gehen somit davon aus, dass wohl Millionen von Apps in den diversen App Stores nicht sicher sind. Erschreckend war auch die Feststellung, dass eine Bank-App eine Manipulierung von Transaktionseinzelheiten zuließ. Validierungslogikfehler gab es auch in Geschenkkarten-Apps. Den Forschern war es möglich, ein Testkonto mit Geld aufzuladen, das sie in verschiedenen Geschäften einlösen konnten. Ähnliche Validierungslogikfehler fanden sie auch im Kommunikationsmodell von Apps, die mit dem Shopify SDK erstellt wurden. Ganz erstaunlich war, dass dieser Fehler es dem Forschungsteam ermöglichte, Produkte zu negativ Preisen zu kaufen. In den auf Shopify-basierten mobilen Shops wurden entsprechende Rabatte erstellt.
Mendoza stellte die Forschungsergebnisse auf dem 39. IEEE Symposium für Sicherheit und Privatsphäre in San Francisco vor. Mendoza betonte, dass eine serverseitige Geschäftslogik genauso streng ausgelegt sein sollte wie eine clientseitige Validierungslogik, wenn nicht sogar noch strenger.
Der komplette Forschungsbericht von faculty.cs.tamu.edu kann hier eingesehen werden: http://faculty.cs.tamu.edu/guofei/paper/WARDroid_SP18.pdf
Artikel von bleepingcomputer.com, 04.07.2018: Mobile Devs Making the Same Security Mistakes Web Devs Made in the Early 2000s
Urheberrechte Beitragsbild: Public Domain, Creative Commons CC0