Внимание! Существуют люди, которые запрещают заниматься подобным и постараются вас
наказать. Другие люди будут вас порицать. Третьи — завидовать. Нижеизложенная
информация приводится исключительно для личного обогащения.
Основные принципы работы
наказать. Другие люди будут вас порицать. Третьи — завидовать. Нижеизложенная
информация приводится исключительно для личного обогащения.
Основные принципы работы
Боты для Android не используют уязвимости системы, а работают по принципу введения юзера в заблуждение. При установке они запрашивают необходимые им права - но при этом могут показывать сообщение, что если права не будут предоставлены, система будет работать нестабильно. Аналогично и с удалением - бот может пугать юзера тем, что его удаление нарушит работу системы. К тому же, права запрашиваются до тех пор, пока юзер не подтвердит запрос, так что отказаться фактически невозможно. Если же юзер впоследствии попытается лишить бота каких-то прав, то бот станет запрашивать их повторно.
Очень редко бот использует уязвимости системы, чтобы установить полный контроль над ней.
Возможности ботов
Рассмотрим возможности, которыми чаще всего обладают Android-боты.
Без предоставления специальных прав (взаимодействие с пользователем не требуется):
1. Сбор информации об устройстве.
Сюда входит - номер телефона, GPS-координаты, версия Android, IP-адрес, язык, мобильный
оператор, страна (по IP/оператору), IMEI, дисплей (вкл/выкл), список установленных
приложений.
А так же информация о предоставленных правах: является ли бот SMS-мессенджером по
умолчанию, администратором устройства.
2. Показ веб-инжектов.
Это фейки популярных приложений, которые предлагают юзеру ввести нужные данные (логин, пароль и т.п.) Подробнее веб-инжекты мы рассмотрим ниже.
3. Граббер/Cтилер СС
Формы для сбора информации о кредитных картах. Как и вебинжекты, это фейки, предлагающие ввести в них данные. Но они используют стандартный
интерфейс Android, что позволяет им маскироваться например под Google Play. Если граббер
сделан качественно, юзер не имеет никакой возможности отличить поддельное окно граббера от
настоящего окна Google Play.
4. Выполнение USSD-запросов.
USSD-запрос, это короткий код, предоставляющий доступ к сервисам мобильных операторов и устройства. Например, код *#06# набранный вместо телефонного номера покажет вам IMEI устройства. С помощью подобного кода можно установить перенаправление всех звонков на нужный вам номер.
5. Push-уведомления - это сообщения, появляющиеся в верхней панели Android, так
называемой "шторке".
Особенность таких сообщений заключается в том, что нажатие на них может запускать
необходимое приложение. Так же, сообщение может иметь любую иконку и, соответственно,
маскироваться под уведомление от установленных приложений юзера.
6. Сбор контактов адресной книги (имена, телефоны и т.п.).
7. Отправка СМС на любой номер, включая платные.
8. Рассылка СМС по заданному списку номеров или по всем контактам адресной книги.
9. Запуск установленных на устройстве приложений, чтобы спровоцировать появление на
экране веб-инжекта.
10. Навигация по устройству, поиск, скачивание, шифрование и даже удаление любых
файлов из домашней директории юзера. В том числе баз данных популярных мессенджеров
(Viber, Whatsapp и т.п.), которые содержат списки контактов, сообщения и прочую личную
информацию.
11. Запуск на устройстве socks5-сервиса, что позволяет использовать телефон как проксисервер.
12. Выгрузка всех СМС сохранённых на устройстве.
13. Запись звука/видео. Как и публичные приложения для захвата экрана.
Предоставление прав расширяет список возможностей:
1. Перехват СМС. От простого дублирования входящих сообщений в панель управления, до полного перехвата, когда бот заменяет собой СМС-мессенджер. Это позволяет боту скрывать входящие сообщения, но в то же время юзер не имеет никакой возможности принять или даже отправить СМС.
2. Показ юзеру любой веб-страницы в полноэкранном режиме без возможности закрыть её или свернуть.
Невозможно без предоставления прав юзером:
1. Блокировка устройства. Перманентное выключение экрана (если юзер включает его, он моментально отключается), отключение звука (для блокировки звуковых уведомления о входящих СМС и т.п.), смена пароля на разблокировку (при наличии прав администратора
устройства).
2. VNC-сервис - весьма экзотическая вещь, которая позволяет управлять телефоном на расстоянии, как через удалённый рабочий стол (RDP).
3. Accessibility service - так же достаточно редкая, ввиду сложности реализации, функция. Сервис изначально предназначенный для облегчения жизни людям с ограниченными возможностями может превратить ваш телефон в настоящего зомби, покорнно исполняющего
приказы своего хозяина. Достаточно дать боту права на использование этого сервиса и телефон начнёт жить своей жизнью. Другими словами, бот сможет делать абсолютно все, что может делать обычный юзер.
Как видите, бот может сделать с вашим телефоном / личными данными / жизнью очень многое. Но это многое чаще всего требует ручного предоставления прав и, если юзер достаточно внимателен, вредоносная деятельность бота может быть предотвращена.
Что не могут сделать боты
Ввиду того, что Android базируется на Linux, безопасность в нём организована намного
лучше чем в Windows. Каждое приложение имеет доступ только к своим личным данным и файлам, находящимся в публичной домашней директории. Для чтения файлов с SD-карты приложению требуется запрос дополнительных прав.
Никогда, за исключением наличия root-прав, у приложения нет доступа к внутренним
процессам системы. Таким образом невозможно получить содержимое буфера обмена юзера, нельзя как-либо модифицировать другие приложения, следить за событиями в них (без Accessibility Service) или перехватывать вводимые в них данные (только если ваш бот не является полноценной заменой стандартной клавиатуре).
Многие из действий требуют ручного предоставления прав юзером. Правда юзеры
предоставляют эти права не особо задумываясь, особенно если бот запрашивает их бесконечно долго. И чем новее Android, тем больше ограничивается функциональность, доступная боту сразу после установки.
Есть некоторое послабление в контроле для приложений, установленных из Google Play.
Ввиду того, что приложения, размещённые там, проходят проверку. Но минимальная версия SDK, необходимая для загрузки приложения в Google Play — 26, что в свою очередь лишает бота возможности пользоваться автоматическим предоставлением прав для приложений с targetSDK <=19.
О root-правах
В общих черта, root-права - это наличие на устройстве консольной утилиты su. Любое из
Android-приложений может обратиться к нему и выполнить команду от имени пользователя root.
А так как root в Linux обладает возможностями бога, то и приложение получает доступ ко всем этим возможностям.
Поэтому получить root непросто даже на своём собственном телефоне, имея непосредственный физический доступ и навыки. Для загрузки утилиты su на устройство
необходимо разблокировать и заменить загрузчик системы, а если загрузчик окажется
неподходящим это окирпичит ваш девайс.
Другой способ установить желанную утилиту - использовать уязвимости системы. Найти
эксплоиты для устройств новее Android 5 представляется довольно сложной задачей. И дело даже не в высокой стоимости, а в отсутствии предложений на рынке.
Кроме того, наличие утилиты su на устройстве может привести к негативным
последствиям. Банковские приложения видят её и ограничивают свой функционал. Например, запрещают отправлять переводы неизвестным получателям.
Комментарий