Исследователи безопасности из Техасского университета A&M Абнер Мендоза (Abner Mendoza) и Гуофей Гу (Guofei Gu) проверили популярные приложения для Android на однотипные ошибки в валидации клиент-серверных запросов, которые совершали веб-разработчики еще в конце 1990-х — начале 2000-х годов. Автоматический анализ выявил потенциальные угрозы в более чем 40% протестированных систем, что может означать десятки миллионов уязвимых устройств по всему миру.

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

Если проектировщики проверяют запросы только со стороны приложения, это значительно упрощает перехват данных. Поскольку программа находится в свободном доступе, ничто не мешает злоумышленникам загрузить ее, проанализировать отправляемые сведения, а потом подделать обращение по тому же шаблону — и заставить API-сервер выполнить некорректную операцию.

Мендоза и Гу назвали этот метод «перехватом веб-API» (Web API Hijacking). Он работает, когда сервер не проверяет все запросы приложения самостоятельно. К сожалению, если разработчики веб-платформ уже давно перестали доверять клиентам, то мобильным архитекторам это, видимо, только предстоит.

Желая проверить, насколько актуальна угроза, Мендоза и Гу разработали инструмент WARDroid. Эта система автоматически извлекает HTTP-шаблоны, используемые для обмена информацией с сервером, и проверяет налагаемые ими ограничения на формат запросов (например, наличие или отсутствие шифрования). Проанализировав 10 тыс. популярных приложений Android из магазина Google Play, экспертам удалось обнаружить более 4 тыс. проблемных программ, причем около 2 тыс. из них вообще никак не шифровали запросы.

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

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

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

Эксперты давно привлекают внимание к плачевному состоянию безопасности в мобильных клиентах — даже тех, чье назначение предполагает надежную защиту. Так, подготовленный компанией Positive Technologies отчет за 2017 год показал, что критические уязвимости содержатся в 56% дистанционных систем банковского обслуживания для iOS и Android. А совсем недавно устаревшая версия библиотеки OpenSSL поставила под угрозу 6 миллиардов приложений.

Категории: Аналитика, Главное