{"id":13465,"url":"\/distributions\/13465\/click?bit=1&hash=1e6228dc4e5e22730d5108e1c30ee96b3462205737e7a3fe7ce4c965aaacfe57","title":"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Ozon \u2014 \u043a\u043e\u043c\u0443, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u043a\u0440\u0438\u0437\u0438\u0441","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"6b1e0c55-41d3-56c2-84e2-fe6f447e3825","isPaidAndBannersEnabled":false}

Шорт-лист самых популярных уязвимостей в мобильных приложениях

Всем привет! Меня зовут Юрий Шабалин, я являюсь одним из основателей Стингрей Технолоджиз (входит в ГК Swordfish Security). Мы разрабатываем решение для безопасности мобильных приложений и активно интересуемся уязвимостями в новых продуктах. Тестируем и исследуем десятки систем, и всегда находим внутри что-то интересное. Открытые аутентификационные данные, забытые разработчиками файлы, некорректно настроенные криптографические элементы. Сегодня я расскажу о главных угрозах безопасности российских мобильных приложений.

Если сравнивать с Web-приложениями, мобильная экосистема относительно молода, но очень динамична и развивается с сумасшедшей скоростью, набирает все большую популярность. Одно из недавних исследований показало, что количество первых скачиваний в первой половине 2020г. достигло 71,5 млрд (26,1% роста к предыдущему). Показатели постоянно увеличиваются - все больше бизнесов создает собственные приложения. Их функционал также постоянно расширяется, и может превосходить Web-версии. Платой за скорость нередко является появление различных типов уязвимостей в приложениях.

OWASP Mobile Тор 10

Для начала о странном. Знаете ли вы, что шорт-лист самых распространенных уязвимостей для мобильных приложений был составлен еще в 2016г. и до сих пор актуален? Неужели дело в том, что его готовили провидцы или супер-гуру ИБ? Ну второе, скорее, верно. Ведь речь идет об OWASP Mobile TOP-10, списке, подготовленном OWASP. Open Web Application Security Project — открытый проект обеспечения безопасности веб-приложений, в который входят корпорации, образовательные организации и частные лица со всего мира, лучшие эксперты отрасли. Методология и классификация OWASP для систематизации всей информации об уязвимостях является одной из самых популярных и общепризнанных.

Существует три основных документа OWASP:

  • MASVS — Стандарт подтверждения безопасности мобильных приложений, объединяющий все основные требования, которым необходимо следовать;
  • MSTG — Руководство по тестированию безопасности мобильных устройств;
  • OWASP Mobile Top 10 — 10 самых распространенных проблем безопасности в мобильных приложениях.

Итак, какие типы уязвимостей мобильных приложений наиболее распространены? В OWASP Mobile TOP-10 указаны:

  • Небезопасное хранение данных
  • Некорректное использованная криптография
  • Некорректное использование платформ
  • Небезопасная коммуникация
  • Небезопасная аутентификация
  • Качество клиентского кода
  • Фальсификация кода
  • Обратный инжиниринг
  • Посторонняя функциональность

Поговорим о самых топовых из них. А заодно посмотрим, что нам удалось найти в процессе тестирования более чем 50 приложений из финтех-сферы. Что мы обнаружили и как это соотносится с прогнозом шестилетней давности от OWASP. Неужели все плохо?

Небезопасное хранение данных

Наиболее распространенная уязвимость мобильных приложений — небезопасное хранение конфиденциальных данных. К этой категории мы можем отнести любую информацию, которая позволяет злоумышленнику создать вектор атаки против пользователя. Это могут быть данные аутентификации (пароли, файлы cookie и т. д.), токены для доступа к сторонним ресурсам или личная информация (номер телефона, ФИО, паспортные/контактные данные). Данную категорию можно разделить на три большие подгруппы уязвимостей: хранение учетных данных, хранение данных об авторизации на сторонних ресурсах и хранение другой конфиденциальной информации.

А теперь внимание: в 50% из исследованных нами приложений данные хранятся небезопасно (в открытом виде), что позволяет злоумышленникам атаковать их пользователей. Главная проблема современных приложений - небезопасное хранение данных аутентификации - была обнаружена нами в 20% рассмотренных продуктов, наличие токенов для доступа к сторонним ресурсам - в 60%, личная информация в открытом виде - в 30%.

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

Некорректно использованная криптография

Довольно серьезная проблема, присутствующая в 15% из рассмотренных нами приложений, - некорректно использованная криптография. И это номер два в списке OWASP.

Есть несколько общих проблем, связанных с криптографией. Здесь речь может идти о небезопасном хранении ключей шифрования (в 20% исследованных нами приложений), применении устаревших алгоритмов (в 40%). Еще 40% приходится на разные недостатки, включая использование одного ключа для шифрования различных данных и т.д.

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

Небезопасная коммуникация

Еще одна слабость, которую мы часто встречаем при тестировании (не менее 20% из рассмотренных приложений), это отсутствие или неправильная реализация защиты канала связи, а именно SSL Pinning. Этот инструмент нужен для того, чтобы защитить клиентов от прослушивания трафика, и очень важно правильно его реализовать. К сожалению, не всем и не всегда это удается. Реализация SSL Pinning несет в себе риски, нужно продумывать много моментов, включая перевыпуск сертификата, процесс обновления приложения и т.д. Из-за того, что есть такие нюансы, многие разработчики просто не используют этот инструмент, предпочитая избегать трудностей, не заботясь о безопасности своих пользователей и оставляя сетевое соединение без должной защиты. Это мы как раз наблюдаем в ходе наших исследований.

Хранение лишних файлов в приложении - качество клиентского кода

Также есть еще одна проблема, не столь распространенная сегодня (как и в списке OWASP), но о которой стоит упомянуть: хранение нежелательных данных в приложениях. Бывает, что нам попадаются различные файлы, которые не должны были быть включены в релиз. Например, сертификаты с dev-серверов, тестовые конфиги и прочая “посторонняя” информация. Помимо того, что такие файлы могут увеличивать объем приложения в магазинах, это также открывает дополнительные возможности для злоумышленников по компрометации. Такие данные были обнаружены в 10% рассмотренных специалистами приложений.

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

Выводы

Итак, как мы упоминали в начале статьи, версия OWASP Mobile Top 10 не обновлялась с 2016 года, но до сих пор актуальна. Это означает, что современные разработчики и тестировщики повторяют те же ошибки, что и 6 лет назад. Все, что описано выше, общеизвестно, и совершается по большей части из-за невнимательности или нехватки времени на тщательную проверку каждого релиза. Другая причина - в том, что разработчики, с одной стороны, и аналитики безопасности и злоумышленники, с другой, - иначе смотрят на на приложение и его функциональность и обращают внимание на разные вещи.

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

0
Комментарии
Читать все 0 комментариев
null