Mebromi: первый руткит BIOS в дикой природе

Время чтения: ~ 6 мин.

Марко Джулиани

В последние несколько недель китайская охранная компания звонила Qihoo 360 написал о новом рутките BIOS, поражающем китайские компьютеры. Это оказалось очень интересным открытием, поскольку оно стало первым настоящим вредоносным ПО, нацеленным на систему BIOS со времени известного доказательства концепции под названием IceLord в 2007 году. Вредоносное ПО называется Mebromi и содержит всего понемногу: руткит BIOS, специально предназначенный для Награда BIOS, руткит MBR, руткит режима ядра, файл-заражатель PE и троянский загрузчик. В настоящее время Mebromi не предназначен для заражения 64-битной операционной системы и не может заразить систему, если работает с ограниченными привилегиями.

Заражение начинается с небольшой зашифрованной капельницы, которая содержит пять зашифрованных файлов ресурсов: hook.rom , flash.dll , cbrom.exe , my.sys , bios.sys . Цель этих файлов будет представлена ​​позже в этом анализе.

Инфекция явно ориентирована на китайских пользователей, поскольку дроппер тщательно проверяет, защищена ли заражаемая система китайским программным обеспечением безопасности Rising Antivirus и Jiangmin KV Antivirus . Чтобы получить доступ к BIOS, инфекция сначала должна быть загружена в режиме ядра, чтобы она могла обрабатывать физическую память вместо виртуальной памяти.

Многие из вас могут вспомнить старую инфекцию CIH / Чернобыль , печально известный вирус, обнаруженный в 1998 году, который смог перепрограммировать BIOS материнской платы, стерев его. Даже CIH требовалось получить доступ в режиме ядра для доступа к BIOS, хотя в то время, когда вирус использовал ошибку повышения привилегий в операционной системе Windows 9x, которая позволяла ему перезаписывать таблицу дескрипторов прерываний собственной полезной нагрузкой из пользовательского режима, а затем вызывал Перезаписанный обработчик прерываний и его вредоносный код выполняются в режиме ядра. Mebromi больше не использует такой способ повышения привилегий, ему просто нужно загрузить собственный драйвер режима ядра, который будет обрабатывать заражение BIOS. Для этого он использует два метода: он может либо извлечь и загрузить библиотеку flash.dll, которая загрузит драйвер bios.sys, либо остановит служебный ключ beep.sys, перезаписав драйвер beep.sys своим собственным файлом bios. sys code, перезапустите сервисный ключ и восстановите исходный код beep.sys.

Драйвер bios.sys - это код, который обрабатывает заражение BIOS. Чтобы прочитать код BIOS, необходимо сопоставить физическую память, расположенную по адресу физической памяти 0xF0000 , именно там обычно находится ПЗУ BIOS. После прочтения драйвер проверяет, является ли ПЗУ BIOS Award BIOS, проверяя наличие строки: $ @ AWDFLA . Если драйвер найден, он пытается найти порт SMI, который будет использоваться руткитом для прошивки ПЗУ BIOS.

Если ПЗУ BIOS соответствует строке, руткит сохраняет копию BIOS в файл C: bios.bin и передает следующий шаг компоненту заражения в пользовательском режиме. Пипетка извлекает два файла: cbrom.exe и hook.rom. Cbrom.exe - это законный инструмент, разработанный Phoenix Technologies, который используется для изменения двоичных файлов BIOS Award / Phoenix BIOS. Hook.rom - это ПЗУ руткита ISA BIOS, которое добавляется в двоичный файл BIOS и содержит заражение руткитом. Дроппер выполняет cbrom.exe с параметром переключателя / isa, передавая файл hook.rom. Перед тем, как на самом деле внедрить вредоносное ПЗУ ISA, дроппер проверяет код ПЗУ BIOS, ища строку « hook-rom », используемую в качестве маркера заражения. Если он найден, это означает, что BIOS уже инфицирован и не нуждается в повторном заражении.

После этого файл bios.bin был изменен, драйвер bios.sys отправляет на SMI-порт BIOS команду 0x29 , используемую для удаления флэш-памяти BIOS, а затем команду 0x2F, используемую для записи нового кода ПЗУ BIOS в ПЗУ BIOS. ,

BIOS теперь заражен, и дроппер переходит к следующему шагу: заражение основной загрузочной записи . Длина заражения составляет 14 секторов, а исходная MBR сохраняется в секторе 7. Во избежание возможных проблем при запуске, зараженная MBR сохраняет копию исходной таблицы разделов MBR. Наконец, дроппер извлекает драйвер my.sys из корня диска C :. My.sys - это руткит режима ядра, который перехватывает основные функции IRP disk.sys путем перенаправления собственных функций IRP_MJ_READ / WRITE и IRP_MJ_DEVICE_CONTROL . Он используется, чтобы скрыть заражение на диске. Даже если заражение BIOS не удается, руткит заражает MBR.

При следующем запуске системы, после фазы BIOS POST, вредоносный код, внедренный в нее, подготавливает полную MBR-инфекцию (все первые 14 секторов хранятся внутри вредоносного BIOS, всего 7168 байт) и проверяет MBR-код жесткого диска. диск смотрю, если зараза уже присутствует. Для этого вредоносный код BIOS проверяет наличие строки « int1 » со смещением 0x92. Если строка не найдена, злоумышленник BIOS перезапишет все первые 14 секторов жесткого диска, тем самым восстановив заражение MBR.

Процедура запуска системы продолжается, и теперь управление переходит к вредоносной основной загрузочной записи. Здесь вредоносная полезная нагрузка анализирует исходную таблицу разделов MBR и ищет активный раздел, проверяя, использует ли он файловую систему NTFS или FAT32. Вредоносный код MBR действительно содержит процедуры синтаксического анализа NTFS / FAT32 , используемые для проникновения в файловую систему для поиска файла winlogon.exe или wininit.exe . При обнаружении вредоносный код содержит полезную нагрузку файла, способную внедрить вредоносный код в указанный файл и взломать его точку входа. Перед заражением файла вредоносный код MBR проверяет, не заражен ли он, путем поиска строки « cnns » со смещением 0x50 от начала PE-файла. Это маркер инфекции. Если строка не найдена, заражение сохраняет зашифрованную полезную нагрузку - около 600 байт кода - внутри winlogon.exe или wininit.exe и перехватывает точку входа PE в ее начало, сохраняя исходную точку входа со смещением 0x60.

На этом заражение MBR заканчивается, ожидая запуска Windows, который загрузит пропатченный исполняемый файл. При загрузке полезная нагрузка самостоятельно расшифровывает свой вредоносный код и загружает в память драйвер my.sys. Затем он пытается загрузить дополнительную инфекцию с (теперь недоступного) URL-адреса: http://dh.3515.info:806/test/91/calc[removed].

Концепция Mebromi не нова. Фактически мы должны вспомнить руткит BIOS IceLord, опубликованный в 2007 году , - публичное подтверждение концепции, способной нацеливаться на Award BIOS rom, используя подход, очень похожий на Mebromi - или мы должны сказать, что Mebromi больше, чем просто вдохновлен руткитом IceLord ?

Хранение вредоносного кода в ПЗУ BIOS может фактически стать чем-то большим, чем просто проблема для программного обеспечения безопасности, учитывая тот факт, что даже если антивирус обнаружит и очистит MBR-инфекцию, он будет восстановлен при следующем запуске системы, когда вредоносная нагрузка BIOS будет переписать код MBR снова. Разработка антивирусной утилиты, способной очистить код BIOS, является сложной задачей, поскольку она должна быть полностью защищена от ошибок, чтобы вообще не сделать систему не загружаемой. Работа с такими конкретными системными кодами должна быть оставлена ​​разработчикам конкретной модели материнской платы, которые выпускают обновления BIOS вместе со специальным инструментом для обновления кода BIOS.

С другой стороны, хотя этот вид инфекции является потенциально одной из наиболее стойких инфекций, известных в дикой природе, он вряд ли станет серьезной угрозой из-за уровня сложности, необходимого для достижения цели. Хотя заражение в режиме ядра или заражение MBR все еще может работать обычным образом на всех ПК - и у них все еще есть огромное свободное пространство для игры, руткит на основе BIOS должен быть полностью совместим со всеми основными BIOS оттуда он должен быть в состоянии заразить все различные версии Award, Phoenix, AMI BIOS там; уровень сложности, который просто не требуется для написания хорошей персистентной инфекции (например, руткит TDL, различные выпуски Rustock, руткит ZeroAccess среди всех). На самом деле, почему Mebromi использует только Award BIOS? Возможно, потому что уже было известное доказательство концепции, которая уже 5 лет предназначена для Award BIOS ROM, доступной онлайн.

Являются ли руткиты BIOS реальной угрозой? Да, мы можем считать Mebromi первым настоящим инцидентом с руткитом BIOS, обнаруженным в дикой природе, - давайте рассмотрим руткит BIOS IceLord как доказательство концепции. Должны ли мы беспокоиться о руткитах BIOS? Что ж, пока мы пытаемся выяснить, заражен ли наш компьютер неизвестным и супер-скрытным руткитом BIOS, давайте попробуем выяснить, существует ли более «скромный» руткит в режиме ядра, который уже заражает наш ПК, позволяя удаленному злоумышленнику молча владеть нашей системой.

На самом деле, почему Mebromi использует только Award BIOS?
Являются ли руткиты BIOS реальной угрозой?
Должны ли мы беспокоиться о руткитах BIOS?

Новости

Как сбалансировать юзабилити и дизайн при создании сайта — User House
Красота или уродство в веб-дизайне всегда связаны с восприятием конкретного человека. То, что для одного «красиво», может быть «ужасным» для другого и наоборот. Но как же так получается, что многие популярные

Чем лучше юзабилити сайта – тем больше лояльных клиентов
Хотите понять, как посетители воспринимают сайт? Это очень просто. Представьте, что вы говорите по телефону с директором, и в это время вам звонит кто-то из родственников, а у вас еще работы на четыре

Знакомство с юзабилити-тестированием сайта. // webknowledge.ru
Перевод статьи:   An Introduction To Website Usability Testing. Автор:   Thomas Churm. При создании нового сайта необходимо учитывать множество факторов. Для того чтобы у посетителей возникло

Специалист по web-usability – боец невидимого фронта
Ярослав Перевалов Что такое usability engineering? Часто ли вы, бродя по Сети, обращаете внимание на то, насколько качественно структурирована информация на сайте и насколько удобно устроена навигация?

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

25 советов как улучшить юзабилити (usability) вашего сайта. | Блог об интернет деятельности и трудовых буднях Максима Вячеславовича
Доброго времени суток, дорогие друзья! Сегодня мы поговорим с вами о такой важной вещи как U sability (юзабилити) сайта , о том, как улучшить данный фактор, зная его основные принципы и правила.

Что такое юзабилити и зачем оно нужно
Юзабилити включает простоту, удобство в пользовании, тестирование, проведение аудита проекта. Юзабилити сайтов, интернет-магазинов — это неотъемлимая часть выгодного ведения бизнеса. Задача юзабилити

Юзабилити тестирование сайта турагентства
«Когда информации много и она дешева, дорогим становится внимание». James Gleick Представим сайт, владелец которого считает его достаточно хорошим, удобным и привлекательным. Он размещает рекламные объявления

Юзабилити
Юзабилити (от англ. слова «usability» – практичность, простота использования) – это весьма распространенное ныне понятие объединяет максимальное удобство использования сайта и полезность информации, на

5 шагов для успешного юзабилити-тестирования приложения
Представьте: вы придумали и разработали мобильное приложение с приятным, на ваш взгляд, дизайном, удобным функционалом, полезными опциями, выпустили релиз продукта, но… Несмотря на мощную маркетинговую

Карта