Wie Tapjacking mit Android Marshmallow eine Rückkehr erzielte - und niemand merkte es

Während sich viele von uns über das neu veröffentlichte Android Nougat für Nexus-Geräte freuen, ist die überwiegende Mehrheit der Nutzer immer noch auf Android Marshmallow. Ein Exploit, dessen Existenz seit mindestens Mitte 2015 dokumentiert ist, betrifft nach wie vor viele moderne Android-Geräte.

Schädliche Anwendungen können Ihre Aktionen dazu nutzen , ihnen eine Erlaubnis zu erteilen, die Sie niemals ausdrücklich erteilt haben. So funktioniert der Exploit.


Die Rückkehr des Tapjacking

Stellen Sie sich vor, Sie öffnen Instagram und versuchen, ein Bild zu teilen, das Sie kürzlich im Urlaub aufgenommen haben. Wenn Sie in Ihrer Galerie nach einem Bild suchen, werden Sie von Instagram aufgefordert, ihm die Berechtigung zum Zugriff auf Ihren Speicher zu erteilen. Wenn Sie jedoch auf "Ja" tippen, wird eine Fehlermeldung angezeigt.

Sie können die Speichererlaubnis für Instagram nicht erteilen, da Sie eine aktive Bildschirmüberlagerung aktiviert haben. In diesem Fall handelt es sich um eine der vielen Anwendungen, die Ihren Bildschirm tönen, sodass Sie Ihr Telefon nachts verwenden können, ohne sich selbst zu blenden. In diesem Fall funktioniert das Android-Berechtigungssystem wie vorgesehen : Um einer Anwendung eine vertrauliche Berechtigung zu erteilen, müssen Sie alle Bildschirm-Overlays auf Ihrem Gerät deaktivieren.

Marshmallow Permission Tapjacking. Wenn Sie auf "Zulassen" tippen, werden alle meine Kontakte angezeigt.

Anwendungen, die in der Lage sind, über Ihren Bildschirm zu zeichnen, können Sie möglicherweise dazu verleiten, vertrauliche Daten einzugeben. Zum Beispiel könnte eine Bildschirmüberlagerung eine falsche Passworteingabe über einem echten Login-Bildschirm platzieren, um Ihre Passwörter zu sammeln. Ein Exploit wie dieser heißt "tapjacking" und wurde im Laufe der Jahre auf verschiedenen Android-Versionen gepatcht, wobei eines der schlimmsten Beispiele bis Android 4.0.3 bestand. Vor kurzem kam der Exploit mit dem Laufzeit-Berechtigungsmodell von Android Marshmallow zurück.

Ein Entwickler namens Iwo Banaś hat eine Anwendung erstellt, die den Exploit demonstriert. Die Funktionsweise ist recht einfach: Wenn eine Anwendung einen Berechtigungsdialog anzeigt, zeigt die von Ihnen installierte schädliche Anwendung eine Systemüberlagerung an, um den Textblock des Berechtigungsdialogs mit dem gewünschten Text zu verdecken. Ein unwissender Benutzer, der im Berechtigungsdialogfeld auf "Zulassen" klickt, wird dazu verleitet, eine Berechtigung zu erteilen, nach der er gefragt wurde, für die die Anforderung jedoch aus der Sicht des Benutzers ausgeblendet wurde. Ein solcher Exploit macht dem Berechtigungssystem von Android Marshmallow einen Strich durch die Rechnung, da mit der Einführung des neuen Modells sichergestellt werden sollte, dass Benutzer nur Berechtigungen erhalten, denen sie ausdrücklich zugestimmt haben .

Jetzt weiß ich, woran du denkst. Wenn Android eine Systemüberlagerung entdeckt und mich daran gehindert hat, Speicherberechtigungen für Instagram zu erteilen, würde dies dann nicht verhindern, dass dieser Exploit ausgeführt wird? Die Antwort lautet "Nein" . In meinen Tests hat es den Anschein, dass bei bestimmten Geräten die Anzeige einer Textüberlagerung über einem Berechtigungsdialog den Sicherheitsmechanismus nicht auslöst. Der Entwickler der Proof-of-Concept-Tapjacking-Anwendung gibt an, dass der Exploit effektiv ist, da der Benutzer eine sekundäre schädliche Anwendung installiert, die auf API-Level 22 und niedriger (vor Marshmallow) abzielt. Dies liegt daran, dass vor Android Marshmallow allen Anwendungen während der Installation Berechtigungen erteilt wurden.

Okay, wenn Sie auf Marshmallow sind, müssen Sie nur vermeiden, Apps zu installieren, denen Sie nicht vertrauen und die die Erlaubnis zum Zeichnen eines Overlays anfordern, oder? Wenn das Berechtigungsmodell von Android wie ursprünglich geplant funktioniert, haben Sie Recht. Seit der Entdeckung dieses Exploits sind jedoch auch Apps mit API-Level 23 (Marshmallow), die die Overlay-Berechtigung anfordern, ein potenzielles Risiko.


Eine Lücke im Berechtigungsmodell?

Typische Apps mit Überlagerungen. Via: Medium

Wenn Sie zu den vielen Millionen Menschen gehören, die Facebook Messenger zum Chatten mit Ihren Freunden verwenden, haben Sie eine der besten Funktionen von Android kennengelernt - die Möglichkeit, Apps über andere Bildschirme zu ziehen. Wie cool ist es, dass Sie eine Sprechblase mit Ihrem Lieblings-Facebook-Gruppenchat haben, der dem Benutzer über jeder Anwendung folgt, die er öffnet? Obwohl Facebooks Messenger die Idee der „schwebenden Apps“ in den Mainstream brachte, gibt es das Konzept in Android schon seit einiger Zeit. Dank TYPE_SYSTEM_OVERLAY im WindowManager von Android können Anwendungen seit einiger Zeit Overlays auf Ihren Apps erstellen.

Berechtigungsmenü "Über andere Apps ziehen"

Vor Android Marshmallow müssen Anwendungen während der Installation eine Berechtigung mit dem Namen SYSTEM_ALERT_WINDOW anfordern, bevor Overlays auf dem Bildschirm angezeigt werden können. Dies änderte sich jedoch mit der Einführung des granularen Laufzeit-Berechtigungsmodells von 6.0. Benutzer müssten nun Berechtigungen für Anwendungen erteilen, wenn sie die App tatsächlich ausführen, was den durchschnittlichen Benutzer hoffentlich dazu veranlassen würde, ihre eigenen privaten Daten vor Anwendungen zu schützen, die auf verdächtige Weise scheinbar funktionsunabhängige Berechtigungen anfordern.

SYSTEM_ALERT_WINDOW unterscheidet sich jedoch von anderen Berechtigungen. Entwickler können kein Dialogfeld anzeigen, in dem sie programmgesteuert die Erteilung der Berechtigung durch den Endbenutzer anfordern können, wie bei den meisten anderen Berechtigungen für Anwendungen, die auf Marshmallow abzielen. Stattdessen müssen Sie manuell zum Einstellungsbildschirm navigieren und die Berechtigung selbst aktivieren. Natürlich helfen Ihnen einige Apps wie Facebook Messenger dabei.

Google verlangt dies von Entwicklern, da sie die Erlaubnis als "besonders sensibel" eingestuft haben.

Besondere Berechtigungen

Es gibt einige Berechtigungen, die sich nicht wie normale und gefährliche Berechtigungen verhalten. SYSTEM_ALERT_WINDOW und WRITE_SETTINGS sind besonders sensibel, daher sollten die meisten Apps sie nicht verwenden. Wenn eine App eine dieser Berechtigungen benötigt, muss sie die Berechtigung im Manifest deklarieren und eine Absicht senden, in der die Autorisierung des Benutzers angefordert wird. Das System reagiert auf die Absicht, indem es dem Benutzer einen detaillierten Verwaltungsbildschirm anzeigt.

Angesichts dessen, was wir oben über Tapjacking wissen, ist dies sinnvoll. Aber hier ist das Ding. Google folgt nicht einmal seinen eigenen Regeln. Die Screenshots von Facebook Messenger führen Sie durch den Prozess der Erteilung der Berechtigung SYSTEM_ALERT_WINDOW, die ich Ihnen oben gezeigt habe. Dies geschieht nur, wenn Sie das APK von außerhalb des Google Play Store installieren. Wenn Sie eine Anwendung aus dem Google Play Store installieren, wird die Berechtigung SYSTEM_ALERT_WINDOW automatisch erteilt.

Manifest-Datei von Facebook Messenger. Die App erhält trotz Targeting API Level 23 automatisch die Overlay-Berechtigung.


Google hat Sicherheit für Bequemlichkeit geopfert

Lange vor Android Marshmallow galt SYSTEM_ALERT_WINDOW als "gefährliche" Erlaubnis. In Android Marshmallow 6.0 wurde die Berechtigung in Signatur | System | Appop geändert. Daher mussten Entwickler den Benutzer zunächst zum Einstellungsbildschirm führen, um die Berechtigung zu erteilen. In Android-Version 6.0.1 wurde SYSTEM_ALERT_WINDOW jedoch so geändert, dass der Google Play Store die Berechtigung automatisch erteilen konnte, ohne den Benutzer zu benachrichtigen. Warum Google diese Änderung vorgenommen hat, ist uns unklar. Google selbst hat nicht bekannt gegeben, warum sie diese Änderung vorgenommen haben. Dies ist besonders merkwürdig, wenn man die Sprache für SYSTEM_ALERT_WINDOW berücksichtigt, die immer noch auf ihren Webseiten vorhanden ist.

Es ist möglich, dass sich genug Entwickler über die anfänglichen Änderungen an SYSTEM_ALERT_WINDOW ärgerten, die es erforderlich machten, dass Nutzer die von Google im Hintergrund gewährte Berechtigung manuell erteilten und sie nur einer Anwendung gaben, die sie anforderte. Dabei hat Google der Bequemlichkeit halber auf Sicherheit verzichtet . Es gibt einen Grund, warum Google selbst die Erlaubnis für die längste Zeit als gefährlich ansah, weil es so ist. Das Vorhandensein des Tapjacking-Exploits für die Marshmallow-Erlaubnis ist ein ausreichender Beweis für die inhärenten Gefahren bei der automatischen Erteilung dieser Erlaubnis für jede App.

Dieser Tapjacking-Exploit wurde erst vor kurzem gemeldet, obwohl er bereits seit vielen Monaten besteht. Bei unseren internen Tests von Geräten im Portal-Team haben wir bestätigt, dass der Exploit auf vielen modernen Geräten mit Android Marshmallow funktioniert . Hier finden Sie eine kurze Übersicht der Geräte, die wir auf den neuesten verfügbaren Softwareversionen für die jeweiligen Geräte getestet haben, und ob der Tapjacking-Exploit funktioniert oder nicht. Die mit "Vulnerable" gekennzeichneten Geräte sind anfällig für einen Tapjacking-Exploit, während die mit "Not Vulnerable" gekennzeichneten Geräte eine App erkennen können, die das Overlay anzeigt, und Sie auffordern, es zu deaktivieren, bevor Sie fortfahren.

  • Nextbit Robin - Android 6.0.1 mit June-Sicherheitspatches - anfällig
  • Moto X Pure - Android 6.0 mit Mai Sicherheitspatches - anfällig
  • Honor 8 - Android 6.0.1 mit Sicherheitspatches für Juli - anfällig
  • Motorola G4 - Android 6.0.1 mit möglicherweise vorhandenen Sicherheitspatches - anfällig
  • OnePlus 2 - Android 6.0.1 mit June-Sicherheitspatches - Nicht anfällig
  • Samsung Galaxy Note 7 - Android 6.0.1 mit Sicherheitspatches für Juli - Nicht anfällig
  • Google Nexus 6 - Android 6.0.1 mit August-Sicherheitspatches - Nicht anfällig
  • Google Nexus 6P - Android 7.0 mit August-Sicherheitspatches - Nicht anfällig

Bisher waren das alle Geräte, mit denen ich das Team zum Testen bringen konnte. Ich konnte keine Korrelation zwischen der Version des Sicherheitspatches und dem Exploit feststellen. Wie Sie unserer jüngsten Diskussion über Android-Sicherheitsupdates entnehmen können, verwenden viele Benutzer ohnehin nicht die neuesten Sicherheitspatches und sind daher möglicherweise anfällig für diesen Exploit und andere, die im Android Security Bulletin beschrieben sind.


Vorwärts bewegen

Tapjacking-Service hat die Überlagerungserlaubnis erteilt

Wir empfehlen Ihnen, diesen Exploit auf Ihrem Gerät zu testen, um festzustellen, ob Sie anfällig sind . Wir haben die APKs aus dem oben verlinkten Quellcode zusammengestellt (Sie können es auch selbst tun) und sie auf AndroidFileHost hochgeladen. Um den Exploit zu testen, müssen Sie sowohl die Tapjacking-Hauptanwendung als auch ihren Hilfsdienst installieren. Führen Sie dann einfach die Hauptanwendung aus und klicken Sie auf die Schaltfläche „Test“. Wenn ein Textfeld über dem Berechtigungsdialogfeld angezeigt wird und Sie auf "Zulassen" klicken, wird eine Liste der Kontakte Ihres Geräts angezeigt, und Ihr Gerät ist anfällig für Tapjacking. Machen Sie sich keine Sorgen, dass das schwebende Textfeld den Berechtigungsdialog nicht vollständig abdeckt. Diese Proof-of-Concept-App soll nicht perfekt demonstrieren, wie ein Berechtigungsdialog ordnungsgemäß entführt wird, sondern vielmehr beweisen, dass dies tatsächlich möglich ist.

Wir hoffen, dass ein Update eingeführt wird, das diesen Exploit auf allen Marshmallow-Geräten behebt und dass OEMs alle ihre Geräte auf den neuesten Sicherheitspatch aktualisieren. Weil es in der Realität viele Monate dauern wird, bis die meisten zugesagten Geräte Nougat erhalten, besteht die einzige Möglichkeit für die meisten Benutzer darin, entweder die neuesten Sicherheitspatches zu installieren oder die Berechtigungen für die Monitor-App selbst zu erwerben. Mit der Entscheidung von Google, die potenziell gefährliche Berechtigung SYSTEM_ALERT_WINDOW automatisch zu erteilen, führen viele Benutzer jedoch unwissentlich Apps aus, die möglicherweise ihr Telefon missbrauchen, um immer gefährlichere Berechtigungen zu erteilen.