CVE-2008-5353

Как видно уже из названия, CVE-2008-5353 - уязвимость достаточно старая, да и о CVE-2Q11-3544 информация была опубликована еще 18 октября 2011 года, то есть была ни разу не zero day на момент распространения FlashFake. Oracle выпустила патч для нее в том же месяце. В настоящее время CVE-2011-3544 лидирует по успешному «пробиву» защиты браузеров и используется в большинстве эксплойт-паков, например BlackHole. После 16 марта стал применяться эксплойт для уязвимости CVE-2012-0507. И опять-таки Oracle закрыла эту уязвимость в феврале, а корпорация Apple выпустила исправление для нее только 3 апреля 2012 года.

Каким же образом происходило заражение? Есть сведения, что в поисковой выдаче Google присутствовало около четырех миллионов веб-страниц, содержащих редиректы на вредоносный jar-файл. Некоторые пользователи даже отмечали случаи заражения FlashFake при посещении сайта компании D-Link! В качестве площадок для размещения вредоносных редиректов использовались взломанные через неизвестную уязвимость блоги, функционирующие под управлением WordPress.

Прежде чем загрузить троян, вредоносный Java-апплет проверял систему на наличие пакета разработчика X Code или файрвола LittleSnitch (а также некоторых других приложений антивирусной направленности). Если нежелательные программы присутствовали, установка не производилась. Вероятно, таким образом, злоумышленники пытались отодвинуть момент обнаружения FlashFake каким-либо «продвинутым» пользователем.

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

Основной модуль копировался в каталог $Н0МЕ под случайным именем, в начале которого была точка, например .null. Для автозапуска FlashFake использует фичу OS X под названием Scripting additions. Изначально она была предназначена для расширения функционала установленных приложений другими приложениями. Фактически это механизм легального внедрения кода в другие процессы, что и было использовано злоумышленниками. Ссылка на основной модуль помещалась в файл $H0ME/Library/ LaunchAgents/.plist, это обеспечивало передачу ему управления при запуске любого приложения. Административные права для этого не требовались, так как запись производилась в каталог текущего пользователя.

Внедряемый модуль, используемый для перехвата трафика и подмены страниц в браузере, устанавливался одним из двух способов. Пойдя по пути наименьшего сопротивления, первым делом он пытался внедриться в браузер Safari. Правда, для этого ему необходимы были права root. Для их получения перед пользователем демонстрировалось окно ввода административного пароля, якобы для нужд обновления программного обеспечения. Если такой вариант не проходил, существовал план В. Согласно ему внедряемый модуль под именем .libgmalloc.dylib помещался в /Users/Shared, а в файл environment.plist в $HOME/.MacOS вносилась следующая информация:

<key>DYLD_INSERT_LIBRARIES</key>

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

В результате .libgmalloc.dylib внедрялся во все приложения. План В не использовался, если в системе обнаруживались приложения из состава Microsoft Office 2008/2011 и Skype. Apple прикрыла фичу с DYLD_INSERT_LIBRARIES, начиная с версии Lion 10.7.4.

Последние (на момент сдачи статьи в печать) версии FlashFake отметились использованием механизма поиска своих управляющих центров через Twitter. Также, очевидно, разработчики решили упростить себе работу по написанию кода и вынесли функционал перехвата и подмены контента для браузера Firefox в отдельный плагин xpi, маскирующийся опять-таки под Adobe Flash.

Вволю поэксплуатировав вычислительные мощности ничего не подозревающих пользователей, неустановленные злоумышленники свернули лавочку в мае 2012-го. Именно тогда перестали функционировать командные центры. Профит заключался в накрутке трафика посещения сайтов (доход от рекламы) и манипуляциях с поисковой выдачей (сервис продвижения сайтов «запрещенными» методами BlackSeo). Вера пользователей Маков в свою «безопасную» платформу несколько пошатнулась, а Apple даже удалила установку Java по умолчанию из стандартной конфигурации установки системы.