Обновление буткита Rovnix. Перевод статьи

в 11:38, , рубрики: ESET, Rovnix, перевод, переводы, Песочница, метки: , ,

Данная статья является переводом статьи от 13.07.2012 за авторством Александра Матросова, ссылку на которую я нашел в конце поста про утечку исходников Caberp. Мне она показалась интересной и я решил ее перевести.
Кому стало так же интересно, добро пожаловать под кат.

Мы следили за деятельностью семейства буткитом Rovnix с апреля 2011 года (здесь и далее речь от лица автора — Прим. пер.). Rovnix была первым семейством, использующим заражение VBR (Volume Boot Record) для загрузки неподписанных драйверов ядра для x64 платформ. Причиной пристального внимания явилось желание разработчиков Rovnix обойти обнаружение антивирусами. Полезная нагрузка первых образцов в дикой природе блокировала подключение к Интернету пользователей из России и вынуждала их отправлять СМС на короткий номер, для разблокировки (Hasta La Vista, Bootkit: Exploiting the VBR).

Эти варианты с блокирующей Интернет нагрузкой перестали использовать буткит-компонент летом 2011 года. В то время фреймворк Rovnix был продан разработчикам Carberp, ответственным за ботнет Hodprot / Origami (Evolution of Win32Carberp: going deeper). Разработчики Carberp использовали этот фреймворк только до конца 2011 года. У нас нет информации о других продаж фреймворка. У нас есть только информация, подтверждающая не высокую частоту заражений кодом на основе Rovnix буткита. Несколько дней назад мы получили несколько интересных образцов и их быстрый анализ показал Rovnix.B-подобную модификацию сценария заражения VBR.
После распаковки дроппера мы нашли типичный компонент для подготовки к следующим шагам установки модуля BkSetup.dll Rovnix буткита. Дата компиляции модуля BkSetup.dll выглядела свежей и датировалась 24.06.2012 (конечно, возможно подделать дату, но до этой поры разработчики ее не изменяли).

image

Также была найдена информация о версии в ресурсном сегменте BkSetup.dll. Вот она:

image

Версия файла была изменена до 2.4: раньше Carberp использовал BkSetup.dll версии 2.1 и хранил информацию в отладочной строке, отправляемой C&C, в качестве отладочной информации.

image

Базовая функциональность BkSetup.dll сосредоточена на процессе заражения и создания скрытого хранилища. Схема обращений основных процедур BkSetup.dll выглядит следующим образом:

Обновление буткита Rovnix. Перевод статьи

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

Полиморфный загрузочный код

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

image

Простой трюк полиморфизма на основе перестановок основных блоков кода всегда приводит к получению контроля вредоносным ПО над расшифрованным VBR кодом. Основные блоки кода выглядят следующим образом:

Обновление буткита Rovnix. Перевод статьи

[Полиморфный код Rovnix.B]

Причина использования полиморфного кода — обход обнаружения статической сигнатуры антивирусами: этот код может быть обнаружен только с использованием эмуляции. Техника эмуляция тесно связано с песочницей, где код выполняется в безопасном виртуальном окружении с целью его динамического анализа. Различия между Rovnix.D и Rovnix.B модификациями представлены в этом графике:

image
image

[Rovnix.D вариант (сверху) и Rovnix.B вариант (снизу)]

Место хранения зашифрованного VBR кода было также изменено, и после выполнения полиморфного кода, управление передается расшифрованному коду VBR. Неодинаковое расположение зашифрованного VBR кода выглядит следующим образом:

Обновление буткита Rovnix. Перевод статьи

Мы также обнаружили изменения в функции расшифровки и чтения неподписанного драйвера из RAW-секторов жесткого диска. Эти сектора не используются в общем скрытом хранилище, а только в качестве места для хранения вредоносного драйвера, который внедряет полезную нагрузку в указанные пользовательские процессы на зараженной машине. Различия можно увидеть на следующем рисунке:

image
image

[Rovnix.D вариант (сверху) и Rovnix.B вариант (снизу)]

Все эти изменения направлены на обход обнаружения антивирусами и не отражают фундаментальные изменения в общей структуре буткита Rovnix.

Изменения в скрытом хранилище

Структура скрытой файловой системы похожа на структуру из предыдущих модификаций Rovnix и уже была описана в предыдущих постах блога (Rovnix Reloaded: new step of evolution) ССЫЛКА ЗДЕСЬ. Однако незначительные изменения были найдены в коде инициализации файловой системы. Был обнаружен странный вызов функции с целью чтения файла INJECTS.SYS из скрытого хранилища.

image

Эта любопытная функция извлекает один или два пути из файла INJECTS.SYS к файлам на стандартной файловой системы. Код функции представлен на рисунке ниже:

image

Управление потоком никогда не дойдет до исполнения этого кода, потому что условие всегда равняется NULL и контроль никогда не передастся этому коду. На мой взгляд, эта модификация в Rovnix.D использовалась для тестов, и мы не видим много обнаружений в дикой природе. Похоже, что Rovnix.D является переходной версией в рамках подготовки к чему-то еще, но в данный момент у нас нет четкого понимания того, что это может быть.

Полезная нагрузка

Модуль полезной нагрузки включает в себя возможности для скачивания и выполнения дополнительных модулей с сервера C&C. Этот модуль не обеспечивает хуков и других вредоносных изменений в системной память, и как правило, не обнаружены наиболее распространенными антивирусами.

Доменом C&C является rtttt-windows.com

Модуль полезной нагрузки работает в режиме многопоточности и может общаться с вредоносным драйвером. Для обеспечения синхронизации полезня нагрузка генерирует мьютекс: Global <Generated_string>. График вызовов для основного потока выглядит следующим образом:

Обновление буткита Rovnix. Перевод статьи

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

Заключение

На данный момент изменения можно увидеть в перспективе комплексных угроз для платформы x64. Семейство
Sirefef (ZeroAccess) мигрировало в пользовательский режим, в своих последних модификациях (ZeroAccess: code injection chronicles) ССЫЛКА ЗДЕСЬ. Olmarik / Olmasco (TDL4 и MaxSS модификации) не распологает большим числом заражений в дикой природе и остановился в развитии (The Evolution of TDL: Conquering x64). Почему руткиты / буткиты для 64-тной платформы умирают? На мой взгляд, количество способов заражения 64-разрядных систем сильно ограничено, и поиск чего-то нового требует достаточно много времени и значительного опыта со стороны разработчика. Большинство заражений буткитом использовали MBR-модификации, но этот метод довольно старый и к данному времени наиболее распространенные антивирусны предоставляют проверку на изменение MBR. Семейство Rovnix использует другие способы заражения с помощью
модификации VBR, но постоянный поток новых модификаций требует о C&C получения большого объема отладочной информации. Сложность разработки и отладки на нескольких платформах, является одной из причин высоких цен на фреймворк буткита Rovnix. Например полнофункциональный билдер стоит $ 60,000, включая базовую поддержку на полгода. Это цена только за буткит, исключая затраты на эксплоиты повышения привилегий для того, чтобы обспечить доступ позволяющий вносить измемнения глубоко в системе.

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

SHA1 хэши упомянутых дропперов Rovnix.D:

C1C0CC056D31222D3735E6801ACBA763AC024C5B
764B4F0202097F2B41A2821D30A7424490BF3A42

Особая благодарность моим коллегам Pavel Smierciak и Maxim Grigoryev.

Aleksandr Matrosov, Security Intelligence Team Lead

Автор: gedeon_by

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js