LINUX.ORG.RU

Безопасность при полном шифровании и подпись grub2 для secureboot

 , ,


0

2

Здравствуйте! Я тут подумал о таком сценарии: допустим, диск полностью зашифрован, кроме раздела для /boot/efi - как я понимаю, его зашифровать нельзя. Там лежат какие-то файлы grub2, grub2 загружается, туда вводится пароль расшифровки того раздела, где /boot и дальше всё очевидно. Но злоумышленник, незаметно вынув диск, подменяет те самые какие-то файлы grub2 в /boot/efi, так, что они куда-то (например, в соседний файл в том же /boot/efi) пишут пароль расшифровки /boot при следующем вводе. Я ничего не замечаю, ввожу пароль при следующем запуске, потом злоумышленник его аккуратно забирает и его пространство для творчества сильно расширяется. Вопрос: поможет ли подпись grub2 и использование secure boot в такой ситуации? Как вообще с безопасностью, если я сделаю так?:

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

Заранее спасибо.

★★

Вопрос: поможет ли подпись grub2 и использование secure boot в такой ситуации

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

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

Ему ведь придётся подписать моим же ключом, либо прописать свой ключ в UEFI. Ключ свой я храню в тайне, а прописать свой ключ в UEFI вряд ли выйдет без получения туда доступа. Пароль он не знает, а если мой пароль он снесёт - я узнаю.

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

Ну пропишет в UEFI ясное дело свой ключ..

люди и не такое проделывают когда хотят — вот например — https://habrahabr.ru/post/304014/ — просто оцени упорство людей (во все дыры ведь залезут!!!)

Ты оставишь пару лазеек в расчете на «ну ни кто не будет загоняться сильно» — а люди как раз-таки и будут

user_id_68054 ★★★★★
()

В BIOS установлен пароль на включение компьютера и на доступ к настройкам (если его вынести методом батарейки - я замечу

Если доверяешь этой деревянной колитке (типа якобы пароль обойти нельзя ни как этот!) — то можешь тогда обычный shim заиспользовать , без цифровых подписей своих собственных

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

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

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

Ну вот смотри тогда:

shim (с ключём от Федоры) — загружает твой grub.efi (который не подписан ни кем)

Первый раз shim спросит тебя (и запомнит!!) что ты действительно хочешь его загрузить , этот твой grub.efi ..

Далее , остальные разы — будет загружать уже не спрашивая ...

Если злоумышленник подменит grub.efi на свой — то опять табличка с вопросом возникнет.

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

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

Принцип понял, спасибо. Ещё прочитал про PreLoader (от Linux Foundation). Можешь о нём что-нибудь рассказать?

И ещё - можешь поведать про деревянность калитки BIOS? Мельком прочитав скинутую тобой статью на Хабре увидел про Coldboot и DMA; мне показалось, что это может иметь отношение к моему случаю.

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

PreLoader (от Linux Foundation). Можешь о нём что-нибудь рассказать?

Хорошее, всё работает, более менее..

Главная проблема — заброшено и не развивается .

Недоработка: Подписаны цифроподписью не все компоненты — не подписан компонент удалчющий хеши (запустить его можно всёравно, добавив его хешь через сам же PreLoader)

----------

Shim более доделанным выглядет . Для удаления подписей — можно использовать утилиту mokutil или свой велосипед типа такого — https://github.com/polymorphm/uefi-shim-reset

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

Понял, спасибо.

А что там с деревянностью калитки? Насколько сложны в реализации те способы, которые позволяют проигнорировать тот факт, что BIOS запаролен, и, не меняя пароля, что-то там подкрутить (например, добавить свой ключ)?

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

поведать про деревянность калитки BIOS? Мельком прочитав скинутую тобой статью на Хабре увидел про Coldboot и DMA; мне показалось, что это может иметь отношение к моему случаю.

Ну а что про них ведать — всё на отъ**сь там сделано .. :-) .. у каждого производителя свои «истории успеха» :-)

А пример на хабре привёл слабо связанный с твоим случаем — но дающий понять что если люди что-то заходят то они влезут во все дыры :-)

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

Насколько сложны в реализации те способы, которые позволяют проигнорировать тот факт, что BIOS запаролен

Аааа, вот это не знаю .. а лично не из тех кто во всё дыры влезает .. но быть может кто-то такой тут найдётся :-) на форуме

user_id_68054 ★★★★★
()

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

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

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

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

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

Вот именно этот способ — не прокатит ..

смотри!

Я прихожу домой и включаю компьютер:

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

2. Вижу знакомую табличку ввода пароль от GRUB и ввожу пароль.. (я не знаю что пароль подходит любой, поэтому не замечаю подвоха )

3. Далее я вижу что показывается меню груб (после успешной фазы: insmod normal; normal )... Но... НОО! пункты меню выглядят совсем не так как было .. и даже нет фоновой картинки grub-меню моей любимой юки-нагто [ http://yet-another-123.tumblr.com/post/94435767615/yuki-nagato-in-grub ]

Дальше ясное дело уже загружать не буду — это же явная подстава :-)

Поставить правильное GRUB меню — можно только после его изучения (а изучить нельзя без пароля от grub)

В итоге имеем что получено только 2 пароля (биос и grub ) , а пароль от главного раздела — так и не получен

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 3)

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

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

Раз уж заморочились с поиском и подменой компьютера, то можно заморочиться и чуть-чуть со слежкой. Ты никогда не включаешь компьютер при посторонних людях? Да, допустим, ты закрываешь ладонью клавиатуру или дожидаешься, пока все отойдут, когда вводишь пароль. Но едва ли ты закрываешь монитор!

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

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

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

А потом просто прихватить клавиатуру вместе с системником и извлечь из неё пароль.

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

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

Защита от bootkit достаточно проблематична, как тут уже написали: любые ЭЦП загрузчика, PBE будут работать в том случае, если будет надежное железное хранилище (TPM претендовал на эту роль, но был слит, увы), где будет храниться наш приватный ключ при помощи которого мы и будем проверять целостность загрузчика, но никто не отменял mem patching, соответственно ничто не машает всего лишь пошаманить над самой проверкой валидности и наше надежное железное хранилище ключей никак не спасет от внесения изменений в защищаемый загрузчик.

Как вариант, можно использовать такой трюк: делаем usb с валидатором нашей загрузочной записи (загрузчика), грузим защищенный комп с этой usb, проверяем hash защищаемого загрузчика (который хранится на usb) и, если всё ок, - передаем управление на защищаемый загрузчик. Потенциальные уязвимости данного метода: 1. кто-то физически изменит hash на usb - не храним usb на виду, шифруем hash паролем, который вводится в процессе верификации загрузчика. 2. кто-то напишет новый bios для вашего компа, который будет перехватывать все нажатия клавиш или на ходу патчить проверку в нашей usb (маловероятно при отсутствии физического доступа к usb-девайсу), патчинг лечится проверкой целостности области памяти, где мы проводим верификацию hash загрузчика и расшифроку верного hash, перед передачей загрузки на проверяемый загрузчик. До расшифровки и проверки hash защищаемого загрузчика дампим bios и также на лету проверяем его валидность, далее идем к верификации загрузчика.

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