Только представь: у всех жителей средней полосы осень, а ты тусуешься на морях, солнце лениво замерло в зените, ты лежишь на жемчужном пляже одного из Мальдивских островов, любуешься окружающими пейзажами и проходящими девушками в бикини, потягивая коктейль… А много позже, вечером, ты обнаруживаешь, что на счете твоей пластиковой карточки пусто! Как же так? Мобильный банк с информированием подключен, все операции вроде бы подтверждаются по СМС… Примерно такие вопросы стали недавно задавать вслух клиенты одного крупного банка с зеленым логотипом.

WARNING

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
 

Вместо эпиграфа

Как ты уже понял, речь сегодня пойдет о махинациях с мобильным банком, а в частности — о неоднозначной работе с СМС в Андроиде. Хочу сразу предупредить: представленный материал не является чем-то приватным (пример работы с СМС вполне доступен в официальном SDK от Google), никаких 0day-эксплоитов ты здесь не найдешь, более того, я даже не утверждаю, что все происходит (или происходило) именно так, как описано. Считай, что все события вымышлены, а совпадения случайны. Итак, в одной очень далекой галактике…

 

Получение СМС

…у нас есть смартфон с Android на борту (без root’а) и мы хотим написать приложение, контролирующее работу с короткими текстовыми сообщениями. А именно — попробуем скрытно что-нибудь получить.

Когда устройство принимает сообщение, срабатывает широковещательное намерение со стандартным действием android.provider.Telephony.SMS_RECEIVED. И вот первая странность — данное действие не указано в SDK в виде константы, то есть этот строковый литерал нужно прописывать в коде явно:

public static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

Для приложений, отслеживающих намерения, связанные с получением СМС, необходимо запросить разрешение в манифесте проекта:

<uses-permission
  android:name="android.permission.RECEIVE_SMS"
/>

При установке такого приложения пользователь увидит запрос, приведенный на рис. 1. Казалось бы, черным по белому написано, что приложение хочет принимать/отправлять СМС… Но, как показывает практика социальной инженерии, большой процент пользователей нажмет «Установить» не глядя, совершенно не задумываясь, зачем, например, «Критическому обновлению системы Andoid / Браузеру / Adobe Flash / Банковскому ПО…», взявшемуся непонятно откуда (!), нужно получать текстовые сообщения.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


Комментарии

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

Безопасность превыше всего. 9 простых трюков, которые сделают жизнь линуксоида секьюрнее

Жизнь обычных людей складывается из мелочей. Жизнь линуксоида складывается из множества ма…