The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Первый выпуск Libreboot, после перехода под крыло проекта GNU, opennews (ok), 19-Авг-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


40. "Первый выпуск Libreboot, после перехода под крыло проекта GN..."  +/
Сообщение от Ubuntu User (?), 19-Авг-16, 15:54 
Спасибо за подробный рассказ. Есть еще пара вопросов.

1. А как именно плохой парень подменит загрузочные программы? Что для этого надо? Если поставить пароль на BIOS/UEFI - он сможет это сделать? Или ему не надо даже входить туда? До какой стадии загрузки вообще надо дойти, чтобы подменить загрузчик? Я слышал есть еще какая-то настройка паролем перед GRUB, пока не введешь пароль - не покажется окно выбора ОС. Или я щас полный бред сказал? :)

2. LibreBoot скомпилить сам не смогу, но почему существует всего 3 материнки для десктопа, для которых он поддерживается? В чем там серьезный затык?

Ответить | Правка | Наверх | Cообщить модератору

43. "Первый выпуск Libreboot, после перехода под крыло проекта GN..."  +1 +/
Сообщение от Аноним (-), 19-Авг-16, 17:14 
> Спасибо за подробный рассказ. Есть еще пара вопросов.
> 1. А как именно плохой парень подменит загрузочные программы? Что для этого
> надо?

Если /boot не зашифрован, то достаточно загрузиться с внешнего носителя.
Или вытащить жёсткий диск, поправить программы, а потом вернуть его обратно.

> Если поставить пароль на BIOS/UEFI - он сможет это сделать?

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

> Или ему не надо даже входить туда? До какой стадии загрузки
> вообще надо дойти, чтобы подменить загрузчик?

До любой стадии, позволяющей выполнить произвольный код с достаточными
привелегиями для записи в /boot. Либо вытащить диск (см. выше).

> Я слышал есть еще какая-то
> настройка паролем перед GRUB, пока не введешь пароль - не покажется
> окно выбора ОС. Или я щас полный бред сказал? :)

Есть, она так и называется — password. С её помощью можно заблокировать часть
пунктов меню grub и/или запретить редактировать настройки.

> 2. LibreBoot скомпилить сам не смогу, но почему существует всего 3 материнки
> для десктопа, для которых он поддерживается? В чем там серьезный затык?

(тут я немного привру, чтобы упростить, но при этом постараюсь сохранить общий
смысл)

В том, что во время сборки coreboot/libreboot нужно указать режимы работы
контроллера оперативной памяти, тип процессора, чипсет, размер флеш-микросхемы
и ещё несколько (чуть менее важных) параметров. Изменение любой из этих настроек
требует пересборки.

Бинарники, лежащие в релизных версиях libreboot, протестированы на соответствующих
платформах, для них выяснены все эти параметры, и они не меняются от ревизии к
ревизии.

Во время подбора/тестирования этих параметров будут возникать проблемы, приводящие
к невозможности проинициализировать платформу до конца. Потребуется специальное
оборудование — либо ещё один компьютер, подключенный к UART, либо отладочный
EHCI-донгл, подключенный в первый (а надо ещё определить, какой же из них первый)
USB-порт.

Резюмируя; нельзя утверждать, что просто установка libreboot приведёт к защите
платформы от несанкционированной загрузки. Существует риск получения ключей от
/boot из уже загруженной системы (злоумышленник может, получив рута, считать
флеш командой flashrom -r; этого можно избежать вводом ключа от /boot при
каждой загрузке) и подмены libreboot (можно зашить специальный fdt-дескриптор,
запрещающий дальнейшую запись во флеш, либо установить аппаратный переключатель
на ногу !WP микросхемы). SecureBoot подвержен тем же проблемам, но между
различными платформами различаются способы хранения ключей (идеальный случай,
когда ключи хранятся в TPM, запись в который блокируется перед запуском
загрузчика, но такого я ещё не встречал) и процедуры их проверки. Получается
security through obscurity: на некоторых платформах SecureBoot отключается
изменением значения всего одной переменной в nvram; из Windows это можно
сделать используя документированные вызовы API.

Ответить | Правка | Наверх | Cообщить модератору

44. "Первый выпуск Libreboot, после перехода под крыло проекта GN..."  +/
Сообщение от Ubuntu User (?), 19-Авг-16, 18:02 
Спасибо, очень интересно!
Ответить | Правка | Наверх | Cообщить модератору

54. "Первый выпуск Libreboot, после перехода под крыло проекта GN..."  +/
Сообщение от Sw00p aka Jerom (?), 20-Авг-16, 00:38 
>>До любой стадии, позволяющей выполнить произвольный код с достаточными

привелегиями для записи в /boot. Либо вытащить диск (см. выше).

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

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

60. "Первый выпуск Libreboot, после перехода под крыло проекта GN..."  +/
Сообщение от Аноним (-), 20-Авг-16, 12:43 
> вот из-за таких ситуаций и придумали механизм проверки целостности бут загрузчика (secureboot), и не нужно никакое шифрование его.

Проблемы secureboot в том, что:
1. нужно подписать все участки кода, отвечающие за загрузку вплоть до того момента, когда расшифровываются данные (это по крайней мере сам загрузчик, ядро и initrd/initramfs);
2. secureboot можно выключить, а пользователь не будет при каждой загрузке проверять, не выключен ли он.

Если #1 в Windows выполним относительно легко (загрузочные программы почти никогда не меняются, хорошо протестированы и подписаны ключами Microsoft), то с Линуксами всё значительно сложнее — либо поддерживай свою PKI, самостоятельно подписывай все бинарники (сложность в загрузке своего ключа в bios/tpm и подписывании на другом компьютере, чтобы ключ не утёк), либо ограничиться в выборе и остановиться на тех дистрибутивах, где уже всё подписали.

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

#2 можно было бы решить, принудительно останавливая загрузку, когда Secure Boot выключен. Так было сделано на первых Chromebook — режим разработчика активировался аппаратным переключателем; это приводило к появлению сообщения вроде "внимание! ты разработчик! нажми такую-то кнопку для продолжения загрузки или верни переключатель обратно".

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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