Linux 5.18 以降、Intel が Control-flow Enforcement Technology (CET) の一部として提供したメインライン カーネルに Indirect Branch Tracking (IBT) が組み込まれています。 Linux 6.4 の場合、インテルのエンジニアは CET の他の部分としてシャドウ スタックのサポートをメインライン化しようとしましたが、土壇場で問題が判明しました。シャドウ スタックのサポートが v6.5 サイクルに統合されることを願っていますが、ホストのサポートを超えて、インテルのエンジニアは仮想マシン内でこれらのセキュリティ機能を使用できるようにするための CET 仮想化にも取り組んでいます。
本日は、Intel Tiger Lake プロセッサ以来搭載されているこれらの CPU ハードウェア機能を活用して、VM 内での ROP/JOP スタイルの制御フロー破壊攻撃を防ぐための、CET 仮想化向けのインテルからのパッチの 3 回目の反復となります。
現在のパッチでは、ユーザーのシャドウ スタックと間接ブランチ トラッキング、およびカーネルの間接ブランチ トラッキングのサポートに対して制御フロー強制テクノロジが機能します。 Intel CET スーパーバイザのシャドウ スタックのサポートは、今後の作業が残されています。
この保留中のコードと、v6.4 の時点ではまだメインライン化されていないシャドウ スタック コードが必要であることに加えて、この CET 仮想化に必要な保留中の QEMU パッチもいくつかあります。この取り組みの最新のカーネル パッチに興味がある場合は、この LKML パッチから見つけることができます。シリーズです。 v3 パッチは linux-next に基づいて再ベースされており、以前のパッチ反復に対するいくつかの修正が含まれています。