Чи може дозвіл RECEIVE_SMS використовуватися для перехоплення SMS-повідомлень?


13

Я помітив досить багато додатків, які просили RECEIVE_SMSдозволу . Тут мені зрозумілі дві речі:

  • RECEIVE_SMS дозволяє додатку "оснащувати" вхідні SMS
  • READ_SMS просто стосується вже збережених SMS

Оскільки деякі програми просто запитували RECEIVE_SMS, але не для READ_SMSмене, мені стало цікаво: це, мабуть, означає, що RECEIVE_SMSце не тільки орієнтоване на отриману частину, але додаток також може робити все, що хоче, з отриманим повідомленням - наприклад, прочитати його, потім киньте його мовчки (так що користувач навіть не помічає, що з’явилося SMS - це може бути способом TAN Trojans діяти, щоб оснастити ідентифікатори для банківських операцій в Інтернеті).

Але чи можливо такий додаток "перехопити" повідомлення, тобто отримати його, прочитати (та обробити його вміст будь-яким способом, наприклад, переслати його іншими способами, наприклад, через IP), а потім передати його як якби нічого не сталося? Іншими словами: Чи може він таким чином шпигувати за користувачем?

Відповіді:


13

Так, можна, але лише на Android 4.3 і новіших версій. Це використовується, наприклад, у Whatsapp. Коли ви активуєте додаток, Whatsapp надсилає SMS на номер, про який ви повідомили, і додаток тихо перехоплює його та повідомляє серверам, що він отримав SMS. Ось так прив’язаний рахунок до вашого номера.

Звичайно, це можна використовувати і в шкідливих додатках. Якщо додаток реєструється як SMS-приймач з найвищим пріоритетом, програма може прослуховувати вхідні SMS-повідомлення, обробляти їх і або відхиляти їх, не помічаючи користувача, або пересилати до наступного слухача SMS з другим найвищим пріоритетом.

Це було перероблено в Android 4.4, і якщо я правильно зрозумів, лише додаток SMS за замовчуванням має доступ до всіх вхідних SMS ( SMS_DELIVER_ACTION), а інші додатки з правильними дозволами отримуватимуть лише повідомлення про вхідне повідомлення ( SMS_RECEIVED_ACTION). Окрім того, SMS_RECEIVEDціль не може бути скасована, її неможливо зупинити. Я припускаю, що в Android 4.4 це робиться для того, щоб користувач міг бачити всі вхідні SMS-повідомлення в додатку за замовчуванням.

Редагувати: Ви знайдете додаткову корисну інформацію в Блозі розробників Android . Я б тестував це далі, але мій єдиний Android-телефон наразі лише Wi-Fi, тому немає SMS: /


Дуже дякую за розуміння, онік! Не знав про ці зміни KitKat. Маючи на увазі те , чи правильно я зрозумів, що, наприклад, WhatsApp тепер також потребує READ_SMSдозволу, щоб отримати доступ до свого "коду активації" - або програми, які мають RECEIVE_SMSдозвіл, "отримують копію" зараз (за винятком програми SMS за замовчуванням, яка б " отримати оригінал ")?
Іззі

@Izzy У мене теж є питання з цього приводу. Чи побачив би користувач ці контрольні тексти прямо у своїй програмі за замовчуванням зараз? Або це була б можливість бачити "споживані" тексти, але насправді не відображатися у вашому звичайному текстовому додатку?
Cruncher

1
@Izzy Якщо я правильно зрозумів, програми, які не встановлені як додаток SMS за замовчуванням, можуть отримати доступ до постачальника лише для читання, тобто вони не потребують READ_SMSдозволу, але вони не в змозі редагувати SMS (позначити як прочитане, видалити тощо). ).
onik

1
@Cruncher Повідомлення повинні відображатися у вашому SMS-програмі за замовчуванням, оскільки лише ця програма може писати на SMSProvider, щоб видалити повідомлення.
onik

1
"Так, може". Але лише на Android 4.3 і новіших версій. Оскільки 4.4 SMS_RECEIVED - це не затримка наміру. Будь ласка, додайте цей важливий факт. Дивіться також stackoverflow.com/questions/20021492/…
Потік

10

Як стоять речі

  1. Android 4.3 і новіші версії без додатка Hangouts: будь-який додаток з дозволом SMS_RECEIVE може читати / перервати вхідне SMS (ala Whatsapp)
  2. Android 4.3 і новіших версій із Hangouts (увімкнено режим SMS): будь-яка програма з дозволом SMS_RECEIVE може читати, але не припиняти вхідне SMS
  3. Android 4.4 і новіші версії: будь-який додаток з дозволом SMS_RECEIVE може читати, але не припиняти вхідне SMS

У всіх трьох випадках READ_SMS дасть програмі дозвіл читати всі SMS-повідомлення, а не лише нові вхідні SMS-повідомлення.

Як згадував onik, в Android 4.4 дуже змінилися


1
Дякуємо, що вказали, що Hangouts може змінити свій показник для Android <4.4! Здогадаєтесь, що відповідає тому, на що вказував onik у програмі , реєструється як SMS-приймач із найвищим пріоритетом , а Hangouts робить саме це (тож жоден інший додаток не може його перевищити)?
Іззі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.