Вредоносные блокировщики, часть 3: старая недобрая традиция

Каждый год я пишу свежую статью о новых вредоносных расширениях, которые маскируются под обычные, например, под блокировщики рекламы. Знаете, как я это делаю? Не волнуйтесь, сейчас расскажу, алгоритм очень простой.

  1. Я захожу на страницу интернет-магазина Chrome.
  2. Вбиваю в поиск ключевые слова: adblock, adguard, ublock, ad blocker.
  3. Кликаю на каждое расширение, которое похоже на спам (то есть на каждое второе). Мне не нужно далеко скроллить и тратить много времени на их поиск, ведь магазин Chrome заботливо поднимает такие расширения на самые высокие позиции.
  4. Трачу две минуты на то, чтобы найти, делают ли они что-то подозрительное.

Некоторые фейковые расширения в интернет-магазине Chrome...

... и ещё немного расширений...

... больше, больше расширений!

Естественно, где-то в процессе изучения я жму кнопку "Сообщить о злоупотреблениях" и докладываю о найденном. И, само собой, ничего не меняется, эти расширения продолжают висеть в сторе и творить своё чёрное дело. Может быть, мне нужно подождать реакции месяц? Но боюсь, за это время пострадают лишние несколько сотен тысяч человек.

Давайте разбираться, что же опять не так.

В этот раз явно выделяются три группы расширений.

  1. Фейковые (то есть поддельные) блокировщики, которые вывели меня на целую группу из 294 расширений с более чем 80 миллионами пользователей суммарно (предполагаю, что заметная часть этой цифры — результат накрутки). Эти расширения очень хитрым способом вставляли свою рекламу в поисковую выдачу Google, о чём я расскажу ниже.
  2. Фейковые блокировщики (и другие расширения), которые занимаются "cookie stuffing" и "ad fraud". Это мои старые знакомые, я уже ловил целый выводок в прошлом году. Они даже код используют тот же самый! Всего найдено шесть таких расширений, у них суммарно 1 650 000 активных пользователей (и вот тут я склонен считать, что цифра вполне реальная).
  3. Спам-расширения, которые в любой момент могут начать делать что угодно нездоровое. Их огромное количество, я выбрал пять самых популярных, у них суммарно более 10 миллионов пользователей (скорее всего, это накрутка).

А знаете, что ещё важно и касается большинства этих расширений? В любой момент БЕЗ ВСЯКОГО ОБНОВЛЕНИЯ они могут поменять свое поведение и делать всё что угодно. Дело в том, что все они используют сторонний код, подгружаемый с удалённого сервера и контролируемый хозяином расширения. В любой момент этот код может измениться, обновлять расширение и проходить через ревью ему уже не придётся.

Рассмотрим каждый из этих случаев подробно.

Группа 1: Стеганография и ads injection

Вот парочка самых популярных расширений из этой группы:

Как видите, авторы не слишком оригинальничают в названиях.

Это самая масштабная группа вредоносных расширений среди тех, которые я встречал на практике. Она включает в себя 294 расширения с суммарным количеством пользователей около 80 миллионов по данным Chrome Web Store. Ещё эта группа интересна теми мерами, которые применяются для сокрытия своих действий.

Также эти расширения прекрасно раскрывают тезис выше о "ботнете" — ведь вредоносными они становятся не сразу, а только по команде с сервера. Каждое расширение из этой группы подгружает безобидный, на первый взгляд, скрипт "аналитики" с домена fly-analytics.com. Загвоздка в том, что стоит вам подождать несколько дней и этот скрипт несколько преобразится:

Вряд ли вы захотите, чтобы ваши браузерные расширения так делали

Обратите внимание, что он преобразится только лично для вас — любой другой человек увидит всё тот же безобидный скрипт. Дело в том, что сервер злоумышленников ориентируется на "куки" вашего браузера и добавляет вредоносный кусок только для известных ему пользователей. Но если вы думали, что это всего лишь меры по сокрытию вредоносного скрипта, то хочу вас обрадовать, дальше будет гораздо интереснее.

Кусок кода, который добавился в псевдоскрипт "аналитики", делает очень простую вещь: на каждую новую открытую вкладку он добавляет обфусцированный скрипт. Я немного повозился и подготовил для вас его расшифрованную версию.

Что делает этот скрипт:

  1. Проверяет, на какой странице он выполняется.
  2. Если это страница результатов поиска Bing или Google, то он подгружаетизображение с домена lh3.googleusrcontent.com. Обратите внимание, что этот домен не имеет отношения к Google, название выбрано специально, чтобы смутить наблюдателя.
  3. В этой картинке "закодированы" рекламные объявления, которые это расширение попытается "вставить". Эта техника называется "стеганография", и она часто используется разработчиками вредоносного ПО.
  4. Эти объявления вставляются на страницу.

Полный список расширений можно найти здесь.

Группа 2: Cookie stuffing

В этой группе у нас всего шесть расширений с 1 650 000 пользователями, зато я практически уверен, что количество активных пользователей тут реальное и никаких накруток нет.

Не буду в этом посте вдаваться в технические детали, ведь я уже делал это в прошлом году. Что меня действительно удивляет и расстраивает, так это то, что эти расширения используют тот же самый код, что и те, которые я нашёл в 2019. Очень жаль, что Google, при всей своей любви к автоматизации, не может автоматически отсеивать такие расширения.

Группа 3: Опасный спам

Расширения из этой группы пока что не делают ничего вредоносного.

Тем не менее, я считаю нужным упомянуть их. Всего несколько месяцев назад Google анонсировал более строгую политику борьбы со спамом в Chrome Web Store:

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

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

Давайте разберём несколько случаев подобного спама.

  • A-blocker, более 4 млн пользователей, 113 (!) отзывов.
  • Adblocker-X, более 1 млн пользователей, 11 (!) отзывов.
  • Adblocker for YouTube™, более 5 млн пользователей, 86 (!) отзыва.

Adblocker for YouTube™ резко упал до 80 тыс. пользователей — к слову о накрутке.

  • AdBear, более 1 млн пользователей, 6 (!) отзывов.
  • StopAds, более 1 млн пользователей, 18 (!) отзывов.
  • Adkill, более 3 млн пользователей, 45 (!) отзывов.

Что общего у всех этих расширений?

  1. Очевидно, накручено количество пользователей. Невозможно расширению с миллионом пользователей иметь 5-100 отзывов в интернет-магазине Chrome. Для сравнения возьмите любое популярное расширение со сравнимым количеством пользователей — у них тысячи или десятки тысяч отзывов.
  2. Все расширения объединяет несколько интересных деталей:
    • Используется исходный код других блокировщиков.
    • Очень короткое описание, буквально 2–3 параграфа текста. За счёт накрутки эти расширения всё равно попадают в топ поиска Chrome Web Store по нужным запросам.
    • Политика конфиденциальности у них размещена на Google Docs (пример).
  3. Главное, все расширения из списка выше подгружают код Google Tag Manager (далее — GTM). Это означает, что владелец аккаунта в GTM может в любой момент изменить "тег" и загрузить в своё расширение код, полностью изменяющий его поведение. Существует множество примеров использования GTM в подобных целях. Последствия такого изменённого поведения прекрасно демонстрируют примеры расширений из групп №1 и №2.

Как избавиться от этих расширений в CWS

Перейдём к следующей проблеме — как же добиться удаления этих расширений из магазина Chrome? В прошлом вообще не было никакого стандартизированного способа. Теперь вроде как есть кнопка "Сообщить о нарушении", которую может нажать любой. Проблема с этой кнопкой в том, что она не даёт никакого результата. Единственный надёжный способ — опубликовать статью в блоге и ждать, пока вокруг неё поднимется шумиха, после чего подобные расширения магическим образом исчезают из CWS. Далеко не самый идеальный способ.

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

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

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

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

Google не справляется

Давайте в этот раз я скажу прямо — Google не справляется с интернет-магазином Chrome. В качестве реакции на прошлый негативный опыт (1,2) появился процесс рассмотрения расширений, а политика CWS стала гораздо строже.

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

Справедливости ради, Google сделал одну отличную вещь — была введена должность Chrome Extensions Developer Advocate. Это живой человек, к которому мы (разработчики) можем прийти со своими проблемами. И этот человек на самом деле оказывает совершенно неоценимую помощь и часто выручает разработчиков. Так что за это мы от чистого сердца говорим "спасибо"!

Что может сделать Google, чтобы исправить ситуацию

Я убеждён, что CWS управляется умными и рассудительными людьми, и я вижу, что они честно пытаются улучшить ситуацию. Приведение в исполнение политик CWS и поддержание безопасной среды — непростая задача, требующая навыков и времени.

Проблема в том, что на момент добавления в CWS такие расширения ничего не нарушают. Однако, поскольку CWS разрешает практику удалённого кода, в дальнейшем они могут поменять своё поведение в любой момент. Эта проблема частично решится после перехода расширений на Manifest V3, но даже в этом случае авторы вредоносных расширений найдут способы вроде той же стеганографии, чтобы обмануть рецензентов.

В краткосрочной перспективе возможным решением может стать создание канала для сообщений о вредоносных расширений, который будет по-настоящему работать. Мне не нравится ни то, как на данный момент работает Vulnerability Reward Program (три недели, расширения всё ещё доступны), ни текущая ситуация с кнопкой "Сообщить о нарушении".

В долгосрочной же перспективе, возможно, вместо рецензирования расширений (или вдобавок к нему) пришло время начать "рецензировать" разработчиков? Возможно, вместо платы в $5 лучше заставить их предоставить и подтвердить какие-нибудь персональные данные вроде имени или адреса?

Как вам защитить себя?

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

  1. Если вы собираетесь установить браузерное расширение, подумайте снова. Может быть, оно вам на самом деле не нужно?
  2. Устанавливайте расширения только от разработчиков, которым доверяете.
  3. Не верьте тому, что читаете в описании приложения.
  4. Чтение отзывов пользователей также не поможет. У большинства вредоносных расширений отличные отзывы, и всё же они вредоносные.
  5. Не используйте встроенный поиск магазина Chrome, переходите по ссылкам прямо на сайтах разработчиков, которым доверяете.

Изменится ли что-нибудь к лучшему на этот раз? Прошлый опыт оставил меня пессимистом, но будем надеяться на лучшее!

Andrey Meshkov для Industry News Защита данных AdGuard Research
4 августа 2020 г.
Загружая комментарии, вы соглашаетесь с условиями использования и политикой конфиденциальности.
Первый роутер с AdGuard Home
В сотрудничестве с GL-iNet мы представляем первый роутер с предустановленным AdGuard Home! Надеемся, что это только первый прецедент в череде многих подобных коллабораций.
Daria Magdik для Industry News
18 августа 2020 г.
Apple анонсировала метки приватности и поддержку WebExtensions
Метки, которые появятся в iOS 14, должны будут помочь пользователям контролировать, как то или иное приложение использует их персональные данные и передаются ли эти данные третьим сторонам.
Загрузка AdGuard началась! Нажмите на кнопку, на которую указывает стрелка, чтобы начать установку программы. Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!