Bestimmte Marshmallow-Geräte sind anfällig für Tapjacking, bei dem eine App Text über einen Berechtigungsdialog einblendet, um den Benutzer auszutricksen.
Während viele von uns über das neu veröffentlichte Android Nougat für Nexus-Geräte sabbern, nutzt die überwiegende Mehrheit der Benutzer immer noch Android Marshmallow. Ein Exploit, dessen Existenz seitdem dokumentiert ist Zumindest Mitte 2015 betrifft immer noch viele moderne Android-Geräte.
Schädliche Anwendungen sind dazu in der Lage Tapjack Ihre Handlungen in ihnen eine Erlaubnis erteilen, die Sie nie ausdrücklich erteilt haben. So funktioniert der Exploit.
Die Rückkehr des Tapjackings
Stellen Sie sich vor, Sie öffnen Instagram und versuchen, ein Foto zu teilen, das Sie kürzlich im Urlaub aufgenommen haben. Wenn Sie Ihre Galerie nach einem Bild durchsuchen möchten, werden Sie von Instagram aufgefordert, ihm die Erlaubnis 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 ein aktives Bildschirm-Overlay aktiviert haben – in In diesem Fall eine der vielen Anwendungen, die Ihren Bildschirm tönen, sodass Sie Ihr Telefon nachts verwenden können, ohne zu blenden selbst. Dies ist ein Fall des Android-Berechtigungssystems
funktioniert wie vorgesehen: Um einer Anwendung eine vertrauliche Berechtigung zu erteilen, müssen Sie alle Bildschirm-Overlays auf Ihrem Gerät deaktivieren.Anwendungen, die über Ihren Bildschirm zeichnen können, könnten Sie möglicherweise dazu verleiten, vertrauliche Daten einzugeben. Beispielsweise könnte ein Bildschirm-Overlay eine gefälschte Passworteingabe über einem echten Anmeldebildschirm platzieren, um Ihre Passwörter zu sammeln. Ein solcher Exploit wird aufgerufen 'Tapjacking' und ist im Laufe der Jahre auf verschiedenen Android-Versionen aufgetaucht und gepatcht worden eines der schlechtesten Beispiele, das bis Android 4.0.3 andauerte. Aber vor kurzem kehrte der Exploit mit zurück Das Laufzeitberechtigungsmodell von Android Marshmallow.
Ein Entwickler namens Iwo Banaś erstellt eine Anwendung Demonstration des Exploits. Die Funktionsweise ist ziemlich einfach: Wenn eine Anwendung einen Berechtigungsdialog anzeigt, ist die schädliche Anwendung Das von Ihnen installierte System zeigt eine Systemüberlagerung an, um den Textblock des Berechtigungsdialogs mit dem darin enthaltenen Text zu überdecken will. Ein unwissender Benutzer, der im Berechtigungsdialogfeld auf „Zulassen“ klickt, wird dazu verleitet, eine Berechtigung zu erteilen, um die er gebeten wurde – die Anforderung wurde dem Benutzer jedoch nicht angezeigt. Ein solcher Exploit macht den Zweck des Berechtigungssystems von Android Marshmallow seit der Einführung völlig zunichte Das neue Modell sollte sicherstellen, dass Benutzer nur Berechtigungen erhalten, denen sie ausdrücklich zugestimmt haben.
Jetzt weiß ich, woran Sie denken. Wenn Android ein System-Overlay erkennen und mich daran hindern würde, Instagram-Speicherberechtigungen zu erteilen, würde es diesen Exploit dann nicht verhindern? Die Antwort ist nein, in meinen Tests scheint es so zu sein, dass auf 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, weil er beruht darauf, dass der Benutzer eine sekundäre Schadanwendung installiert, die auf API-Level 22 und darunter abzielt (vor Marshmallow). Dies liegt daran, dass vor Android Marshmallow allen Anwendungen während der Installation Berechtigungen erteilt wurden.
Okay, wenn Sie Marshmallow verwenden, müssen Sie doch nur die Installation von Apps vermeiden, denen Sie nicht vertrauen und die die Erlaubnis zum Zeichnen eines Overlays anfordern, oder? Wenn das Berechtigungsmodell von Android wie ursprünglich geplant funktionieren würde, hätten Sie Recht. Aber seit der Entdeckung dieses Exploits, sogar Apps, die auf API-Level 23 abzielen (Marshmallow), die die Overlay-Erlaubnis anfordern, stellen ein potenzielles Risiko dar.
Eine Lücke im Berechtigungsmodell?
Wenn Sie einer der vielen Millionen Menschen sind, die Facebook Messenger zum Chatten mit Ihren Freunden nutzen, Dann sind Sie auf eine der besten Funktionen von Android gestoßen – die Möglichkeit für Apps, übereinander zu zeichnen Bildschirme. Wie cool ist es, dass Sie eine Blase mit Ihrem Lieblings-Facebook-Gruppenchat haben können, in der Sie dem Benutzer über jede von ihm geöffnete Anwendung folgen können? Obwohl Facebooks Messenger die Idee der „Floating Apps“ in den Mainstream brachte, existiert das Konzept schon seit einiger Zeit in Android. Dank der Existenz von können Anwendungen seit einiger Zeit Overlays über Ihren Apps erstellen TYPE_SYSTEM_OVERLAY im WindowManager von Android.
Vor Android Marshmallow mussten Anwendungen eine sogenannte Berechtigung anfordern SYSTEM_ALERT_WINDOW während der Installation, bevor Overlays oben auf Ihrem Bildschirm angezeigt werden konnten. Dies änderte sich jedoch mit der Einführung des granularen Laufzeitberechtigungsmodells von 6.0. Benutzer müssten nun Anwendungen Berechtigungen erteilen, wenn sie die App tatsächlich ausführen, was hoffentlich den Durchschnitt ankurbeln würde Benutzer dazu anzuhalten, ihre eigenen privaten Daten vor Anwendungen zu schützen, die verdächtige Anfragen stellen, die scheinbar keinen funktionalen Zusammenhang haben Berechtigungen.
SYSTEM_ALERT_WINDOW unterscheidet sich jedoch von anderen Berechtigungen. Entwickler können keinen Dialog anzeigen, um programmgesteuert die Erteilung der Berechtigung durch den Endbenutzer anzufordern, wie dies bei den meisten anderen Berechtigungen für Apps für Marshmallow der Fall ist. Stattdessen müssen Sie manuell zum Einstellungsbildschirm navigieren und die Berechtigung selbst aktivieren. Natürlich helfen Ihnen einige Apps wie Facebook Messenger bei diesem Vorgang.
Google verlangt dies von Entwicklern, da sie die Erlaubnis als „besonders empfindlich."
Sonderberechtigungen
Es gibt einige Berechtigungen, die sich nicht wie normale und gefährliche Berechtigungen verhalten. SYSTEM_ALERT_WINDOW und WRITE_SETTINGS sind besonders empfindlich, 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, die die Autorisierung des Benutzers anfordert. Das System reagiert auf die Absicht, indem es dem Benutzer einen detaillierten Verwaltungsbildschirm anzeigt.
Angesichts dessen, was wir oben über Tapjacking wissen, macht dies Sinn. Aber hier ist die Sache. Google befolgt nicht einmal seine eigenen Regeln. Die Screenshots von Facebook Messenger, die Sie durch den Prozess der Erteilung der SYSTEM_ALERT_WINDOW-Berechtigung führen, die ich Ihnen oben gezeigt habe? Das passiert nur, wenn Sie die APK von außerhalb des Google Play Store installieren. Wenn Sie eine Anwendung aus dem Google Play Store installieren, wird die Die SYSTEM_ALERT_WINDOW-Berechtigung wird automatisch erteilt.
Google hat die Sicherheit zugunsten der Bequemlichkeit geopfert
Lange Zeit vor Android Marshmallow galt SYSTEM_ALERT_WINDOW als „gefährlich" Erlaubnis. Mit Android Marshmallow 6.0 wurde die Berechtigung geändert Signatur|System|Appop Aus diesem Grund mussten die Entwickler den Benutzer zunächst zum Einstellungsbildschirm führen, um die Berechtigung zu erteilen. Aber mit Android-Version 6.0.1, SYSTEM_ALERT_WINDOW wurde geändert damit der Google Play Store könnte automatisch die Erlaubnis erteilenohne den Benutzer zu benachrichtigen. Warum Google diese Änderung vorgenommen hat, ist uns unklar. Google selbst hat nicht erklärt, warum sie diese Änderung vorgenommen haben, was besonders seltsam ist, wenn man die Sprache über SYSTEM_ALERT_WINDOW bedenkt, die immer noch auf ihren Webseiten vorhanden ist.
Es ist möglich dass genug Entwickler waren verärgert durch die anfänglichen Änderungen an SYSTEM_ALERT_WINDOW, die von Benutzern verlangten, manuell die Berechtigung zu erteilen, die Google stillschweigend nachgab und sie einfach jeder Anwendung gewährte, die sie anforderte. Aber dabei hat Google es geschafft Sicherheit zugunsten der Bequemlichkeit geopfert. Nicht umsonst hielt Google selbst die Erlaubnis lange Zeit für gefährlich, denn das ist sie auch. Und die Existenz des Marshmallow-Permission-Tapjacking-Exploits ist ein ausreichender Beweis für die Gefahren, die mit der automatischen Erteilung dieser Berechtigung an jede App verbunden sind.
Dieser Tapjacking-Exploit wurde uns erst kürzlich zur Kenntnis gebracht, obwohl er schon seit vielen Monaten existiert. Bei unseren internen Gerätetests im XDA-Portal-Team haben wir dies bestätigt Der Exploit funktioniert auf vielen modernen Geräten mit Android Marshmallow. Hier finden Sie einen kurzen Überblick über die Geräte, die wir mit den neuesten verfügbaren Softwareversionen für das jeweilige Gerät getestet haben, und darüber, ob der Tapjacking-Exploit funktioniert oder nicht. Die mit „Vulnerabel“ gekennzeichneten Geräte sind anfällig für Tapjacking-Exploits, während die mit „Nicht“ gekennzeichneten Geräte anfällig für einen Tapjacking-Exploit sind „Anfällig“ können eine App erkennen, die das Overlay anzeigt, und Sie auffordern, es vorher zu deaktivieren auch weiterhin.
- Nextbit Robin – Android 6.0.1 mit Juni-Sicherheitspatches – Verletzlich
- Moto X Pure – Android 6.0 mit Mai-Sicherheitspatches – Verletzlich
- Honor 8 – Android 6.0.1 mit Juli-Sicherheitspatches – Verletzlich
- Motorola G4 – Android 6.0.1 mit Mai-Sicherheitspatches – Verletzlich
- OnePlus 2 – Android 6.0.1 mit Juni-Sicherheitspatches – Nicht verletzlich
- Samsung Galaxy Note 7 – Android 6.0.1 mit Juli-Sicherheitspatches – Nicht verletzlich
- Google Nexus 6 – Android 6.0.1 mit August-Sicherheitspatches – Nicht verletzlich
- Google Nexus 6P – Android 7.0 mit August-Sicherheitspatches – Nicht verletzlich
Das sind bisher alle Geräte, die ich dem Team zum Testen überlassen konnte. Ich konnte keinen Zusammenhang zwischen der Version des Sicherheitspatches und dem Exploit feststellen. Wie Sie an unserem sehen können Aktuelle Diskussion zu Android-SicherheitsupdatesViele Benutzer verfügen ohnehin nicht über die neuesten Sicherheitspatches und sind daher möglicherweise anfällig für diesen und andere darin beschriebene Exploits Android-Sicherheitsbulletin.
Vorwärts gehen
Wir empfehlen Ihnen dringend, diesen Exploit auf Ihrem Gerät selbst zu testen, um festzustellen, ob Sie angreifbar sind. Wir haben die APKs aus dem zusammengestellt Quellcode oben verlinkt (Sie können es auch selbst machen) und sie auf AndroidFileHost hochgeladen haben. Um den Exploit zu testen, müssen Sie beide installieren Haupt-Tapjacking-Anwendung sowie seine Hilfsdienst. Führen Sie dann einfach die Hauptanwendung aus und klicken Sie auf die Schaltfläche „Testen“. Wenn über dem Berechtigungsdialog ein Textfeld angezeigt wird und wenn Sie auf „Zulassen“ klicken, eine Liste der Kontakte Ihres Geräts angezeigt wird, ist Ihr Gerät anfällig für Tapjacking. Machen Sie sich keine Sorgen, dass das schwebende Textfeld den Berechtigungsdialog nicht vollständig abdeckt. Dies ist bei dieser Proof-of-Concept-App nicht der Fall soll perfekt demonstrieren, wie man einen Berechtigungsdialog geschickt kapert, sondern vielmehr beweisen, dass dies tatsächlich der Fall ist möglich.
Wir hoffen, dass ein Fix eingeführt wird, der diesen Exploit auf allen Marshmallow-Geräten behebt, und dass OEMs alle ihre Geräte auf den neuesten Sicherheitspatch aktualisieren. Denn die Realität ist, dass es viele Monate dauern wird, bis die meisten zugesagten Geräte Nougat erhalten, also für die meisten der einzige Weg Um sich vor Gefahren zu schützen, müssen Benutzer entweder die neuesten Sicherheitspatches installieren oder Überwachungs-App-Berechtigungen übernehmen sich. Aber mit der Entscheidung von Google, die potenziell gefährliche SYSTEM_ALERT_WINDOW-Berechtigung automatisch zu erteilen, haben viele Benutzer führen unwissentlich Apps aus, die potenziell ihre Telefone kapern könnten, um sie immer gefährlicher zu machen Berechtigungen.