Android-Betriebssystem: Schädliche Apps können Berechtigungen stehlen

Das auf Berechtigungen basierende Sicherheitssystem von Android ist eine elegante Idee. Informieren Sie uns darüber, welche Telefonfunktionen - Berechtigungen - eine Drittanbieter-App benötigt, bevor die Software installiert wird, und die Möglichkeit, den Ladevorgang zu stoppen, wenn uns die von der neuen App vorgeschlagenen Berechtigungen nicht gefallen.

Aber...

Was ist, wenn der Android-Berechtigungsprozess fehlerhaft ist? So sehr, dass eine nicht vertrauenswürdige Anwendung SMS-Nachrichten senden, Gespräche aufzeichnen oder Daten vom Smartphone löschen kann - alles ohne Zustimmung oder Wissen des Benutzers.

William Francis - TechRepublic-Mitautor - und ich flirteten mit der Idee im Berechtigungssystem von Android: Funktioniert das wirklich? William baute eine Demonstrations-App für Android Market, die das GPS eines Telefons verwenden konnte, obwohl die App keine Berechtigung hatte.

Kürzlich wurde unser Verdacht von Professor Xuxian Jiang bestätigt - einem produktiven Android-Bug-Jäger und meinem Berater für schlechte Apps: Vermeiden Sie sie. Er und Mitglieder seines Forschungsteams im US-Bundesstaat North Carolina, Michael Grace, Yajin Zhou und Zhi Wang, diskutierten das gleiche Problem in ihrem Artikel "Systematische Erkennung von Fähigkeitslecks in Standard-Android-Smartphones".

Wie Berechtigungen funktionieren

Mein Verständnis der Android-Berechtigungen ist etwas verschwommen - keine gute Idee, da es mein Artikel ist. Also bat ich William um Hilfe.

Kassner : Können Sie erklären, wie Berechtigungen funktionieren, also verstehe auch ich? Francis : Zunächst müssen Sie verstehen, wie das Interprozess-Kommunikationsmodell (IPC) unter Android funktioniert. Hier ist ein Beispiel.

Angenommen, ich habe eine App geschrieben, um PDF-Dateien auf dem Telefon anzuzeigen. Ich möchte nicht, dass jemand meine App jedes Mal öffnet, wenn er ein PDF anzeigen möchte. Also lege ich eine öffentliche Absicht offen, die die App benennt. Auf diese Weise müssen Entwickler keinen Code einfügen, um PDF-Dateien in ihre Apps zu öffnen. Sie scannen einfach das Telefon nach meiner App, um sicherzustellen, dass sie installiert ist, rufen die richtige Absicht auf und senden schließlich eine Anfrage zum Öffnen der PDF.

Was ist, wenn ich anstelle einer App für PDF-Dateien eine schreibe, die das GPS des Telefons verwendet? Und ich stelle die GPS-Funktion über eine öffentliche Absicht auf die gleiche Weise wie meine PDF-App zur Verfügung. Das Ergebnis wäre das gleiche; Andere Apps können die GPS-Funktion erreichen.

So habe ich die GPS-Funktion in unserem Artikel ausgenutzt. Das Power-Widget hatte die öffentliche Absicht, die GPS-Funktion zu steuern. Meine App hatte keine Erlaubnis. Also habe ich die exponierte Oberfläche im Power-Widget genutzt und das GPS im Namen meiner App umgeschaltet.

In diesem speziellen Fall war dies das schlechteste Szenario für den Endbenutzer, da das Power-Widget im schreibgeschützten Speicher (ROM) des Telefons vorinstalliert war. Dies bedeutet, dass Google oder der Gerätehersteller zugestimmt haben, dass das Power-Widget das GPS umschaltet. Da es im ROM installiert wurde, wusste der Benutzer weder, dass das Leck vorhanden ist, noch hatte er die Wahl, es zu entfernen.

Vorinstallierte Apps

Erinnern Sie sich, wie Williams App einer vorinstallierten Anwendung Berechtigungen gestohlen hat? Derzeit bin ich mir nicht sicher, ob einer von uns die Bedeutung der Nutzung einer vorinstallierten App verstanden hat. Aber wir tun es jetzt.

Vorinstallierte Apps als Teil des "inneren Entwicklungskreises" werden als vertrauenswürdig eingestuft und erhalten mehr Rechte. Der folgende Screenshot zeigt Berechtigungen an, die einer vorinstallierten Anwendung automatisch erteilt werden:

Wenn die vorinstallierte App mit diesen Berechtigungen wie von William beschrieben funktioniert, kann eine böswillige Drittanbieter-App eine der oben genannten Berechtigungen aufrufen. Und es gibt eine Menge zur Auswahl.

Diejenigen in den digitalen Ödländern verstehen die Auswirkungen, daher konzentriert sich das Forschungsteam auf vorinstallierte Anwendungen.

Fähigkeitslecks

Das Forschungsteam nannte, worüber wir gesprochen haben. Sie nennen es ein "Fähigkeitsleck". Der Forscher unterteilt die Fähigkeitslecks weiter in:

  • Explizit : Ermöglicht einer App den Zugriff auf bestimmte Berechtigungen, indem öffentlich zugängliche Schnittstellen oder Dienste ausgenutzt werden, ohne die Berechtigungen selbst anzufordern.
  • Implizit : Ermöglicht den Zugriff auf bestimmte Berechtigungen, indem einer App gestattet wird, Berechtigungen von einer anderen App mit demselben Signaturschlüssel (vermutlich vom selben Autor) zu erwerben oder zu "erben".

Bisher haben wir uns nur mit "expliziten Fähigkeitslecks" befasst. Ich wollte den Unterschied sicherstellen, also fragte ich Dr. Jiang.

Kassner : Würden Sie bitte erklären, wie sich die beiden Arten von Lecks unterscheiden? Jiang : Sicher! Die explizite Version setzt einen Dienst einer (nicht vertrauenswürdigen) App aus, sodass eine gefährliche Operation ausgeführt werden kann, ohne die entsprechende Erlaubnis einzuholen.

Mit der impliziten App kann eine App die Berechtigung von einer anderen App erben, die mit demselben Entwicklerzertifikat signiert ist. Mit anderen Worten, die implizite umfasst zwei Apps desselben Entwicklers. Der explizite hat diese Anforderung nicht.

Kassner : Ich war neugierig, welche Vorteile ein Leck aus der Sicht eines Bösen gegenüber dem anderen hat. Francis : Als Angriffsvektor hat jedes Fähigkeitsleck seinen Platz. Hier sind einige Vor- und Nachteile von jedem:

Explizite Fähigkeitsleckvorteile:

  • Ihre App muss niemals nach der Erlaubnis fragen, die Sie ausnutzen möchten.
  • Wenn die von Ihnen ausgenutzte Schnittstelle im ROM vorhanden ist, kann der Benutzer die Sicherheitslücke nicht einfach beseitigen.
  • Wenn die von Ihnen ausgenutzte Schnittstelle in der Basisversion von Android enthalten war, besteht die Lücke wahrscheinlich auf jedem Gerät, auf dem diese Version des Betriebssystems ausgeführt wird.

Explizite Nachteile von Fähigkeitslecks:

  • Sie müssen die exponierten Absichten in anderen Apps finden, um sozusagen Ihren "Fuß in die Tür" zu bekommen.
  • Sie steuern nicht, wann die "Tür" geschlossen wird oder ob eine neuere Version der Komponente, die Sie ausnutzen, das Verhalten Ihres Exploits vollständig ändert.

Implizite Vorteile von Fähigkeitslecks:

  • Sie wissen genau, wie Sie die exponierte Absicht aufrufen, um die gesuchte Berechtigung auszunutzen (da Sie beide Apps geschrieben haben).
  • Da der Angriff ausschließlich auf Ihrer Software beruht, können Sie ihn möglicherweise auf jeder Android-Version ausführen, sofern Sie den Benutzer dazu bringen, Ihre Apps zu installieren.

Implizite Nachteile von Fähigkeitslecks:

  • Mehrere Ihrer Apps müssen sich gleichzeitig auf demselben Gerät befinden.
  • Sie müssen den Benutzer dazu bringen, mindestens einer Ihrer Apps mit der Berechtigung zuzustimmen, die Sie nutzen möchten.
  • Benutzer können diese Art von Sicherheitsanfälligkeit fast immer einfach stoppen, indem sie einfach eine oder mehrere Ihrer Komponenten deinstallieren.

Specht

Das Team von Dr. Jiang hat beschlossen, den Prozess der Suche nach Anwendungen zu automatisieren, mit denen eine andere App erteilte Berechtigungen verwenden kann. Ich habe vergessen zu fragen warum, aber das Team hat das Werkzeug genannt - Specht:

"Woodpecker analysiert systematisch jede App am Telefon, um die Erreichbarkeit einer gefährlichen Erlaubnis über eine öffentliche, unbewachte Oberfläche zu untersuchen."

Kassner : Mir war etwas in der Definition nicht klar. Also fragte ich Dr. Jiang; Was bedeutet "Erreichbarkeit einer gefährlichen Erlaubnis von einer öffentlichen, unbewachten Schnittstelle"? Jiang : Woodpecker analysiert jede vorinstallierte App und prüft, ob sie über die Berechtigung (oder Fähigkeit) verfügt, bestimmte "gefährliche" Vorgänge in Android auszuführen (z. B. Senden einer SMS-Nachricht oder Löschen einer App).

Wenn eine solche vorinstallierte App identifiziert wird, überprüft Woodpecker, ob die App einen Dienst definiert, der nicht "geschützt" ist und von jeder nicht vertrauenswürdigen App frei aufgerufen werden kann, um den "durchgesickerten" gefährlichen Vorgang auszuführen. In diesem Fall wird davon ausgegangen, dass die Erlaubnis zur Ausübung des gefährlichen Vorgangs von der vorinstallierten App auf eine nicht vertrauenswürdige App übertragen wird.

Kassner: Noch eine Frage, Dr. Jiang. Wie unterscheidet Woodpecker zwischen expliziten und impliziten Fähigkeitslecks? Jiang: Beim Erkennen expliziter Funktionslecks konzentrieren wir uns auf diejenigen Apps, die Berechtigungen von Interesse für ihre Manifestdateien anfordern. Wenn eine App eine sharedUserId in ihrem Manifest hat, aber keine bestimmte (gefährliche) Berechtigung anfordert, müssen wir auch die Möglichkeit eines impliziten Funktionsverlusts untersuchen.

Um implizite Fähigkeitslecks zu erkennen, verwenden wir einen ähnlichen Algorithmus, jedoch mit Änderungen, die einen grundlegenden Unterschied im Fokus widerspiegeln. Insbesondere setzt die explizite Erkennung von Funktionslecks voraus, dass der Aufrufer der exponierten API einer App böswillig ist, während die implizite Erkennung von Funktionslecks davon ausgeht, dass die App selbst möglicherweise böswillig ist.

Anstatt nur von den genau definierten Einstiegspunkten in der expliziten Lecksuche auszugehen, muss die Suche daher um die Initialisierung der App erweitert werden.

Berechtigungen geprüft

Dr. Jiang erwähnte "Berechtigungen von Interesse". Das Folgende ist die Liste, auf die er sich bezog:

  • Zugang zu grobem Standort : Nicht-GPS-Radio
  • Greifen Sie auf einen guten Standort zu: GPS
  • Telefon anrufen : Telefonanruf einleiten (keine Benutzerbestätigung)
  • Anrufprivilegiert : Wie Telefon anrufen, jedoch Notrufnummern
  • Kamera : Zugriff auf das Kameragerät
  • Pakete löschen: Apps entfernen
  • Pakete installieren: Apps installieren
  • Master löschen : Benutzerdaten entfernen (Werksreset)
  • Telefonstatus lesen : Telefonidentifikationsinformationen (IMEI) lesen
  • Neustart : Starten Sie das Gerät neu
  • Audio aufnehmen : Auf Mikrofone zugreifen
  • SMS senden: Senden Sie SMS-Nachrichten
  • Herunterfahren : Schalten Sie das Gerät aus

Wie Sie sehen, wäre der Zugriff auf eine dieser Funktionen für diejenigen von Vorteil, die digitalen Schaden anrichten möchten.

Testergebnisse

Tabelle 2 enthält Informationen zum Anbieter, zum Telefonmodell, zur Android-Version und zur Anzahl der installierten Apps, die auf jedem Telefonmodell getestet wurden:

Tabelle 3 zeigt das Telefonmodell, die getesteten Berechtigungen und die Ergebnisse der expliziten und impliziten Dichtheitsprüfung:

Folgendes sagte das Papier zu den Testergebnissen:

"Wir glauben, dass diese Ergebnisse zeigen, dass Funktionslecks für viele Android-Smartphones auf dem heutigen Markt eine spürbare Sicherheitslücke darstellen. Insbesondere bei Smartphones mit vorinstallierten Apps ist die Wahrscheinlichkeit expliziter Funktionslecks höher."

Das Forschungsteam benachrichtigte auch die betroffenen Telefonanbieter:

"Zum jetzigen Zeitpunkt haben Motorola und Google die gemeldeten Sicherheitslücken in den betroffenen Telefonen bestätigt. HTC und Samsung haben nur langsam auf unsere Berichte / Anfragen reagiert.

Obwohl die aufgedeckten Funktionslecks auf den HTC- und Samsung-Handys nicht von ihren jeweiligen Anbietern bestätigt wurden, haben wir eine Test-App entwickelt, um alle entdeckten (expliziten) Funktionslecks auf den betroffenen Handys auszuüben und zu bestätigen. "

Ich wollte erwähnen, dass das Forschungsteam ein Video erstellt hat, das ihre Fähigkeitsleckforschung demonstriert.

Mögliche Lösungen

Immer an möglichen Lösungen interessiert, stellte ich Dr. Jiang noch ein paar Fragen.

Kassner : Ich sehe, dass "implizite Lecks" durch eine bessere Überprüfung im Android Market behoben werden. Ich sehe keinen Weg, um das von Ihnen entdeckte Problem "explizites Leck" zu lösen. Hast du eine Idee? Jiang : Einverstanden. Der beste Weg, um die expliziten Lecks zu beheben, ist von den Anbietern (z. B. durch Veröffentlichung eines Patches). Um ehrlich zu sein, sehe ich keine gute Möglichkeit für Benutzer, sich selbst zu schützen, außer nicht vertrauenswürdige Apps herunterzuladen und zu installieren ... Kassner : William Francis und ich haben die Ergebnisse des Forschungsteams diskutiert. William hatte folgendes zu sagen:

"Ich kenne die iOS-Plattform nicht so gut, aber ich verstehe, dass die beiden Apps nicht direkt kommunizieren können, wenn ich eine Datei zwischen meiner und Ihrer App teilen möchte. Ich muss die Datei exportieren (ich spreche etwa im Code, nicht etwas, was der Benutzer tun muss) in einem gemeinsamen Bereich.

Dann stellt iOS die API bereit, damit eine andere App hinterher kommt und die Datei importiert, damit sie angezeigt werden kann. Das Ergebnis ist, dass App 1 niemals direkt mit App 2 kommuniziert, wie dies auf der Android-Plattform der Fall ist. Der Vorteil besteht darin, dass Apple bei jeder Anfrage die Finger bekommt und einige Sicherheitsüberprüfungen auf Sicherheits-Exploits durchführen kann. "

Ist das etwas, das Android berücksichtigen sollte?

Jiang : Das glaube ich nicht. Der Grund ist, dass es nicht mit dem offenen Prinzip hinter dem Android-Design übereinstimmt.

Williams Gedanken

Ich fragte William, was er tun könne, um die beiden Lecks zu beheben. Ich habe William 'Meinung zu expliziten Fähigkeitslecks früher verwendet. Er machte einen Vergleich mit iOS. In Bezug auf das implizite Fähigkeitsleck gab er einige interessante Ratschläge:

"Implizite Funktionslecks sind nicht so besorgniserregend. Wenn dies der Fall wäre, könnte Google das Problem leicht beheben, indem das Code-Signaturverfahren vom Entwickler auf die App geändert wird.

Das heißt, als Entwickler erhalte ich eine "digitale Signatur" und wende sie auf alle meine Apps an. Daher teilen sich alle diese Apps eine Reihe von Berechtigungen. Wenn Google von mir verlangt, für jede App einen neuen digitalen Fingerabdruck zu erstellen, verfügt jede meiner Apps über eine eigene Signatur und isolierte Berechtigungen. "

Abschließende Gedanken

Fähigkeitslecks können extrem schädlich sein. Wie bei den meisten digitalen Technologien sollten Sie jedoch sicher sein, dass Sie über die Möglichkeiten informiert sind und bei der Installation von Apps von Drittanbietern Vorsicht walten lassen.

Vielen Dank an Dr. Jiang und das Forschungsteam für die Aufklärung einer großen Schwäche von Android. Und danke, William, dass Sie das Innenleben der Android-Berechtigungen erklärt haben.

© Copyright 2021 | mobilegn.com