Ссылки в приложениях не всегда открываются в браузере – пользователь может оставаться в интерфейсе мобильного приложения. Такие встроенные веб-страницы, например, есть в соцсетях и мессенджерах. Создавать их можно с помощью компонента WebView, который в последнее время стал очень популярным в мобильной разработке.
Высокий интерес к нему возник на фоне множества плюсов. Однако эксперты предупреждают: использовать технологию нужно с умом. В ней есть уязвимости, которые могут заинтересовать кибермошенников.
Android System WebView – это системный компонент, который отвечает за открытие веб-страниц внутри других приложений. Он позволяет отслеживать действия пользователя – есть доступ к подробной статистике. С переходом по ссылке в сторонний браузер сделать это нельзя.
Есть очевидные плюсы и на стороне пользователя – с WebView выше скорость загрузки контента и меньше затрачиваются ресурсы устройства, чем при переходе по ссылке в сторонний браузер.
В последнее время WebView особенно интересен маркетологам. Они используют его как недорогой полигон для проверки своих гипотез. В WebView можно по-разному выстроить коммуникацию с клиентом – например, добавить онлайн-чат и push-уведомления, а потом отследить реакцию. А еще так легче протестировать маркетинговые сценарии и сегментировать целевую аудиторию.
Другой кейс – WebView используют как отдельный этап разработки или в качестве MVP (Minimal Viable Product, минимально жизнеспособный продукт). Компонент помогает быстро оценить, как будет реализована фича сразу на двух платформах – в приложении и в вебе. То же самое касается появления багов и уязвимостей. Их тоже проще отследить в момент подключения компонента.
И наконец, третий популярный вариант применения WebView – он может полностью заменить сайт компании. Им недавно пользовались финансовые и другие организации, которым пришлось столкнуться с санкциями в сети.
Несмотря на популярность и плюсы, встраиваемый браузер часто таит в себе киберугрозы. Причем, как правило, в этом не виноваты разработчики Android-приложения.
Сергей Полунин
Руководитель группы защиты инфраструктурных ИТ компании «Газинформсервис»
Настройки по умолчанию в современной версии Android обеспечивают базовый уровень безопасности WebView. Однако разработчики приложений практически всегда вносят в этот компонент свои настройки и изменения. Вот почему при его подключении нельзя забывать о рисках информационной безопасности.
Обычно уязвимости в WebView обнаруживаются до того, как ими успевают воспользоваться злоумышленники. Так произошло с Galaxy App Store, о чем в начале 2023 года сообщили в Samsung. Также без жертв закончилась история с багом в вебвью-компоненте Tik-Tok, который в 2022-ом обнаружила Microsoft.
По мнению экспертов, основная проблема с WebView та же, что и у любого стороннего браузера. Она заключается в том, что к нему может быть получен несанкционированный доступ и перехвачена информация, которая отправляется в back-end приложения. В частности, всегда есть риски XSS-атаки, при которой злоумышленник внедряет вредоносный код на веб-страницу и похищает данные пользователя.
Владислав Гусев
Директор IT-компании GUSCOM
WebView – это удобно и практично, но компонент также может создавать потенциальные уязвимости. Например, он может загружать вредоносный контент для пользователя или устройства. Причинами могут быть применение устаревших библиотек и API, а также некорректная настройка компонента.
При этом как компонент, который отвечает за открытие ссылок, WebView может отображать страницы как с удаленного сайта, так и те, которые хранятся локально. Чаще всего – в ресурсах приложения.
Александр Герасимов
CISO Awillix
Так разработчики реализуют механизм кэширования, чтобы обеспечить поддержку оффлайн-режима. Хуже – если из локальной памяти. Еще хуже – если из разделяемой. Сюда же добавим различные способы насильственного перенаправления пути отображения через классические атаки на пути, так и частные случаи, например, уязвимости android.net.URI, shouldOverrideUrlLoading, проблемы обработки DeepLink и прочее.
При этом WebView, если рассматривать его как класс-расширение класса View в Android, может предоставлять дополнительные конфигурации, которые дают возможность для проведения атак из приложения. Например, аннотация @JavascriptInterface даст возможность создать интерфейс для JavaScript, работающего в WebView для всех страниц, которые будут загружены. В случае, если где-то используется небезопасный протокол, это может быть использовано для внедрения JS-кода в приложение.
Эксперт напоминает, что WebView – это еще и фрагмент экосистемы Android, поэтому нельзя исключать проблемы с хранением данных. Они могут не быть привязаны к бизнес-сценарию приложения, но использоваться на некоторых экранах, сохраняться локально и храниться очень долго.
Чтобы обеспечить защиту приложения с встроенным браузером от Android, собеседники Cyber Media советуют:
При этом эксперты сходятся во мнении, что начинать выстраивать защиту нужно с грамотного аудита приложения. Только он даст понять, какие меры понадобятся в каждом конкретном случае и нужен ли вообще WebView.
Что такое WebView? Это прежде всего удобный инструмент разработчика. В лучшем случае он может стать преимуществом, которое оценят владелец и пользователи приложения. В худшем – злоумышленники.
Тем не менее, WebView все чаще становится обязательным этапом в создании мобильного приложения. Он помогает тестировать гипотезы, заменять страницы сайта и даже решать проблемы компаний, связанные с санкциями.
Все это – важные причины помнить об уязвимостях при подключении компонента. К счастью, их немного.
Нажимая на кнопку, я даю Согласие на обработку персональных данных в соответствии с Политикой обработки.
Зарегистрироваться