セキュリティリスク?Ubuntu が /boot/initrd* と /boot/vmlinuz* に奇妙な権限を適用するのはなぜですか?

セキュリティリスク?Ubuntu が /boot/initrd* と /boot/vmlinuz* に奇妙な権限を適用するのはなぜですか?

initrd.img はすべて 644 で、vmlinuz は 600 です。これは、すべてではないにしても、他の多くのディストリビューションでは逆になっています。他のディストリビューションは実際には正しく動作していると思います。vlinuz のコンテンツはすべて公開されており、秘密はありません。ただし、initrd にはあらゆる種類のカスタマイズされた設定を含めることができ、そのコンテンツを読み取ることotherができない場合、攻撃対象領域を公開するroot可能性があります。さらに、フルディスク暗号化を行うときに、initrd に luks キーを含めるのが一般的です。したがって、no! no!initrd をグローバルに読み取り可能に設定することは絶対に必要です。

この設計の理由は何ですか? Ubuntu ではなぜ initrd.img をグローバルに読み取り可能にする必要があるのですか? これに依存する機能はありますか?

経験豊富なユーザーが、Ubuntu で initrd.img を永続的に 600 にする方法を教えてくれると嬉しいです。これらのファイルはカーネルの更新中に自動的に生成されるため、スクリプトを追加してみてはいかがでしょうか/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 の権限でインストールされるため、エクスプロイトはこれらのファイルを読み取って攻撃に使用するアドレスやオフセットを知ることはできません。攻撃者はすべてのカーネル パッケージを事前にダウンロードして必要なオフセット テーブルを自分で構築できるため、これは決して万全とは言えませんが、追加の作業となります。

変更するのは理にかなっているかもしれない@mook765の回答に記載されているデフォルトのinitramfs権限強くそう思う場合は、バグレポートを提出してください。help.ubuntu.com のフルディスク暗号化に関する記事この手順は、initramfs にキーを埋め込む方法に関するアドバイスとともに含まれています。

他のファイルシステムのキーマテリアルを initramfs に埋め込まないユーザーにとっては、デフォルト設定は安全であるはずです。(これは非常にまれな構成だと思います。)

関連情報