Androids Apps-eigene Berechtigungen lassen Datenabfluss zu

Originalartikel von Weichao Sun, Mobile Threats Analyst

Berechtigungen sind ein grundlegender Bestandteil der Zugangskontroll-Richtlinien von Android. Um auf bestimmte Ressourcen auf einem Android-Gerät zuzugreifen, müssen Anwendungen bestimmte Berechtigungen anfordern und gewährt bekommen. Über die vom Betriebssystem festgelegten Berechtigungen hinaus kann eine App auch eigene, auf sie zugeschnittene Rechte bestimmen. Damit sollen die Funktionen oder Daten einer App geschützt werden.

Diese speziellen Berechtigungen werden üblicherweise entweder auf dem “signature”- oder “signatureOrSystem”-Schutzlevel definiert. In der Android Open Source Project (AOSP)-Dokumentation sind sie folgendermaßen definiert:

 

signature Das System gewährt eine Berechtigung nur, wenn die anfragende Applikation mit demselben Zertifikat signiert ist wie die Applikation, welche die Berechtigung deklariert. Stimmen die Zertifikate überein, so gewährt das System die Berechtigung automatisch, ohne den Nutzer zu benachrichtigen oder sein ausdrückliches Einverständnis zu fordern.
signatureOrSystem Das System gewährt eine Berechtigung nur denjenigen Applikationen, die im Android Image-System sind oder solchen, die mit demselben Zertifikat signiert sind, wie die Applikation, welche die Berechtigung deklariert. Diese Option ist zu vermeiden, denn das „signature“-Schutzlevel sollte für die meisten Anforderungen ausreichend sein, unabhängig davon, wo genau die Applikationen installiert sind. Die signatureOrSystem-Berechtigung wird für einige spezielle Situationen genutzt, wo mehrere Anbieter Anwendungen in ein System-Image einfügen und somit bestimmte Features explizit teilen müssen, weil sie miteinander gebaut sind.

 

Diese Definitionen haben Android-Entwickler glauben lassen, dass nur Systemanwendungen oder Anwendungen mit derselben Signatur (wahrscheinlich von demselben Entwickler) auf diese Berechtigungen zugreifen können. Aus diesem Grund sind möglicherweise zusätzliche Zugangs-Kontrollmechanismen nicht implementiert worden.

Das Android-Betriebssystem überwacht diese speziellen Berechtigungen nur nach deren Namen. Sobald eine Berechtigung definiert ist, können andere Apps sie nicht mehr ändern. Angenommen, eine bekannte App „A“ definiert die Berechtigung „permission-A“ mit einem signature-Schutzlevel, um die eigenen Daten zu schützen. Doch bevor ein Nutzer „A“ installiert, hat er eine bösartige App „B“ installiert. Ist „B“ darauf ausgerichtet, Informationen aus der legitimen App „A“ zu entwenden, so würde sie permission-A erstellen, bevor „A“ die Chance hat, eine solche Berechtigung zu erzeugen. In diesem Fall kann „B“ die permission-A erhalten. Sobald nun „A“ installiert ist, hat „B“ die Berechtigung, die geschützten Daten aus „A“ zu lesen.

Die Sicherheitsforscher von Trend Micro haben nahezu 10.000 Apps gefunden, die diesem Risiko ausgesetzt sind.

Entwickler sollten sich nicht ausschließlich auf die Schutzlevel verlassen, wenn auf ihre Activities/Receivers/Services/Providers zugegriffen wird. Einige Funktionen wie getCallingUid und getCallingPackage werden vom Betriebsssystem zur Verfügung gestellt und lassen sich dazu nutzen, um jede mögliche App zu identifizieren, indem diese Funktionen angefordert und nach Bedarf Kontrollmechanismen für den Zugriff implementiert werden.

Trend Micro hat Googles Sicherheitsteam über die Probleme informiert.

Zusätzliche Analysen von Veo Zhang

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*