Unschöne Erkenntnis von Sicherheitsforschern: Die App-Manie schlägt sicherheitstechnisch zurück. Bei Inspektionen hat man fest hinterlegte Schlüssel für Zugänge zu AWS- und Azure-Konten in Android- und iOS-Apps gefunden. Entwickler haben gepatzt und Angreifern potentiell den Zugang zu ihren Cloud-Angeboten geöffnet.
Anzeige
Mobile Apps sind aus unserem Alltag nicht mehr wegzudenken. Man kommt kaum noch an Apps vorbei, um bestimmte Angebote zu nutzen, auch wenn ich immer noch versuche, diese Dienste per Browser-App abzurufen. Mit Millionen von App-Downloads auf Plattformen wie dem Google Play Store und dem Apple App Store stellt sich die Frage, wie es mit der Sicherheit aussieht?
Sicherheitsforscher haben eine versteckte Bedrohung aufgespürt, die Nutzerdaten und Backend-Dienste erheblich gefährden könnte. Bekannt wurde dies durch einen Bericht von Symantec, wo sich deren Sicherheitsforscher diverse Android- und iOS-Apps genauer angeschaut haben. In mehreren populären Apps für iOS und Android finden sich fest kodierte Anmeldeinformationen für Cloud-Dienste wie Amazon Web Services (AWS) und Microsoft Azure Blob Storage, die zusätzlich unverschlüsselt per Internet übertragen werden. Die Kollegen von Bleeping Computer haben erstmals in diesem Beitrag drüber berichtet.
Die App Collage Maker, die im Google Play Store über 5 Millionen Mal heruntergeladen wurde, enthält direkt in ihrem Code fest einkodierte AWS-Anmeldeinformationen, was ein erhebliches Sicherheitsrisiko darstellt. Ich habe mir mal die App-Liste, die die Kollegen von Bleeping Computer zusammen gestellt haben und die Beispiele aus dem Symantec-Artikel angeschaut – es sind für mich recht unbekannte Apps, die sich auf den englischen Nutzerkreis fokussieren. Aber ich gehe davon aus, dass viel mehr Apps solche Anmelde-Informationen fest kodiert im Code aufweisen.
Anzeige
Die betreffenden Schlüssel für den Zugriff auf AWS- und Azure-Instanzen sind aufgrund von Fehlern und schlechten Praktiken während der Entwicklungsphase in die Codebasis der jeweiligen Apps geraten. Schaut man sich die Beispiele im Symantec-Beitrag an, werden die Zugangsschlüssel fest in Konstanten im Programmcode definiert, und sind für Dritte mit entsprechenden Tools auslesbar.
Die Offenlegung solcher Anmeldeinformationen kann zu unbefugtem Zugriff auf Speicherbereiche und Datenbanken mit sensiblen Benutzerdaten führen. Abgesehen davon könnte ein Angreifer sie nutzen, um Daten zu manipulieren oder zu stehlen. Symantec schreibt von ernsthaften Sicherheitsrisiken, die von fest kodierten und unverschlüsselten Cloud-Service-Anmeldeinformationen in mobilen Anwendungen ausgehen. Diese Praxis setzt kritische Infrastrukturen potenziellen Angriffen aus und gefährdet Nutzerdaten und Backend-Dienste. Die weite Verbreitung dieser Schwachstellen sowohl auf iOS- als auch auf Android-Plattformen unterstreicht laut Symantec die dringende Notwendigkeit einer Umstellung auf sicherere Entwicklungspraktiken.
Anzeige
Ich bin Netzwerkadministrator und kein Entwickler, daher mal die vielleicht ganz einfache Frage: Wie macht man es denn richtig?
Wenn ich eine App entwickeln würde und diese App irgendwas an eine Cloud hochladen muss, dann muss ich irgendwie diesen Zugang absichern und dafür sorgen, dass die App den gesicherten Zugang nutzen kann, also braucht die App in irgendeiner Form ein Schlüssel. Auch wenn die App nicht direkt auf den Cloudspeicher hochlädt, sondern über irgendeine Schnittstelle, braucht sie dafür idealerweise ein Schlüssel, sonst könnte Hinz und Kunz auch über die Schnittstelle Müll hochladen. Das einzige was mir einfallen würde, wäre eine Benutzerauthentifizierung, dann bräuchte man aber wieder Anmeldung, Registrierung und alles, in manchem Fall vielleicht ganz schön viel Overhead.
Daher wirklich die interessierte Frage, wie löst man das ohne Benutzerauthentifizierung?
Stell dir, der Schlüssel müsste aus irgendeinem Grund geändert werden.
Willst du dann eine neue Version der App mit dem neuen hardkodierten Schlüssel machen oder einfach nur den Schlüssel in der App ohne neue Appversion ändern?
Hardkodierte Schlüssel sind schon wegen dieses Aspektes eine selten dämliche Idee.
Aus sicherheitstechnischer Sicht sowieso.
Gehe ich voll mit, aber nochmal die Frage, wie löst man das ohne User-Auth?
Ich bin tatsächlich auch an dieser Frage interessiert. Wie macht man dies besser oder am besten richtig?
Ich werde sowas in meiner beruflichen Laufbahn sicher nie benötigen, trotzdem bin ich aus Interesse absolut an einer Lösung interessiert.
Gibt es irgendeine App ohne "Anmeldung, Registrierung und alles" und sei es über den Google/Apple Account?
Wieso wird auf eine ganz konkrete Frage mit einer Frage geantwortet? Die Fragestellung ist doch klar, wie löst man sowas ohne User-Auth?
Gibt es vielleicht keine sichere Lösung für diese Fragestellung und das ist auch der Grund warum diese schlechte Praxis angewendet wird?
Bin auch kein Programmierer.
Bleeping Computer schreibt am Ende des Artikels: "The researchers recommend developers to follow best practices for protecting sensitive information in mobile apps.
This includes using environment variables to store credentials, using secrets management tools (e.g. AWS Secrets Manager, Azure Key Vault), encrypting data, regular code reviews and audits, and integrate automated security scanning early in the development process to detect sensitive data or security issues."
MS hat auch Tips:
https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-8.0&tabs=windows
Damit sind die Anmeldedaten aus dem Code in das Endgerät gewandert. Da braucht man bei der Installtion aber immer noch ein Verfahren, was die Anmeldeinformationen auf dem Endgrät abgelegt/erzeugt, ohne das diese einfach aus dem Code der App dort hinkopiert werden.
Ist so eine Frage, die mir dabei kommt. Aber dafür habe ich zu wenig / keine Ahnung, was genau bei einer App Installtion passiert.
Wenn man wie Microsoft und andere Firmen Programmierung ins Billig Lohn Land Indien auslagert darf man sich über so eine Schlamperei nicht wundern.
Indische Programmierer sind zwar spottbillig aber eben nicht die Besten. Wenn sie aber einen Auftrag von Microsoft bekommen dann sagen die immer "Ja, ja, das können wir, das machen wir!" Egal wie unmöglich die Aufgabe ist. Denn im traditionellen Indien ist man sehr autoritätsgläubig und hinterfragt solche Jobs nicht, um den Chef nicht blos zu stellen.
Aber wenn immer mehr "dumme" Manager in den USA und anderswo wichtige Programmierarbeit an den Betriebssystemen aus Kostengründen in Billiglohnlänger verlagern und dabei die Qualitätskontrolle hops geht – wie lange wird es dann dauern, bis der ganz große Crash passiert?
Und all die Hacker in Russland und China freut´s, weil es immer einfacher wird, die Systeme zu hacken.
Mag sein , dass ich mich irre. Aber zur Zeit vergeht keine Woche, wo nicht wieder irgendwo eine Sicherheitslücke auftaucht oder Systeme aufgrund fehlerhafter Patches in die Knie gehen. Wie lange können oder wollen wir uns das noch gefallen lassen?
Schöne neue IT Welt!
Passend dazu heute früh in den Nachrichten dass Arbeitsminister Heil doch ein Fachkräfteabkommen mit ….. Indien … abschließen möchte. Da gäbe es laut Interviewerin ja "so viele junge gut ausgebildete Hochschulabsolventen". Das mag ja sein aber wenn wir uns die Programmiermentalität her holen verbessert sich doch überhaupt nichts.
In einem Land, wo viele Behörden immer noch mit Faxgeräten arbeiten und Juristen bei Gericht immer noch Berge von Papier mit sich herumschleppen, weil es immer noch kein gut funktionierendes standardisiertes elektronisches Aktensystem in Deutschland gibt wundert mich so eine Aussage überhaupt nicht: die Ahnungslosigkeit und Unfähigkeit im politischen Berlin ist eben parteiübergreifend grenzenlos. Und doch beschweren sich alle, dass Gerichtsverfahren und Asylprüfungen so lange dauern. Nur an den Kernproblemen will keiner etwas ändern. Weil eben alle Angst haben, von einem "gut" funktionierenden Windows System made in India abhängig zu sein, dass dann, wenn man es braucht, einfach abstürzt. Schöne neue IT Welt eben. ;-)