Расширения Chrome могут перехватывать пароли, передаваемые в открытом текстовом виде

2023-09-04 3528 комментарии
Группа исследователей из Висконсинского университета в Мадисоне разместила в Интернет-магазине Chrome Web пробный вариант расширения, позволяющего перехватывать пароли, доступные в открытом виде в исходном коде сайта

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

Кроме того, исследователи обнаружили, что многие сайты с миллионной посещаемостью, в том числе некоторые порталы Google и Cloudflare, хранят пароли в открытом виде в исходном коде HTML-страниц, что делает их доступными для расширений.

Источник проблемы

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

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

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

Новый протокол Manifest V3, представленный в Google Chrome и принятый большинством браузеров в этом году, ограничивает злоупотребление API и запрещает расширениям получать удаленно размещенный код, который может помочь избежать обнаружения, а также предотвращает использование выражений с методом eval, приводящих к выполнению произвольного кода.

Тем не менее, Manifest V3 не устанавливает границу безопасности между расширениями и веб-страницами, поэтому проблема со скриптами в контенте остается.

Опасное расширение успешно размещено в Интернет-магазине Chrome

Чтобы протестировать свою концепцию, исследователи решили разработать расширение Chrome, способное перехватывать пароль, и попытались разместить его в Интернет-магазине Chrome.

Исследователи создали расширение, выдающее себя за помощника на основе GPT, которое может:

  • Получать исходный код HTML-страницы, когда пользователь пытается войти на страницу.
  • Злоупотреблять селекторами CSS для выбора целевых полей ввода и извлечения пользовательских данных с помощью метода .value.
  • Производить замену элементов, чтобы заменить обфусцированные поля на основе JS полями небезопасного пароля.

Расширение не содержит очевидный вредоносного код и не получает код из внешних источников (динамическая инъекция), поэтому соответствует Manifest V3.

В результате расширение прошло проверку и было размещено в Интернет-магазине Google Chrome, так что проверки безопасности не выявили потенциальной угрозы.

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

Кроме того, расширение постоянно находилось в состоянии «неопубликовано», чтобы его не скачало большое количество человек, а после успешного размещения было удалено с площадки.

Потенциал эксплуатации

Проведенное исследование показало, что из 10 тысяч крупнейших сайтов (по данным сервиса Tranco) примерно 1100 хранят пароли пользователей в виде обычного текста в HTML DOM.

Еще 7300 сайтов из того же набора оказались уязвимы для доступа к DOM API и прямого извлечения введенного пользователем значения.

В техническом ответе, опубликованном исследователями из Висконсинского университета в Мадисоне, утверждается, что около 17 300 расширений в Интернет-магазине Chrome (12,5%) имеют необходимые разрешения для извлечения конфиденциальной информации с сайтов.

Некоторые из них, включая популярные блокировщики рекламы, имеют несколько миллионов установок.

В отчете упоминаются следующие уязвимые сайты:

  • gmail.com — пароли в открытом виде в исходном коде HTML
  • cloudflare.com — пароли в открытом виде в исходном коде HTML
  • facebook.com* — пользовательские данные могут быть извлечены через DOM API
  • citibank.com — пользовательские данные могут быть извлечены через DOM API
  • irs.gov — SSN в открытом виде в исходном коде HTML
  • capitalone.com — SSN в открытом виде в исходном коде HTML
  • usenix.org — SSN в открытом виде в исходном коде HTML
  • amazon.com — данные кредитной карты (включая код безопасности) и ZIP-код доступны в открытом виде в исходном коде HTML

* Facebook принадлежит компании Meta (организация признана экстремистской, ее деятельность запрещена на территории России).

Анализ показал, что 190 расширений (некоторые из которых имеют более 100 тыс. загрузок) напрямую обращаются к полям паролей и хранят значения в переменной. Можно предположить, что некоторые издатели уже пытаются использовать эту брешь в безопасности.

Некоторые компании уже отреагировали на данное исследование. Например, компания Amazon дала свой комментарий на этот счет:

В компании Amazon безопасность клиентов является одним из главных приоритетов, и мы предпринимаем ряд мер для ее защиты. Информация о клиентах, вводимая на веб-сайтах Amazon, надежно защищена.

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

Представитель Google подтвердил, что данный вопрос рассматривается, и сослался на FAQ по безопасности расширений Chrome, в котором доступ к полям паролей не рассматривается как проблема безопасности, если соответствующие разрешения получены легитимным путем.

© . По материалам Bleepingcomputer
Комментарии и отзывы

Нашли ошибку?

Новое на сайте