Все сказанное выше лишь подтверждает тезис, озвученный в самом начале этой главы: практически все существующие сегодня вредоносные программы рассчитаны исключительно на получение прибыли за счет своих жертв.
Глава 4. Мобильные вредоносные программы
Как известно, операционные системы разрабатываются людьми, а люди склонны совершать ошибки. Так, в мобильной платформе Google на сегодняшний день обнаружено множество ошибок, некоторые из них представляют собой полноценные уязвимости и могут использоваться как для несанкционированного доступа к файловой системе смартфона, так и для распространения вредоносного ПО. Существуют и вредоносные программы для продукции корпорации Apple, способные работать в самых современных версиях iOS.
Уязвимости в Android
Самая первая уязвимость Android была обнаружена еще в октябре 2008 года в прошивке коммуникатора HTC T-Mobile G1. При просмотре веб-страниц с определенным содержимым ошибка в ПО позволяла выполнить вредоносный код, отслеживающий использование клавиатуры гаджета. Теоретически таким образом можно было реализовать кейлоггер, фиксирующий нажатия кнопок, и собирать вводимую пользователем при веб-серфинге информацию. Эта уязвимость представляла опасность только для одной-единственной модели коммуникатора, но само ее наличие наглядно показало: Android не настолько безопасная и защищенная система, как считалось ранее.
Согласно информации с сайта cvedetails.com, на март 2020 года в Android насчитывается 2565 уязвимостей, при этом число выявленных багов начало экспоненциально расти примерно с 2014 года. Не так просто оценить, сколько из перечисленных устройств вовремя получили патчи безопасности, которые закрывают уязвимости, но это явно далеко не все из них. Мало того: не все уязвимости вообще оказываются закрытыми, тем более в старых версиях, официальная поддержка которых прекращена. Проблему усугубляют производители устройств, которые зачастую не торопятся выпускать обновления. С ростом популярности Android энтузиасты и исследователи отыскивали все новые и новые ошибки в различных ее версиях.
Мобильные банковские троянцы
Одним солнечным апрельским утром мой завтрак был прерван телефонным звонком приятеля предпринимателя, занимавшегося грузовыми перевозками. Срывающимся голосом он рассказал, что с его банковского счета куда-то испарились два миллиона рублей. А служба поддержки банка развела руками, отправив приятеля писать заявление в полицию, поскольку денежные переводы были совершены с помощью мобильного приложения и подтверждены по SMS, что по всем признакам соответствует вполне легальной финансовой операции. «Ты ж программист, простонал в трубку мой приятель, посоветуй, что делать». Увы, что-либо делать было уже поздно, ибо инструментом для кражи послужил банковский троянец, обосновавшийся на смартфоне моего товарища задолго до этого инцидента. И предотвратить потерю денег было можно, лишь заранее изучив принципы работы и методы борьбы с такими вредоносными программами. Чем мы прямо сейчас и займемся.
Первенцы
Первые полноценные банковские трояны для мобильной платформы Android были обнаружены еще в 2011 году. Нет, вредоносы, способные передавать злоумышленникам входящие SMS-сообщения, в том числе содержащие mTAN-коды (коды аутентификации транзакций), существовали и до этого. Кроме того были известны троянцы, умеющие оперировать USSD-командами. Они могли перевести заданную злодеями сумму с «привязанной» к телефону банковской карты, пополнив баланс чужого мобильного телефона, или узнать остаток средств на счете. Но полноценными банкерами такие трояны, конечно же, не были, поскольку заметно уступали по функциональным возможностям своим десктопным аналогам.
Первенцы
Первые полноценные банковские трояны для мобильной платформы Android были обнаружены еще в 2011 году. Нет, вредоносы, способные передавать злоумышленникам входящие SMS-сообщения, в том числе содержащие mTAN-коды (коды аутентификации транзакций), существовали и до этого. Кроме того были известны троянцы, умеющие оперировать USSD-командами. Они могли перевести заданную злодеями сумму с «привязанной» к телефону банковской карты, пополнив баланс чужого мобильного телефона, или узнать остаток средств на счете. Но полноценными банкерами такие трояны, конечно же, не были, поскольку заметно уступали по функциональным возможностям своим десктопным аналогам.
Все изменилось с появлением Android.SpyEye. Этот троян работал в связке с вредоносом SpyEye для Windows, благодаря чему обрел способность обходить двухфакторную аутентификацию. Действовал он следующим образом. Как только пользователь зараженной Windows открывал в браузере банковский сайт, работающий на компе троян выполнял веб-инжект, встраивая в страницу кусок HTML-кода, который он подгружал из конфигурации. Поскольку инжект осуществлялся на стороне клиента, URL банковского сайта в адресной строке браузера оказывался корректным, а соединение было установлено по протоколу HTPS. Поэтому содержимое веб-страницы не вызывало у жертвы никаких подозрений.
Текст, встроенный трояном в банковский сайт, гласил, что банк внезапно изменил условия работы, и для авторизации в системе банк-клиент необходимо установить на мобильный телефон небольшое приложение размером около 30 Кбайт, скачав его по предложенной ссылке «в целях безопасности». Приложением, естественно, был мобильный трой Android.SpyEye. Эта вредоносная программа не создавала никаких значков, ее можно было отыскать только в списке работающих процессов под названием «Система». Основная задача трояна перехват всех входящих SMS-сообщений и пересылка их на управляющий сервер, адрес которого вредонос брал из XML-файла.
Рис. 9.Так выглядел один из первых мобильных банковских троянов Android.SpyEye
Когда жертва вводит логин и пароль на банковском сайте в окне браузера, Windows-троян SpyEye перехватывает и отправляет их киберпреступникам. После этого злоумышленники в любой момент могут авторизоваться с помощью этих данных в системе банк-клиент на сайте банка, однако сервер обязательно отправит владельцу счета проверочный код в SMS, который нужно ввести в специальную форму. Это сообщение будет перехвачено мобильной версией SpyEye и передано вирусописателям. Используя перехват SMS, они смогут выполнять любые операции по счету, например опустошить его подчистую.
Узким местом этой довольно сложной схемы была необходимость синхронизации работы банковского и десктопного компонентов троянской связки, однако указанную проблему вирусописателям удалось успешно решить. Несколько месяцев SpyEye наводил шорох среди пользователей банковских сервисов, пока не попал в базы всех популярных антивирусов, после чего его деятельность постепенно сошла на нет.
Как работают мобильные банкеры
Спустя какое-то время сотрудники IT-отделов банков понемногу освоили веб-программирование, и банк-клиенты окончательно перекочевали с настольных компьютеров в мобильные телефоны в виде Android-приложений. Это значительно облегчило жизнь вирусописателям: у них отпала необходимость мучиться с троянами под Windows, и они смогли наконец полностью сосредоточить свои усилия на разработке мобильных банкеров.
Как и прочие вредоносы для Android, банкеры распространялись под видом каких-либо полезных программ «универсальных видеокодеков» или проигрывателей Flash, в том числе через официальный каталог Google Play. Троянская функциональность таких приложений, естественно, не афишировалась разработчиками, и проявлялась она либо спустя какое-то время либо после загрузки очередного обновления. Так, в одном из случаев банкер раздавался в виде программы, якобы объединяющей в себе возможности банк-клиентов сразу нескольких крупных кредитных организаций. Зачем вам куча отдельных приложений, когда вместо них можно скачать одно, с трояном? Также известны случаи, когда вредоносы встраивались в подлинные приложения некоторых банков, модифицированные злоумышленниками. Такие приложения распространялись с поддельных банковских страниц, оформленных в точности как настоящие, а жертв на них завлекали рассылками рекламных писем.
Еще один вектор распространения мобильных банковских троянов фишинговые SMS-рассылки. Обычно это происходит так. Пользователю, зарегистрированному на одном из сайтов бесплатных объявлений, приходит SMS-сообщение с предложением обмена. При этом получателя называют по имени, что должно усыпить его бдительность, вирусописатели предварительно обработали базу пользователей этого сайта, вытянув оттуда всю полезную информацию. При переходе по короткой ссылке из сообщения потенциальная жертва направляется на промежуточную страницу, где определяется, что пользователь зашел на сайт именно с мобильного устройства под управлением Android, и выявляется его мобильный оператор, после чего происходит перенаправление на поддельную страницу с сообщением о поступлении MMS, оформленную в стилистике соответствующего оператора сотовой связи. После нажатия на кнопку начинается загрузка трояна.
Рис. 10.Пример мошеннической рассылки, SMS-рассылки, цель которой распространение банковского троянца
Первые мобильные банкеры работали очень просто. Если для функционирования вредоноса были нужны права администратора, он настойчиво демонстрировал на экране окно с требованием выдать ему соответствующие полномочия, до тех пор, пока измученный пользователь не согласится на это действие. Но иногда вирусописатели шли на различные ухищрения, чтобы обмануть потенциальную жертву. Например, банкер Android. BankBot.29 маскировал окно запроса прав администратора под сообщение приложения Google Play: «Ваша версия устарела, использовать новую версию?» При попытке пользователя нажать на экранную кнопку «Да» layout трояна исчезал, и тап попадал на кнопку Accept диалогового окна DeviceAdmin, в результате чего вредонос получал администраторские привилегии.
Рис. 11.Мобильные банкеры могут рисовать поддельные окна авторизации популярных банков
Еще один банкер доставал пользователей запросом на включение режима Accessibility Service специальных возможностей для людей с ограничениями по здоровью. А получив такое разрешение, сам включал для себя администраторские привилегии. После этого троян просто сидит в памяти мобильного телефона, ожидая запуска мобильного банковского приложения. При наступлении этого события он определяет, какое именно приложение запущено, и рисует поверх него соответствующую поддельную форму ввода логина и пароля, а введенные данные тут же пересылаются на управляющий сервер по HTP в виде JSON или на заданный телефонный номер SMS-сообщением. Конфигурация мобильного банкера может содержать HTML-код нескольких десятков форм с различным оформлением, копирующим интерфейс приложений наиболее популярных банков. После этого остается только перехватить и отправить в том же направлении SMS с одноразовыми паролями, чтобы предоставить киберпреступникам полный доступ к банковскому счету. Входящие сообщения от банков при этом обычно скрываются, чтобы не вызывать у жертвы подозрений.