Наш "проблемный" Secure Boot.

Привет всем, особенно любителям котят. Намедни дёрнула меня нелёгкая влезть в холивар Windows vs Linux. Попытка объяснить, что системы не полностью эквивалентны и у каждой есть свои сильные и слабые стороны, естественно, провалилась. И в числе аргументов в споре один из оппонентов написал буквально следующее:

Secure Boot? Нафига оно тебе? Просто чтобы было? Недостатков больше чем достоинств

Вот давайте и поговорим об этом.

Как мы все с вами знаем концепция BIOS давно окончательно себя изжила, так как со времён IBM PC компьютеры замечательно уплыли за горизонты, которые в прошлом веке не снились даже самым мечтательным инженерам. В качестве наглядной демонстрации этого рекомендую прочитать НФ-роман Гаррисона и Мински "Выбор по Тьюрингу". А Марвин Мински, на секундочку, голова. Я бы, как незабвенный Валиадис, пальца бы ему в рот не клал. Так вот, с этим уплытием надо было что-то делать, и решение нашлось. UEFI. И как всегда вместе с новыми возможностями вылезли и новые опасности. Не думаю, что в уважаемой Лиге найдётся хоть один человек который не был бы в курсе о буткитах и руткитах. UEFI в свою очередь, если кто вдруг этого не знал, нас порадовал возможностями грузить в него модули. Например такие безусловно полезные и необходимые как буткиты. Об этом говорили давно и решение, в принципе, было найдено. Secure Boot.

Некоторые горячие головы во времена введения стандарта UEFI 2.2 побежали обвинять кровавый Microsoft в том, что их (sic!) не менее кровавый Secure Boot душит опенсорс в пользу своей ужасной Windows 8. Забавно, что при этом Microsoft требовал от производителей компьютеров, которые хотели чтобы на их поделиях была наклеечка о совместимости с 8, требовали как раз возможность этот самый Secure Boot отключить. Сказки же о том, что этот режим был введён MS, мягко говоря, неосновательны. Достаточно взглянуть на список членов UEFI Forum.

Собственно, о чём речь?  А то три абзаца навалял, а до сути не добрался, да? Идея Secure Boot, если кто не знал, проста до икоты: если в UEFI загружен модуль, то с него надо спрашивать аусвайс, сиречь, цифровую подпись. А то ходють тут всякие. Хохма тут в том, что загрузчик ОС запросто можно рассматривать как модуль UEFI, а сами модули могут взамодействовать с операционкой. Ну, например, сходить в Интернет и что-то в эту операционку загрузить. Secure Boot, как честный вахтёр, спросит у модуля пропуск, и если таковой имеется - пусть ходит, жалко что ли? В общем и целом этот механизм нормально защищает вас от всякой бяки, которая хочет загрузиться до вашей операционки и делать потом с ней всякое. Отлично же?

Как бы не так. У Microsoft всё хорошо. Они участники UEFI Forum и делают свою ОС не только совместимой с этим режимом, а и с расчётом на него. У Apple, хоть они и участники UEFI Forum - дно, ад и Сцилла с Харибдой. Догадайтесь где так себе.

Собственно, там, где вместо соблюдения стандарта им подтираются и делают страшные вещи, чтобы стандарт "не мешал". Так себе в мире Linux. И не потому что система плохая. А потому что соблюдение стандартов вещь добровольная, а смотреть на них в свободном мире желают ой как не все. И поэтому рассчитывать, что в мире Linux не пойми кто не влезет к вам с буткитом, увы, не приходится. Вот тому наглядный пример. На секундочку в самом популярном дистрибутиве! RHEL и CentOS, впрочем, как обычно на высоте.

А почему я это всё написал? Смотрите.

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

2. Так как загрузить модуль в UEFI может практически кто попало, то для этого придумали вахтёра.

3. Если вы пользуетесь FOSS, то вам за вахтёром надо следить самостоятельно на довольно высоком уровне квалификации.

3.1 Всё очень плохо с GRUB и на кой он нужен, когда ядро Linux отлично стартует на UEFI-системах и без него - непонятно.

3.1.1 systemd-boot, хоть и спартанский, является отличным аргументом за systemd

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

5. Если вы не знали, то в дикой природе выловлен первый UEFI-буткит, который, вот умора, не работает при включённом Secure Boot. Да, для Windows. И что? Мы Linux-ботнетов не видели что ли?


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

P.S. Знаете почему я ничего не сказал про FreeBSD? Потому что там половина работ по теме в потрясающем состоянии Not started.

Лига Сисадминов

1.5K постов17.6K подписчик

Добавить пост

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

6
Автор поста оценил этот комментарий

Так бы подробно про сам UEFI рассказали. Жду такой пост!

раскрыть ветку
3
Автор поста оценил этот комментарий

У меня почти все планы в таком же состоянии как и работы FreeBSD по теме.

2
Автор поста оценил этот комментарий

Я вот все пытаюсь осилить принципы работы UEFI\Secure Boot\TPM и Intel ME. Ну т.е. как это все между собой работает, что поддерживает и самое главное зачем оно мне? Если есть годные линки на почитать, то буду благодарен.


Вот возьмем голый ПК, ставим виндоус, активируем Secure Boot и типа мы в безопасности? ну там ничего подписывать, проверять не надо, оно само? Допустим, а ключи где хранятся в TPM? Вот вроде читаешь мол да, должна быть защищенная область памяти... хм, ну и где она у Intel'а?

раскрыть ветку
1
Автор поста оценил этот комментарий

Поправлю про Apple: с тех пор воды прилично утекло, и теперь там все на новых машинах именно с безопасной загрузкой стало намного лучше благодаря чипу T2 и Apple SecureBoot. К сожалению линуксоидов, официально поддерживаются на данный момент только macOS и Windows (про планы на будущее я не могу писать), и для загрузки Linux придется этот самый SecureBoot отключить.

раскрыть ветку
2
DELETED
Автор поста оценил этот комментарий

Угадайте, кто забыл купить минералочку.