Исследование

MitM-расширение для Chrome

Расширения для браузеров упрощают нам жизнь: прячут назойливую рекламу, переводят текст, помогают сделать выбор в онлайн-магазинах и т.п. Есть среди них и нежелательные – те, что подсовывают пользователю рекламу или собирают информацию о его действиях. Но даже их можно назвать вполне безобидными на фоне расширений, основная задача которых заключается в краже денег. Чтобы обезопасить своих клиентов, мы автоматически обрабатываем множество расширений из различных источников, в том числе скачиваем и анализируем подозрительные расширения из Chrome Web Store. Одно из них, обнаруженное недавно, обращалось к подозрительному домену, чем и привлекло наше внимание.

Расширение под названием «Desbloquear Conteúdo» (с португальского «Разблокировать содержимое») для Google Chrome было ориентировано на пользователей бразильских интернет-банков – все зафиксированные нами попытки установки расширение происходили в Бразилии. Задачей зловреда является сбор аутентификационных данных (например, логины и пароли) и последующая кража денежных средств со счетов жертв. Расширение детектируется продуктами «Лаборатории Касперского» как HEUR:Trojan-Banker.Script.Generic.

На момент публикации вредоносное расширение уже было удалено из Chrome Web Store.

Вредоносное расширение в Chrome Web Store

Анализ зловреда

Вредоносные расширения для браузеров часто используют различные техники для затруднения обнаружения и детектирования антивирусным ПО (например, обфускацию). Разработчики исследуемого расширения не стали обфусцировать его исходный код, выбрав другой путь. Для получения и передачи данных зловред использует протокол WebSocket, который позволяет обмениваться сообщениями с управляющим сервером в режиме реального времени. В результате C&C начинает играть роль прокси-сервера, куда расширение перенаправляет трафик в случаях, когда жертва находится на странице одного из бразильских банков. Фактически, оно осуществляет атаку Man-in-The-Middle.

Расширение «Desbloquear Conteúdo» состоит из двух JS-скриптов, рассмотрим их подробнее.

fundo.js

Первое, что привлекает внимание в коде скрипта, это функция websocket_init(). В ней создается WebSocket, и с сервера (ws://exalpha2018[.]tk:2018) загружаются данные, которые сохраняются в chrome.storage по ключу «manualRemovalStorage».

Загрузка данных с сервера через WebSocket

Данные, загруженные и сохраненные расширением

В результате обращения к hxxp://exalpha2018[.]tk/contact-server/?modulo=get расширение получает IP для перенаправления пользовательского трафика.

Получение IP с сервера

IP сервера, куда перенаправляется весь пользовательский трафик

Здесь следует упомянуть технологию Proxy Auto Configuration (автоматическая настройка прокси-сервера). Современные браузеры используют специальный файл, написанный на языке JavaScript, в котором определена только одна функция: FindProxyForURL. С помощью этой функции браузер определяет какой прокси-сервер использовать для установления соединения с различными доменами.

Скрипт fundo.js использует технологию Proxy Auto Configuration в момент вызова функции implement_pac_script. В результате функция FindProxyForURL заменяется на новую для перенаправления трафика на сервер злоумышленников, но только в случаях, когда пользователь находится на странице одного из банков.

Изменение настроек браузера для перенаправления пользовательского трафика

pages.js

В этом скрипте наиболее важен следующий участок кода:

Выполнение загруженного вредоносного кода на страницах банков

В «manualRemovalStorage», как и в случае со скриптом fundo.js, сохранены загруженные с сервера данные: домены некоторых бразильских банков и код, который браузеру нужно выполнить, если пользователь зашел на соответствующий сайт.

pages.js скачивает с домена ganalytics[.]ga и запускает на сайтах банков следующие скрипты:

  • ganalytics[.]ga/bbf.js,
  • ganalytics[.]ga/bbj.js,
  • ganalytics[.]ga/cef.js,
  • ganalytics[.]ga/itf.js,
  • ganalytics[.]ga/itf_new.js.

Статистика срабатываний веб-антивируса на обращения к домену ganalytics[.]ga

Все перечисленные скрипты имеют схожие возможности и предназначены для кражи аутентификационнных данных пользователя. Рассмотрим далее один из них.

cef.js

Одной из функций данного скрипта является добавление определенного HTML-кода на главную страницу системы онлайн-банкинга.

Добавление вредоносного кода на страницу

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

Перехват одноразовых паролей пользователя

Если пользователь находится на странице ввода логина и пароля, скрипт клонирует кнопку «Вход». Также создается функция, которая обрабатывает нажатие на нее. В этой функции пароль сохраняется в файлах cookie для последующей передачи на C&C и инициируется нажатие настоящей кнопки, которая скрыта от жертвы.

Создание копии кнопки «Вход» и перехват логина и пароля для доступа к интернет-банку

В результате пароль от аккаунта будет отправлен не только в систему онлайн-банкинга, но и на сервер злоумышленников.

Отправка всех перехваченных данных на C&C

Дополнительный анализ с помощью сервиса KL Threat Intelligence Portal позволяет получить некоторые интересные сведения. Например, упоминаемый выше ganalytics[.]ga зарегистрирован в доменной зоне, относящейся к Габону, и потому whois-сервисы предоставляют о нем сравнительно мало информации:

WHOIS информация ganalytics[.]ga

Но при этом IP-адрес, на котором он хостится, связан с несколькими другими любопытными доменами.

Фрагмент DNS-данных из KSN

Видно, что на том же IP-адресе располагаются (либо располагались ранее) другие домены с характерными именами, содержащими слова advert, stat, analytic, и зарегистрированные в доменной зоне Бразилии .br. Примечательно, что многие из них были замечены в распространении веб-майнеров осенью прошлого года, причём загрузка майнящих скриптов осуществлялась при посещении легитимных сайтов бразильских банков.

Фрагменты данных из KSN, относящиеся к ресурсу advstatistics.com[.]br

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

Заключение

Браузерные расширения, направленные на кражу логинов и паролей, встречаются довольно редко. Но учитывая возможный ущерб, который может нанести одно такое расширение, стоит отнестись к ним со всей серьезностью. Советуем выбирать проверенные дополнения, имеющие большое количество установок и отзывов в Chrome Web Store или другом официальном сервисе. Ведь несмотря на меры защиты, предпринимаемые владельцами таких сервисов, вредоносные расширения по-прежнему могут проникать в них – один из таких случаев мы разобрали. Не лишним будет и защитное решение, которое сможет предупредить о подозрительной активности установленного расширения.

MitM-расширение для Chrome

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике