Безопасность мобильных устройств и приложений: пять популярных сценариев атак и способы защиты

Безопасность мобильных устройств и приложений: пять популярных сценариев атак и способы защиты


Изображение: Unsplash

Современные мобильные устройства очень сложны, и это дает злоумышленникам возможности для проведения атак. Для взлома вашего смартфона может быть использовано буквально все — от Wi-Fi и Bluetooth до динамика и микрофона .

Аналитики Positive Technologies опубликовали исследование распространенных сценариев атак на мобильные устройства и приложения. В
нашей статье – главные тезисы этого документа.

Как атакуют мобильные устройства и приложения



Существует пять основных сценариев атаки. Среди них:

  • Физический доступ. Если телефон был украден или потерян, владелец отдал его в сервис или подключил к поддельному зарядному устройству по USB — все это открывает возможность для атаки.
  • Вредоносное приложение на устройстве. Иногда такие приложения могут попасть на устройство даже из официальных источников, Google Play и App Store (для Android , для iOS ).
  • Атакующий в канале связи. Подключившись к недоверенному Wi-Fi, прокси-серверу или VPN, мы становимся уязвимыми для атак в канале связи.
  • Удаленные атаки. Атакующий может действовать при этом удаленно, пользуясь серверами мобильных приложений или иными службами для доставки эксплойта.
  • Атаки на серверную часть. Отдельно от всего можно рассмотреть атаки на серверную часть мобильных приложений, поскольку в этом случае доступ к устройству злоумышленнику не требуется.

Поговорим подробнее о каждом из вариантов и обсудим возможные способы защиты от таких атак.

Атаки с физическим доступом


Есть несколько главных сценариев атак с физическим доступом. Как правило, они подразумевают доступ человека напрямую к смартфону: это происходит в том случае, если устройство украли, владелец его потерял или отнес в сервис. Однако есть и достаточно необычный способ атаки, для которого используется вредоносная зарядная станция. Рассмотрим именно его.

Зарядная станция, к которой вы подключаете свой смартфон по USB, вполне может оказаться не совсем безопасной. Для современных версий ОС Android и iOS при подключении с смартфона к ПК по USB требуется разрешение на доступ к устройству. Однако на Android 4.0 и ниже этого не требовалось. В итоге при подключении таких устройств к скомпрометированным или установленным хакерами зарядным станциям, открывается возможность для атаки. Ее сценарий может выглядеть так:

  • На вашем смартфоне с версией Android 4.0 или ниже доступна отладка по USB.
  • Вы подключаетесь к зарядной станции по USB-кабелю.
  • Вредоносная зарядная станция выполняет команду adb install malware.apk, чтобы установить вредонос на ваше устройство.
  • Вредоносная зарядная станция выполняет команду adb am start com.malware.app/.MainActivity для запуска этого вредоносного приложения.
  • Запущенный троян пробует различные техники повышения привилегий, получает права root и закрепляется в системе. Теперь ему доступны все хранимые данные, включая аутентификационные (логины, пароли, токены) от всех установленных приложений, а также неограниченный доступ к любому приложению во время исполнения.

Как защититься


В первую очередь, будьте внимательны и не оставляйте телефон и планшет без присмотра в общественных местах. Обязательно установите пароль для разблокировки устройства или включите биометрическую защиту, если это возможно. Не повышайте привилегии до административных (jailbreak или root), отключите отображение уведомлений на заблокированном экране.

Атаки с помощью вредоносных приложений


Есть несколько источников таких приложений:

  • Официальные магазины приложений — Google Play и App Store. Редко, но даже в официальных маркетах можно найти вредоносное приложение, которое может нанести ущерб вам и вашим данным. Часто такие приложения стараются заполучить побольше установок с помощью кликбейтных названий типа «Super Battery», «Turbo Browser» или «Virus Cleaner 2019».
  • Неофициальные сайты и магазины приложений (third-party appstore). Для Android-устройств достаточно разрешить установку из недоверенных источников, а затем скачать apk-файл приложения с сайта. Для iOS-устройств достаточно перейти по ссылке в браузере Safari, подтвердить установку сертификата на устройство, после чего любое приложение в этом неофициальном магазине станет доступно для установки прямо из браузера.
  • Пользователь может установить скачанное из интернета приложение с помощью USB-подключения.
  • Для Android-устройств доступна возможность загрузки части приложения при переходе по ссылке — механизм Google Play Instant.

При установке на смартфон в зависимости от полученных разрешений вредоносные приложения будут иметь доступ к некоторым хранимым данным, микрофону, камере, геопозиции, контактам и т. п. Также они получат возможность взаимодействия с другими установленными приложениями через механизмы межпроцессного взаимодействия (IPC/XPC). Если установленные приложения содержат уязвимости, которые можно проэксплуатировать через такое взаимодействие, вредоносное приложение сможет этим воспользоваться. Особенно актуально это для Android-устройств.

Помимо этого, вредоносное приложение может попытаться получить повышенные привилегии в системе, проэксплуатировав уязвимости, позволяющие получить root-права или jailbreak.

Как защититься


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

Атаки в канале связи


Для того чтобы злоумышленник смог действовать из канала связи, ему необходимо выполнить атаку «человек посередине», то есть чтобы весь трафик, передаваемый между клиентским мобильным приложением и серверной частью проходил через устройство злоумышленника. Иногда в приложениях встречаются уязвимости, позволяющие такие атаки.

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

Даже если проверка сертификатов происходит корректно, у злоумышленника остается лазейка: под неким предлогом вынудить жертву установить на свое устройство сертификат злоумышленника как доверенный. Кроме того, если приложение само по себе безопасно работает с сервером, но содержит ссылки на сторонние ресурсы, загружаемые по HTTP, это все равно составляет возможность для проведения фишинговых атак.

Если злоумышленнику удастся получить контроль над трафиком между клиентским приложением и сервером, то это даст ему целый ряд возможностей:

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

В итоге он узнает логины и пароли жертвы от различных аккаунтов и сможет использовать их для похищения данных, кражи денег.

Как защититься


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

Как правило, большинство популярных мессенджеров и приложений соцсетей хорошо защищены от подобных атак; если, например, вдруг какое-то из этих приложений отказывается работать через текущее Wi-Fi-подключение, это может означать, что данная точка доступа небезопасна и лучше от нее отключиться, чтобы не подвергать опасности остальные приложения, в том числе ваш мобильный банк.

Удаленные атаки


Некоторые уязвимости в мобильных приложениях можно проэксплуатировать удаленно, и для этого даже не требуется контролировать передачу данных между приложением и сервером. Многие приложения реализуют функциональность по обработке специальных ссылок, например myapp://. Такие ссылки называются deeplinks, и работают они как на Android, так и на iOS. Переход по такой ссылке в браузере, почтовом приложении или мессенджере может спровоцировать открытие того приложения, которое умеет такие ссылки обрабатывать. Вся ссылка целиком, включая параметры, будет передана приложению-обработчику. Если обработчик ссылки содержит уязвимости, то для их эксплуатации будет достаточно вынудить жертву перейти по вредоносной ссылке.

Аналогичный образом в мобильных устройствах могут обрабатываться более привычные ссылки http:// и https:// — они могут быть переданы приложению вместо браузера, в некоторых случаях это может происходить без подтверждения со стороны пользователя.

Для Android-устройств переход по ссылке может спровоцировать загрузку Instant App, что делает возможным удаленную эксплуатацию уязвимостей, связанных с установкой вредоносного приложения.

Как защититься


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

Атаки на серверную часть


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

Зачастую устройство серверной части мобильного приложения ничем не отличается от веб-приложения. Как правило, устроены серверы мобильных приложений еще проще и часто представляют из себя json- или xml-api, редко работают с HTML-разметкой и JavaScript, как это часто делают веб-сайты.

Если сравнивать уязвимости веб-приложений и серверных частей мобильных приложений, то мы видим, что следующие уязвимости преобладают в мобильных приложениях:

  • недостаточная защита от подбора учетных данных: 24% веб-приложений и 58% серверов мобильных приложений содержат такие уязвимости,
  • ошибки бизнес-логики: 2% веб-приложений и 33% серверов мобильных приложений.

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

Как защититься


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

Чтобы минимизировать вероятность успешной атаки на мобильное приложение, его разработчики должны проверять возможность реализации каждого из описанных сценариев. При разработке нужно учитывать различные модели нарушителей, а некоторые меры защиты необходимо предпринять еще на стадии проектирования.

Хорошей рекомендацией для разработчиков будет внедрение практики безопасной разработки (security development lifecycle, SDL) и регулярный анализ защищенности приложения. Такие меры не только помогут своевременно выявить потенциальные угрозы, но и повысят уровень знаний разработчиков в вопросах безопасности, что повысит уровень защищенности разрабатываемых приложений в долгосрочной перспективе.

Автор: Николай Анисеня, руководитель группы исследований безопасности мобильных приложений Positive Technologies
Alt text