Исследователи безопасности из компании Secure Annex обратили внимание на рост популярности нового метода монетизации браузерных дополнений, при котором из пользователей дополнений формируется распределённая сеть, применяемая для скрапинга (индексации содержимого сайтов). Системы пользователей используют в качестве web-ботов и прокси для скачивания содержимого сайтов – установленное браузерное дополнение получает с внешнего сервера инструкции по индексации сайтов, после чего в отдельном скрытом iframe запускает загрузку запрошенного контента и передаёт полученные данные внешнему сервису. В каталогах Chrome, Firefox и Edge применение данной схемы монетизации выявлено в 245 дополнениях, в сумме насчитывающих 909 тысяч установок.
Работа организуется через включение в код браузерных дополнений открытой JavaScript-библиотеки mellowtel.js, поставляемой под лицензией LGPLv3. Библиотека развивается проектом Mellowtel, продвигающим новую платформу монетизации, которая кроме браузерных дополнений может применяться в программах на базе фреймворков Flutter и Electron. Основная идея платформы в том, что разработчики браузерных дополнений и приложений могут зарабатывать деньги не через показ рекламы или сомнительные методы, такие как продажа данных, ущемляющих приватность пользователей, а через выполнение задач по индексации web-контента для обучения AI-систем.
Потребность AI-компаний в данных для обучения моделей привела к появлению многочисленных ботов, индексирующих сайты без разумного ограничения интенсивности отправки запросов и игнорируя правила индексирования robots.txt. Так как данные боты создают огромную паразитную нагрузку на серверы, нарушают нормальную работоспособность систем и отнимают время администраторов, последнее время их начинают активно блокировать (например, сеть доставки контента Cloudflare реализовала опцию для блокирования подобных ботов по умолчанию).
AI-компании готовы платить за индексацию и платформа Mellowtel выразила готовность удовлетворить подобную потребность через вовлечение обычных пользователей в процесс сбора данных с сайтов. Платформа передаёт владельцам дополнений 55% от средств, вырученных от сотрудничества с AI-компаниями. Проект полностью легитимен и настаивает на том, что участие в скрапинге должно быть добровольным и активироваться только после явного согласия пользователя. Подразумевается, что пользователь в качестве благодарности к разработчикам дополнения может включить по умолчанию отключённый режим скрапинга и оказать им косвенную финансовую поддержку.
Проблема в том, что не все разработчики дополнений готовы работать честно и в открытую. В некоторых дополнениях пытаются скрыто от пользователя включить монетизацию Mellowtel в обход правил сервиса, что приводит к тому, что пользователь без явного согласия становится участником распределённой сети для загрузки данных с сайтов. Из 45 дополнений к Chrome, применяющих Mellowtel, 12 уже заблокированы Google за вредоносную активность. В каталоге Microsoft из 129 дополнений заблокировано 8, а в каталоге Mozilla из 71 дополнения заблокировано 2. Причины удаления не детализируются, но не исключается, что поводом стало некорректное использование Mellowtel.
Разработчик Mellowtel заявил, что для решения проблемы с возможным скрытым включением скрапинга сервис переходит на обязательную проверку всех дополнений, применяющих Mellowtel, на предмет обязательного отключения скрапинга по умолчанию (активация только после явного согласия пользователя) и наличия видимой кнопки для отключения. Запросы на получение заданий от дополнений не прошедших проверку будут помещаться в карантин и игнорироваться.
В процессе работы дополнения, использующие библиотеку Mellowtel, устанавливают websocket-соединение к внешнему серверу, размещённому в облаке AWS, через которое передают сведения о доступности пользователя, стране, пропускной способности канала связи и активации поддержки скрапинга пользователем. Периодически через соединение отправляются heartbeats-запросы, проверяющие доступность клиента. При появлении заданий на загрузку контента в просматриваемые пользователем страницы подставляется скрытый iframe, из которого осуществляется скрапинг.
Для загрузки внешних страниц из iframe, подставляемом при просмотре других сайтов, библиотека временно обходит предоставляемую в браузере защиту от загрузки стороннего контента, вырезая HTTP-заголовки Content-Security-Policy и X-Frame-Options и возвращая их после того, как нужная страница загружена. Вырезание осуществляется через модификацию сетевых запросов при помощи API declarativeNetRequest (для доступа к данному API дополнения запрашивают отдельное полномочие). Временное отключение заголовков Content-Security-Policy и X-Frame-Options негативно влияет на безопасность, так как на какое-то время убирает штатную защиту от атак с использованием межсайтового скриптинга (XSS).
Платформа Mellowtel аффилирована с компанией Olostep, предлагающей API для скрапинга, способный обходить защиту от ботов и параллельно выполнять до 100 тысяч запросов в минуту. Подобную активность сервиса, применённую в контексте одного сайта, можно сравнить с проведением распределённой DoS-атаки. Сервис также потенциально может использовать пользователей как прокси для извлечения контента из приватных сайтов, доступных только в подсетях, к которым пользователь получает доступ через VPN.