Shlayer: троянец, атаковавший каждого десятого пользователя macOS

Содержание 

Троянец Shlayer уже без малого два года является самой распространенной угрозой на платформе macOS: в 2019 году каждый десятый пользователь наших защитных решений для Mac сталкивался с этим зловредом хотя бы раз, а его доля по отношению ко всем детектам на данной ОС составляет практически 30%. Первые экземпляры семейства попали к нам в руки еще в феврале 2018 года, и на данный момент мы собрали почти 32 тысячи различных вредоносных образцов троянца, а также выявили 143 домена C&C-серверов.

ТОP 10 угроз для macOS по доле атакованных пользователей защитных решений «Лаборатории Касперского» для macOS, январь — ноябрь 2019 г. (скачать)

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

Статистика детектов зловредов семейства Shlayer защитными решениями «Лаборатории Касперского» для macOS, февраль 2018 — ноябрь 2019 г. (скачать)

Технические детали

Несмотря на свою «популярность», с технической точки зрения Shlayer — довольно заурядный образец вредоносного ПО. Среди всех модификаций троянца особняком стоит одна из последних — Trojan-Downloader.OSX.Shlayer.e. Этот вариант, в отличие от своих собратьев, написан на языке программирования Python, а не на Bash, и алгоритм его работы несколько отличается от остальных. Продемонстрируем это на примере DMG-файла с MD5 4d86ae25913374cfcb80a8d798b9016e.

Первый этап заражения

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

Инструкция для пользователя по запуску Shlayer

В директории с исполняемыми файлами внутри пакета приложения находятся два Python-скрипта: gjpWvvuUD847DzQPyBI — основной и goQWAJdbnuv6 — вспомогательный. Последний реализует функции шифрования данных с помощью байтового сдвига по ключу key:

  • пара функций encryptText и decryptText осуществляют шифрование и расшифровывание строк;
  • encryptList шифрует содержимое переданного в аргументах списка, decryptList осуществляет обратную операцию;
  • функция getKey(), как можно догадаться из названия, генерирует ключ шифрования на основе времени в операционной системе.

Основной скрипт троянца

Вспомогательный скрипт троянца

Далее основной скрипт генерирует уникальный идентификатор пользователя и системы, а также собирает информацию об используемой версии macOS. На основе этих данных формируются параметры GET-запроса для скачивания ZIP-файла:

Загруженный в директорию /tmp/%(sessionID) ZIP-архив распаковывается в директорию /tmp/tmp с помощью функции unzip:

Внутри ZIP-архива на момент исследования находился пакет приложения с исполняемым файлом 84cd5bba3870:

После распаковки архива основной python-скрипт с помощью утилиты chmod выдает файлу 84cd5bba3870 права на исполнение в системе:

Для большей уверенности пользователя в легитимности происходящего образец копирует иконку исходного примонтированного DMG-образа в директорию с только что загруженным пакетом приложения с помощью функций moveIcon и findVolumePath:

После этого троянец запускает загруженный и распакованный пакет приложения с помощью встроенной утилиты open, а исходный архив и его распакованное содержимое удаляет:

Второй этап заражения

Сам Shlayer осуществляет только начальный этап атаки — он проникает в систему, загружает основную полезную нагрузку и запускает ее. Чтобы увидеть негативные последствия для пользователя, рассмотрим семейство AdWare.OSX.Cimpli, которое активно скачивалось троянцем на момент написания статьи.

На первый взгляд, инсталлятор Cimpli не вызывает особых подозрений, он вполне безобидно предлагает к установке приложения партнеров (например, Any Search):

Но на самом деле Cimpli также совершает несколько скрытых от пользователя действий. Во-первых, он устанавливает в Safari вредоносное расширение, перекрывая поддельным окном зловреда уведомление системы безопасности ОС, делая его невидимым. Нажимая на кнопки в уведомлении, пользователь на самом деле соглашается с инсталляцией расширения.

Слева — то, что видит пользователь, справа — что происходит на самом деле

Одно из таких расширений — ManagementMark, детектируемое нами как not-a-virus:HEUR:AdWare.Script.SearchExt.gen. Оно отслеживает поисковые запросы пользователя и перенаправляет их по адресу hxxp://lkysearchex41343-a.akamaihd[.]net/as?q= с помощью встраивания скрипта script.js в страницы браузера:

Также образец загружает утилиту mitmdump, запакованную с помощью PyInstaller. Чтобы mitmdump получил возможность просмотра HTTPS-трафика, в систему добавляется специальный доверенный сертификат. Осуществляется это также с помощью поддельного окна, отрисованного поверх подтверждения установки. После этого весь трафик пользователя перенаправляется на SOCKS5-прокси, запущенный с помощью mitmdump.

Аргументы запуска запакованного mitmdump

На скриншоте можно увидеть, что весь трафик, проходящий через mitmdump (SearchSkilledData), обрабатывается скриптом SearchSkilledData.py (опция —s):

Этот скрипт перенаправляет все запросы пользователя к поисковым системам на hxxp://lkysearchds3822-a.akamaihd[.]net. Решения «Лаборатории Касперского» детектируют данный скрипт как not-a-virus:AdWare.Python.CimpliAds.a.

Таким образом, рекламное ПО семейства Cimpli основательно закрепляется в системе: в случае если трафик не проходит через прокси-сервер, перенаправлением запросов занимается JS-код расширения, встраиваемый в страницу. Злоумышленник получает доступ к поисковым запросам пользователя и может модифицировать выдачу поисковых систем с целью показа рекламных предложений. В конечном итоге пользователь получает множество нежелательной рекламы.

Следует отметить, что Cimpli — не единственное семейство рекламных приложений, которое может загрузить Shlayer. В этот список также входят AdWare.OSX.Bnodlero, AdWare.OSX.Geonei и AdWare.OSX.Pirrit, которые занимают почти все оставшиеся позиции в TOP 10 угроз для macOS в 2019 году.

Связь с другими модификациями семейства

Несложно заметить сходство поведения версии Shlayer на Python с более ранними модификациями семейства, написанными на Bash: сбор идентификаторов и версии системы, загрузка архива во временную директорию, исполнение загруженного файла, удаление следов загрузки — все это было и в старых версиях. При этом обе модификации используют curl с сочетанием опций «–f0L», что фактически является визитной карточкой всего семейства:

Сверху — старая модификация троянца, снизу — новая

Не так-то просто найти легитимные варианты использования опций –f0L утилиты curl

Распространение

Распространение зловреда — важная часть его жизненного цикла, и к этому вопросу создатели Shlayer отнеслись очень тщательно. Ищете новую серию любимого сериала? Хотите посмотреть прямую трансляцию футбольного матча? Тогда стоит быть повнимательнее: есть большая вероятность встретиться с Shlayer.

Примеры лендингов Shlayer

Мы заметили сразу несколько файловых партнерских программ (что из себя представляют такие программы, подробно описано здесь), в которых в качестве способа монетизации предлагался Shlayer. Проанализировав предложения различных поставщиков, мы выделили общую тенденцию: Shlayer от остальных отличает сравнительно высокая оплата за инсталляцию, хотя засчитываются только установки, сделанные пользователями из Америки. Вероятнее всего, перспектива высокого заработка и способствовала широкой популярности данного «оффера» (мы насчитали более 1000 «партнерских» сайтов, распространяющих Shlayer).

Описание «оффера» на сайте партнерской программы

В большинстве случаев через рекламные лендинги пользователи попадали на следующий этап цепочки распространения — красиво отрисованные подставные страницы, которые под соусом обновления Flash Player предлагали установить зловреда. Таким способом распространялась в основном модификация Trojan-Downloader.OSX.Shlayer.a.

Поддельная страница загрузки Flash Player

Версия Trojan-Downloader.OSX.Shlayer.e, о которой шла речь выше, распространялась несколько отличным способом. Аналогично предыдущей схеме, пользователи в конечном итоге попадали на подготовленную страницу загрузки обновления Adobe Flash. Но перенаправлялись они на нее с крупных онлайн-сервисов, имеющих многомиллионную аудиторию. Неоднократно нами были замечены случаи, когда ссылки, ведущие к загрузке зловреда, содержались в описании к видео на YouTube:

Еще один пример: ссылки на страницы, с которых распространялся Shlayer, находились на ресурсе Wikipedia среди примечаний к статьям.

Злоумышленники сами не добавляли их на перечисленные ресурсы: мы обнаружили, что у всех «вредоносных» доменов недавно истек срок регистрации, и судя по данным WHOIS, их владельцем теперь является один человек. Новоиспеченный хозяин разместил на сайтах вредоносный скрипт, который перенаправляет пользователей на лендинги загрузки Shlayer. Всего таких доменов на данный момент насчитывается уже более 700.

Собранная нами статистика показывает, что больше всего атак Shlayer приходится на пользователей США — 31%, далее идет Германия — 14%, по 10% атакованных пришлось на Францию и Великобританию. Это вполне соотносится с условиями партнерских программ, поставляющих зловреда, а также с тем фактом, что практически все сайты, которые ведут на страницы с поддельным Flash-плеером, содержали англоязычный контент.

Географическое распределение пользователей, атакованных троянцем Shlayer, февраль 2018 — октябрь 2019 гг. (скачать)

Заключение

Изучив семейство Shlayer, можно сделать вывод, что платформа macOS является хорошим источником дохода для злоумышленников. Встретиться с данным троянцем можно, даже посещая только легитимные ресурсы: злоумышленники отлично используют приемы социальной инженерии, и довольно сложно предугадать, насколько изощренным будет очередной способ обмана.

Решения «Лаборатории Касперского» детектируют Shlayer, его артефакты и страницы загрузки со следующими вердиктами:

  • HEUR:Trojan-Downloader.OSX.Shlayer.*
  • not-a-virus:HEUR:AdWare.OSX.Cimpli.*
  • not-a-virus:AdWare.Script.SearchExt.*
  • not-a-virus:AdWare.Python.CimpliAds.*
  • not-a-virus:HEUR:AdWare.Script.MacGenerator.gen

IOCS:

  • 4d86ae25913374cfcb80a8d798b9016e
  • fa124ed3905a9075517f497531779f92
  • 594aa050742406db04a8e07b5d247cdd

Malicious links:

  • hxxp://80.82.77.84/.dmg
  • hxxp://sci-hub[.]tv
  • hxxp://kodak-world[.]com

C&C Urls:

  • hxxp://api.typicalarchive[.]com
  • hxxp://api.entrycache[.]com
  • hxxp://api.macsmoments[.]com

Публикации на схожие темы

Добавить комментарий

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