Поддерживает ли и настраивает ли «Безопасная загрузка» дополнительные преимущества безопасности в Ubuntu?

Является ли текст ниже с веб-сайта Национального центра кибербезопасности, Великобритания истинным?

Пока устройство безопасности загрузки может проверить первый шаг в цепочке загрузки, Ubuntu не продолжает проверку системы загрузки, поэтому включение и настройка Secure Boot не обеспечивает дополнительной безопасности.
3
задан 2 October 2017 в 02:19

6 ответов

Это действительно так. В Windows безопасная загрузка может предоставить дополнительные преимущества, как указано NCSC:

Драйвер Early Launch Anti-Malware (ELAM) обеспечивает проверку подписи для известных плохих драйверов в ELAM-совместимых системах, которые настроены на использование Secure Boot , ... Процесс безопасности Windows 10 (на поддерживаемом и правильно настроенном оборудовании) предупреждает пользователя о попытке подорвать элементы управления безопасностью. Важно, чтобы пользователи знали, как идентифицировать и реагировать на это предупреждение.

На Ubuntu я не знаю ни одной функции, о которой я знаю.

0
ответ дан 18 July 2018 в 05:54

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

Некоторая информация здесь

edit: Я основал Некоторая информация здесь в репозитории Ubuntu, означает, что драйверы также подписаны.

0
ответ дан 18 July 2018 в 05:54

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

Проверка загрузчика - это предел того, что делает безопасная загрузка, как таковая. Secure Boot не позволяет UEFI запускать неподписанные (или неправильно подписанные) двоичные файлы, и это в основном это. В EFI загрузчики - это двоичные файлы EFI, поэтому Secure Boot не запускает их, если они не подписаны. Однако загрузчик предназначен для запуска ядра, которое не является двоичным кодом EFI, поэтому сама по себе Secure Boot не может блокировать запуск беззнакового ядра, если загрузчик предназначен для его разрешения. (Однако есть некоторые предостережения и исключения, связанные с техническими деталями). Таким образом, на этом уровне Secure Boot может помешать загрузчику загрузки, но он не может предотвратить компрометацию последующих частей программного стека. Проверка ядра. Чтобы улучшить безопасность, ядро ​​должно быть проверено. Последнее, что я слышал (это было два или три года назад), запасы GRUB никак не проверяли ядро. Таким образом, если бы вы использовали запас GRUB, он с радостью запустил любое ядро, которое вы его накормили. Ubuntu по крайней мере в версии 12.04 использовал GRUB, который работал таким образом. Модифицированные двоичные файлы GRUB, для которых требуется подписанное ядро, доступны и используются многими дистрибутивами. Я не помню, требовал ли GRUB Ubuntu 14.04 подписанное ядро. Ubuntu 16.04 GRUB определенно требует подписанное ядро, по крайней мере, с его конфигурацией по умолчанию. Кроме того, начиная с версии 12.04 Ubuntu предоставил ядра, которые были подписаны с ключами Secure Boot, и поэтому их можно запустить с помощью загрузчика, который выполнил эту проверку. Таким образом, заменив GRUB на акции, даже Ubuntu 12.04 может быть настроен так, чтобы требовать подписанное ядро. Проверка модулей ядра - ядра Linux могут загружать модули ядра, а если ядро ​​подписывается, но загружает модуль ядра с зараженным вредоносным ПО, подписанное состояние основного ядра бессмысленно. Хотя я не уверен на 100% в том, что Ubuntu 14.04 требует подписанное ядро, я уверенно уверен, что Ubuntu 14.04 не требует подписных модулей ядра. Это изменилось с Ubuntu 16.04. Это изменение было неудобством для людей, которые хотят использовать сторонние проприетарные драйверы, например, для VirtualBox или видеодрайверов для чипов ATI / AMD или Nvidia. Эти модули драйверов не подписываются Canonical, что требует добавления ключа владельца машины (MOK) и самоподписывания модулей, если безопасная загрузка должна быть включена. Проверка двоичных файлов пользовательского пространства. После загрузки ядра он запускает двоичные файлы пользовательского пространства - все от bash до веб-браузеров и текстовых процессоров. В принципе, ядро ​​может потребовать подписания этих двоичных файлов. На практике я не знаю никакой поддержки такого требования подписи в Linux. Такое требование было бы весьма обременительным, особенно для разработчиков программного обеспечения или любого, кто хочет запускать исполняемые файлы от третьих лиц.

В дополнение к этим четырем основным уровням (потенциальной) проверки, есть несколько поворотов, промежуточные уровни, исключения и т. д. Например, ядро ​​может включать загрузчик EFI stub, который превращает ядро в свой собственный загрузчик, тем самым размывая линию между шагами 1 и 2. Я также видел ядра, которые отказываются запускаться, если они запускаются из загрузчика, который не выполняет проверку безопасности загрузки, что оборачивает требование шаг 2. В принципе, валидация за загрузчиком может использовать механизм, отличный от ключей Secure Boot. На практике в мире Linux ключи Secure Boot используются через шаг № 3; однако я понимаю, что ядро ​​предоставляет свой собственный код для проверки модулей ядра (шаг № 3), поэтому технически код безопасной загрузки в UEFI не участвует в шаге 2. (Я никогда не исследовал это подробно, поэтому, возможно, я ошибаюсь в этой детали.)

Кроме того, я сосредоточил внимание на выпуске LTS в моих описаниях выше. Некоторые изменения безопасности могут быть внесены в промежуточные (не-LTS) выпуски; Я не помню подробностей.

Как уже отмечалось, Ubuntu с течением времени увеличивает уровень требований к валидации. Цитата, которую вы указали, была точной для Ubuntu 12.04 и, возможно, 14.04, но не 16.04 - по крайней мере, не с настройкой по умолчанию с включенной защищенной загрузкой в ​​прошивке. (Разумеется, вы можете обменять GRUB Ubuntu на более старую версию или другой загрузчик, который вообще не выполняет проверку безопасности.) Для некоторых приложений может быть важна более тонкая информация, например, проверка кода кода проверки. Если вы работаете в среде с высокой степенью безопасности (например, в банке, оборонном подрядчике, некоторых государственных учреждениях и т. Д.), Вы обязательно должны полагаться на свой отдел безопасности своего работодателя, подрядчиков по безопасности и т. Д., А не на советы случайных незнакомых людей на веб-форуме.

0
ответ дан 18 July 2018 в 05:54

Это действительно так. В Windows безопасная загрузка может предоставить дополнительные преимущества, как указано NCSC:

Драйвер Early Launch Anti-Malware (ELAM) обеспечивает проверку подписи для известных плохих драйверов в ELAM-совместимых системах, которые настроены на использование Secure Boot , ... Процесс безопасности Windows 10 (на поддерживаемом и правильно настроенном оборудовании) предупреждает пользователя о попытке подорвать элементы управления безопасностью. Важно, чтобы пользователи знали, как идентифицировать и реагировать на это предупреждение.

На Ubuntu я не знаю ни одной функции, о которой я знаю.

0
ответ дан 24 July 2018 в 18:28
  • 1
    Драйверы ядра должны быть подписаны или они не будут загружаться. Ubuntu также сообщает пользователю, есть ли проблема ... предоставлена ​​... очень загадочно ... – heynnema 2 October 2017 в 02:34
  • 2
    @heynnema не в смысле ELAM, я думаю - водители просто должны быть подписаны правильно; нет проверки, чтобы увидеть, есть ли сигнатура драйвера из набора известных плохих, AFAIK. – muru 2 October 2017 в 02:36
  • 3
    @muru - хотя Windows имеет эти дополнительные функции, ubuntu менее подвержен этим атакам. Поэтому я предполагаю, что вопрос: обладает ли встроенная безопасность Ubuntu дополнительными функциями Win10 ненужными? – ravery 2 October 2017 в 05:52

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

Некоторая информация здесь

edit: Я основал Некоторая информация здесь в репозитории Ubuntu, означает, что драйверы также подписаны.

0
ответ дан 24 July 2018 в 18:28
  • 1
    Стандартные драйверы ядра подписаны в Ubuntu, иначе ни один из них не будет загружаться, если включена Безопасная загрузка. – heynnema 2 October 2017 в 02:35
  • 2
    Это право, только что основанный образ подписанный linux в репозитории Ubuntu, спасибо за информацию! [D0] packages.ubuntu.com/trusty/kernel/linux-signed-image-generic – olivierb2 2 October 2017 в 02:38
  • 3
    Поэтому, если ядро ​​и модули ядра подписаны и проверены, ответ должен начинаться с «this is wrong». ... – pim 2 October 2017 в 09:52

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

Проверка загрузчика - это предел того, что делает безопасная загрузка, как таковая. Secure Boot не позволяет UEFI запускать неподписанные (или неправильно подписанные) двоичные файлы, и это в основном это. В EFI загрузчики - это двоичные файлы EFI, поэтому Secure Boot не запускает их, если они не подписаны. Однако загрузчик предназначен для запуска ядра, которое не является двоичным кодом EFI, поэтому сама по себе Secure Boot не может блокировать запуск беззнакового ядра, если загрузчик предназначен для его разрешения. (Однако есть некоторые предостережения и исключения, связанные с техническими деталями). Таким образом, на этом уровне Secure Boot может помешать загрузчику загрузки, но он не может предотвратить компрометацию последующих частей программного стека. Проверка ядра. Чтобы улучшить безопасность, ядро ​​должно быть проверено. Последнее, что я слышал (это было два или три года назад), запасы GRUB никак не проверяли ядро. Таким образом, если бы вы использовали запас GRUB, он с радостью запустил любое ядро, которое вы его накормили. Ubuntu по крайней мере в версии 12.04 использовал GRUB, который работал таким образом. Модифицированные двоичные файлы GRUB, для которых требуется подписанное ядро, доступны и используются многими дистрибутивами. Я не помню, требовал ли GRUB Ubuntu 14.04 подписанное ядро. Ubuntu 16.04 GRUB определенно требует подписанное ядро, по крайней мере, с его конфигурацией по умолчанию. Кроме того, начиная с версии 12.04 Ubuntu предоставил ядра, которые были подписаны с ключами Secure Boot, и поэтому их можно запустить с помощью загрузчика, который выполнил эту проверку. Таким образом, заменив GRUB на акции, даже Ubuntu 12.04 может быть настроен так, чтобы требовать подписанное ядро. Проверка модулей ядра - ядра Linux могут загружать модули ядра, а если ядро ​​подписывается, но загружает модуль ядра с зараженным вредоносным ПО, подписанное состояние основного ядра бессмысленно. Хотя я не уверен на 100% в том, что Ubuntu 14.04 требует подписанное ядро, я уверенно уверен, что Ubuntu 14.04 не требует подписных модулей ядра. Это изменилось с Ubuntu 16.04. Это изменение было неудобством для людей, которые хотят использовать сторонние проприетарные драйверы, например, для VirtualBox или видеодрайверов для чипов ATI / AMD или Nvidia. Эти модули драйверов не подписываются Canonical, что требует добавления ключа владельца машины (MOK) и самоподписывания модулей, если безопасная загрузка должна быть включена. Проверка двоичных файлов пользовательского пространства. После загрузки ядра он запускает двоичные файлы пользовательского пространства - все от bash до веб-браузеров и текстовых процессоров. В принципе, ядро ​​может потребовать подписания этих двоичных файлов. На практике я не знаю никакой поддержки такого требования подписи в Linux. Такое требование было бы весьма обременительным, особенно для разработчиков программного обеспечения или любого, кто хочет запускать исполняемые файлы от третьих лиц.

В дополнение к этим четырем основным уровням (потенциальной) проверки, есть несколько поворотов, промежуточные уровни, исключения и т. д. Например, ядро ​​может включать загрузчик EFI stub, который превращает ядро в свой собственный загрузчик, тем самым размывая линию между шагами 1 и 2. Я также видел ядра, которые отказываются запускаться, если они запускаются из загрузчика, который не выполняет проверку безопасности загрузки, что оборачивает требование шаг 2. В принципе, валидация за загрузчиком может использовать механизм, отличный от ключей Secure Boot. На практике в мире Linux ключи Secure Boot используются через шаг № 3; однако я понимаю, что ядро ​​предоставляет свой собственный код для проверки модулей ядра (шаг № 3), поэтому технически код безопасной загрузки в UEFI не участвует в шаге 2. (Я никогда не исследовал это подробно, поэтому, возможно, я ошибаюсь в этой детали.)

Кроме того, я сосредоточил внимание на выпуске LTS в моих описаниях выше. Некоторые изменения безопасности могут быть внесены в промежуточные (не-LTS) выпуски; Я не помню подробностей.

Как уже отмечалось, Ubuntu с течением времени увеличивает уровень требований к валидации. Цитата, которую вы указали, была точной для Ubuntu 12.04 и, возможно, 14.04, но не 16.04 - по крайней мере, не с настройкой по умолчанию с включенной защищенной загрузкой в ​​прошивке. (Разумеется, вы можете обменять GRUB Ubuntu на более старую версию или другой загрузчик, который вообще не выполняет проверку безопасности.) Для некоторых приложений может быть важна более тонкая информация, например, проверка кода кода проверки. Если вы работаете в среде с высокой степенью безопасности (например, в банке, оборонном подрядчике, некоторых государственных учреждениях и т. Д.), Вы обязательно должны полагаться на свой отдел безопасности своего работодателя, подрядчиков по безопасности и т. Д., А не на советы случайных незнакомых людей на веб-форуме.

0
ответ дан 24 July 2018 в 18:28

Другие вопросы по тегам:

Похожие вопросы: