Специалисты из Техасского университета A&M опубликовали исследование (PDF), посвященное проблемам разработки мобильных приложений. Как оказалось, современные мобильные разработчики повторяют ошибки, присущие сцене веб-разработки в начале «нулевых».

В своем докладе аналитики рассказывают, что в настоящее время разработчики мобильных приложений по-прежнему часто включают бизнес-логику (включая валидацию пользовательского ввода, аутентификацию пользователя и авторизацию) в клиентскую часть своего кода вместо серверной. В итоге пользователи мобильных решений оказываются уязвимы даже перед инъекциями параметров в HTTP-запросы, чего можно было бы легко избежать, работай бизнес-логика на стороне сервера.

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

Для доказательства своей теории эксперты создали инструмент, получивший имя WARDroid. Он позволил провести массовый анализ мобильных приложений и установить, какой формат запросов те используют, и уязвимы ли они перед каким-либо связанными с этим атаками. Для тестирования были отобраны 10 000 случайных приложений из Google Play Store.

«Мы обнаружили проблемы с логикой в API более 4000 приложений. В их число вошли 1743 приложения, использовавшие незашифрованные HTTP-коммуникации», — пишут специалисты.

Так как WARDroid не позволял с точностью установить, уязвимо ли приложение перед атаками, аналитики вручную проверили 1000 случайных приложений, которые вызвали подозрения у их автоматического инструмента. Оказалось, что API 962 из них имели проблемы с логикой валидации. Экстраполировав данный результат на весь Google Play Store, исследователи пришли к выводу, что похожими проблемами страдают миллионы мобильных приложений.

Специалисты рассказывают, что некоторые из изученных ими решений являлись банковскими приложениями. В таких случаях атака позволяет даже изменить детали транзакции. Похожие проблемы наблюдаются и у приложений для работы с подарочными картами, из-за чего ученые смогли создать текстовый аккаунт, «зарядить» его деньгами и тратить их в самых разных магазинах. Уязвимая логика валидации в приложениях, построенных с использованием Shopify SDK, и вовсе позволила специалистам покупать товары с отрицательными ценниками, создавая невообразимые скидки в мобильных Shopify-магазинах.

«Никогда нельзя доверять пользовательскому вводу. Это трудный урок, который давно должен быть усвоен на примере веб-платформ и веб-приложений, — рассказывали специалисты на конференции IEEE Symposium on Security and Privacy. — Наша работа проливает свет на тот факт, что это до сих пор продолжает быть проблемой».

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии