Меню
RU

Больше 20 миллионов пользователей Chrome стали участниками ботнета из фейковых блокировщиков рекламы

Согласно отчету PageFair от 2014 года, Google Chrome стал главным катализатором роста блокировки рекламы на компьютерах. Около 20% пользователей открыли для себя возможности блокировки с помощью поиска «доступных браузерных расширений». Учитывая, насколько популярна блокировка рекламы вообще, это довольно высокий показатель. Данный факт также хорошо объясняет, почему «клонирование» широко известных рекламных блокировщиков так распространилось среди онлайн-мошенников. Например, семь месяцев назад по крупным новостным изданиям разошлась история о том, как 37 тысяч пользователей были обмануты, установив поддельное расширение Adblock Plus.

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

К сожалению, эта проблема не нова. Много времени прошло с тех пор, как мошенники начали спамить Chrome WebStore клонами популярных блокировщиков (добавляя всего несколько строк своего кода). Так, пользователи вполне могли установить какие-нибудь «Adguard Hardline» или «Adblock Plus Premium» или другие имитации известных блокировщиков. Единственный возможный способ борьбы с подобными приложениями — это обратиться к Google с жалобой о неправомерном использовании товарного знака. Удаление клона занимает несколько дней.

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

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

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

Все оттенки скрытых скриптов

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

Итак, первым заметным отличием от оригинального кода расширения AdBlock, является наличие файла coupons.txt:

Вторая странность — при инициализации расширение загружает картинку со стороннего домена www.hanstrackr.com:

Выглядит странно, но пока что - не преступно. Давайте разберемся, зачем им нужны эти файлы. Выясняется, что оба были загружены скриптом, скрытым внутри модифицированной библиотеки jQuery:

jQuery.extend({

	normalize: function(value) {

		return jQuery.xrat+'ob("'+value+'")';
	}
});

Эта функция возвращает строку: atob («здесь идет скрытый скрипт в base64»), которая затем выполняется. Сам скрипт также был обфусцирован. Вы можете взглянуть на его расшифрованную версию здесь.

Этот скрытый скрипт слушает каждый запрос, сделанный браузером, и сравнивает md5 (url + «% Ujy% BNY0O») со списком сигнатур, загружаемых из coupons.txt (так вот что это за "купоны"). Как только совпадение найдено, скрипт загружает iframe с домена g.qyz.sx, передавая информацию о посещенной странице, а затем повторно инициализирует расширение. Например, одна из этих сигнатур соответствует https://www.google.com/.

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

    decodeMessage = function(variable_0, variable_1) {
        var variable_2 = [],
            variable_4 = getNumberFromBits(variable_0, variable_2, variable_1);
        if (16 * (variable_4 + 1) > 0.75 * variable_0["length"]) {
            return ""
        };
        if (0 === variable_4) {
            return ""
        };
        for (var variable_3 = [], variable_5 = 0; variable_5 < variable_4; variable_5++) {
            var variable_66 = getNumberFromBits(variable_0, variable_2, variable_1);
            variable_3["push"](String["fromCharCode"](variable_66))
        };
        return variable_3["join"]("")
    }

Эта техника называется "Стеганография" и она часто используется авторами вредоносных программ и расширений.

Обратите внимание на то, что все эти скрипты исполняются в привилегированном контексте (справочная страница расширения), и могут делать с вашим браузером буквально все, что угодно.

AdRemover — краткое резюме

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

  1. Он скрывает вредоносный код внутри известной библиотеки java-скриптов (jQuery).
  2. Этот код отправляет на сервер информацию о некоторых сайтах, которые вы посещаете.
  3. Он получает команды с удаленного командного сервера. Чтобы избежать обнаружения, эти команды скрыты внутри на первый взгляд безвредного изображения.
  4. Команды представляют собой скрипты, которые затем исполняются в привилегированном контексте («background page» расширения) и могут изменять поведение вашего браузера.

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

Беда не приходит одна

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

Вот полный список:

  • AdRemover for Google Chrome™ (10M+ пользователей)
  • uBlock Plus (8M+ пользователей)
  • Adblock Pro (2M+ пользователей)
  • HD for YouTube™ (400K+ пользователей)
  • Webutation (30K+ пользователей)

Мы сообщили о данных расширениях Google, и на данный момент все они уже удалены из Chrome WebStore.

Как защитить себя от вредоносных расширений

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

Ну ладно, я понял, вам абсолютно необходимо это расширение.

Тогда вот пара советов:

  1. Узнайте, кто является автором этого расширения, и удостоверьтесь, что ссылка на сайте разработчика действительно ведет на это расширение в Chrome WebStore.

  2. Никогда не устанавливайте расширение, если вы не доверяете его автору. А даже если доверяете, следите за обновлениями. В любой момент расширение может быть продано кому-то другому, и кто знает, каким оно станет после этого (вот яркое тому подтверждение).

18 апреля 2018 г.
Загружая комментарии, вы соглашаетесь с условиями использования и политикой конфиденциальности.
Безопасник разоблачил создателя CoinHive и подвергся странной мести
Эксперт по безопасности Брайан Кребс решил разобраться, кто стоит за знаменитым майнером-паразитом CoinHive (далее CH) и как он появился. У него получилась увлекательная история с красочными персонажами.
AdGuard для Android 2.11

По мере того как мы продолжаем прорываться к выпуску версии AdGuard для Android 3.0, приложение продолжает получать промежуточные обновления в качестве побочного продукта :) Сегодня мы представляем версию 2.11, большое обновление, по крайней мере, если судить по количеству пунктов в списке изменений. Две "глыбы" этого обновления — внедрение Помощника и интеграция с веб-инструментом для отправки отчетов о рекламе, и на них я остановлюсь подробно.

Загрузка AdGuard началась Стрелка указывает на файл: нажмите на него, и установка начнётся Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!
AdGuard есть и в мобильном варианте