Linuxカーネルに「ロックダウン」という新たなセキュリティ機構が追加されるようだ。何年にも及ぶ無数のレビューや議論、コードの書き直しの末に、Linus Torvalds氏によって米国時間9月28日にようやく承認された。
この新たな機構は間もなくリリースされる「Linuxカーネル5.4ブランチ」における「Linux Security Module」(LSM)として投入され、デフォルトでは無効化される予定となっている。利用がオプショナルとなる理由は、既存システムが動作しなくなるリスクがあるためだ。
同機構が担う主な機能は、ユーザーランドのプロセスとカーネルコードの分離を強化するために、今までであれば設計上可能であったrootアカウントによるカーネルコードとのやり取りにすら制限を加えるというものだ。
新たな「ロックダウン」機構を有効化した場合、rootユーザーであったとしても一部のカーネル機能の使用に制限が加えられるため、攻撃者の手に落ちたrootアカウントからも、OSに対するさらなる影響を与えることが難しくなる。
Googleのエンジニアであり、数年前にこの機構を提案したMatthew Garrett氏は5月に、「このロックダウンモジュールは、ブート(プロセス)の初期段階でカーネルをロックダウンできるようにするのが目的だ」と述べていた。
このモジュールを最終的に承認した、Linuxカーネルの生みの親であるTorvalds氏は、「有効化された場合、カーネル機能のさまざまな部分に制限が加えられる」と述べている。
こういった制限には、ユーザーランドのプロセスによって供給されたコードを経由して任意のコードの実行を許す可能性のあるカーネル機構へのアクセスに制約を加えたり、/dev/memや/dev/kmemといったメモリー領域に対する書き込み/読み込みプロセスをブロックしたり、カーネルモジュールの署名を強制するといった、数多くのものが含まれている。
このモジュールでは、「integrity」(整合性)と「confidentiality」(機密性)という2種類のロックダウンモードがサポートされる。それぞれは固有のものであり、異なるカーネル機能に対するアクセスを制限するようになっている。
カーネルのロックダウン機構への取り組みは2010年代の初頭に着手され、現在GoogleのエンジニアであるGarrett氏によって推進された。