Kann die RECEIVE_SMS-Berechtigung zum Abfangen von SMS-Nachrichten verwendet werden?

13

Ich habe einige Apps bemerkt, die um die RECEIVE_SMSErlaubnis gebeten haben . Zwei Dinge sind mir hier klar:

  • RECEIVE_SMS ermöglicht es einer App, eingehende SMS zu "fangen"
  • READ_SMS Gilt nur für bereits gespeicherte SMS

Da einige der Apps nur fragten RECEIVE_SMS, aber nicht fragten , READ_SMSwurde ich neugierig: Dies scheint RECEIVE_SMSnicht nur auf den empfangenden Teil abzuzielen, sondern die App kann auch mit der empfangenen Nachricht das tun, was sie will - z. B. sie dann lesen Werfen Sie es leise weg (sodass der Benutzer nicht einmal bemerkt, dass es eine SMS gibt - so könnten TAN-Trojaner Identifikatoren für Online-Banking-Transaktionen abfangen).

Wäre es aber auch möglich, dass eine solche App die Nachricht "abfängt", dh empfängt, liest (und in irgendeiner Weise verarbeitet, z. B. auf anderem Wege weiterleitet, z. B. über IP) und dann weiterleitet als wenn nichts passiert wäre Mit anderen Worten: Kann es den Benutzer auf diese Weise ausspionieren?

Izzy
quelle

Antworten:

13

Ja, aber nur für Android 4.3 und niedriger. Dies wird zum Beispiel in WhatsApp verwendet. Wenn Sie die App aktivieren, sendet Whatsapp eine SMS an die von Ihnen gemeldete Nummer. Die App fängt sie leise ab und meldet den Servern, dass sie die SMS erhalten hat. So wird das Konto an Ihre Nummer gebunden.

Natürlich kann dies auch in schädlichen Apps verwendet werden. Wenn sich eine App als SMS-Empfänger mit der höchsten Priorität registriert, kann die App eingehende SMS abhören, verarbeiten und entweder entlassen, ohne dass der Benutzer dies bemerkt, oder an den nächsten SMS-Listener mit der zweithöchsten Priorität weiterleiten.

Dies wurde in Android 4.4 überarbeitet, und wenn ich es richtig verstanden habe, hat nur die Standard-SMS-App Zugriff auf alle eingehenden SMS ( SMS_DELIVER_ACTION), und die anderen Apps mit den richtigen Berechtigungen erhalten nur eine Benachrichtigung über die eingehende Nachricht ( SMS_RECEIVED_ACTION). Darüber hinaus ist die SMS_RECEIVEDAbsicht nicht abbrechbar, es kann nicht gestoppt werden. Ich gehe davon aus, dass dies in Android 4.4 erfolgt, damit der Benutzer alle eingehenden SMS-Nachrichten in der Standard-App sehen kann.

Bearbeiten: Weitere nützliche Informationen finden Sie im Android Developers Blog . Ich würde das weiter testen, aber mein einziges Android-Handy ist derzeit nur für WLAN, also keine SMS: /

onik
quelle
Vielen Dank für die Erkenntnisse, Onik! Wusste nichts über diese KitKat-Änderungen. Wenn diese vorhanden sind, habe ich richtig verstanden, dass z. B. WhatsApp jetzt auch die READ_SMSBerechtigung zum Zugriff auf seinen "Aktivierungscode" benötigen würde - oder Apps mit der RECEIVE_SMSBerechtigung "Kopie erhalten" jetzt ausführen (mit Ausnahme der Standard-SMS-App, die " das Original erhalten ")?
Izzy
@ Izzy Ich habe auch eine Frage dazu. Würde der Benutzer diese Steuertexte jetzt direkt in seiner Standard-App sehen? Oder wäre es eine Option, "verbrauchte" Texte zu sehen, die aber in Ihrer normalen Text-App nicht angezeigt werden?
Cruncher
1
@Izzy Wenn ich es richtig verstanden habe, können die Apps, die nicht als Standard-SMS-App festgelegt sind, auf einen Nur-Lese-Anbieter zugreifen. Dies bedeutet, dass sie keine READ_SMSBerechtigung benötigen , aber die SMS nicht bearbeiten können (als gelesen markieren, löschen usw.). ).
Onik
1
@Cruncher Die Nachrichten sollten in Ihrer Standard-SMS-App angezeigt werden, da nur diese App in den SMSProvider schreiben kann, um die Nachrichten zu löschen.
Onik
1
"Ja, kann es". Aber nur für Android 4.3 und niedriger. Seit 4.4 ist SMS_RECEIVED ein nicht abbrechbarer Intent. Bitte fügen Sie diese wichtige Tatsache hinzu. Siehe auch stackoverflow.com/questions/20021492/…
Flow
10

Stand der Dinge

  1. Android 4.3 und niedriger ohne Hangouts-App: Jede App mit SMS_RECEIVE-Berechtigung kann eine eingehende SMS lesen / abbrechen (ala WhatsApp)
  2. Android 4.3 und niedriger mit Hangouts (SMS-Modus aktiviert): Jede App mit SMS_RECEIVE-Berechtigung kann eingehende SMS lesen, aber nicht abbrechen
  3. Android 4.4 und höher: Jede App mit SMS_RECEIVE-Berechtigung kann eingehende SMS lesen, aber nicht abbrechen

In allen drei Fällen erteilt READ_SMS der App die Berechtigung, alle SMS zu lesen, nicht nur die neuen eingehenden SMS.

Wie bereits erwähnt, hat sich in Android 4.4 einiges geändert

daamitt
quelle
1
Vielen Dank für den Hinweis, dass Hangouts für Android <4.4 möglicherweise einen Unterschied bewirken! Ratet mal, dass dies dem entspricht, worauf onik mit einer App hingewiesen hat, die sich als SMS-Empfänger mit der höchsten Priorität registriert , und Hangouts genau das tut (also kann keine andere App es übertreffen)?
Izzy