Перейти к содержанию

Проверка допуска подписанных модулей на учебной машине

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

Подготовка

  1. Создайте снимок виртуальной машины и убедитесь, что можете открыть консоль, даже если сеть недоступна.
  2. Проверьте установленное и запущенное ядро (uname -r, rpm -q linux).
  3. Убедитесь, что штатный модуль dummy присутствует и имеет сведения о подписи.
  4. Не используйте сервер, от которого зависят доступ к данным, сеть, виртуализация или резервное копирование.

Проверка штатного модуля

Для учебной виртуальной машины проверьте:

modinfo -F signer dummy
modinfo -F sig_hashalgo dummy
cat /sys/module/module/parameters/sig_enforce

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

modprobe dummy numdummies=0
lsmod | grep '^dummy'

Если dummy загрузился при sig_enforce=Y, это подтверждает, что ядро допустило данный модуль в условиях обязательной проверки. Если же был N, загрузка не является таким доказательством.

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

modprobe -r dummy

Параметр numdummies=0 предотвращает создание тестовых сетевых интерфейсов в этом опыте. Если модуль уже загружен или занят, не выгружайте его насильно.

Строгий режим, если он ещё не включён

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

printf 'До изменения: '
cat /sys/module/module/parameters/sig_enforce

echo 1 > /sys/module/module/parameters/sig_enforce

printf 'После изменения: '
cat /sys/module/module/parameters/sig_enforce

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

После перехода в Y повторите загрузку подписанного dummy, как показано выше.

Как проверить отклонение неподписанного модуля

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

В режиме Y загрузка такого учебного файла командой администратора должна завершиться отказом. Пример возможного сообщения:

insmod: ERROR: could not insert module ...: Key was rejected by service

В журнале ядра может появиться:

Loading of unsigned module is rejected

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

Завершение

Сохраните в служебном протоколе uname -r, результаты modinfo, значение sig_enforce, результат загрузки dummy и сообщения об отказе неподписанному модулю (если опыт проводился). Затем восстановите снимок учебной ВМ либо перезагрузите её, если требуется вернуть первоначальный режим проверки.

Важно: успешные проверки показывают поведение конкретной версии НАЙС.ОС. Они не являются испытаниями на сертификационное соответствие, не доказывают отсутствие уязвимостей в модулях и не подтверждают использование ГОСТ Р 34.10-2012 в математическом алгоритме их подписи.