4.2. Защита BIOS и загрузчика системы

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

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

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

4.2.1. Пароли BIOS

Есть две основные причины защиты паролем BIOS компьютера [1]:

  1. Предотвратить изменение настроек BIOS — Если взломщик имеет доступ к BIOS, он может настроить загрузку с дискеты или компакт-диска. Это позволит ему войти в монопольный режим или режим восстановления, после чего он сможет внедрить в систему вредоносные программы или скопировать важные данные.

  2. Предотвратить загрузку системы — В некоторых BIOS загрузку системы также можно защитить паролем. Если эта защита включена, взломщику нужно будет ввести пароль, прежде чем BIOS запустит загрузчик системы.

Так как пароль BIOS на компьютерах разных производителей задаётся по-разному, за точными инструкциями обратитесь к руководству по использованию компьютера.

Если вы забыли пароль BIOS, его можно сбросить либо перемычками на материнской плате, либо, отсоединив батарею CMOS. Поэтому, хорошей практикой считается закрытие корпуса компьютера на замок, если это возможно. Однако прежде чем делать это, обратитесь к руководству по использованию компьютера или материнской платы.

4.2.1.1. Защита платформ, отличных от x86

В других архитектурах для выполнения низкоуровневых задач используются свои программы, отдалённо напоминающие BIOS в компьютерах x86. Например, в компьютерах Intel® Itanium™ используется Расширяемый интерфейс микропрограмм (Extensible Firmware Interface — EFI).

За инструкциями по защите паролем BIOS-подобных программ на других платформах обратитесь к документации производителя.

4.2.2. Пароли загрузчика системы

Загрузчик системы Linux обычно защищается паролем по следующим соображениям:

  1. Предотвращение доступа к монопольному режиму — Если взломщик может загрузиться в режиме одного пользователя, он может стать пользователем root.

  2. Предотвращение доступа к консоли GRUB — Если в качестве загрузчика на компьютере используется GRUB, взломщик может воспользоваться редактором GRUB для изменения его настроек или сбора информации с помощью команды cat.

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

В состав Red Hat Enterprise Linux для платформы x86 входят два загрузчика, GRUB и LILO. Более подробно эти загрузчики рассматриваются в главе Загрузчики Справочного руководства Red Hat Enterprise Linux.

4.2.2.1. Защита паролем GRUB

GRUB способен решить первые две задачи из перечисленных в разделе 4.2.2 Пароли загрузчика системы, если вы зададите пароль в его файле конфигурации. Для этого сначала придумайте пароль, затем перейдите в приглашение оболочки под именем root и введите:

/sbin/grub-md5-crypt

Получив приглашение, введите пароль GRUB и нажмите [Enter]. В ответ вы получите MD5-хэш пароля.

Затем отредактируйте файл конфигурации GRUB /boot/grub/grub.conf. Откройте файл и найдите в основном разделе ниже строки timeout следующую строку:

password --md5 <password-hash>

Замените <password-hash> значением, возвращённым командой /sbin/grub-md5-crypt[2].

При следующей загрузке системы меню GRUB не даст вам вызвать редактор или командную строку, если вы не нажмёте сначала [p] и не введёте затем пароль GRUB.

К сожалению, это решение не помешает взломщику в окружении с несколькими системами загрузить небезопасную операционную систему. Чтобы исправить и это, надо изменить другую часть файла /boot/grub/grub.conf.

Найдите строку title небезопасной операционной системы и добавьте прямо под ней строку lock.

Для системы DOS эта строфа примет примерно такой вид:

title DOS
lock

ПредупреждениеПредупреждение
 

Чтобы это работало, необходимо добавить строку password в основной раздел файла /boot/grub/grub.conf. В противном случае взломщик сможет запустить редактор GRUB и удалить строку блокировки.

Чтобы задать для конкретного ядра или другой системы отдельный пароль, после строки lock добавьте строку с паролем.

Строфа каждой системы, защищаемой своим паролем, должна начинаться примерно так:

title DOS
lock
password --md5 <password-hash>

4.2.2.2. Защита паролем LILO

LILO — загрузчик, который много проще GRUB, он не даёт возможности выполнять команды, поэтому взломщик не сможет взаимодействовать с системой до загрузки ядра. Однако взломщик всё же может загрузиться в монопольном режиме или загрузить небезопасную операционную систему.

Защитить LILO паролем можно, указав пароль в общем разделе файла конфигурации. Для этого, отредактируйте в приглашении оболочки под именем root файл /etc/lilo.conf. Добавьте перед первой строфой image определение пароля, как показано ниже:

password=<password>

Замените в показанной выше строке <password> паролем LILO.

ВажноВажно
 

Чтобы изменения вступили в силу после редактирования файла /etc/lilo.conf, нужно выполнить команду /sbin/lilo -v -v. Если вы задали пароль, но кто-то кроме пользователя root может прочитать этот файл, LILO отработает корректно, но сообщит вам, что разрешения для файла конфигурации заданы неверно.

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

image=/boot/vmlinuz-<version>
        password=<password>

Замените в этом примере <version> версией ядра, а <password> — паролем LILO для данного ядра.

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

image=/boot/vmlinuz-<version>
        password=<password>
        restricted

Замените здесь <version> версией ядра, а <password> — паролем LILO для данного ядра.

Если вы используете указание restricted, в этой строфе обязательно должна быть строка с паролем.

ПредупреждениеПредупреждение
 

Файл /etc/lilo.conf доступен на чтение для всех. Если вы защищаете LILO паролем, крайне важно разрешить чтение и редактирование этого файла только пользователю root, так как все пароли хранятся в открытом виде. Для этого выполните от имени root следующую команду:

chmod 600  /etc/lilo.conf

Замечания

[1]

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

[2]

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