риск безопасности? почему ubuntu применяет странные разрешения в /boot/initrd* и /boot/vmlinuz*?

риск безопасности? почему ubuntu применяет странные разрешения в /boot/initrd* и /boot/vmlinuz*?

initrd.img все 644, vmlinuz в другой руке 600. Это наоборот во многих других дистрибутивах, если не во всех. Я думаю, что другие дистрибутивы на самом деле делают это правильно. содержимое в vlinuz полностью общедоступно, в нем нет никаких секретов. Однако initrd может содержать всевозможные настраиваемые параметры, которые могут раскрыть поверхность атаки, когда otherвместо этого rootможно прочитать его содержимое. Более того, это тенденция, что люди будут включать ключ luks в initrd, когда они выполняют полное шифрование диска. Таким образом, абсолютно необходимо no! no!сделать initrd глобально доступным для чтения.

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

Надеюсь, опытный пользователь сможет подсказать, как сделать initrd.img постоянно 600 в Ubuntu. Так как эти файлы автоматически генерируются во время обновления ядра. Может быть, добавить какой-нибудь скрипт в /etc/kernel/postinst.d/?

решение1

Я вижу разницу между 20.04 и 22.04, которые я установил на своей машине. В 20.04 я вижу поведение, которое вы описали в своем вопросе, тогда как в 22.04 файлы initrd.img* имеют разрешения 600.

Спотыкаясь оэтот багЯ проверил файлы /etc/initramfs-toolsи нашел соответствующий файл, который есть в версии 22.04, но отсутствует в версии 20.04:

~$ sudo cat /etc/initramfs-tools/conf.d/calamares-safe-initramfs.conf 
[sudo] password for mook: 
UMASK=0077
~$ ls -l /etc/initramfs-tools/conf.d/calamares-safe-initramfs.conf 
-rw------- 1 root root 11 Apr 25 02:53 /etc/initramfs-tools/conf.d/calamares-safe-initramfs.conf

Поэтому я думаю, что это тот файл, который вам нужно добавить, чтобы получить безопасные разрешения для ваших файлов initrd.img*.

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

решение2

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

Возможно, имеет смысл изменитьразрешения initramfs по умолчанию, как описано в ответе @mook765. Если вы в этом уверены, пожалуйста, отправьте отчет об ошибке.Статья help.ubuntu.com о полном шифровании дискавключает этот шаг вместе с советами о том, как встроить ключи в initramfs.

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

Связанный контент