CET & Shadow Stack

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

Control Flow Enforcement Technology (CET)

CETはハードウェアレベルで実装されたセキュリティ機能であり、**Return-Oriented Programming (ROP)Jump-Oriented Programming (JOP)**などの一般的な制御フローのハイジャック攻撃を防ぐよう設計されています。これらの攻撃タイプは、プログラムの実行フローを操作して悪意のあるコードを実行したり、善意のコードの断片を連結して悪意のあるアクションを実行したりします。

CETにはIndirect Branch Tracking (IBT)とShadow Stackという2つの主要な機能が導入されています。

  • IBTは、間接的なジャンプやコールが有効なターゲットに行われることを保証します。これは、新しい命令セットを使用して有効なターゲットを明示的にマークすることによって達成され、攻撃者が制御フローを任意の場所に逸らすのを防ぎます。

  • Shadow Stackは、リターンアドレスの整合性を提供するメカニズムです。通常の呼び出しスタックとは別に、リターンアドレスのセキュアで隠されたコピーを保持します。関数がリターンするとき、リターンアドレスはシャドウスタックと照合され、攻撃者が制御フローをハイジャックするためにスタック上のリターンアドレスを上書きするのを防ぎます。

Shadow Stack

シャドウスタックは、リターンアドレスを保存するためだけに使用される専用スタックです。通常のスタックと一緒に動作しますが、通常のプログラムの実行から保護され、隠されているため、攻撃者が不正に干渉するのは困難です。シャドウスタックの主な目的は、通常のスタック上のリターンアドレスに対する変更が使用される前に検出されることを確認し、効果的にROP攻撃を緩和することです。

CETおよびShadow Stackが攻撃を防ぐ方法

ROPおよびJOP攻撃は、アプリケーションの制御フローをハイジャックする能力に依存しています。これは、スタック上のポインタやリターンアドレスを上書きすることを可能にする脆弱性を利用しています。既存のコードガジェットやリターン指向プログラミングガジェットのシーケンスにフローを誘導することで、攻撃者は任意のコードを実行できます。

  • CETのIBT機能により、これらの攻撃は著しく困難になります。間接的なブランチは、明示的に有効なターゲットとしてマークされたアドレスにのみジャンプできるようになります。これにより、攻撃者がバイナリ全体にわたって任意のガジェットを実行することが不可能になります。

  • 一方、シャドウスタックは、攻撃者が通常のスタック上のリターンアドレスを上書きできたとしても、関数から戻る際にシャドウスタックに格納されたセキュアコピーと照合することで不整合が検出されます。アドレスが一致しない場合、プログラムは終了したり他のセキュリティ対策を取ったりして、攻撃が成功しないようにします。

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

Last updated