何年もの間Intelは、間接分岐追跡とシャドウスタックをサポートするControl-Flow Enforcement Technology(CET)をサポートするためのLinuxパッチに取り組んできました。それは何年にもわたって作業中であり、多くの改訂を経て、現在は新しいルートを追求し、シャドウスタックのユーザースペース機能のみに焦点を当てています。
シャドウスタック機能は、リターン指向プログラミング(ROP)攻撃からの防御に重点を置いています。シャドウスタックは各CALLのコピーを保持し、リターン(RET)時に、通常のスタックに格納されているリターンアドレスをチェックして、シャドウスタックの内容と一致することを確認します。一致しない場合、障害が発生します。
Intel ShadowStackのサポートがLinuxで再び機能するようになりました。
Intelは、その一部として間接分岐追跡を使用して、TigerLakeシステムに戻るCETをサポートしています。 JOP/COP攻撃を撃退するためにも。 IBT Linuxパッチが開発されてきましたが、Intelは今後、メインラインLinuxカーネルのアップストリームを取得するためのShadowStackユーザースペースサポートのみに焦点を当てています。これは少なくとも当面の計画であり、IBTパッチが後部座席になりました。
IntelのRickEdgecombeは、日曜日の新しいパッチシリーズで次のように述べています。
これは、ユーザースペースCETシリーズのわずかな再起動です。 Yu-chengからシリーズを引き継ぎます。いくつかの内部推奨事項に従って、バージョン番号をリセットし、それを新しいシリーズと呼んでいます。うまくいけば、それは混乱を引き起こしません。
新しい計画は、現時点ではユーザースペースのシャドウスタックのみをアップストリームすることです。 IBTは後でフォローできますが、今のところ、CETの中で最も需要が高く広く利用可能な(AMD CPUの機能を備えた)部分にのみ焦点を当てます。
これで、
新しいパッチシリーズでは、シャドウスタックの割り当て、古いバイナリが壊れないようにするための変更などの新しいシステムコールがあります。最新のAMDRyzen 5000シリーズプロセッサはシャドウスタックもサポートできますが、現在のパッチは特にIntelCPUに限定されています。計画では、誰かがテストした後、AMD CPUによるユーザースペースシャドウスタックのサポートを許可する予定です。これは、パッチがマージされる前に行われることを願っています。
この新しいユーザースペース向けシャドウスタックシリーズは、以前の停止したCETパッチシリーズよりも早くピックアップされるかどうかを確認します。