The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Google развивает открытую замену прошивкам UEFI"
Отправлено opennews, 30-Окт-17 10:48 
Рональд Минних (Ronald Minnich), основатель проекта CoreBoot,
выступил (https://osseu17.sched.com/event/ByYt/replace-your-exploit-ri... на завершившейся несколько дней назад конференции LinuxCon с докладом (https://schd.ws/hosted_files/osseu17/84/Replace%20UEFI&... в котором  рассказал о развиваемом в Google открытом проекте NERF (https://github.com/osresearch/heads/tree/nerf) (Non-Extensible Reduced Firmware).

В рамках NERF предпринята попытка разработки прозрачной и открытой замены прошивкам UEFI, в основе которой использовано ядро Linux и урезанное программное окружение. Конечной целью является предоставление средств для замены (UEFI) или отключения (SMM, Intel ME) всех прослоек, выполняемых  вне основной операционной системы, и блокирования любой связанной с UEFI и Intel ME фоновой активности.


NERF также рассчитан на снижение векторов возможных атак, расширение возможностей по контролю за активностью прошивок, исключение излишней функциональности (например, TCP-стек и web-сервер), удаление встроенных механизмов обновления в пользу обновления из базового Linux-окружения. В состав NERF входит избавленный от блобов упрощённый вариант прошивки для Intel ME (Management Engine), урезанная прошивка для UEFI, код для отключения SMM, ядро Linux, образ initramfs c системой инициализации и инструментарием u-root (http://u-root.tk/), написанными на языке Go.

В прошивке для  Intel ME оставлены только компоненты для начальной инициализации CPU, все остальные модули удалены (https://www.opennet.ru/opennews/art.shtml?num=47091) при помощи инструментария me_cleaner (https://github.com/corna/me_cleaner) (прошивка сокращена с 5 Мб до 300 Кб). Код обработчиков SMM (https://ru.wikipedia.org/wiki/System_Management_Mode) (System Management Mode) также отключен и переведён на обработку прерываний SMI через ядро Linux.


Прошивка для UEFI  переведена на использование ядра Linux, наработок CoreBoot и инструментария u-root (https://github.com/u-root/u-root). U-root написан на языке Go и включает в себя легковесную систему инициализации, оболочку rush  и набор типовых утилит (https://github.com/u-root/u-root/tree/master/cmds), таких как cp, mv, ls, grep, sort, dd, insmod, wget, netcat и т.п.


Примечательно, что в формируемый при помощи u-root образ корневой ФС включается лишь процесс инициализации и несколько исполняемых файлов с компилятором языка Go. Все команды собираются только при необходимости - если запущенная утилита не была собрана ранее, то её компиляция осуществляется на лету после попытки первого запуска. Результат компиляции вызванной утилиты помещается в tmpfs и доступен для повторного использования в рамках текущего сеанса.


Таким образом, в u-root все утилиты предлагаются в исходных текстах, а для адаптации инструментария требуется лишь настройка компилятора. Компиляция занимает доли секунды и не приводит к ощутимым задержкам при вызове. Подобный подход позволяет сделать образ u-root универсальным и распространять единый образ корневой ФС для всех платформ, поддерживаемых компилятором языка Go (для каждой новой архитектуры требуется лишь подготовить 4 исполняемых файла, в одном образе могут содержаться сборки компилятора для разных архитектур). Дополнительно предусмотрены варианты c компиляцией всех утилит во время загрузки или поставки готовых сборок (для минимизации размера прошивки все утилиты могут быть собраны в один исполняемый файл, по аналогии с busybox).


Необходимость замены UEFI обусловлена тем, что на современных компьютерах параллельно с основной операционной системой по сути параллельно выполняется ещё несколько неконтролируемых программных окружений (UEFI, SMM, Intel ME), которые формируются на основе проприетарных прошивок. Код UEFI продолжает работать  после загрузки основной ОС и выполняется на уровне кольца защиты Ring -2 (https://en.wikipedia.org/wiki/Protection_ring). Данные закрытые окружения создают дополнительные угрозы безопасности. Например, внедрённый в прошивку UEFI вредоносный код может оставаться невидимым из основной ОС, но полностью контролировать всю систему.

В частности, ресурс WikiLeaks  в этом году раскрыл (https://wikileaks.org/vault7/) сведения о разработке в ЦРУ имплантов (https://wikileaks.org/ciav7p1/cms/page_13763820.html) для контроля за системой, внедряемых в прошивки UEFI. Современные прошивки сильно усложнены и включают многие атрибуты обычных ОС, включая TCP-стек, http-сервер, DHCP, драйверы, файловые системы и web-интерфейс. С учётом значительного размера кодовой базы прошивок UEFI, которая составляет около 2 млн строк кода, и недоступностью кода прошивок для независимого аудита, также возникают опасения о наличии в прошивках большого количества неисправленных уязвимостей (https://www.opennet.ru/opennews/art.shtml?num=44740).


URL: https://news.ycombinator.com/item?id=15579592
Новость: http://www.opennet.ru/opennews/art.shtml?num=47469

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру