Uefi или legacy что лучше windows 7

от admin

Какая разница между UEFI и Legacy

Если приходилось инсталлировать на ПК разные ОС, или заниматься разгоном, вы слышали такие понятия как UEFI и Legacy? Что это такое и как работает? Итак, какая разница между UEFI и Legacy рассмотрим в сегодняшней статье.

Немного теории

При загрузке ПК, включается CPU. Он обрабатывает команды (инструкции). На этом этапе в ОЗУ ничего не загружается. CPU переключается на системное микропрограммное обеспечение, которое содержит информацию необходимую для загрузки.

Микропрограммное обеспечение инициализирует включение питания (POST), настраивает периферийные устройства. Далее микропрограммное ПО загружает устройства хранения, проверяет наличие загрузчика. Переключает инструкции на загрузчик (LILO и GRUB), который загружает ядро ОС в ОЗУ.

Микропрограммное обеспечение это микросхема (прошивка) называется BIOS (базовая система ввода-вывода).

Что такое Legacy

Это устаревший режим загрузки используемый в BIOS. Режим Legacy проверяет наличие загрузочной записи (MBR) на первом секторе HDD. Если загрузчик не найден, будет возвращена ошибка.

Что такое UEFI

Современный способ управления загрузкой. Его отличие от Legacy в том, что хранение загрузочной информации находится в файле расширения «.efi», а не в прошивке. UEFI содержит радел EFI в котором хранится файл с данными о загрузке.

В чем разница

UEFI поддерживает все возможности BIOS с такими отличиями:

  1. GPT схема разбиения HDD. Поэтому поддерживает работу с дисками до 9 Зеттабайт. Разметка MBR используемая Legacy поддерживает диски до 2 Тб. Подробнее смотрите в статье: «Как узнать формат HDD»;
  2. Отличия UEFI, в возможности работы в тридцати двух и шестидесяти четырех разрядных версиях. Это позволяет использовать при навигации мышку;
  3. Поддержка безопасной загрузки. Чтобы предотвратить загрузки нежелательных приложений. Может препятствовать двойной загрузке (Dual Boot);
  4. Драйвера загружаются в УЕФИ и потом передаются ОС. Используя Legacy, драйвера загружаются при запуске ОС, после загрузки БИОС;
  5. Используя UEFI можно создать любое число разделов на HDD любого объема.

UEFI или Legacy как определить

Разработчики добавили в ОС средства для проверки. Рассмотрим это подробнее.

Приложение «Сведение о системе».

Нажмите «Win+R», пропишите команду:

Посмотрите данные в окне справа:

Утилита «Управление дисками»

Нажмите «Win+X», выберите:

Далее:

Что лучше

Для обычного пользователя разница будет незаметна. Рабочие окна ОС, разделы, команды одинаковы.

UEFI обладает такими преимуществами:

  1. Графическая оболочка. Поддержка русского языка. Можно пользоваться мышкой. Это удобно, особенно начинающим пользователям;
  2. Работа с HDD более двух терабайт;
  3. Ускоренная загрузка ОС.

Вывод

Мы рассмотрели, чем отличается UEFI от Legacy. UEFI новый метод загрузки ПК. Создан как замена BIOS. UEFI не понадобится, если не нужна двойная загрузка и установлен HDD менее двух терабайт.

Что лучше для Windows 10: UEFI или Legacy

uefi или legacy что лучше для windows 10

Для начала определим, что такое UEFI и Legacy. UEFI (Unified Extensible Firmware Interface — объединённый интерфейс расширяемой прошивки) представляет собой набор микропрограмм материнской платы, которые отвечают за её запуск и взаимодействие с установленным аппаратным обеспечением. Под Legacy же подразумевается старый набор служебного ПО, более известный как BIOS (Basic Input-Output System). Несмотря на общее предназначение, оба варианта значительно отличаются. Главным различием является графический интерфейс в UEFI, который, ко всему прочему, поддерживает управление мышью. В BIOS же используется исключительно клавиатура.

uefi или legacy что лучше для windows 10-1

Менее очевидным пользователям, но не менее важным отличием является поддержка загрузочных разделов объёмом больше 2,1 Тб и формата GPT. Последний представляет собой почти что обязательное условие для установки Windows 10. Соответственно, если на этот компьютер попробовать инсталлировать Windows 7, ничего не получится – загрузочный раздел необходимо либо форматировать, либо конвертировать в поддерживаемый тип.

uefi или legacy что лучше для windows 10-2

UEFI поддерживает такую опцию, как Secure Boot, которая она позволяет проверять целостность загрузчика при запуске системы и отменять его, если будут обнаружены неавторизованные изменения. Последняя важная особенность, которую нужно иметь в виду – улучшенная поддержка вариантов сетевой загрузки, что позволяет устанавливать операционные системы через подключение к локальной или общей сети. Такая возможность была и в старых версиях служебного ПО материнской платы, однако в новом типе она поддерживает практически все доступные на сегодня протоколы соединения.

uefi или legacy что лучше для windows 10-3

В то же время следует иметь в виду важную особенность: UEFI рассчитан на современные операционные системы, то есть Windows 8, 8.1, 10 и 11. Семёрку на компьютер с этим вариантом программного обеспечения платы так просто не установить. Впрочем, производители учитывают подобное, поэтому, как правило, имеется возможность переключить режим загрузки в Legacy, тот самый старый добрый BIOS.

uefi или legacy что лучше для windows 10-4

Таким образом, резюмируя всё обозначенное в настоящей статье, можем сделать вывод – для Windows 10 режим UEFI является не просто предпочтительным, а необходимым в большинстве случаев.

Как буткиты внедряются в современные прошивки и чем UEFI отличается от Legacy BIOS

Привет, Хабр! На связи Антон Белоусов и Алексей Вишняков, и мы продолжаем вместе с вами изучать буткиты — наиболее опасный класс вредоносного ПО. Гонка вооружений между разработчиками решений в области ИБ и вирусописателями не останавливается ни на секунду: первые активно внедряют новые механизмы противодействия киберугрозам, а вторые — инструменты их обхода. Как раз с точки зрения безопасности нас заинтересовал современный стандарт предзагрузки операционных систем UEFI. Поэтому в этом посте мы решили:

разобраться, чем загрузка в режиме UEFI отличается от загрузки в режиме Legacy BIOS;

рассказать о новых экземплярах буткитов, нацеленных на компрометацию UEFI;

выяснить, похожи ли они на своих предшественников (обширную группу так называемых legacy-буткитов мы подробно изучили в прошлый раз);

рассмотреть используемые злоумышленниками техники и слабые места систем на платформе UEFI.

Кто не хочет читать много букв, может ознакомиться с этой же информацией в формате вебинара. Такой же уровень полезности гарантируем!

Буткиты бывают двух типов. Первые заточены на более ранние платформы, так называемые Legacy BIOS. Вторые адаптированы под современные решения, которые имеют универсальный интерфейс UEFI для связи ОС с программами, которые управляют низкоуровневыми функциями устройств (далее — UEFI, прошивка).

Несмотря на более современный подход к обеспечению безопасности UEFI, в коде его прошивок регулярно обнаруживают уязвимости. Например, в феврале этого года наши коллеги из компании Binarly выявили более двух десятков брешей в UEFI, которые затрагивают миллионы устройств от крупнейших производителей. Злоумышленники, конечно же, не дремлют и стараются их активно эксплуатировать. Поэтому актуальность исследования защищенности платформы только растет. Большинство буткитов универсальны. Например, ESPecter и FinSpy умеют заражать как старые, так и новые платформы. Одним из недавно обнаруженных UEFI-буткитов стал MoonBounce.

Архитектура UEFI

UEFI (Unified Extensible Firmware Interface, единый интерфейс расширяемой прошивки) — это небольшая операционная система, которая начинает работать при включении компьютера. Она пришла на замену устаревшей модели BIOS. UEFI позволяет унифицировать процесс разработки и создавать отдельные модули, а не только прошивку целиком. Фреймворк имеет хорошо читаемый и документированный код на C. Многие пользователи отмечают удобный интерфейс, который разрешает пользоваться мышью. Среди других преимуществ платформы — поддержка сети «из коробки» и возможность работать с дисками объемом более 2 ТБ. Все это позволяет ускорить процесс разработки и сделать его безопаснее.

Интерфейс UEFIИнтерфейс UEFI Вычисление размера дискаВычисление размера диска

По требованиям платформы диск должен быть размечен в формате GPT. Соответственно, длина адреса блока будет равна 64 битам. Опираясь на эти данные, давайте вычислим гипотетический размер диска, который можно адресовать с помощью этого формата. Если использовать сектор размером 512 байтов, получим более 9 зеттабайт.

Код для инициализации оборудования, в том числе код для загрузки ОС, разумеется, важный элемент платформы, однако наибольший интерес для нас представляет интерфейс, который позволяет взаимодействовать с UEFI.

Высокоуровневый взгляд на UEFI

Высокоуровневый взгляд на UEFI

Приложения и драйвера UEFI имеют две таблицы для работы с API-интерфейсом — EFI Boot Services Table (службы доступны в процессе загрузки) и EFI Runtime Services Table (службы доступны и в процессе загрузки, и в процессе работы ядра ОС). API-интерфейс необходим, чтобы взаимодействовать с оборудованием, выделять память и выполнять другие простые функции по аналогии с WinAPI.

EFI Boot Services Table и EFI Runtime Services Table

EFI Boot Services Table и EFI Runtime Services Table

Как мы уже говорили ранее, прошивку UEFI можно дополнять модулями. Утилита UEFI Tool позволяет парсить файлы прошивок различных вендоров. Например, файл прошивки Asus содержит множество драйверов и модулей. С помощью этой утилиты в процессе разработки можно менять, удалять или добавлять модули в зависимости от случая.

Файл прошивки Asus, открытый в UEFI Tool

Файл прошивки Asus, открытый в UEFI Tool

Напомним схему цепочки программ в Legacy BIOS (ее мы рассматривали в прошлой статье).

Загрузка в режиме BIOS

Загрузка в режиме BIOS

При переходе к UEFI такие компоненты, как MBR и VBR, исчезают, и их функции частично берут на себя другие модули.

Загрузка в режиме UEFI

Загрузка в режиме UEFI

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

Код UEFI достаточно сложный. Он включает семь стадий работы прошивки: Security, Pre-EFI Initialization, Driver Execution Environment, Boot Device Selection, Transient System Load, Runtime и Afterlife. Что интересно, работа на стадии SEC происходит во временной памяти, формирующейся из кэша процессора. На этом уровне прошивка становится корнем доверия всей системы.

На стадии DXE выполняются DXE-драйверы для устройств. Именно на данном этапе злоумышленникам удобнее всего встраивать вредоносные сущности в полезную нагрузку. BDS — стадия выбора загрузочного устройства, которое отвечает за запуск ОС. Runtime — стадия работы ОС. Afterlife — стадия завершения работы компьютера.

Стадии кода UEFI Источник: https://edk2-docs.gitbook.io/edk-ii-build-specification/2_design_discussion/23_boot_sequence

Стадии кода UEFI Источник: https://edk2-docs.gitbook.io/edk-ii-build-specification/2_design_discussion/23_boot_sequence

NVRAM-переменные помогают UEFI понимать, с какого устройства требуется загрузиться. Они хранятся в энергонезависимой памяти. Есть стандартные переменные и те, которые определяют разработчики платформ. Например, переменные db и dbx используются Secure Boot, они содержат базу данных с ключами и хешами.

Нам интересна переменная BootOrder, определяющая порядок загружаемых устройств, и переменная Boot#### с номером устройства.

Список NVRAM-переменных

Список NVRAM-переменных

Если рассмотреть дамп переменной Boot004 (она относится к первому устройству в списке BootOrder), можно обнаружить путь к менеджеру загрузки bootmgfw.efi. Так переменная указывает прошивке, где искать менеджер загрузки. В переменной также есть отсылка в виде GUID на хранилище параметров загрузки BCD (Boot Configuration Data). В зависимости от системы важные данные можно сохранять непосредственно в NVRAM-область.

Дамп переменной Boot0004

Дамп переменной Boot0004

Ниже представлена схема диска, размеченного с помощью GPT. В нулевом секторе расположен Protective MBR. Его формат предполагает всего один раздел, описывающий весь диск. Намеренно указывается специальный диск этого раздела: это необходимо, чтобы компьютер без поддержки UEFI мог распознать диск формата GPT и случайно не затер его.

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

Схема диска, размеченного GPT

Схема диска, размеченного GPT

За первым сектором следует таблица разделов. В ней 128 элементов, каждый из которых описывает определенный логический раздел на диске.

Структура элемента таблицы

Структура элемента таблицы

Больше всего интересен первый элемент — type (член структуры, описывающей раздел), который позволяет найти раздел EFI System Partition. Там расположен менеджер загрузки.

Раздел EFI System Partition

Раздел EFI System Partition

Раздел EFI System Partition имеет структуру формата FAT32, содержит таблицы кластеров, адрес корневой директории и древовидную структуру расположения всех файлов. Его можно распарсить, прочитать и найти все необходимые файлы. Например, для Windows есть специальная утилита mountvol.exe, позволяющая смонтировать по умолчанию скрытый раздел EFI System Partition и посмотреть его содержимое. Для этого необходимо указать ключ /S и букву диска, куда его следует смонтировать. В директории, которая была в NVRAM-переменной, находится файл менеджера загрузки. Помимо него, там есть и другие файлы: модуль, отвечающий за работу отладчика, и файл BCD (куст реестра с BCD-параметрами). Параметры будут необходимы в процессе работы менеджера загрузки и инициализации системы.

Использование утилиты mountvol.exe

Использование утилиты mountvol.exe

Менеджер загрузки является UEFI-приложением, поэтому должен соответствовать соглашению о точке входа. Точка входа менеджера загрузки имеет определенную сигнатуру. Ее второй параметр — SystemTable — указывает на структуру, которая, в свою очередь, содержит указатели на таблицу RuntimeServices и таблицу BootServices. Их задача — предоставить API-интерфейс для работы с оборудованием.

Точка входа менеджера загрузки

Точка входа менеджера загрузки

Давайте обобщим ключевые отличия загрузки в режиме UEFI от загрузки в режиме Legacy BIOS:

переключение режимов выполняется UEFI на ранней стадии;

для работы с оборудованием используется API-интерфейс, в частности RuntimeServices и BootServices;

менеджер загрузки (bootmgf.efi) инициализирует механизм проверки целостности кода (Code Integrity);

загрузчик ОС winload.efi заворачивает UEFI-сервисы для использования ядром через HAL.

Изучаем Secure Boot

На наш взгляд, самый интересный компонент прошивки UEFI — Secure Boot. Его архитектура хорошо описана и проиллюстрирована в книге «Руткиты и буткиты. Обратная разработка вредоносных программ и угрозы следующего поколения» (12+) за авторством Алекса Матросова, Евгения Родионова и Сергея Братуся.

В основе Secure Boot лежит набор ключей разного уровня. Самый важный среди них — platform key (PK), который содержится в прошивке. Начальный PK верифицирует key exchange key (KEK).

Стоит отметить, что существует две базы ключей:

db — база ключей для аутентификации, отвечает за проверку подписей модулей;

dbx — база запрещенных ключей и хешей.

Согласно алгоритму работы Secure Boot, при загрузке нового модуля проверяется не только его подпись, но и хеш. Дело в том, что бывают модули UEFI-драйверов с абсолютно легитимными подписями. При обнаружении критически опасной уязвимости, даже если модуль пройдет проверку подписи, но его хеш будет отмечен в базе исключений, он не будет допущен к загрузке и исполнению.

UEFI-модули могут быть двух форматов:

· Portable Executable (привычный для Windows);

· Terse Executable. Этот формат похож на Portable Executable, но лишен части полей и имеет другие сигнатуры.

Алгоритм работы Secure Boot Источник: https://edk2-docs.gitbook.io/understanding-the-uefi-secure-boot-chain/secure_boot_chain_in_uefi/uefi_secure_boot

Алгоритм работы Secure Boot Источник: https://edk2-docs.gitbook.io/understanding-the-uefi-secure-boot-chain/secure_boot_chain_in_uefi/uefi_secure_boot

Как работает UEFI-буткит

Есть два варианта заражения:

1. Заражение прошивки

2. Заражение в EFI System Partition, в частности:

· добавление нового модуля

Известны успешные атаки, в ходе которых злоумышленникам удавалось перезаписать код в SPI-чипе, то есть, по сути, заразить его. Позднее появилась пара буткитов, нацеленных на компрометацию менеджера загрузки.

На данный момент мы можем выделить два вектора атаки на UEFI-платформу: перепрошивка SPI и модификация менеджера загрузки. Касательно второго вектора следует выделить частный случай добавления нового модуля в раздел EFI System Partition и последующего изменения пути в NVRAM-переменной, которая указывает, с какого устройства необходимо загрузиться.

Первая ласточка — буткит LoJax

Первый UEFI-буткит был найден и описан специалистами ESET. В LoJax использовался подход перезаписи содержимого прошивки. Другими словами, он считывал прошивку, находил маркеры, что-то добавлял и записывал обратно.

Схема работы буткита LoJax Источник: https://www.welivesecurity.com/wp-content/uploads/2018/09/ESET-LoJax.pdfСхема работы буткита LoJax Источник: https://www.welivesecurity.com/wp-content/uploads/2018/09/ESET-LoJax.pdf

Важно понимать, что чип SPI представляет собой некое PCI-устройство. Следовательно, чтобы с ним взаимодействовать нужен особый интерфейс. Поэтому чтение и запись содержимого чипа — это многоступенчатая и сложная операция, включающая работу с различными флагами и параметрами. Если изучить код одного из модулей LoJax, умеющих читать и писать в SPI, можно убедиться, что это действительно PCI-устройство. В модуле прописан PCI-адрес устройства, а с устройством этот модуль взаимодействует посредством драйвера с помощью функции DeviceIoControl.

Функция DeviceIoControl

Функция DeviceIoControl

Интерфейс работы с SPI непрозрачен. Кроме того, механизмы безопасности защищают его от простого считывания. В случае LoJax в основу подхода по компрометации легла эксплуатация уязвимости race condition. Стоит отметить, что данная уязвимость присутствует не во всех системах. У SPI-чипа есть набор флагов, управляющих не только разрешением на запись, но и его блокировкой. Один из флагов можно сбросить с помощью кода, работающего в режиме System Management Mode (SMM). Это привилегированный режим, в котором приостанавливается исполнение другого кода, в том числе кода ОС и гипервизора. Как только происходит попытка записи, SMM блокирует возможность записывать. Поэтому создатели буткитов используют два потока. Таким способом они одновременно пытаются сбросить защитные флаги и записать что-то в чип.

Схема эксплуатации race condition для перезаписи SPI Источник: https://composter.com.ua/documents/Exploiting_Flash_Protection_Race_Condition.pdf

Схема эксплуатации race condition для перезаписи SPI Источник: https://composter.com.ua/documents/Exploiting_Flash_Protection_Race_Condition.pdf

Чтобы взаимодействовать c PCI-устройством, LoJax использует драйвер в составе утилиты Read & Write Everything. Утилита позволяет работать с низкоуровневыми компонентами системы: физической памятью, устройствами ввода-вывода и другими. Чтобы выполнять функции чтения-записи физической памяти, взаимодействия с устройствами и различными низкоуровневыми подсистемами и настройками, она имеет подписанный легитимный драйвер, который как раз и использовали разработчики LoJax.

Утилита RW

Утилита RW

Отметим, что PCI-устройства должны следовать соглашениям и в том числе иметь в своем составе блок данных PCI Configuration Space. PCI Configuration Space находится непосредственно в PCI-устройстве. Чтобы читать этот блок или записывать в него, есть два порта ввода-вывода: 0xCF8 и 0xCFC.

Структура PCI Configuration Space Источник: https://en.wikipedia.org/wiki/PCI_configuration_space

Структура PCI Configuration Space Источник: https://en.wikipedia.org/wiki/PCI_configuration_space

Через порт PCI_COFIG_ADDRESS указывается адрес внутри блока данных, откуда можно считать (read) или записать (write) данные. Так, можно считать данные из PCI Configuration Space, например идентификатор устройства или его производителя, а также специфические для этого устройства значения. Порт PCI_CONFIG_DATA используется для считывания и записи данных. Направление зависит от применяемой инструкции: IN — считывание, OUT — запись.

Кроме того, у PCI-устройства есть Base Address Registers — область, содержащая специфические значения для данного устройства. Например, адрес в физической памяти, куда отображены управляющие регистры SPI. По сути, за счет взаимодействия с PCI-регистрами, отображенными в физической памяти, и выполняется чтение прошивки и запись в нее.

Функция записи и чтения прошивки

Функция записи и чтения прошивки

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

считываем PCI-регистры из Base Address Registers с помощью портов CF8 и CFC;

получаем адрес регистров, отображенных в физической памяти;

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

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

Манипуляция с байтами в сегменте физической памяти

Манипуляция с байтами в сегменте физической памяти

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

Знакомьтесь: MosaicRegressor

Еще один интересный буткит — MosaicRegressor, исследованный специалистами «Лаборатории Касперского». В его случае начальный вектор заражения неизвестен, то есть никто не знает, как буткит был установлен.

Состав MosaicRegressor

Состав MosaicRegressor

В зараженной прошивке исследователи обнаружили четыре модуля, два драйвера и два приложения, исполняющих вредоносную нагрузку. Рассмотрим их подробнее. Первым исполняется модуль SmmInterfaceBase. В его задачу входит создание c помощью API-функции CreateEventEx события EVENT_GROUPR_READY_TO_BOOT. Это событие наступает перед тем, как управление передается менеджеру загрузки. Тогда же вызывается обратный вызов NotifyFunction.

Состав модулей MosaicRegressor

Состав модулей MosaicRegressor

Интересно, что происходит внутри callback? Давайте посмотрим. С помощью уникального идентификатора приложения (GUID) обнаруживается модуль SmmAccessSub. Затем он запускается.

Модуль SmmAccessSub

Модуль SmmAccessSub

В этом модуле SmmAccessSub, по нашему мнению, довольно тривиальный подход к persist. Он заключается в сбросе пользовательского модуля в папку Startup. При этом никаких действий с драйверами или подмен не происходит.

Еще одним модулем в зараженной прошивке был SmmReset. Он сбрасывает значение EFE до нуля.

Модуль SmmReset

Модуль SmmReset

Буткит MosaicRegressor не использует SmmReset, однако модуль для работы с точно такой же переменной есть в утекшем репозитории Hacking Team и применяется, чтобы определить, заражена прошивка или нет.

Фрагмент кода из репозитория vector-edk. Установка флага заражения прошивки Источник: https://github.com/hackedteam/vector-edk/

Фрагмент кода из репозитория vector-edk. Установка флага заражения прошивки Источник: https://github.com/hackedteam/vector-edk/

MoonBounce — самый примечательный экземпляр

MoonBounce можно назвать новинкой в списке буткитов, угрожающих UEFI. Его обнаружили в конце января 2022 года. Вредонос отличает сложная и интересная схема заражения. Так же, как и в случае с MosaicRegressor, начальный вектор проникновения неизвестен.

Читать:
Error 0 occurred while receiving the document proxmox как исправить

В прошивке буткит начинает работать до стадии исполнения драйверов. При этом вредоносные действия выполняются не в драйвере, а непосредственно в коде прошивки — в начале стадии DXE. Принцип работы MoonBounce следующий: буткит перехватывает несколько функций Boot-сервисов. Первая функция размещает в памяти шеллкод уровня Ring 0, другая — перехватывает функцию, которая передает управление ядру ОС, а затем перехватывает функцию выделения памяти внутри ядра ExAllocatePool. Все это MoonBounce делает, чтобы исполнить шеллкод, который был «замаплен» еще на стадии работы прошивки. Дальше в дело вступает сам шеллкод: он загружает и вызывает вредоносный драйвер, который обладает возможностями руткита. Как вы, наверное, уже поняли, необычно здесь то, что случилось не «аккуратное внедрение» модуля, а заражение всей прошивки.

Принцип работы MoonBounce Источник: https://securelist.com/moonbounce-the-dark-side-of-uefi-firmware/105468/

Принцип работы MoonBounce Источник: https://securelist.com/moonbounce-the-dark-side-of-uefi-firmware/105468/

Атаки на Boot-менеджеры

Атаки на Boot-менеджеры рассмотрим на примере буткитов FinSpy и ESPecter. FinSpy, также известный как FinFisher, подменяет оригинальный менеджер загрузки на вредоносный. В частности, при передаче управления от UEFI к менеджеру загрузки вызывается вредоносный менеджер, который выполняет некоторые функции (например, перехватывает функции передачи управления ядру или патчит код, ответственный за проверку цифровых подписей), а затем загружается оригинальный Boot-менеджер.

Содержимое зараженного EFI System Partition и код для монтирования EFI System Partition Источник: https://securelist.com/finspy-unseen-findings/104322/

Содержимое зараженного EFI System Partition и код для монтирования EFI System Partition Источник: https://securelist.com/finspy-unseen-findings/104322/

Для заражения раздела EFI System Partition злоумышленникам достаточно воспользоваться банальным набором API. Это позволяет им смонтировать раздел и в дальнейшем работать с ним, как с любым другим диском.

Принцип работы FinSpy

Принцип работы FinSpy

Алгоритм работы FinSpy выглядит так:

подмененный Boot-менеджер загружает оригинальный Boot-менеджер;

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

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

ESPecter замыкает пятерку буткитов, на текущий момент известных исследователям. Его корни уходят как минимум в 2012 год. В процессе своей работы ESPecter патчит менеджер загрузки, чтобы заменить легитимный драйвер (либо beep.sys, либо winsys.dll) на вредоносный. Кроме того, загрузчик буткита патчит проверку целостности загрузчика (да-да, загрузчик проверяет сам себя на пропатченность).

Логика работы ESPecter Источник: https://www.welivesecurity.com/2021/10/05/uefi-threats-moving-esp-introducing-especter-bootkit/

Логика работы ESPecter Источник: https://www.welivesecurity.com/2021/10/05/uefi-threats-moving-esp-introducing-especter-bootkit/

Буткит ESPecter отключает проверку цифровой подписи драйверов, чтобы загрузить в систему подменный beep.sys или winsys.dll и запустить его.

Вредоносный код, позволяющий обойти проверку цифровой подписи Источник: https://www.welivesecurity.com/2021/10/05/uefi-threats-moving-esp-introducing-especter-bootkit/Вредоносный код, позволяющий обойти проверку цифровой подписи Источник: https://www.welivesecurity.com/2021/10/05/uefi-threats-moving-esp-introducing-especter-bootkit/ Подмена легитимного драйвера на вредоносный при выключенной проверке подписи драйверов Источник: https://www.welivesecurity.com/2021/10/05/uefi-threats-moving-esp-introducing-especter-bootkit/ Подмена легитимного драйвера на вредоносный при выключенной проверке подписи драйверов Источник: https://www.welivesecurity.com/2021/10/05/uefi-threats-moving-esp-introducing-especter-bootkit/

В ядре Windows предусмотрена функция, отвечающая за инициализацию проверки целостности. Если ее запатчить и приравнять к нулю переменную CiOptions, проверки будут проходить так, словно драйверы подписаны. Этот подход ESPecter применяет для legacy-систем.

Что это за зверь такой — System Management Mode

Рассказывая о буткитах, нельзя не упомянуть System Management Mode — привилегированный режим работы процессора. Он необходим для управления электропитанием и проприетарными функциями (их определяют сами вендоры).

Расширенная схема уровней привилегий в ПК Источник: https://medium.com/swlh/negative-rings-in-intel-architecture-the-security-threats-youve-probably-never-heard-of-d725a4b6f831

Расширенная схема уровней привилегий в ПК Источник: https://medium.com/swlh/negative-rings-in-intel-architecture-the-security-threats-youve-probably-never-heard-of-d725a4b6f831

Режим SMM, который часто еще называют Ring -2, непрозрачен для ОС. Переходя в него, процессор может выполнять код. Код обычно находится в области памяти SMRAM. Она начинается с адреса SMBASE. SMBASE по дефолту имеет фиксированный адрес, но также может меняться с помощью специальных MSR-регистров. В режиме SMM процессор сохраняет весь свой контекст (значения почти всех регистров в верхней области памяти).

Структура памяти SMRAM

Структура памяти SMRAM

Перейти в режим SMM процессор может несколькими способами. Например, он может выполнить прерывание (System Management Interrupt, SMI). Выделяют три вида прерывания:

С позиции атакующего системные прерывания сложны в реализации. Тогда как программные вполне можно вызвать кодом на уровне драйвера. Для этого на порты b3 и b2 необходимо отправить определенное значение (оно отличается для разных устройств), и процессор переключится в режим SMM.

Фрагмент кода из фреймворка CHIPSEC для вызова программного SMI Источник: https://github.com/chipsec/chipsec/blob/main/drivers/win7/amd64/cpu.asm Фрагмент кода из фреймворка CHIPSEC для вызова программного SMI Источник: https://github.com/chipsec/chipsec/blob/main/drivers/win7/amd64/cpu.asm Высокоуровневое представление процесса обновления BIOS из ОС Источник: Rootkits and Bootkits by Alex Matrosov, Eugene Rodionov, and Sergey Bratus (No Starch Press, 2019)Высокоуровневое представление процесса обновления BIOS из ОС Источник: Rootkits and Bootkits by Alex Matrosov, Eugene Rodionov, and Sergey Bratus (No Starch Press, 2019)

Режим SMM опасен еще и тем, что имеет доступ ко всей памяти системы. Из этого вырисовывается несколько возможных вариантов эксплуатации: использование руткита с доступом к системе либо перезапись содержимого чипа SPI. SMM имеет много уязвимостей, преимущественно вендороспецифичных, например, SMM Callout, которая позволяет выполнить код в режиме SMM за пределами SMRAM. Убедиться в неиллюзорности угроз можно, ознакомившись со списком уязвимостей. По большей части они характерны либо для конкретного девайса, либо фреймворка.

Резюме

В заключение кратко перечислим главные моменты статьи:

UEFI-буткиты могут обойти все механизмы защиты и получить контроль над всей системой;

SPI-буткит невозможно удалить ни переустановкой ОС, ни форматированием жесткого диска;

для борьбы с буткитами есть механизмы защиты, такие как Secure Boot и Intel Boot Guard, но они не панацея;

наибольшую опасность сегодня представляют уязвимости в режиме SMM и подсистеме Intel ME.

Как эффективно обнаруживать UEFI-буткиты, расскажем на следующем вебинаре. Stay tuned!

Посмотреть видеоверсию статьи и скачать презентацию вы можете на сайте Positive Technologies.

Антон Белоусов, старший специалист отдела обнаружения вредоносного ПО экспертного центра безопасности Positive Technologies

Алексей Вишняков, руководитель отдела обнаружения вредоносного ПО экспертного центра безопасности Positive Technologies

В чем разница между UEFI и Legacy?

Условия создания флешки те же, что и в предыдущем варианте. Только теперь окно Rufus до записи на флешку в части некоторых настроек выглядит так:

Более подробное (хотя процесс прост) описание – в содержании статьи Загрузочная флешка с Windows от Rufus. Там, на примере немного устаревшей версии утилиты всё расставлено по полочкам. Процесс выбора готовой уже флешки при установке Windows на компьютер также схож с аналогичным из предыдущего абзаца:

Опция Boot List Option — Выбор варианта загрузки определяем режим загрузки и меет два значения «Legacy» — (наследуемый вариант загрузки — режим совместимости) BIOS или «UEFI» (Unified Extensible Firmware Interface — интерфейс между операционной системой и микропрограммами) режим загрузки.

UEFI BIOS поддерживает два режима загрузки: режим загрузки Legacy («Наследие») BIOS и режим загрузки UEFI.

Некоторые устройства и операционные системы пока не поддерживают UEFI на основе BIOS и могут загружаться только с режиме загрузки — Legacy BIOS.

В зависимости от вашей ситуации, вы выбираете какой режим загрузки из UEFI BIOS вы хотите использовать: режим загрузки Наследия — Legacy BIOS или режим UEFI загрузки.

  1. Legacy ( CMS OS или CSM Boot, UEFI and Legacy OS, Legacy OpROM) – выберите режим загрузки Legacy BIOS, чтобы HBAs-адаптеры и некоторые экспресс — модули могли использовать опции ROMs — ПЗУ. При выборе режима загрузки Legacy BIOS, только загрузочные кандидаты поддерживающие режим загрузки Legacy BIOS будут перечислены в списке «Приоритет — Параметры загрузки». НЕ забываем при выборе данной опции 1) отключить очень капризную опцию Secure Boot — защищенной загрузки. А так же включить модуль 2) Load Legacy Option Rom — CSM — загрузку модуля совместимости старых ОС.
  2. UEFI (UEFI OS) – выберите режим загрузки UEFI что бы использовать драйверы UEFI. Только устройства, поддерживающие выбранный режим загрузки перечислены на экране выбора источника загрузки BIOS — экране в списке Приоритетов Параметры загрузки.

Опция также может иметь другие названия:

  1. Boot List Option
  2. Launch CSM(Compatibility Support Module)
  3. CMS Boot
  4. UEFI and Legacy OS
  5. CMS OS
  6. Boot Mode
  7. OS Mode Selection

Примечание 1. Если режим загрузки (Boot List Option) изменяется, то выставленная последовательность опроса носителей — дисков — кандидатов от предыдущего режима загрузки не сохраняется..

Примечание 2. Загрузчик операционной системы – это системная программа, которая подготовляет компьютер для загрузки операционной системы (загружает ядро операционной системы в оперативную память, формирует параметры работы ОС…). Запуск загрузчика выполняет BIOS.

UEFI или Legacy – что выбрать

Иногда понятие Legacy применяют к устаревшей версии БИОСа, т.е. называют BIOS Legacy. На его замену пришла более современная модель – UEFI.
UEFI – это технология, реализующая те же функции, что и BIOS Legacy. По сути UEFI – просто современная версия базовой системы ввода-вывода, которая лучше всего подходит для Windows 10 последних версий. В Windows 7 и 8 также можно использовать режим УЕФИ, но тут это не так принципиально, хотя во многом это зависит от установленных компонентов. Если кроме материнской платы все компоненты компьютера достаточно старые, то UEFI не принесет каких-либо заметных улучшений в работу ПК.

UEFI работает с современными системами и не имеет многих ограничений БИОСа. Некоторые модели материнских плат позволяют изменять режим между UEFI и Legacy в пункте boot mode. Более детально об отличиях можно узнать в нашей статье.

Так как UEFI изначально задумывалась как окончательная замена БИОСу со временем, советуется выбирать ее как наиболее перспективную. В отличие от традиционного BIOS-Legacy, UEFI обладает рядом преимуществ, к котором стоит отнести:

  1. Снятие ограничения на объем разделов и их число.
  2. Повышенная скорость.
  3. Улучшенная производительность.
  4. Усиленная безопасность.
  5. Поддержка загрузки при помощи сети.
  6. Совместимость с предыдущими версиями BIOS.
  7. Наличие менеджера загрузки.

Каждый пользователь ПК сам выбирает для себя, что ему выбирать – повышенную функциональность устройств или возможность работы с ним до загрузки операционной системы. То же можно сказать и про UEFI и BIOS – первый более современен, второй более привычен. Делать выбор надо исходя из собственных предпочтений, но при этом руководствоваться вышеизложенной информацией.

Разница между UEFI и БИОС

Legacy usb support — что это за параметр в bios и за что он отвечает?
Разметка GPT была создана специально , чтобы было менее проблематично работать с дисками объемом 2 Тб и больше . Кроме этого , можно при первом настраивании операционной системы разбить диск на любое количество разделов, что ранее было невозможным. Предыдущий способ разметки – MBR не совместим с uefi и работа с ней возможна только при наличии дополнительного расширения CSM (Compatibility Support Module).

Модуль shell ( есть не на всех ноутбуках) “разрешает” управлять приложениями юзера прямо в режиме UEFI. Как уже упоминалось, UEFI похожа на самостоятельную операционную систему, даже с поддержкой сетевых драйверов. Спецификация программки «разрешает» использовать драйвера для UEFI при помощи ОС, например , если в основной операционной системе отсутствует или не работает сетевой драйвер.

Встроенный загрузочный менеджер;

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

Secure Boot не отменяет такой возможности для пользователей Windows 8. На всех устройствах есть возможность отключить данный режим, кроме планшетов на ARM, где Win 8 была установлена в качестве стандартной ОС. Защищенный режим не позволяет использовать неподписанный код даже при выполнении операционной системы, поэтому вредоносные трояны не проникнут ни в Windows, ни в Linux. Однако , если злоумышленник имеет физический доступ к ПК , он практически всегда может заменить лицензионные ключи на свои.

Загрузка UEFI и подготовка к установке

Что лучше: avast или 360 total security

Настройка UEFI проводится подобно настройке БИОСа. Перезапустите ПК , и как только он начнет загружаться, нажмите клавишу F2 ( или Delete, это зависит от того , какая установлена материнская плата, проверить можно только опытным путем ). Откроется меню управления.

Нажмите кнопку F7 и выберите подраздел «Дополнительно». Во вкладке «boot» или «startup» (загрузка) нужно выбрать функцию «поддержка USB» и установить там пункт « Full initialization» ( полная инициализация).

Во вкладке «безопасная загрузка» (Secure Boot) следует о (Режим Виндовс UEFI).

Во вкладке «Загрузка» выбирается «Compatibility Support Module» (модуль поддержки совместимости) и о (доступный). Не будет лишним кликнуть на добавочные ссылки и найти строчку «настройки загрузочных устройств», где выбрать « only uefi» ( только uefi).

Эта предосторожность защищает от случайного использования носителей, которые не поддерживают вашу спецификацию. В записи «загрузка с носителей ( или устройств хранения)» нужно о ( оба , но uefi первым ). Теперь вернитесь назад в основное меню и проверьте приоритет загрузочных устройств

Сначала выбирается флеш-накопитель, затем жесткий диск. Сохраните указанные параметры нажатием кнопки F10, потом – Enter и подождите, пока компьютер загрузится

Теперь вернитесь назад в основное меню и проверьте приоритет загрузочных устройств. Сначала выбирается флеш-накопитель, затем жесткий диск. Сохраните указанные параметры нажатием кнопки F10, потом – Enter и подождите, пока компьютер загрузится.

После выполнения всего вышеперечисленного можно установить операционную систему привычным для вас способом.

Отключить устаревший режим загрузки и включить UEFI

Bios (uefi) не видит загрузочную флешку

На новых компьютерах с Windows 8 и Windows 10 может потребоваться вручную включить устаревший режим загрузки, чтобы загрузить старые операционные системы или загрузочные инструменты и утилиты. Однако, когда вы закончили работу с этими приложениями, часто необходимо снова включить загрузку UEFI, чтобы возобновить обычное использование вашего ПК.

Что такое Legacy Boot Mode

На более новых ПК с Windows 8 и 10, которые разработаны с поддержкой UEFI, в BIOS часто есть опция, указывающая, может ли компьютер загружаться в обычные операционные системы и средства восстановления или же он может загружаться исключительно в более новые операционные системы и среды UEFI. Обычный способ загрузки программного обеспечения и операционных систем называется «Legacy Boot» и иногда он должен быть включен / разрешен в настройках BIOS. Устаревший режим загрузки обычно не поддерживает разделы размером более 2 ТБ и может привести к потере данных или другим проблемам, если вы попытаетесь использовать его в обычном режиме.

Включение режима загрузки UEFI

На ПК и ноутбуках большинства производителей, включая Dell, HP, Asus, Acer, Toshiba, Lenovo и другие, Legacy Boot можно отключить или включить с помощью функции настройки EFI, доступной сразу после включения ПК. Если унаследованный режим загрузки (также известный как «загрузка CSM») включен, режим загрузки UEFI автоматически отключается или удаляется по приоритетам.

Ниже приведены инструкции по отключению Legacy Boot на большинстве ПК и ноутбуков, а также специальные инструкции для ноутбуков определенных марок. На большинстве компьютеров EFI вам необходимо получить доступ к настройке EFI сразу после включения ПК, чтобы увидеть возможность включения загрузки UEFI, обычно в качестве опции в разделе параметров загрузки конфигурации BIOS.

Вход в настройку UEFI

Сразу после включения компьютера, как только на экране-заставке BIOS появится логотип производителя (например, Dell, Lenovo, HP, Toshiba, Samsung, ASUS, Acer, Gateway и т. д.), вы сможете нажать специальную клавишу. Эта клавиша меняется, все зависит от марки и модели вашего ПК. Как правило, вы видите краткую заметку внизу или вверху экрана, указывающую, что это за клавиша

Один такой экран виден справа, обратите внимание на легенду в правом верхнем углу, указывающую, что при нажатии F2 начнется настройка BIOS, а при нажатии F12 будет представлено меню выбора загрузки. Некоторые распространенные варианты включают F2, F8, F12 и Del

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

Отключение Legacy Boot Support

Попав в раздел настройки и настройки UEFI, вам будет представлен ряд опций и параметров, которые можно настроить для среды встроенного ПО. У нужной опции есть много названий (в зависимости от марки и модели ПК или ноутбука и прошивки EFI). Некоторые из возможных имен параметров, которые вы ищете, перечислены ниже, вместе с их возможными конфигурациями, значения, выделенные жирным шрифтом, должны быть выбраны.

  • Legacy Support (On/Off or Enabled/Disabled)
  • Boot Device Control
  • Legacy CSM (On/Off or Enabled/Disabled)
  • Launch CSM (On/Off or Enabled/Disabled)
  • CSM (On/Off or Enabled/Disabled)
  • UEFI/Legacy Boot (Both/Legacy Only/UEFI Only)
  • Boot Mode (Legacy Support/No Legacy Support)
  • Boot Option Filter (UEFI and Legacy/UEFI First/Legacy First/Legacy Only/UEFI Only)
  • UEFI/Legacy Boot Priority (UEFI First/Legacy First/Legacy Only/UEFI Only)

Сохранение настроек и выход

Чтобы изменения конфигурации Secure Boot вступили в силу, необходимо сохранить параметры конфигурации BIOS / EFI / UEFI. Общее сочетание клавиш для сохранения и выхода F10.

Опять же, точные шаги зависят от вашего ПК марки и модели

Важно, чтобы вы выбрали опцию «сохранить изменения и выйти»! Сочетание клавиш F10 часто синонимично с «сохранить и выйти», но вы должны убедиться, прежде чем использовать его

UEFI Boot — что это такое и как отключить UEFI в БИОСе. Или просто о научном

Здравствуйте, уважаемые читатели! Сегодня мы поговорим об одной сложной на первый взгляд теме, которая будет звучать так: UEFI Boot — что это такое

и как отключить UEFI в БИОСе.

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

Итак, давайте вместе с вами разбираться, кто есть кто в этой каше. И думаю, что слово BIOS знают многие. Ведь именно в нем мы выставляем приоритет загрузки на диск с дистрибутивом Windows

, которую хотим установить на ПК.

Да, друзья, этот тот самый раздел настроек на синем фоне, в который можно войти в самом начале при включении компа. Вот рисунок для освежения памяти:

Еще многие энтузиасты пробовали здесь играться с вольтажом и частотой главного процессора, чтобы увеличить мощность своей машины. Так вот, на смену микропрограмме БИОСа пришла другая, более современная.

И как вы уже поняли, называется она UEFI. Из новых нововведений в ней можно отметить поддержку высоких разрешений экрана, дисков очень большого объема и работу с мышкой.

Так вот, обязательно следует сказать о том, что полноценная система UEFI реализована пока еще далеко не во всех современных компьютерах. Зато некоторые ее новые функции, доселе не виданные, успешно внедрены в старую оболочку BIOS.

И одна из них, так называемая UEFI Boot (полное название Secure Boot). Смысл ее работы заключается в предотвращении подмены источника загрузки системы, тем самым уменьшая использование нелицензионного ПО.

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

Но на самом деле, решить данную проблему можно и очень даже легко. Для этого нужно сделать пару настроек и всего делов-то. Поэтому давайте переходить к работе. Так сказать, хватит теории.

И для того чтобы отключить UEFI функции в БИОСе, необходимо сразу войти в него. Как говорилось уже выше, для этого нужно нажать определенную комбинацию клавиш сразу после включения компьютера.

В случае автора статьи, который использует ноутбук Lenovo, это будут кнопки Fn+F2

. Если у вас другой аппарат, попробуйте поэкспериментировать с вариантами указанными на картинке ниже:

Ну что же, на этом шаге будем считать, что мы уже внутри системы. Приступаем к нужным манипуляциям. Первым делом идем в раздел «Security» и выставляем опции «Secure Boot» значение «Disabled»:

Тем самым мы отключили главную функцию защиты UEFI от сторонних загрузчиков. Затем следует пройти в раздел «Boot» и выставить параметры как на скриншоте ниже:

После этого у нас должен появится список из доступных устройств. Теперь меняя их положение в списке, можно манипулировать источниками загрузки. Опять же, на примере автора, это можно сделать сочетанием клавиш Fn+F5/F6

Ну что же, после всех внесенных параметров, осталось только сохранить изменения. Делается это в меню «Exit», выбрав пункт «Exit Saving Changes»:

Похожие статьи