Intel CET
Intel CET とは何ですか?
Intel CETIntel CET(制御フロー強制技術)は、ハードウェアシャドースタックと間接分岐追跡(IBT)を組み合わせ、ROP/JOP/COP の悪用を阻止する CPU 機能です。
Intel CET は Tiger Lake(第 11 世代 Core)および第 11 世代 Xeon で導入され、二つの保護を組み合わせます。シャドースタックは戻りアドレスを CPU が保護するページに保存し、ユーザコードが直接書き込むことはできません。RET 時に値が一致しなければ #CP 例外が発生します。Indirect Branch Tracking(IBT)はすべての合法的な間接分岐先が ENDBR 命令で始まることを要求し、関数やガジェットの途中への分岐を禁じます。OS は PROC_CET_* や SetProcessMitigationPolicy でプロセスごとに有効化し、コンパイラは -fcf-protection=full で ENDBR を埋め込みます。CET は古典的な ROP/JOP をハードウェア速度で阻止し、ASLR、DEP、スタックカナリア、ソフトウェア CFI を補完します。
● 例
- 01
Windows 11 が第 11 世代 Core CPU 上で CET によるハードウェアスタック保護を有効化する。
- 02
Linux が強化バイナリで USER_SHSTK を有効化する。
● よくある質問
Intel CET とは何ですか?
Intel CET(制御フロー強制技術)は、ハードウェアシャドースタックと間接分岐追跡(IBT)を組み合わせ、ROP/JOP/COP の悪用を阻止する CPU 機能です。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
Intel CET とはどういう意味ですか?
Intel CET(制御フロー強制技術)は、ハードウェアシャドースタックと間接分岐追跡(IBT)を組み合わせ、ROP/JOP/COP の悪用を阻止する CPU 機能です。
Intel CET はどのように機能しますか?
Intel CET は Tiger Lake(第 11 世代 Core)および第 11 世代 Xeon で導入され、二つの保護を組み合わせます。シャドースタックは戻りアドレスを CPU が保護するページに保存し、ユーザコードが直接書き込むことはできません。RET 時に値が一致しなければ #CP 例外が発生します。Indirect Branch Tracking(IBT)はすべての合法的な間接分岐先が ENDBR 命令で始まることを要求し、関数やガジェットの途中への分岐を禁じます。OS は PROC_CET_* や SetProcessMitigationPolicy でプロセスごとに有効化し、コンパイラは -fcf-protection=full で ENDBR を埋め込みます。CET は古典的な ROP/JOP をハードウェア速度で阻止し、ASLR、DEP、スタックカナリア、ソフトウェア CFI を補完します。
Intel CET からどのように防御しますか?
Intel CET に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
Intel CET の別名は何ですか?
一般的な別名: CET, 間接分岐追跡, IBT。
● 関連用語
- appsec№ 1028
シャドースタック
シャドースタックは戻りアドレスの控えを保持する独立した保護スタックで、通常スタックの改ざんを CPU が検出して ROP 攻撃を阻止します。
- appsec№ 217
コントロールフロー整合性(CFI)
CFI はプログラムの間接呼び出しと戻りを事前計算した正当な遷移先集合に制限し、ROP や JOP による制御フロー奪取を阻止します。
- appsec№ 925
リターン指向プログラミング(ROP)
ROP は、RET で終わる短い命令列(ガジェット)を連結して、新しいコードを注入することなく任意の計算を実現するコード再利用型のエクスプロイト手法です。
- appsec№ 303
DEP(データ実行防止)
DEP(NX ビット、W^X)はメモリページを実行不可と印付けし、スタックやヒープに注入されたシェルコードの実行を阻止します。
- appsec№ 064
ASLR
ASLR はコード、スタック、ヒープ、ライブラリの配置アドレスを実行ごとに乱数化し、攻撃者がエクスプロイトに使う目標アドレスを予測できないようにする緩和策です。
- appsec№ 1095
スタックカナリア
スタックカナリアは、関数のローカルバッファと保存された戻りアドレスの間に置かれた秘密値で、制御フローを奪取される前にスタックオーバーフローを検出します。
● 関連項目
- № 581KASLR
- № 1058SMEP / SMAP
- № 671メモリ安全言語