LINUX.ORG.RU

secure boot - ложная безопасность?

 , ,


0

1

Тут утверждается, что grub не проверяет подпись initramfs. То бишь любой может просто смонтировать /boot, подменить там initramfs на такой, который запоминает введённый пароль помимо расшифровки диска, и таким образом пароль утечёт.

По-моему вектор атаки абсолютно очевиден, предотвратить его было бы абсолютно просто, если бы grub изначально проверял подпись (сейчас-то уже ничего не сделаешь, даже если grub пропатчить, никто не мешает вернуть старую непропатченную, но подписанную версию).

Выходит, что маздай безопасней линукса в этом аспекте? Диверсия?

★★★★★

Тут

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

anonymous
()

grub

секур бут тут при чем? Это всякий мелкомягкий подписывает, что попало, как груб

anonymous
()
Ответ на: комментарий от anonymous

При том, что это то, что пользователи используют по умолчанию и рассчитывают получить безопасность каменной твердыни. А получают какой-то пшик. Ещё и функционал спячки при этом отключается.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Разве системдикхеды рекомендуют использовать grub или это они так свою поделку продвигают?

anonymous
()
Ответ на: комментарий от Legioner

пользователи используют по умолчанию

открывают форточку на подводной лодке, поэтому подводная лодка плохая

anonymous
()

Secure boot никогда и не был про безопасность вообще-то. Secure boot это про вендор-лок для x86.

Хочешь безопасности - выкидывай нафиг все эти уефи, секурбуты, ME и прочая. Ставь коребут без блобов, причём с самособранным linux kernel c вкомпилённым initrd в качестве payload в EEPROM. Ну и диск шифруй, причём чтобы твой initrd из ядра в EEPROM спрашивал пароль перед его монтированием. Вот тогда твои волосы и станут мягкими и шелковистыми, и никто ничего подменить или спереть не сможет. Даже если сопрёт твой ноут целиком.

Я фигею от доморощенных безопасников, блин. Ищут какую-то свою безопасность там, где её в принципе быть не может.

Stanson ★★★★★
()

Пёттеринг – знатный чесатель языком, не читай на ночь Пёттеринга.

Не то проснёшься с Systemd в одном интересном месте.

А если без шуток, кто в здравом уме этим Secure Boot пользуется? Это же натуральные палки в колёса здравомыслящим ПК-пользователям!

Korchevatel ★★★★★
()

Можно хоть в твою клавиатуру встроить шпионский модуль и тут уже хоть шифруйся, а пароли запишут.

bhfq ★★★★★
()
Ответ на: комментарий от bhfq

Проще и незаметно взломать через дыру в wifi или bluetooth, которые крутятся в ядре.

anonymous
()

Нет, вот этого я решительно не могу понять. Зачем подписывать initramfs, если не подписано все содержимое root? Физический доступ в любом случае компрометирует систему.

Шифрование разделов придумано для защиты пользовательских данных, а не для обеспечения integrity. Для этого есть другие инструменты.

К тому же, часть софта внутри initramfs подписана и подпись проверяется ядром. И кем должен быть подписан сгенерированный initramfs, чтобы имело смысл эту подпись проверять?

i586 ★★★★★
()
Последнее исправление: i586 (всего исправлений: 2)
Ответ на: комментарий от anonymous

никто не мешает вернуть старую непропатченную, но подписанную версию

Это всякий мелкомягкий подписывает, что попало

Развивая тему. Для этого надо удалить все чужие сертификаты из secure boot, а там не только сертификаты MS, но и «фирменные» сертификаты. И установить свои сертификаты, и подписывать загрузчики своими сертификатами.

anonymous
()
Ответ на: комментарий от Korchevatel

Много лет пользуюсь, ни единого разрыва. Гибернация, кстати, тоже работает. ЧЯДНТ?

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Ответ на: комментарий от token_polyak

Но ведь вся суть

Нет. Суть не в этом, а в том что по умолчанию стоят сертификаты MS и подписанные им «фирменные» сертификаты. Также суть в том, что основная масса uefi не дает без изврата изменить эти сертификаты. Есть рабочая идея. Есть реализация/интерпретация.

anonymous
()
Ответ на: комментарий от token_polyak

создавались с этой целью

Тогда цель плохая получилась. У меня в secure boot нет сертификатов от MS, только мои сертификаты и ядро с initrd подписываются моим сертификатом.

anonymous
()
Ответ на: комментарий от anonymous

Много чего используют не по назначению. Вон TPM тоже запилили для Trusted Computing, а можно его использовать как собственное ключехранилище.

token_polyak ★★★★
()
Ответ на: комментарий от token_polyak

Много чего используют не по назначению

Много кто не понимает цели, вместо этого выдает свои фантазии. Иногда фантазии реализуются - романтика!

anonymous
()
Ответ на: комментарий от Stanson

Да с тобой дискутировать, что со стеной в теннис играть. Нормальных девайсов с поддержкой coreboot по пальцам можно пересчитать, а уж где можно полностью МЕ отключить и подавно. Так что ты со своей блобофобией и параноей можешь долго страдать, пытаясь завести такое железо тем способом, как ты предлагаешь. Тем более, что тебе будет нужен libreboot, а не core. Иначе от блобов тебе не избавиться.

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

С тобой никто и не дискутирует. Я просто объясняю как обстоят дела.

libreboot - это просто coreboot собранный без блобов, тащемта.

На подходящем железе coreboot заводится без блобов без малейших страданий.

И с самого начала всё-же стоит определиться - что на самом деле нужно - безопасность или «нормальный девайс».

Stanson ★★★★★
()

Проблема защиты initramfs решается переносом файла в зашифрованный root раздел, для дополнительной защиты можно использовать подпись. Это реализуется без патча GRUB.

Кстати, у Поттеринга есть проект systemd-boot, непонятно почему он про него молчит, критикуя GRUB, так как с ним есть такие же проблемы. Более того, systemd-boot в отличие от GRUB не позволяет работать с зашифрованными разделами и ещё некоторые вещи.

mxfm ★★
()

Тут утверждается, что grub не проверяет подпись initramfs.

Я, лично, в правильном GNU/Linux дистрибутиве, проверил и утверждаю, что GRUB-2 подпись initramfs проверяет.

Загрузился с LiveCD расшифровал и примонтировал /boot раздел. Сбекапил initramfs-.sig. Изменил один символ в подписи initramfs-.sig отмонтировал диск, зарыл крыптодиск, перегружаюсь с диска. GRUB-2 у меня после попытки считать initramfs выдал ошибку:

Error: bad signature

Заметьте, это сообщение о ошибке от GRUB-2, в консоли GRUB-2, а не от IMA/EVM.

Ядро подгрузилось, initramfs не загрузился и комп ребутнулся.

Что сказать на этот вброс? У меня не воспроизводится. GRUB-2 свою работу делает:

https://www.gnu.org/software/grub/manual/grub/grub.html#Using-digital-signatures

«If environment variable check_signatures (see check_signatures) is set to enforce, then every attempt by the GRUB core.img to load another file foo implicitly invokes verify_detached foo foo.sig (see verify_detached). foo.sig must contain a valid digital signature over the contents of foo, which can be verified with a public key currently trusted by GRUB (see list_trusted, see trust, and see distrust). If validation fails, then file foo cannot be opened. This failure may halt or otherwise impact the boot process.»

Жду подтверждения от других дистрибутивов. Если у кого initramfs действительно не проверяется GRUB пишите: название дистра и версию GRUB, будем верифицировать исходники, проверять системой воспроизводимых сборок бинари.

Допускаю что в новые версии GRUB-2 умышленно засунули бекдоры: А чё, никто не в курсе? Новая уязвимость линукса: BootHole (комментарий)

Initramfs может верифицироватся после загрузки ядра Linux средствами IMA: для этого надо подправить политику по умолчанию и добавить в файл https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/security/integrity/ima/ima_policy.c где-то в строке 216 проверку KEXEC_INITRAMFS_CHECK Этого не происходит при использовании HMAC!

Initramfs можно вкомпилить в само ядро. Тогда он будет верифицироватся вместе с файлом ядра.

anonymous
()

На нормальных платах, где ты сам владеешь ключами и можешь их прошить и сам подписать ими образы, все нормально работает. В ядре есть IMA, включаешь, проверяешь подписи всего. В подписи чужого дяди для пользователя нет смысла, по сути ты не владелец компьютера а просто приобрел лицензию на попользоваться. А так у тебя цепочка доверия скомпрометирована с самого начала, нет смысла особо дальше накручивать.

https://ruderich.org/simon/notes/secure-boot-with-grub-and-signed-linux-and-initrd

slapin ★★★★★
()
Последнее исправление: slapin (всего исправлений: 1)
Ответ на: комментарий от anonymous

подправить политику по умолчанию и добавить в файл https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/secur... где-то в строке 216 проверку KEXEC_INITRAMFS_CHECK

static struct ima_rule_entry secure_boot_rules[] __ro_after_init = {
	{.action = APPRAISE, .func = MODULE_CHECK,
	 .flags = IMA_FUNC | IMA_DIGSIG_REQUIRED},
	{.action = APPRAISE, .func = FIRMWARE_CHECK,
	 .flags = IMA_FUNC | IMA_DIGSIG_REQUIRED},
	{.action = APPRAISE, .func = KEXEC_KERNEL_CHECK,
	 .flags = IMA_FUNC | IMA_DIGSIG_REQUIRED},
	{.action = APPRAISE, .func = KEXEC_INITRAMFS_CHECK,
	 .flags = IMA_FUNC | IMA_DIGSIG_REQUIRED},
	{.action = APPRAISE, .func = POLICY_CHECK,
	 .flags = IMA_FUNC | IMA_DIGSIG_REQUIRED},
};

И подписать файл initramfs-*: evmctl --imasig ...

anonymous
()
Ответ на: комментарий от mxfm

Ну видать у редхата админресурс с пропихиванием своего говна вместо нормальных вещей закончился или есть планы возглавить.

slapin ★★★★★
()
Ответ на: комментарий от anonymous

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

slapin ★★★★★
()
Ответ на: комментарий от slapin

Проблема только с тем, что винда от такого секуре бута офигевает и грузиться отказывается, то есть тут наступает привет дуалбутчикам.

Никаких проблем с загрузкой вантуза нет. Просто надо подписать загрузчик винды своим сертом:

Security Boot и подпись загрузчика Windows (комментарий)

anonymous
()
Ответ на: комментарий от bhfq

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

slapin ★★★★★
()

Статья хорошая, но есть одно большое но. Это TPM. Нельзя все затачивать под него, а автор так это и хочет.

Есть системы, а дальше в свете 5G их будет еще больше (всякие микрожелезяки), в которых нет SecureBoot, TPM.

Автору даже в голову не приходит, что можно сделать все по аналогии с обычными ключами. Есть дом, нет замков. Есть дом, есть замки. Есть дом, есть замки и охрана. Перенеси это на железо. Не хочешь иметь шифрование, будь готов к возможной краже информации при потере носителя. В другом случае ключем к «замку» может выступать хоть файл с паролем в plain text на флешке, хоть целеком раздел /boot с этим файлом на внешнем носителе. Потереря носителя аналогична потери ключя от обычного носителя. В крайнем случае имеем крипто-контейнер на внешнем носителе информации. Сейчас же Лёня загоняет в рамки использования FIDO2, TPM(

Что касается подписи. Ну-ну. Мертвая тема в Linux.

anonymous
()
Ответ на: комментарий от anonymous

В Fedora ничего подобного нет. /boot не зашифрован, никаких sig нет, initramfs вообще генерируется от пользователя, т.к. зависит от пользовательских настроек, например от включения hibernate или от выбранной темы. Поэтому подписываться microsoft-овской подписью не может по определению. Так что вбрасываешь тут только ты.

Legioner ★★★★★
() автор топика

Узбагойся

Этот же самый «любой» сможет подоткнуть усб-диск и, загрузившись с него, показать тебе строку ввода пароля. И ты его введешь.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от Legioner

Ну то, что федоровцы не как все, это давно понятно, политика RedHat - сначало самим обосраться, потом сказать что инструменты плохие и поменять все на свои.

slapin ★★★★★
()

Тут утверждается, что grub не проверяет подпись initramfs. То бишь любой может просто смонтировать /boot, подменить там initramfs на такой, который запоминает введённый пароль помимо расшифровки диска, и таким образом пароль утечёт.

Это известно довольно давно, и очень странно, что это открытие для тебя.

Выходит, что маздай безопасней линукса в этом аспекте? Диверсия?

Есть инструментарий. А вообще, Лёня придёт, порядок наведёт.

anonymous
()
Ответ на: комментарий от Legioner

В Fedora ничего подобного нет. /boot не зашифрован

Что ты пишешь? Ты не знаешь политику? Boot лежит на фешке, которая охраняется физически.

anonymous
()
Ответ на: комментарий от Legioner

В Fedora ничего подобного нет. /boot не зашифрован,

Это не важно.

никаких sig нет,

Это очень плохо. Значит в Fedora просто нет реализации Integrity. Зато есть systemd, dbus, polkitd, ePBF, JIT, и кучу прочей дряни.

initramfs вообще генерируется от пользователя, т.к. зависит от пользовательских настроек, например от включения hibernate или от выбранной темы.

Это абсолютно правильно. Initramfs должен генерится в зависимости от пользовательских хотелось и подписывается пользователем, пользовательским ключом.

Поэтому подписываться microsoft-овской подписью не может по определению.

И не дрлжен. Никаких сертификатов от уважаемой M$ вообще не должно использоваться при верификации загружаемой системы.

Так что вбрасываешь тут только ты.

Я, лично проверил, и утверждаю что у меня GRUB2 верифицирует подпись initramfs при его загрузке. С измененным initramfs у меня GRUB2 систему не грузит. GRUB2 у меня работает нормально.

anonymous
()
Ответ на: комментарий от anonymous

Мало ли что у тебя работает нормально. Должно работать у всех, кто пользуется Linux. Они ставят популярный дистрибутив с официального образа и никаких ключей не используют. А что там у тебя лично работает, это никого не интересует и к безопасности не относится. Я свой ноутбук в сейф прячу, который к охранной системе подключён, за 5 минут приезжают ребята, а сейф прикручен к бетонной стене как положено. Это не значит, что ноутбуки Dell принципиально нельзя украсть.

Legioner ★★★★★
() автор топика
Ответ на: Узбагойся от thesis

Этот же самый «любой» сможет подоткнуть усб-диск и, загрузившись с него, показать тебе строку ввода пароля. И ты его введешь.

Это совсем другое. Надо физический доступ. Надо иметь возможность загрузки с USB, а она, в пр личных людей, отключена, а BIOS/UEFI запаролены.

Вот похерить файл на диске это уязвимость более выгодна для эксплуатации. Но ее НЕСУЩЕСВУЕТ!!! GRUB2 всегда проверяет подпись initramfs.

anonymous
()
Ответ на: комментарий от Legioner

Мало ли что у тебя работает нормально. Должно работать у всех, кто пользуется Linux. Они ставят популярный дистрибутив с официального образа и никаких ключей не используют.

Еще разок, для пятизвездочного ЛОРовского бЫЫЫЫЫдла.

С того что ты пишешь следует что ты поставил федорку с опциями по умолчанию. При установки у тебя федорки она ключи RSA для верификации GRUB не создала и ими файл initramfs не подписала, так как файла initramfs-*.sig в твоей системе нет. Значит верификация загрузки в твоей системе не используется. И все вбросы о том что инитрамфс у кого-то не проверил тебя волновать не должны. Понятно?

Девочкам подробнее розжовываю: Уязвимости в GRUB2 (комментарий)

anonymous
()
Ответ на: комментарий от slapin

политика RedHat - сначало самим обосраться, потом сказать что инструменты плохие и поменять все на свои.

А чё, никто не в курсе? Новая уязвимость линукса: BootHole (комментарий)

"Хотят свою дрянь systemd-boot протолкнуть под предлогом исправления из пальца высосанной, практично не реализуемой проблемы.

Хотят испортить grub под предлогом исправления «уязвимости»."

anonymous
()
Ответ на: комментарий от anonymous

Тут утверждается, что grub не проверяет подпись initramfs. То бишь любой может просто смонтировать /boot, подменить там initramfs на такой, который запоминает введённый пароль помимо расшифровки диска, и таким образом пароль утечёт.

Это известно довольно давно, и очень странно, что это открытие для тебя.

Я утверждаю что это ЛОЖЬ!

У меня GRUB2 верифицирует подпись initramfs-* при загрузке системы.

Если у кого здесь вообще есть установка GNU/Linux с верификацией загрузки в GRUB, существует файл /boot/initramfs-*.sig , то проверьте корректность работы вашего GRUB как написано в пункте 1. secure boot - ложная безопасность? (комментарий)

Если ваш GRUB, вдруг, действительно, не проверяет подпись initramfs, то напишите здесь название дистрибутива и используемую версию GRUB.

anonymous
()
Ответ на: комментарий от anonymous

Ты в теме совсем не разбираешься. А всё туда же лезешь с ценным мнением. Федора ставит в UEFI-раздел подписанный микрософтом shim. shim проверяет подпись Grub. Grub проверяет подпись ядра. Ядро в Secure Boot режиме лочится (lockdown) и проверяет подписи модулей. Вся система безопасна (если используется шифрование root). И для этого нужно только жамкнуть галочку Secure Boot в настройках биоса. И всю картину рушит лишь неподписанный initramfs. О чём эта тема, собственно, и повествует.

Legioner ★★★★★
() автор топика
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Ты в теме совсем не разбираешься.

С безграмотным бЫЫЫЫЫдлом не спорю.

… Grub проверяет подпись ядра. … И всю картину рушит лишь неподписанный initramfs.

Тоесть в федорке «потеринги» пробекдорили GRUB так, что он верифицирует все свои модули, книги, ядро и не верифицирует initramfs?

НЕ ВЕРЮ! Они хоть и *уки с ЛГБТ но не до такой же степени ;)

Давай сюда версию своей федорки версию GRUB и вывод команд с этого поста: Уязвимости в GRUB2 (комментарий)

anonymous
()
Ответ на: комментарий от Legioner

Ты в теме совсем не разбираешься. А всё туда же лезешь с ценным мнением. Федора ставит в UEFI-раздел подписанный микрософтом shim. shim проверяет подпись Grub. Grub проверяет подпись ядра. Ядро в Secure Boot режиме лочится (lockdown) и проверяет подписи модулей. Вся система безопасна (если используется шифрование root). И для этого нужно только жамкнуть галочку Secure Boot в настройках биоса.

Разрабы федорки конченое быдло.

А пользователи федорки просто генетический скот, раз таким овном пользуются.

Скоту systemd в *жопу засунули, лет 10 уже как, вот и дыра готова для двойничка, systemd-boot щас еще вставят, почву подготавливают GRUB ругают.

И всю картину рушит лишь неподписанный initramfs.

Загрузился с LiveCD расшифровал и примонтировал /boot раздел. Переместил initramfs-*.sig. Отмонтировал диск, зарыл крыптодиск, перегружаюсь с диска. GRUB-2 у меня после попытки считать initramfs выдал ошибку:

error: file /boot/initramfs-*.sig not found.

Press any key to continue ...
Жмякаешь клаву и комп ребутится.

GRUB2, в режиме верификации загрузки, без подписи initramfs, или с испорченной подписью, систему не загрузит!!!

anonymous
()
Ответ на: комментарий от Stanson

Хочешь безопасности - выкидывай нафиг все эти уефи, секурбуты, ME и прочая. Ставь коребут без блобов, причём с самособранным linux kernel c вкомпилённым initrd в качестве payload в EEPROM. Ну и диск шифруй, причём чтобы твой initrd из ядра в EEPROM спрашивал пароль перед его монтированием. Вот тогда твои волосы и станут мягкими и шелковистыми, и никто ничего подменить или спереть не сможет. Даже если сопрёт твой ноут целиком.

А разве нельзя программно перешить BIOS пока ты смотришь новости в своем браузере и чатишься в телеграмме?

Не надежнее уж и вовсе отказаться от X86 и использовать X11 в OpenBSD на одноплатнике с неперешиваемым BootROM? А грузить его по iSCSI или NFS с какого-нибудь древнего Pentium1 с таким же древнем CDROM и одноразовой неперезаписываемой болванкой? Чтобы было нереально пропатчить прошивку такого доисторического CDROM привода, контроллеров или бивиса?

anonymous
()
Ответ на: комментарий от Stanson

На подходящем железе coreboot заводится без блобов без малейших страданий.

Без блобов контроллера памяти? Ой насмешил, Петросян.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.