Russian
Интернет находится в нормальном состоянии, крупных эпидемий и других серьезных инцидентов службой мониторинга «Лаборатории Касперского» не зафиксировано. Уровень опасности: 1

MYBIOS. Возможно ли заразить BIOS?

Предисловие

Возможность заражения BIOS существует довольно-таки давно. Одна из лучших, на мой взгляд, статей на эту тему размещена в журнале Phrack, а на ресурсе pinczakko расположено много полезной информации. В данный момент прослеживается очевидная тенденция, которую я бы обозначил как «возвращение к истокам». Заражение MBR, перехваты указателей в различных системных таблицах операционной системы, заражение системных компонентов — все это уже было, и очень давно.

Как и в случае с MBR заражение BIOS позволяет вредоносному коду инициализироваться очень рано, сразу после включения компьютера. С этого момента появляется возможность контролировать все этапы загрузки компьютера и операционной системы. Очевидно, что такой метод загрузки привлекателен для вирусописателей, однако очевидны и трудности, с которыми они сталкиваются. Прежде всего — это неунифицированный формат BIOS: создателю вредоносной программы необходимо поддержать BIOS от каждого производителя и разобраться с алгоритмом прошивки в ROM.

В этой статье я рассмотрю реально существующую вредоносную программу, в которой объединили сразу две технологии заражения — BIOS и MBR; разберу ее установку , защиту от детектирования, но обойду моменты, связанные с проникновением в систему и коммерческой выгодой. В данный момент угроза заражения BIOS существует лишь для владельцев материнских плат с BIOS от компании AWARD.

Установка

Троянец распространяется в виде исполняемого модуля, который содержит в себе все необходимые для работы компоненты. Он детектируется нашими продуктами как «Rootkit.Win32.Mybios.a».

Список компонентов:

  • драйвер для работы с BIOS — bios.sys (устройство \Device\Bios);
  • драйвер для сокрытия заражения — my.sys (устройство \Device\hide);
  • компонент BIOS — hook.rom;
  • библиотека управления драйвером bios.sys — flash.dll;
  • утилита от производителя для работы с образом BIOS — cbrom.exe;

Первым делом дроппер производит нехитрую расшифровку и инициирует процесс инсталляции. Из ресурсов на жесткий диск сбрасывается и запускается драйвер bios.sys, который в дальнейшем используется для получения необходимой информации о BIOS. Подробно о его функционале — ниже.

Следующим на диск сбрасывается драйвер my.sys, прямо в корень системного диска.

Дальнейший алгоритм можно разделить на 2 части.

Если используется AWARD BIOS, то выполняется следующий алгоритм:

  1. чтение BIOS из памяти, поиск SMI_PORT и определение размера BIOS;
  2. создание образа BIOS на диске (c:\bios.bin);
  3. в случае отсутствия модуля hook.rom в сохраненном на диске образе BIOS производится добавление его к этому образу;
  4. прошивка «зараженного» образа с диска в ROM;

Если используется BIOS, отличный от AWARD, то дроппер производит заражение MBR. Данный механизм позволяет руткиту работать на любых системах, вне зависимости от производителя BIOS.

BIOS.SYS и CBROM.EXE

Драйвер bios.sys используется инсталлятором руткита и содержит в себе всего три функции.

 
Рисунок 1. Dispatch-процедура драйвера bios.sys

Первая функция, которую я назвал FindSMIPORTAndBIOSSize, используется дроппером в том числе и для того, чтобы определить тип BIOS в системе.

Для определения типа BIOS используется поиск «магической» сигнатуры в памяти.

 
Рисунок 2. «Магическая» сигнатура в BIOS

В случае совпадения сигнатуры функция продолжает свою работу и пытается найти SMI_PORT и определить размер BIOS. Во всех иных случаях функция возвращает ошибку, и дроппер произведет обыкновенное заражение MBR.

В случае если проверка показала, что это BIOS AWARD, и при наличии найденных переменных SMI_PORT и BIOSSize, вызывается функция MakeBIOSBackup, которая сохраняет образ BIOS на диске в файле c:\bios.bin.

В сохраненном на диске образе дроппер проверяет наличие своего модуля и в случае его отсутствия добавляет ISA ROM в образ BIOS. Для этого используется утилита cbrom.exe (cbrom c:\bios.bin /isa hook.rom). Утилита cbrom.exe хранится также в ресурсах инсталлятора и сбрасывается на диск.

 
Рисунок 3. BIOS до заражения

 
Рисунок 4. BIOS после заражения

Обратите внимание на 11-й модуль в списке. Это добавленный вредоносный ISA ROM под именем hook.rom.

Следующим вызовом функции FlashROM зараженный образ прошивается в ROM и будет вызываться при каждом включении компьютера.

MY.SYS

Для сокрытия факта заражения используется довольно простенький руткит-драйвер my.sys. Он перехватывает функции IRP_MJ_READ, IRP_MJ_WRITE и IRP_MJ_DEVICE_CONTROL у драйвера, обслуживающего устройство \Device\Harddisk0\DR0. Не самый низкий уровень по сравнению с тем же TDL4. О том, когда и как стартует данный драйвер, будет понятно чуть позже.

 
Рисунок 5. Перехваченные функции драйвера disk.sys

Останавливаться подробно на перехватах не имеет смысла, так как они довольно тривиальны. В случае чтения подменяется CompletionRoutine, и при попытке чтения охраняемых секторов возвращается пустой буфер.

 
Рисунок 6. Первый сектор физического диска

Перехват IRP_MJ_WRITE не позволяет записывать данные в охраняемые секторы.

Перехват IRP_MJ_DEVICE_CONTROL контролирует вызовы IOCTL_DISK_GET_DRIVE_LAYOUT_EX, IOCTL_STORAGE_GET_MEDIA_TYPES_EX, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX и возвращает ошибку.

BIOS и MBR

BIOS

Стартуя из BIOS, вредоносная программа может контролировать любые этапы инициализации компьютера и операционной системы. Что ж, самое время взглянуть на то, что было реализовано вирусописателями.

Модуль, который добавляется в BIOS, отличается от зараженного MBR и последующих секторов всего лишь одной функцией, которая вместе с дополнительной информацией умещается в один сектор (512 байт). ISA ROM занимает 0x1E00 байт, а MBR + доп. секторы 0x1C00 байт.

 
Рисунок 7. Начало ISA ROM

 
Рисунок 8. Вызов единственной функции Main в ISA ROM

Единственная задача данной функции — удостовериться, что в MBR находится зараженная копия и восстановить заражение в случае ее отсутствия. Так как зараженная загрузочная запись и сопутствующие секторы находятся в самом модуле ISA ROM, то в случае обнаружения несоответствия можно «перезаразить» MBR прямо из BIOS. Это сильно повышает шансы на то, что компьютер останется зараженным, даже в случае излечения MBR.

 
Рисунок 9. Функция Main, проверяющая и перезаражающая MBR

Наличие заражения определяется поиском «магической» константы по фиксированному смещению в MBR. Константа «int1» должна присутствовать в зараженном секторе.

 
Рисунок 10. «Магическая» константа в MBR

Если функция CheckMBRInfected не обнаружит заражения в главной загрузочной записи, то следующим действием будет заражение MBR и 13 следующих за ним секторов.

На этом работа добавленного в BIOS модуля ISA ROM заканчивается.

Основная работа ложится на код, который будет исполняться из MBR.

MBR

Как и во всех предыдущих случаях заражения MBR, что мы рассматривали, алгоритм примерно один и тот же — считать секторы, следующие за главной загрузочной записью, и передать управление считанному коду, который и проделает всю основную работу.

Оригинальный MBR сохраняется троянцем при заражении в седьмом секторе диска и используется для получения таблицы разделов (ну и передачи ему управления, как только основная работа будет закончена).

В составе кода, который исполняется на данном этапе, присутствует простенький разборщик форматов файловых систем NTFS и FAT32. Основной целью является поиск секторов на диске, которые соответствуют системным файлам winlogon.exe или wininit.exe — системным компонентам, которые отвечают за вход пользователя в систему.

 
Рисунок 11. Поиск winlogon.exe или wininit.exe

Если такие секторы найдены, исполняемый файл winlogon.exe или wininit.exe заражается (т.е. используется технология файловых вирусов) прямой записью в секторы диска, на которых он расположен. Шаблон для заражения находится в восьмом секторе диска.

 
Рисунок 12. Точка входа winlogon.exe до заражения

 
Рисунок 13. Точка входа winlogon.exe после заражения

Этот код довольно маленький, поэтому он выполняет всего две задачи:

  • загрузить из сети определенный файл по ссылке и запустить его;
  • запустить руткит-драйвер (тот самый my.sys, расположенный на диске C:), который будет защищать зараженные секторы диска.

Конфуз вышел?

Нельзя обойти стороной один забавный момент, который обязательно должен понравиться любителям английского языка и тем, кто знает, как правильно пишется AWARD. Во вредоносном коде редко используются отладочные сообщения, так как они могут помочь аналитикам. Но случается так, что отладочные сообщения попадают в «конечный продукт».

Список отладочных сообщений драйвера bios.sys:

  • Flash Aword BIOS form diks c bios.bin success.
  • SMI_AutoErase Aword Bios Failed.
  • ExAllocatePool read file NonPagedPool failed.
  • Backup Aword BIOS to disk c bios.bin success.
  • MmMapIoSpace physics address:0x%x failed.
  • This is not a Aword BIOS!

Заключение

Вирусописатели нередко соединяют в одной программе разные методы заражения компьютера вредоносным ПО и закрепления его в операционной системе. Одновременно они занимаются поиском новых мест для автозагрузки вредоносных программ. Сейчас создатели вредоносных программ большей частью используют идеи, известные ранее (иногда лишь в виде концепта) и отчасти уже забытые, и реализуют их в конечном продукте. И изъятые из небытия 16-битные технологии — яркий тому пример.

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


40 комментариев

старые сверху
«дерево»
 

Umnik

15 сен 2011, 13:35
0
 

1. То есть пролечить нельзя? Максимум, это по косвенным признакам предложить обратиться в ТП производителя материнской платы/компа, чтобы дали утилиту для прошивки и объяснили, как ею пользоваться?
2. Если BIOS Update в Disabled, это поможет?

Вячеслав Русаков

15 сен 2011, 13:45
2
 

Re:

1. Пролечить можно, т.к. можно использовать такой же метод прошивки в ROM.

2. Memory Write Protection в самом BIOS? Оно работает только в DOS'е (и вроде в 9x) :)

Umnik

15 сен 2011, 13:49
0
 

Re: Re:

На полном серьезе антивирус будет прошивать биос? Опасно же.

Вячеслав Русаков

15 сен 2011, 13:57
0
 

Re: Re: Re:

Пока что этот вопрос находится на стадии рассмотрения.

Head

30 сен 2011, 01:41
0
 

Re: Re: Re: Re:

Боюсь это тупиковая ветвь. Оставьте биос сервис-центрам, достаточно MBR-блок пропатчить, дабы зараза думала что она жива и не гадила туда заново.

P.S. Кстати, можно и "прививочку" замутить с int1. Судя по механизму заражения, в этом случае может пострадать биос, но дальше дело не пойдет.

Silvestr

15 сен 2011, 14:58
0
 

А вход в настройки BIOS (BIOS Setup) такой зловред может заблокировать? Чтобы, к примеру, сделать невозможной загрузку с CD или флешки.

исправлено: Silvestr, 15 сен 2011, 15:09

Bravo

15 сен 2011, 15:55
0
 

Re:

Хоть и AWARD, но у каждого производителя мат плат, свой набор параметров для BIOS, вирусописатель не сможет подстроиться под этот фактор.

Вячеслав Русаков

15 сен 2011, 16:29
2
 

Re: Re:

Не совсем так. Чаще всего в BIOS просто не хватит места для добавления нового модуля, такая вот банальщина. Все остальные проблемы - решаемы.

Вячеслав Русаков

15 сен 2011, 16:16
1
 

Re:

Теоретически можно сделать с BIOS все что угодно, например, убрать "обработчик", который отвечает за меню с параметрами.

Bravo

15 сен 2011, 16:32
0
 

Re: Re:

Хм, так и с напряжением баловаться можно, правда защита после перезагрузки сработает.

Head

30 сен 2011, 01:35
0
 

Re: Re: Re:

А ведь можно и ее вырезать... ;) Ой, зря я это сказал... © Хагрид

Silvestr

15 сен 2011, 16:54
0
 

Re: Re:

Я немного не о том говорил. Может ли такой зловред сделать невозможным вход в меню настроек BIOS?
Просто недавно мне задали такой вопрос, в связи с заражением винлоком. Я, конечно, улыбнулся, но Ваша статья заставила задуматься... А вдруг уже научились?

Вячеслав Русаков

15 сен 2011, 17:02
1
 

Re: Re: Re:

Теоретически, вредоносный код, заражающий BIOS может сделать и такое, нет ничего невозможного.

corpses

22 сен 2011, 12:00
0
 

Re: Re: Re:

Конечно сможет:
- методом установки пароля... Для этого даже "шить" не чего не надо, все делается элементарно из под винды =))...
- удалит реагирование на кнопку, что веселее =)))

Umnik

15 сен 2011, 15:35
0
 

Что говорит KSN о популярности этой заразы?

Вячеслав Русаков

15 сен 2011, 16:17
0
 

Re:

Пока это секрет :) Плюс необходимо подождать некоторое время.

Bravo

15 сен 2011, 15:49
0
 

Лечение

Лечить можно путем:
Загрузка с флешки или дискеты, затем прошивка BIOS.
Затем не давать возможность загрузки харда, пролечить его с загрузочного диска рековери.

Umnik

15 сен 2011, 15:57
3
 

И, на сколько я понимаю, владельцы Dual BIOS защищены? Из второго откатить первый не трудно.

Bravo

15 сен 2011, 16:14
0
 

Re:

Да, владельцев только этих мало.

Head

30 сен 2011, 01:31
0
 

Re: Re:

Дожили. Пора бэкапить биос... :)

Вячеслав Русаков

15 сен 2011, 16:18
1
 

Re:

Совершенно верно, обычно вторая копия лежит в r/o ROM'е.

AnteFil

26 сен 2011, 16:55
-5
 

Ерунда

Мне кажеться подобная проблем решаеться гораздо проще. Если видим что BIOS чё то выдаёт не то вынемаем батарейку, и вершиться правосудие над вирусом настройки производителя вернулись. Кричим УРА УРА УРА и идём допивать кофею. Ну и для тез кто настроен решительно Format С:\

Вячеслав Русаков

26 сен 2011, 18:12
3
 

Re: Ерунда

Боюсь, что ерунда - это то, что вы тут написали :) Батарейка подпитывает CMOS, в котором находятся лишь настройки BIOS, но не он сам. Аналогично с format c:, диск не имеет к этому никакого отношения.

AnteFil

27 сен 2011, 06:56
-4
 

1) создание образа BIOS на диске (c:\bios.bin);
2) прошивка 'зараженного' образа с диска в ROM;

В итое после перезагрузки мы имеем изменеёнынй bios. Это решаемо батарейкой как я и говорил после её извликания возвращаються дефловые настройки т.е. заводские. Bios.sys и my.sys я так понимаю лежат именно на диске. ROM (виртуальное загрузочное место) выделяеться тоже из жёского если мы говорим про одно и тоже. Соответственно format C:\ уничтожит Bios.sys и my.sys а я так понимаю без этих файлов работать вирус не будет.

Head

30 сен 2011, 01:17
0
 

Re:

Молодой человек, вам бы матчасть подтянуть, а то до сих пор на уровне nc сидите и отверткой Enter клините. Хотя не, боюсь вы этого не осилите... Познакомьтесь с понятиями BIOS и MBR поближе, раскопайте где-нибудь diskedit.exe 95-97 г. выпуска, запустите его и попытайтесь понять хотя бы примерно структуру данных на жестком диске. Заодно покопайтесь в Fat-16, там всё просто. А до того, умоляю, хотя бы не палитесь, что вы не в теме.
А то как в анекдоте 100-летней давности
- Мадам, а вы знаете как делают пушки?
- Конечно! Берут дырку и обливают железом.

исправлено: Head, 30 сен 2011, 01:29

Head

30 сен 2011, 01:24
1
 

Старо как мир.

Померещилась громадная киноафиша с надписью
"One-Half. Мумия возвращается".

500mhz

12 окт 2011, 16:23
0
 

Re: Старо как мир.

с каких пор one-half стал заражальщиком биоса???

Chumaster59

30 сен 2011, 09:22
0
 

А если создать к примеру bios.bin и сделать его только чтение ?

500mhz

12 окт 2011, 16:33
0
 

Re:

тода оно создаст bios1.bin )))

500mhz

12 окт 2011, 17:24
0
 

ну так а по теме, если диск шифрован то что тогда?

NinjaKx

17 окт 2011, 01:51
0
 

Доброй ночи, накануне некий вирус по моей неосторожности с фишингового сайта utorrent.com стёр мне bios на ноутбуке asus x53s. Сейчас нахожусь в Тунисе и мне очень нужна помощь в восстановлении ноутбука, сам ноутбук при включении в сеть работает (крутится хард, кулеры, сидиром, горят диоды) но экран пуст и ничего не загорается соответственно не могу ничего сделать (ни войти в биос ни тому подобное), интернет под рукой есть, если кто знает как перепрошить биос после этого вируса чтобы всё заработало буду очень благодарен, так как нет возможности отнести ноут в сервисный центр

Nin

07 ноя 2011, 01:38
0
 

насобирала Вам ссылок про прошивку

http://www.xard.ru/post/13269/default.asp
Учим как...перепрошить BIOS материнской платы

http://docs.com.ru/bios_16.php
Как перепрошить BIOS

Если ещё актуально - вдруг то что нужно
Как прошить bios
http://winblogs.ru/install/flash.html

http://www.rom.by/forum/Podskazhite_kak_pereproshit_BI OS_na_noutbuke
Подскажите как перепрошить BIOS на ноутбуке?

Bris

13 ноя 2011, 09:46
0
 

Проблемма стоит шире. Заражаются не только Award. Кроме AWARDA есть зараженные с Insyde H2O. Предполагал, что к Bios подшивается блок - спасибо подтвердили. В сервисных центрах (Краснодара) иронизируют - говорят этого не может быть... Просишь перепрошить программатором - предлагают переустановить систему. В одном из сервисов - говорю - почитайте статью у Kasp.. Отвечает "зелень" - пишут там ВСЯКИЕ, читайте больше.. Вирус из БИОС активно противодействует установке Каспера. Тренд микро - просит после установки не пускать в инет svchost.

Farid

04 апр 2012, 15:02
0
 

Здравствуйте

Минутку,вот до меня не дошло;вирус попал в ВIOS, понятно, случается .Но он попал и антивирус BIOS не сканирует.Как зловред найти и вылечить?

Seymour

15 дек 2012, 09:25
0
 

Здравствуйте !!!

Dr.Web разроботал лечащую утилиту Cureit 7, должна биос-кит искать. Правда пока не пользовался не знаю как- это работает. И у Касперского думаю аналог есть. Не пойму для чего и какие ГАДЫ пишут вирусы для БИОС. Это-же такая ЗАРАЗА. Ну куда нишло МБРбаннер. С тем хоть можно бороться, а с этим думаю,только перепрошивка БИОС поможет. Ведь и сами создатели на этот вирус могут нарваться, чем думают????? Пользователей которые в "компах" полный ноль огромное количество, обыкновенных вирусов хватают кучами. Неужели - этого мало?! Head пожалуйста просвети по поводу биоса, у меня тоже была мысль, что сброс биос поможет. Как работает биос-кит, разве не должны настройки сброситя на заводские, хотя понимаю создатели "китов" не дураки и о сбросе тоже знают... . Спасибо всем!

Vladimir

16 янв 2013, 15:40
0
 

Bios virus?

Есть комп на платформе Intel который ведет себя как ни живой если отключить DVD привод.
Возможно ли заражение прошивки dvd рекодера?
Это специалист вашей компании экспериментировал с виртуализацией
и писал потом статью в журнал Хакер?

исправлено: Vladimir, 16 янв 2013, 22:42

Vladimir

16 янв 2013, 22:43
0
 

Все вирусные аналитики зависли что ли?

Vladimir

17 янв 2013, 10:17
0
 

Алё Алё Алё вирусные аналитики.
Короче различий между образом bios платы который получил с помощью встроенной утилиты и с сайта нет.
Скажите пожалуйста зачем инженеру на заводе Gigabyte потребовалось зашивать на плату подобный функционал?
Образ биос слать и куда?

Vladimir

17 янв 2013, 13:06
0
 

Автор статьи "MYBIOS. Возможно ли заразить BIOS?"
вам за аналитику люди деньги платят и где она?
Начинаю думать, что вы сами пишите эти вирусы.

Vladimir

17 янв 2013, 13:22
0
 

Будьте любезны, связаться с представительством компании Gigabyte и выяснить почему плата G41 комбо не включается без подключённого DVD рекодера и иногда даже при отсутствии диска в нём.
Слал там вам письма, но похоже вам пох.

Для добавления комментариев необходимо


Bookmark and Share
Закладки

Об авторе

Источники