LINUX.ORG.RU

Поясните моменты с Secure Boot

 ,


0

3

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

В общих чертах я с ним знаком, также изучил статью от Greg Kroah-Hartman - Booting a Self-signed Linux Kernel. С пониманием загрузки цепочки доверенного кода проблем нет.

Но давайте вернемся к самому началу начал - к безопасности самого UEFI.

Допустим, что у злоумышленника есть физический доступ. Он не может подменить подписанное мною ядро. Но что ему мешает перешить UEFI? Даже чисто физически, программатором. Тогда просто не будет никакой проверки и можно грузить, что угодно.

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

Получается, что Secure Boot не сможет защитить от физического доступа.

★★★★★

Последнее исправление: Chaser_Andrey (всего исправлений: 2)

Да, эффективность у Secure Boot такая-же, как у DRM. Реально защитить может только от загрузки с live-cd/dvd/usb

Klymedy ★★★★★
()

ведь могут быть внедрены хуки, которые перехватывают любые обращения к памяти.

но зачем, если можно материнскую плату подменить?

crowbar
()

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

Куда внедрены?

Gotf ★★★
()

Впрочем, известно, что получение злоумышленником физического доступа к системе == полный кластерфак (без исключений), т. к. ничто не мешает такому гипотетическому злоумышленнику подменить саму систему.

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

Как может быть выполнен некий абстрактный хук в прошивке системной платы, если ядро хоста выполняется не под вражеским гипервизором?

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

Прошивка грузит ядро, на лету его разжимая и впиливая свой код... Да что там, тупо лишний модуль в initramfs.

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

Прошивка грузит ядро

Я не разрешал прошивке грузить ядро. Прошивка грузит загрузчик. Загрузчик на съёмном носителе и злоумышленник о нём не знает ничего.

Да что там, тупо лишний модуль в initramfs.

Если рамдиск ядра доступен, то с прошивками возиться смысла нет.

Gotf ★★★
()

Но что ему мешает перешить UEFI? Даже чисто физически, программатором.

Не, ну если так подходить, то он может и всю материнскую плату перепаять. Конечно, UEFI не может защитить от человека, у которого есть полный доступ к компьютеру на сколь угодно долгое время. От этого может защитить только волшебная сила.

Только зачем ему это? Что он потом с этим компом делать будет? Если нужны только данные, проще снять жёсткий диск.

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

Прошивка грузит загрузчик, подменяя в нём функцию, которая грузит ядро. Делов-то.

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

Я не разрешал прошивке грузить ядро. Прошивка грузит загрузчик. Загрузчик на съёмном носителе и злоумышленник о нём не знает ничего.

Прошивка меняется программатором со всеми вытекающими последствиями.

Если рамдиск ядра доступен, то с прошивками возиться смысла нет.

Не совсем, рамдиск тоже можно подписать и проверять ядром перед загрузкой.

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

Только зачем ему это?

Получить доступ к информации. Скрытно. Например, имитируется пропажа света или поломка БП и делается дамп винчестера и UEFI, разворачивается на идентичной тестовой машинке у себя и оттачивается атака, которая потом проводится так же относительно незаметно.

Не всегда можно компы закинуть в надежный ДЦ (да и стоить это будет много), или с резервным питанием и под круглосуточное наблюдение.

Если нужны только данные, проще снять жёсткий диск.

Данные могут быть зашифрованы, а расшифровка данных должна производиться только верифицированным ядром и ram-диском.

Также после расшифровки может запускаться проверка верификации ядра и рамдиска, и даже, теоретически, UEFI, только вот это ничего не стоит, все эти вызовы могут быть перехвачены хуками ещё на этапе загрузки ядра из-под троянского UEFI. Собственно, о чём и тред.

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

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

заклинание должен накладывать очень опытный маг, ранга мигистр тёмных искуств не меньше.

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

кольцо должно не только контролировать волшебную силу, но и ментально влиять на носителя (в случае если кольцом завладеет чужой человек).

материал из которого куётся кольцо — должен быть прочным, таким, чтобы топор гнома не смог бы разрушить его..

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

Получить доступ к информации. Скрытно. Например, имитируется пропажа света или поломка БП и делается дамп винчестера и UEFI, разворачивается на идентичной тестовой машинке у себя и оттачивается атака, которая потом проводится так же относительно незаметно.

Том Круз прорезает дыру в потолке, спускается сверху на канате попой вверх...

А если серьёзно, злоумышленник просто возьмёт и подменит всю материнскую плату.

Также после расшифровки может запускаться проверка верификации ядра и рамдиска

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

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

Прошивка меняется программатором со всеми вытекающими последствиями.

ITT я пока не увидел ни одного дельного предложения по этому поводу. Покажите мне практическую реализацию firmware, которое в произвольном загрузчике «подменяет функцию загрузки ядра». Я, так и быть, соглашусь, что загрузчик только один, а не N по цепочке :))) intelfx?

проверять ядром

Ну не зря у меня было ощущение, что это диванных теоретиков тред.

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

Зачем практическую реализацию? Мы обсуждали теоретическую возможность такой «атаки». С другой стороны, это полнейшее кэпство, т. к. в любом случае очевидно — от злоумышленника с физическим доступом не спасёт ничто.

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

Зачем практическую реализацию?

Я хочу её увидеть же.

Мы обсуждали теоретическую возможность такой «атаки».

А с теоретической точки зрения такая атака экономически нецелесообразна.

в любом случае очевидно — от злоумышленника с физическим доступом не спасёт ничто

Да? Ну ок.

Gotf ★★★
()

Тебе нужно изучить концепцию под назаванием «root of trust». Это совершенно простая вещь: выбираем точку в нашей системе, и как мантру повторяем «Нас не похачили, нас не похачили», потому что если похачили — всё сливается в унитаз.

Есть постулат, что root of trust должен быть: а) мелким; б) верифицируемым; г) максимально общим (содержать набор общих механизмов, а не политик).

Наскольно UEFI вообще и SecureBoot в частности, соответствуют вышеперечисленному, сказать сложно. Как я понимаю, что «не очень». Как я понимаю, SecureBoot — спешное и ad-hoc затыкание дыр в современных загрузчиках, которые банально срали на безопасность.

Допустим, что у злоумышленника есть физический доступ.

Допустим, что у злоумышленника есть молоток и физический доступ к ТВОЕМУ ТЕЛУ, ГЫ-ГЫ-ГЫ-ГЫ! Дурацкий аргумент, на самом деле.

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

Я хочу её увидеть же

http://xakep.ru/59367/

А с теоретической точки зрения такая атака экономически нецелесообразна.

С теоретической точки зрения может быть атака на комп сисадмина, у которого есть доступ к десяткам или сотням серверов с чувствительной информацией. Достаточно вспомнить атаку на kernel.org.

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

Дурацкий аргумент, на самом деле.

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

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

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

В смысле, верификация ядра может происходить утилитой, которая находится на небольшом зашифрованном разделе, и о которой взломщик может только догадываться. Т.е., получить адреса загруженного кода ядра, сделать дамп и проверить с эталонной копией на зашифрованной разделе. Если они идентичны - открываем настоящий криптоконтейнер с рутовой системой, и делаем pivot_root, если нет - очищаем заголовок криптоконтейнера и превращаем винт в кучу рандомного мусора.

Как-то так.

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

проверять ядром

Ну не зря у меня было ощущение, что это диванных теоретиков тред.

А что не так? Делаем дамп rom.bin, сверяем контрольные суммы. Что мешает запустить этот код из ядра или из userspace из подписанного initramfs?

http://www.uefi.org/sites/default/files/resources/2014_UEFI_Plugfest_04_Intel...

Только дело в том, что на этом этапе нет гарантий, что ядро до сих пор не троянское.

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

Есть уйма сценариев

Тогда нужно озаботиться физической безопасностью машины. Не получится ликвидировать угрозы физической безопасности программно.

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

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

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

Но, как я уже сказал, это энтерпрайзное оверпрайснутое говно.

Macil ★★★★★
()

Используйте grub-efi или shim от федоры. Или другой загрузчик, который MS подписан. Или просто отключите Secure boot и грузитесь с обычного граба, как раньше.

Но что ему мешает перешить UEFI?

Ничего. В некоторых случаях (на спец. биосах, где используется trusted boot (secure boot с интеграцией с TPM и TXT), обычно используются только в серверах) это может помочь убедиться в отсутствии подмены ядра/загрузчика через TMP и расшифравать раздел с данными. В обычном случае Вас ничего не защитит (можно банально аппаратно сбросить биос, при этом все ключи тоже сбросятся). И да: загрузчик, ядро и initrd редко кто поражает (буткиты, разве что), обычно поражают конечные файлы.

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

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

Разве ядро в памяти полностью соответствует ядру с диска?

ktulhu666 ☆☆☆
()

Secure Boot и никогда не позиционировался в качестве защиты от физического доступа. Если вам нужна защита от физического доступа, смотрите в сторону доверенной загрузки (Trusted Boot, TrustedGRUB) и TPM.

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

А ведь у моей материнки есть даже разъем для TPM-модуля...

Я так понимаю, надо обязательно делать симбиоз TPM и SecureBoot?

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

Нет, SecureBoot в этом случае особо не нужен.

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

К сожалению, да. Как и SSD с TCG Opal. Я стараюсь покупать технику на ebay из США или Европы, на таможне еще ни разу не останавливали.

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

Хрен знает, где пруфлинки найти, но на полках нет ни одного лаптопа с TPM. AES-NI кое-как с боем разрешили, вроде как кто-то из Intel приезжал и договаривался с Путиным напрямую.

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

AES-NI кое-как с боем разрешили, вроде как кто-то из Intel приезжал и договаривался с Путиным напрямую.

Прохладная история, братишка.

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