Защита от злой девицы, как справиться с удалением раздела / boot

11

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

Злая атака горничной - это когда кто-то получает физический доступ к вашему компьютеру во время вашего отсутствия и скомпрометирует незашифрованный / загрузочный раздел, чтобы перехватить ваш пароль FDE при следующем запуске компьютера

Одно из решений состоит в том, чтобы оставить раздел / boot на USB-накопителе, который всегда с вами (горничная не может добраться до него), но какую файловую систему следует использовать на нем, и как настроить систему для изящной обработки удаления USB-накопителя (и, следовательно, самого раздела / boot)?

Я использую CentOS, но общие, дистро-агностические ответы, конечно, приветствуются. Благодарю.


источник

Ответы:

5

Наконец-то разобрался. Это по-прежнему кажется хакерским и грязным, потому что система никогда не знает, что /bootможет быть не смонтировано, и вам нужно будет смонтировать ее вручную, прежде чем делать что-либо, что может записать в нее (например, обновления системы и т. Д.), Но кроме этого она работает отлично ,

  • подготовьте флешку с одним разделом с установленным на нем загрузочным флагом. Вы можете запустить shred -n 1 -v /dev/sdXего, чтобы полностью стереть, включая любые предыдущие загрузочные сектора; как только это будет сделано, запустите fdiskдля создания раздела и mkfsвашей файловой системы.
  • Смонтируйте свою флешку где-нибудь, /mnt/bootили даже /newbootподойдет просто отлично.
  • Переместить все /bootна флэшку с помощью mv /boot/* /newboot.
  • отредактируйте /etc/fstabи измените UUID исходного загрузочного раздела (или создайте запись, если ее нет) в соответствии с тем, что есть на вашей флешке. Вы можете получить UUID с lsblk -o name,uuid. Также добавьте noautoпараметр, чтобы диск не монтировался автоматически, чтобы иметь возможность удалить его, как только система начнет загрузку (после загрузки ядра), не рискуя повредить FS на нем.
  • размонтируйте оригинальный загрузочный раздел и флешку ( umount /boot && umount /newboot) и смонтируйте флешку; если ваша запись в fstab верна, вы можете просто запустить ее, mount /bootи она будет автоматически смонтирована на основе UUID, указанного в fstab.
  • Восстановите конфигурацию вашего загрузчика, чтобы отразить UUID нового раздела и «физическое» положение, для GRUB флешка будет фактически отображаться как первый жесткий диск в компьютере ( hd0). Если вы согласны с использованием стандартных скриптов конфигурации GRUB, поставляемых большинством дистрибутивов, вы можете запустить, grub-mkconfig -o /path/to/grub.cfgи он сгенерирует файл в соответствии с подключенными в данный момент разделами и / или fstab. Обратите внимание, что для CentOS 7 правильное значение grub.cfgфактически находится в /boot/grub2/grub.cfg.

При выполнении любой операции, которая может получить доступ к загрузочному разделу, подключите USB-накопитель и запустите mount /boot. После этого вы можете бежать umount /boot. Обратите внимание, что выполнение последней команды может занять несколько минут, поскольку она сбрасывает буферы на диск (сам диск работает медленно, поэтому ядро ​​буферизует некоторые операции записи, чтобы ускорить процесс).


источник
Совсем не грязно, это самый очевидный способ сделать это. Спасибо, что написали это!
декабря
0

Другой подход к этой конкретной проблеме заключается в использовании доверенного платформенного модуля для хранения ключа шифрования, но защита действительно полагается на пользователя, чтобы сделать его эффективным. Элементарным решением на основе RHEL7 является tpm-luks ( https://github.com/GeisingerBTI/tpm-luks ).

Это работает при загрузке, каждый шаг процесса загрузки измеряет следующий и сохраняет это измерение в PCR на TPM. Как только процесс загрузки завершен, tpm-luks проверяет состояние PCR с помощью «заведомо исправной» конфигурации. Если в конфигурации «заведомо исправный» TPM откроет ключ LUKS, и tpm-luks передаст эти данные, чтобы разблокировать корневой раздел LUKS.

Поскольку все важное измеряется с помощью криптографического хэша, злая служанка, по сути, не может заменить GRUB / kernel / ramdisk, чтобы нечестно собирать парольную фразу FDE. В качестве дополнительного бонуса вам не нужна фраза FDE! Теоретически вы можете полностью удалить понятную человеку парольную фразу и полностью положиться на tpm-luks, но если вы пойдете по этому пути, вероятно, будет хорошей идеей сохранить заголовок LUKS и сохранить его в качестве резервной копии.

Как я уже упоминал, это требует некоторого усердия на пользователя. Если вы оставили компьютер без присмотра, и вам предложили ввести фразу-пароль, возможно, это плохая идея, чтобы ввести его, пока вы не проведете некоторые расследования. В этот момент вы должны загрузиться в среде live CD и посмотреть, есть ли ошибка в tpm-luks или /bootраздел действительно был изменен. Вы по-прежнему оставляете /bootраздел незашифрованным, но если что-то важное изменяется, основной диск никогда не расшифровывается.

Джон Уоллес
источник