Многие сайты с миллионной посещаемостью, включая Google, Amazon и Cloudflare, хранят пароли в открытом виде в исходном коде HTML своих веб-страниц, что позволяет расширениям беспрепятственно извлекать их
Группа исследователей из Университета Висконсин-Мэдисон разместила в магазине Chrome Web Store пробный вариант расширения, позволяющего похищать пароли в открытом виде из исходного кода веб-сайта. Исследование полей ввода текста в веб-браузерах показало, что грубая модель разрешений, лежащая в основе расширений Chrome, нарушает принципы наименьших привилегий и полного посредничества.
Кроме того, исследователи обнаружили, что из 10 тысяч лучших веб-сайтов (по данным Tranco) примерно 1100 хранят пароли пользователей в виде обычного текста в HTML DOM. Еще 7300 сайтов из того же списка были признаны уязвимыми для доступа к DOM API и прямого извлечения введенного пользователем значения. Также авторы работы заявили, что 17 300 расширений для браузера Google Chrome (12,5%) получают необходимые разрешения, чтобы извлекать конфиденциальную информацию.
Среди примеров отсутствия защиты на сайтах, приведенных в отчете, можно отметить следующие:
- gmail.com — пароли в виде открытого текста в исходном коде HTML;
- amazon.com — данные кредитной карты (включая код безопасности) и ZIP-код видны в виде открытого текста в исходном коде страницы;
- cloudflare.com — пароли в виде открытого текста в исходном коде HTML;
- facebook.com — пользовательские данные могут быть извлечены через DOM API;
- citibank.com — пользовательские данные могут быть получены через DOM API;
- irs.gov — SSN видны в виде открытого текста в исходном коде веб-страницы;
- capitalone.com — SSN видны в виде открытого текста в исходном коде веб-страницы;
- usenix.org — SSN видны в виде простого текста в исходном коде веб-страницы.
Источник проблемы
Исследователи поясняют, что проблема связана с системной практикой предоставления браузерным расширениям неограниченного доступа к DOM-дереву загружаемых сайтов, что позволяет получить доступ к потенциально чувствительным элементам, таким как поля ввода пользователя.
Ввиду отсутствия какой-либо границы безопасности между расширением и элементами сайта, расширение получает неограниченный доступ к данным, видимым в исходном коде, и может извлекать любое их содержимое.
Кроме того, расширение может злоупотреблять DOM API для прямого извлечения значения вводимых данных в момент их ввода пользователем, обходя все обфускации, применяемые сайтом для защиты конфиденциальных данных, и программно похищая это значение.
Протокол Manifest V3, представленный в Google Chrome и принятый большинством браузеров в этом году, ограничивает злоупотребление API, запрещает расширениям получать код, размещенный удаленно, что может помочь избежать обнаружения, а также предотвращает использование операторов eval, приводящих к выполнению произвольного кода.
Однако, как поясняют исследователи, Manifest V3 не устанавливает границу безопасности между расширениями и веб-страницами, поэтому проблема с контентными скриптами остается.
Ранее мы писали о том, что в Google Chrome появилась опция копирования кадра из видео.
Интересное про Google:
- Как Google поможет бизнесу: новый продукт
- Миф об «открытом» ИИ: зачем корпорациям сливать данные о работе моделей
- Изображения, созданные ИИ, будут помечаться водяным знаком