過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト 仮想化基盤の構築 問16

仮想化基盤の構築/仮想化環境のセキュリティ設定

UEFI Secure Bootを有効にしたLinuxゲストで、自分でビルドしたカーネルモジュールを読み込もうとしたところ、署名の検証に失敗して読み込めなかった。Secure Bootを有効にしたまま対処する方法として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「仮想化基盤の構築」に対応。実際の試験問題ではありません)

正解:D

解説

Secure Bootが有効な環境では、多くのディストリビューションのカーネルが、信頼された鍵で署名されていないカーネルモジュールの読み込みを拒否します。自作モジュールを使うには、自分で作成した鍵ペアでモジュールに署名し(カーネル付属のsign-file等)、その公開鍵をmokutil --importでMOK(Machine Owner Key)として登録します。次回起動時にMokManagerで登録を確定すると、その鍵で署名したモジュールが信頼されるようになります。

選択肢ごとの解説

  • A誤り。initramfsから読み込まれるモジュールも同じカーネルが署名を検証するため、検証を避けることはできません。
  • B誤り。ファイルの所有者やパーミッションは署名の有無と無関係で、署名検証の結果は変わりません。
  • C誤り。レガシーBIOSにするとSecure Boot自体が使えなくなり、「有効にしたまま」という条件を満たしません。署名済みとして扱われることもありません。
  • D正しい。自前の鍵で署名し、その鍵をMOKとして登録すれば、Secure Bootを有効にしたままモジュールを読み込めます。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く