UEFI: Хотели как лучше…

(Октябрь 2011)

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

WhatisUEFI

UEFI или BIOS 2.0

Разработанная свыше 30 лет назад для персональных компьютеров IBM PC, система BIOS (или «базовая система ввода-вывода») уже лет пятнадцать как считается реликтом древней эпохи. Жизнь, однако, распорядилась так, что подходящих альтернатив очень долго не находилось. Поэтому лишь теперь сложились подходящие обстоятельства и, соответственно, пошли разговоры, что BIOS, наконец-то, начинает сдавать свои доминирующие на рынке позиции.

На ее место приходит система UEFI, комплекс спецификаций в свое время появившийся как «загрузочная инициатива Интел» (Intel Boot Initiative) в далеком уже 1998 году. Причиной рождения инициативы было то, что обусловленные древностью BIOS ограничения стали ощутимо тормозить прогресс вычислительных систем на основе новейших в ту пору интеловских процессоров Itanium.

Несколько позже эта же инициатива стала называться EFI, а в 2005 году корпорация подарила свою разработку специально созданному под нее консорциуму UEFI Forum, главными членами которого стали – помимо Intel – ведущие фирмы компьютерной индустрии вроде AMD, Apple, IBM, Microsoft и так далее.

Не самая благозвучная на слух аббревиатра UEFI расшифровывается как Unified Extensible Firmware Interface и представляет собой весьма радикальное преобразование традиционной для компьютеров процедуры загрузки. Можно даже говорить, что перемены здесь настолько существенны, что UEFI не имеет практически ничего общего с системой PC BIOS, вместо которой она предназначена.

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

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

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

(Из этого, кстати, совершенно не следует, что процесс загрузки становится более длительным по времени. Скорее даже наоборот, заранее гибко настроенная конфигурация системы способна грузиться ощутимо быстрее.)

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

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

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

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

Полностью построенная на основе программного кода, UEFI действительно стала объединенной кросс-платформенной системой. Уже сегодня спецификации UEFI предусмотрены в работе почти любой комбинации чипов 32- и 64-битной архитектур, выпускаемых AMD, ARM и, конечно же, Intel. Единственное, что требуется для обеспечения этой универсальности, это скомпилировать исходный код в условиях каждой конкретной платформы.

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

В принципе, в каждой из основных на сегодня ОС (Windows, OS X, Linux) уже имеется поддержка загрузки через UEFI. Но следует также отметить, что пока UEFI все еще является очень молодой системой, и реально очень мало операционных систем пользуются всеми теми ее преимуществами, что перечислены выше.

Linux определенно поддерживает UEFI, однако пока ни один из дистрибутивов этой ОС реально не использует возможности системы. Система Mac OS X продвинулась здесь несколько дальше и отчасти использует UEFI со своим загрузочным менеджером Bootcamp.

Среди же продукции Microsoft все внимание сосредоточено сейчас на Windows 8. Когда она будет запущена в 2012 году, эта операционная система, вероятно, станет первой из главных ОС, где будут весьма интенсивно задействованы преимущества UEFI, включая функции восстановления, обновления, безопасной загрузки и, вполне возможно, что-то еще.

Другая сторона медали

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

В конце сентября (2011) в американском городе Орландо, штат Флорида, проходила специализированная выставка-конференция под названием NSA Trusted Computing, то есть «Доверяемый компьютинг от Агентства национальной безопасности США».

На этом мероприятии доклад об угрозах компьютерам со стороны BIOS и о путях укрепления защиты на этом направлении сделал Эндрю Регеншайд (Andrew Regenscheid), сотрудник подразделения компьютерной безопасности в составе NIST, американского Национального института стандартов и технологий. Именно это ведомство в тесном сотрудничестве с АНБ занимается подготовкой и изданием технических федеральных стандартов на защиту информации.

В апреле нынешнего года НИСТ выпустил специальный документ SP 800-47 (.pdf) с рекомендациями относительно того, каким образом производители компьютеров и использующие их структуры должны работать с BIOS для максимального предотвращения заражений и атак. Одним из главных соавторов данного документа и был Эндрю Регеншайд.

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

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

Фактически, именно это – случаи атак через BIOS – в настоящее время уже реально отмечается. Так, в начале сентября китайская антивирусная фирма обнаружила в компьютерах весьма опасный руткит, получивший название Mebromi и успешно заражающий своим шпионским компонентом память BIOS-чипов AWARD (см. материал «Дежавю, или хождение по кругу»).

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

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

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

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

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

Принимая во внимание эти обстоятельства, говорит Регеншайд, НИСТ США изыскивает ныне возможности для укрепления защиты компьютерной продукции до того, как атаки через UEFI BIOS станут широко распространенными.

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