OpenBSD、起動するたびに新しいカーネルに変わるセキュリティ機能を導入

OpenBSD、起動するたびに新しいカーネルに変わるセキュリティ機能を導入

画像提供:マイナビニュース

Bleeping Computerに7月5日(米国時間)に掲載された記事「OpenBSD Will Get Unique Kernels on Each Reboot. Do You Hear That Linux, Windows?」が、次にリリースされることになるOpenBSD 6.2にKARL(Kernel Address Randomized Link)と呼ばれるセキュリティ機能が搭載されると伝えた。この機能はデフォルトで有効化され、すべてのユーザーが誰とも同じにならないカーネルを利用することになるとされている。さらにシステムを起動するごとにまた別のカーネルに変わるとされており、同じカーネルを使うことはまずないと見られている。

これはカーネル内部で使われるカーネルファイルのリンクおよびロードの順序をランダム化することで実現されている。現状ではリンクおよびロードの順序は決まっており、カーネルバイナリはすべてのユーザーで同じになっている。KARLでは事前にランダムにリンク&ロードされた新しいカーネルバイナリが起動時ごとに新しく採用されるため、すべてのユーザーで異なるカーネルを使うことになる(配置が違っているだけで機能は同じ)。

記事によると、この技術はOpenBSDが最初に導入したものだという。WindowsにはKASLR(Kernel Address Space Layout Randomization)と呼ばれる、カーネル実行のメモリアドレスをランダム化する機能が搭載されており、OpenBSDのKARLと似たようなセキュリティ機能を実現している。OpenBSDではカーネルメモリアドレスは同じだがカーネル自体が個々にユニークでになっており、Windowsではカーネルは同じだがメモリアドレスが違っている。似たような目的を達成するためにそれぞれ異なるアプローチを採用している。Windowsのアプローチは先日公開されたLinuxカーネル4.12にも追加されている。

OpenBSDではこの機能の開発を2017年5月辺りから始めたとしており、短期間で機能が実現されたことになる。このセキュリティ機能はほかのオペレーティングシステムにも移植される可能性がある。
(後藤大地)

関連記事(外部サイト)