Share via


Защита среды, предшествующей загрузке операционной системы, с помощью UEFI

Мы получили некоторое количество комментариев относительно того, как корпорация Майкрософт реализовала безопасную загрузку. К сожалению, в этих комментариях рассматривались сценарии, где данный вопрос был представлен неверно. Поэтому мы решили использовать эту статью для более подробного описания того, как UEFI обеспечивает безопасную загрузку и предоставляет расширенные возможности производителям ПК. Важнее всего понять то, что мы предоставляем возможности, которые обеспечивают желающим клиентам полностью надежный подход к безопасности, но при этом позволяют сохранить полный контроль над компьютером. Эту статью написал Тони Мангефест (Tony Mangefeste) из нашей группы Ecosystem. --Стивен

Краткий обзор

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

Полная картина — отсутствие угроз безопасности

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

 Схема архитектуры целостности платформы Windows 8: 1. Безопасная загрузка предотвращает запуск неизвестного загрузчика ОС. 2. Ядро прежде всего запускает драйверы Early Launch Anti-Malware (ELAM), которые реализуют политику для сторонних драйверов и приложений. 3. Во время загрузки начальное состояние системы было записано в доверенном платформенном модуле. 4. Чтобы подтвердить исправность работы клиента, антивредоносное ПО может передать сведения об измерениях доверенного платформенного модуля удаленному средству проверки.
Рис. 1. Архитектура целостности платформы

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

Для клиентов Windows корпорация Майкрософт применяет программу сертификации Windows, которая позволяет убедиться, что на системах, поставляемых с ОС Windows 8, по умолчанию включена безопасная загрузка, что встроенное ПО не допускает программного управления безопасной загрузкой (чтобы предотвратить отключение политик безопасности во встроенном ПО вредоносной программой) и что поставщики вычислительной техники предотвращают несанкционированные попытки обновления встроенного ПО, которые могут нарушить целостность системы.

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

Что такое UEFI?

За управление UEFI (Unified Extensible Firmware Interface — единый интерфейс EFI) отвечает форум UEFI, группа поставщиков наборов микросхем, оборудования, систем, встроенного ПО и операционных систем. Этот форум разрабатывает спецификации, средства проверки и эталонные реализации, которые используются на многих ПК с UEFI. Корпорация Майкрософт является членом правления на данном форуме, кроме того, любой человек и любая компания могут присоединиться к этому форуму совершенно бесплатно.

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

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

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

Что такое безопасная загрузка?

UEFI имеет процесс проверки встроенного ПО, который называется безопасной загрузкой, что отражено в главе 27 спецификации UEFI 2.3.1. Безопасная загрузка определяет, как встроенное ПО платформы управляет сертификатами безопасности, проверкой встроенного ПО и реализацией интерфейса (протокола) между встроенным ПО и операционной системой.

Архитектура целостности платформы корпорации Майкрософт создает корень доверия со встроенным ПО платформы с помощью безопасной загрузки UEFI и хранимых во встроенном ПО сертификатов. Растущая тенденция в области средств эксплуатации уязвимостей, используемых вредоносными программами, заключается в использовании пути загрузки в качестве основного направления атаки. Противодействие этому классу атак было затруднено, так как антивредоносное ПО может быть заблокировано вредоносными программами, препятствующими его полной загрузке. Благодаря архитектуре безопасной загрузки в операционной системе Windows 8 и созданному корню доверия клиент защищен от выполнения вредоносного кода в пути загрузки, так как перед операционной системой разрешен запуск только подписанных и сертифицированных "известных" загрузчиков и кода.

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

Существующие процессы загрузки: BIOS > код любого загрузчика ОС > запуск ОС
Рис. 2. Старый путь загрузки BIOS

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

Безопасная загрузка Windows 8: собственный UEFI 2.3.1 > только проверенный загрузчик ОС > запуск ОС
Рис. 3. Путь безопасной загрузки при использовании UEFI

Безопасная загрузка является всего лишь частью мер по обеспечению целостности платформы Windows 8. Наравне с UEFI корпорация Майкрософт проводит стратегию по реализации целостного подхода к другому доступному оборудованию для дальнейшего повышения безопасности платформы.

Краткое описание того, как это работает

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

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

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

Схема со списком разрешенных элементов и списками запрещенных элементов (хэши вредоносных программ), управляемыми KEK и сертификатами ключа платформы
Рис. 4. Базы данных безопасности для сертификатов

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

Разрешенная база данных содержит ключи, представляющие надежные компоненты встроенного ПО и, что важнее, загрузчики ОС. Другая база данных содержит хэши вредоносных программ и встроенного ПО и блокирует выполнение этих вредоносных компонентов. Преимущество таких политик заключается в подписании встроенного ПО с помощью Authenticode и в инфраструктуре открытых ключей. Инфраструктура открытых ключей представляет собой хорошо организованный процесс для создания, контроля и отзыва сертификатов, которые устанавливают отношение доверия во время обмена информацией. Инфраструктура открытых ключей — это ядро модели безопасности для безопасной загрузки.

Что требуется для безопасной загрузки?

Для использования безопасной загрузки требуется встроенное ПО, которое соответствует требованиям UEFI редакции 2.3.1 или превышает их. Форум UEFI утвердил последнюю редакцию, которая обновила политики главы 27, чтобы включить в существующий протокол безопасной загрузки переменные с проверкой подлинности по времени, более устойчивые ключи шифрования и разъяснение аспектов, связанных с хранением сертификатов.

Для пользователя, приобретающего компьютер, данный компонент будет прозрачным. Преимущество от него заключается в том, что система приобретает дополнительную меру защиты от атак с использованием пакетов программ bootkit и rootkit, нацеленных на уязвимости системы, которая действует еще до загрузки операционной системы, как описано выше.

Кто осуществляет контроль?

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

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

Изображение консоли с параметрами для конфигурации доверенного платформенного модуля: Enable virtualization [включен], CSM Support [отключен], Attempt Secure Boot [включен], Display Rev. Info - Intel UEFI...
Рис. 5. Настройка безопасной загрузки компьютера Samsung

Тони Мангефест (Tony Mangefeste)
Группа Ecosystem

Comments

  • Anonymous
    September 27, 2011
    А некоторые драйвера для оборудования не имеют подписи и что теперь они не будут работать из-за этого?Мне все меньше нарвится новая операционная система, и былой интузиазм растворяется с каждой подобной новостью. (а еще эта затея с использованием  live id) и хотя можно создавать локальные аккаунты, это уже напоминает то что реализовано у других производителей и смахивает на плагиат.

  • Anonymous
    September 28, 2011
    AleXandrik пректарите тролить.Вся эта затея с UEFI в плане подписаных загрузчиков очень плохо пахнет. Причем тут безопастность? Чтобы лишний загрузчик появился его надо туда записать. А как это сделать если система полностью контролирует ввод/вывод? (я знаю, что кроме первых секторов - но именно это и можно было бы исправить) Никак. Установка загрузчика из другой системы как угроза безопастности являеться все же маловероятной и не настолько значимой, для таких изощрений. Наличествует несоответствие рисков и средств защиты.В общем очень плохая затея. На кого расчитаны эти рассуждения о безопастности?

  • Anonymous
    September 28, 2011
    ХМ. Насчет  Live id  это далеко не плагиат, возможность авторизации пользователя через live id есть и в Windows 7...

  • Anonymous
    September 28, 2011
    Пахнет милениумом и вистой. Если так всё и будет идти - придётся восьмёрку пропускать

  • Anonymous
    September 29, 2011
    Alex Molniev занимайтесь своим делом, и прекратите разводить флеим и тролинг.Вашего мнения по поводу моих комментариев по теме, никто не спрашивал и они никому тут не интересны. Форум посвящен Windows.

  • Anonymous
    September 30, 2011
    Да, придется восьмерку отправлять в топку.и переходить на что-либо другое

  • Anonymous
    October 02, 2011
    А меня все вполне устраивает и пускай делаю что им надо.  А потом посмотрю устроит конечный результат или нет.

  • Anonymous
    October 18, 2011
    Жаль. Придётся не покупать железо с такими ограничениями. Возможность отключения безопасной загрузки ещё не означает, что производители будут обязаны позволять отключать её. Неприятно всё это выглядит. Возможно придётся пропускать восьмерку..

  • Anonymous
    November 03, 2011
    Прекрасная возможность от Windows 8 для повышения безопасности работы пользователей в системе. Обязательно воспользуюсь. Жду Windows 8 с нетерпением.

  • Anonymous
    November 26, 2011
    А ели я захочу загрузить допустим Acronis - то фигушки теперь?)

  • Anonymous
    December 18, 2011
    Операционная система сама дырявая как решето в плане безопасности, куда пальцем ни ткни - уязвимость на уязвимости, а они загрузчик "безопасят"! А когда вы в последний раз подвергались заражению малварью, которая загрузчик меняет? Правильно - никогда. Экзотика это жуткая, не стоящая даже упоминания. Совершенно очевидно, что если что и имеет смысл "безопасить", так это в первую очередь те компоненты системы, которые наиболее часто подвергаются успешным атакам (при условии, что у разработчиков на плечах голова, а не кочан капусты).Считаю, что на самом деле вся эта затея введена исключительно с целью дополнительно затруднить жизнь разработчикам свободных/альтернативных ОС.

  • Anonymous
    January 24, 2012
    The comment has been removed

  • Anonymous
    March 06, 2012
    Еще насмотришься)))) у тебя все впреди)))Надеюсь, в новой ОС я не увижу теперь МБР загрузчика, который требует у меня денег))))

  • Anonymous
    January 10, 2013
    ошибка 0xc0000225 на win 8 помогите(((

  • Anonymous
    November 11, 2013
    раз 7-8 уже видел загрузчик с требованием денег Ну у нас все ведь постоянно софт ставят и удаляют, вот и сидят по адмнистраторской учеткой, ну и мало ловят, надо побольше таким чайникам =)))

  • Anonymous
    November 26, 2013
    Системы лучше не становятся. Такое чувство, что идёт постепенное отдаление пользователя от участия в настройке системы. Путаница, нелогичность, ненужные сложности в ранее простых понятиях. Что-то не чисто тут.

  • Anonymous
    February 19, 2014
    Это начало развертывания систем тотального контроля!

  • Anonymous
    July 23, 2014
    Стояла на ноуте предустановленная WinVista Basic. Нормально работала, обновлялась. У знакомого и сейчас работает WinVista Home Premium. Интернет, фильмы, он ещё на Viste в PowerDirectore любительские фильмы монтирует. Нормально, классные, с музыкой, титрами, переходами и прочими наворотами. Вот так! Итог: если WinVista лицензия и обновляется, то всё O'k!! И нечего на зеркало пенять коли... и т.д. Мне захотелось спрыгнуть с WinVista Basic и купить по акции  до 31.01.2013г. Windows 8 Professional. Заплатил через Интернет с банковской карты $39.99 , загрузил, установил и ... За три дня разобрался. Windows 8 потом обновление до Windows 8.1 просто летают на ноуте выпуска 2008года. Рабочий стол уже через 15сек. после нажатия POWER. Выключается через 7сек. если нет обновлений и не очень жарко в помещении, иначе вентилятор молотит долго пока, в ноуте стоит Intel 65нанометров, не остынет. Windows 8.1 хорошая надёжная система!!!