erid: 2SDnjeU7TaZ erid: 2SDnjeU7TaZ

WebView: что это такое и как его используют злоумышленники

Премия «Киберпросвет» 2024
WebView: что это такое и как его используют злоумышленники
WebView: что это такое и как его используют злоумышленники
07.04.2023

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

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

Что такое WebView

Android System WebView – это системный компонент, который отвечает за открытие веб-страниц внутри других приложений. Он позволяет отслеживать действия пользователя – есть доступ к подробной статистике. С переходом по ссылке в сторонний браузер сделать это нельзя.

Есть очевидные плюсы и на стороне пользователя – с WebView выше скорость загрузки контента и меньше затрачиваются ресурсы устройства, чем при переходе по ссылке в сторонний браузер.

Почему он популярен

В последнее время WebView особенно интересен маркетологам. Они используют его как недорогой полигон для проверки своих гипотез. В WebView можно по-разному выстроить коммуникацию с клиентом – например, добавить онлайн-чат и push-уведомления, а потом отследить реакцию. А еще так легче протестировать маркетинговые сценарии и сегментировать целевую аудиторию.

Другой кейс – WebView используют как отдельный этап разработки или в качестве MVP (Minimal Viable Product, минимально жизнеспособный продукт). Компонент помогает быстро оценить, как будет реализована фича сразу на двух платформах – в приложении и в вебе. То же самое касается появления багов и уязвимостей. Их тоже проще отследить в момент подключения компонента.

И наконец, третий популярный вариант применения WebView – он может полностью заменить сайт компании. Им недавно пользовались финансовые и другие организации, которым пришлось столкнуться с санкциями в сети.

Ложка дегтя, или Что не так с 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, поэтому нельзя исключать проблемы с хранением данных. Они могут не быть привязаны к бизнес-сценарию приложения, но использоваться на некоторых экранах, сохраняться локально и храниться очень долго.

Техника безопасности с WebView

Чтобы обеспечить защиту приложения с встроенным браузером от Android, собеседники Cyber Media советуют:

  • использовать HTTPS – взаимодействие с серверами, где размещается back-end, должно быть зашифрованным,
  • грамотно управлять SSL – нужно предусмотреть ситуацию, когда безопасное соединение не может быть установлено,
  • включать javascript только для безопасного контента, которым можно управлять самостоятельно,
  • отключать доступ WebView к файловой системе устройства,
  • создавать белые списки адресов, к которым может обращаться встроенный браузер,
  • всегда проверять источник и содержимое веб-страниц перед их интеграцией с WebView,
  • контролировать и фильтровать все пользовательские данные, прежде чем отображать их в встроенном браузере, и использовать Content Security Policy (CSP) для ограничения источников, с которых разрешено загружать контент,
  • регулярно обновлять используемые библиотеки и API, чтобы избежать уязвимости, связанные с устаревшим кодом,
  • ограничивать доступ к межсайтовым ресурсам – настраивать WebView так, чтобы он не предоставлял доступ к ресурсам других сайтов, тем самым предотвращая утечку данных,
  • регулярно тестировать безопасность приложения на предмет уязвимостей, используя специализированные инструменты и сервисы.

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

Итоги

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

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

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

erid: 2SDnjdbjuoP erid: 2SDnjdbjuoP

Комментарии 0