Linux Daily Topics

Intel CPUの間接分岐保護機能「IBT」Linux 6.2以降でデフォルトに

Linuxカーネルのx86コアアーキテクチャ開発を担当するPeter Zijlstra(Intel)は11月5日、Intel CPUの保護機能「Intel CSET」の一部である「Indirect Branch Tracking(IBT⁠⁠」をデフォルトで有効とするパッチをサインオフした(コミッターはGoogleのKees Cook⁠⁠。これにより、11月後半にリリースが予定されている「Linux 6.1」の次のバージョンとなる「Linux 6.2」でIBTがデフォルト実装されることがほぼ確実となった。

x86/Kconfig: Enable kernel IBT by default -git.kernel.org

IBTはIntelが「Tiger Lake」以降のCPUに実装したマルウェアからのCPU保護機能「Intel CSET」に含まれており、2022年5月22日にリリースされた「Linux 5.18」ではじめてメインラインでサポートされた。Intel CSETは急増する「Return-oriented Programming(ROP⁠⁠」攻撃や「Jump/Call-oriented Programming(JOP/COP⁠⁠」といった脆弱性攻撃を回避しやすくするために開発された機能で、IBTはその主要な構成技術。⁠ENDBR」という命令(目印)を新たに追加し、プログラムの命令を追跡、間接分岐命令の後の次の到達地がENDBRであれば正常にプログラムを実行するが、ENDBRでない場合は例外を発生させプログラムを終了させる。これによりROS攻撃の最初のステップを大幅に減らせるとしている。

また、IBTと同様にLinux 6.2でのサポートが期待されているCFI(Control Flow Integrity)スキームとCSETを統合した「FineIBT」はIBTが有効であることが前提となるため、IBTがデフォルトとなることでFineIBTのサポートも進んでいくと見られている。

おすすめ記事

記事・ニュース一覧