Эта статья является переводом статьи от 13.07.2012 Александра Матросова, ссылку на который я нашел в конце пост об утечке исходного кода Carberp .
Мне показалось это интересным и я решил перевести.
Кому тоже интересно, добро пожаловать под кат. Мы отслеживаем деятельность семейства буткитов Rovnix с апреля 2011 года (далее от имени автора — Прим.
пер.
).
Rovnix было первым семейством, использовавшим заражение VBR (Volume Boot Record) для загрузки неподписанных драйверов ядра для платформ x64. Причиной пристального внимания стало желание разработчиков Rovnix обойти обнаружение антивируса.
Полезная нагрузка первых образцов в дикой природе блокировала подключение к Интернету пользователей из России и заставляла их отправлять SMS на короткий номер для его разблокировки.
(Hasta La Vista, Bootkit: использование VBR) .
Эти варианты с интернет-блокирующей нагрузкой перестали использовать компонент буткита летом 2011 года.
Тогда фреймворк Rovnix был продан разработчикам Carberp, ответственным за ботнет Hodprot/Origami. (Эволюция Win32Carberp: глубже) .
Разработчики Carberp использовали этот фреймворк только до конца 2011 года.
О других продажах фреймворка у нас нет информации.
У нас есть только информация, подтверждающая низкую частоту заражений кодом на основе буткита Rovnix. Несколько дней назад мы получили несколько интересных образцов, и их быстрый анализ показал, что Rovnix.B-подобная модификация сценария заражения VBR. Распаковав дроппер, мы обнаружили типовой компонент для подготовки к следующим шагам установки модуля буткита BkSetup.dll Rovnix. Дата компиляции модуля BkSetup.dll выглядела свежей и была датирована 24 июня 2012 года (конечно, дату можно подделать, но до сих пор разработчики ее не меняли).
Информация о версии также была найдена в сегменте ресурса BkSetup.dll. Вот она:
Версия файла была изменена на 2.4: ранее Carberp использовал BkSetup.dll версии 2.1 и сохранял информацию в строке отладки, отправляемой на C&C в качестве отладочной информации.
Базовый функционал BkSetup.dll сосредоточен на процессе заражения и создании скрытого хранилища.
Схема вызова основных процедур BkSetup.dll следующая:
Новый образец с новой версией буткита Rovnix является косвенным свидетельством возобновления активности продаж, и в ближайшее время мы сможем раскрыть подробности взаимосвязи Rovnix с другим вредоносным ПО.
Теперь углубимся в технические детали модификации Rovnix.D.
Полиморфный загрузочный код
Начиная с модификации Rovnix.B, загрузочный код использовал полиморфизм для обхода обнаружения антивирусом статических сигнатур.Первоначально полиморфный код был обнаружен в образцах Carberp с помощью буткита.
На следующем рисунке показаны основы работы полиморфного кода.
Простой трюк с полиморфизмом, основанный на перестановке базовых блоков кода, всегда приводит к тому, что вредоносное ПО получает контроль над расшифрованным кодом VBR. Основные блоки кода выглядят так:
[Полиморфный код Rovnix.B]
Причина использования полиморфного кода — обход обнаружения антивирусами статической сигнатуры: этот код можно обнаружить только с помощью эмуляции.
Техника эмуляции тесно связана с «песочницей», где код выполняется в безопасной виртуальной среде с целью его динамического анализа.
Отличия модификаций Rovnix.D и Rovnix.B представлены на этом графике:
[Опция Rovnix.D (вверху) и опция Rovnix.B (внизу)]
Место хранения зашифрованного кода VBR также было изменено, и после выполнения полиморфного кода управление передается расшифрованному коду VBR. Неравномерное расположение зашифрованного кода VBR выглядит следующим образом:
Также мы обнаружили изменения в функции расшифровки и чтения неподписанного драйвера из RAW-секторов жесткого диска.
Эти сектора не используются в общем скрытом хранилище, а лишь как место для хранения вредоносного драйвера, внедряющего полезную нагрузку в указанные пользовательские процессы на зараженной машине.
Различия можно увидеть на следующем рисунке:
[Опция Rovnix.D (вверху) и опция Rovnix.B (внизу)]
Все эти изменения направлены на обход обнаружения антивируса и не отражают принципиальных изменений в общей структуре буткита Rovnix.
Изменения в скрытом хранилище
Структура скрытой файловой системы аналогична структуре предыдущих модификаций Rovnix и уже была описана в предыдущих постах блога (Rovnix Reloaded: новый шаг эволюции) ССЫЛКА ЗДЕСЬ.Однако в коде инициализации файловой системы были обнаружены незначительные изменения.
Был обнаружен странный вызов функции для чтения файла INJECTS.SYS из скрытого хранилища.
Эта интересная функция извлекает один или два пути из файла INJECTS.SYS к файлам стандартной файловой системы.
Код функции показан на рисунке ниже:
Поток управления никогда не дойдет до выполнения этого кода, поскольку условие всегда равно NULL и управление никогда не будет передано этому коду.
По моему мнению, эта модификация в Rovnix.D использовалась для тестирования, и мы не видим большого количества обнаружений в реальных условиях.
Похоже, что Rovnix.D — это переходный релиз в рамках подготовки к чему-то другому, но на данный момент у нас нет четкого понимания, что это может быть.
Полезная нагрузка
Модуль полезной нагрузки включает в себя возможности загрузки и выполнения дополнительных модулей с C&C-сервера.Этот модуль не осуществляет перехваты или другие вредоносные модификации системной памяти и обычно не обнаруживается большинством распространенных антивирусных программ.
Домен C&C — rtttt-windows.com. Модуль полезной нагрузки работает в многопоточном режиме и может взаимодействовать с вредоносным драйвером.
Чтобы обеспечить синхронизацию полезной нагрузки, он генерирует мьютекс: Global .
Граф вызовов для основного потока выглядит следующим образом:
Модуль полезной нагрузки также может отправлять зашифрованные массивы вредоносному драйверу для последующей записи в скрытое хранилище и внедрения в процессы.
До этого Rovnix не предоставлял функциональность для нескольких развертываний, а предоставлял только один модуль полезной нагрузки.
Rovnix.D может использовать несколько полезных нагрузок и может использоваться для аренды ботнета, а в конце срока аренды полезная нагрузка будет изменена.
Заключение
Пока изменения можно рассматривать с точки зрения сложных угроз для платформы x64. Семья Sirefef (ZeroAccess) перешёл в пользовательский режим в своих последних модификациях (ZeroAccess: хроники внедрения кода) ССЫЛКА ЗДЕСЬ.Olmarik/Olmasco (модификации TDL4 и MaxSS) не имеет большого количества заражений в дикой природе и перестал развиваться (The Evolution of TDL: Conquering x64).
Почему умирают руткиты/буткиты для 64-тонной платформы? На мой взгляд, количество способов заражения 64-битных систем весьма ограничено, а поиск чего-то нового требует много времени и значительного опыта со стороны разработчика.
В большинстве случаев заражения буткитами использовались модификации MBR, но этот метод довольно старый, и к настоящему времени наиболее распространенные антивирусные программы обеспечивают проверку модификаций MBR. Семья Ровникс использует и другие способы заражения: VBR модификаций, но постоянный поток новых модификаций требует от C&C получения большого количества отладочной информации.
Сложность разработки и отладки на нескольких платформах является одной из причин высоких цен на фреймворк буткитов Rovnix. Например, полнофункциональный конструктор стоит 60 000 долларов, включая базовую поддержку в течение шести месяцев.
Это цена только за буткит, без учета стоимости эксплойтов повышения привилегий для обеспечения доступа для внесения изменений глубоко внутри системы.
В будущем сложные стелс-технологии будут использоваться в основном для целевых атак, поскольку затраты на их приобретение и использование несопоставимы с ожидаемой прибылью типичных киберпреступников.
Сейчас у нас меньше десяти семейств буткитов x64 и их активность в дикой природе также снижается.
SHA1-хеши упомянутых дропперов Rovnix.D: C1C0CC056D31222D3735E6801ACBA763AC024C5B 764B4F0202097F2B41A2821D30A7424490BF3A42 Особая благодарность моим коллегам Павлу Смерчаку и Максиму Григорьеву.
Александр Матросов, руководитель группы разведки безопасности Теги: #Антивирусная защита #перевод #Carberp #rovnix #eset
-
Электричество И Магнетизм
19 Oct, 24 -
Пасьянс Ogs Mahjong 0.9, В Шаге От Финиша
19 Oct, 24