ニュース

Intel次期CPU“Tiger Lake”にアーキテクチャレベルでセキュリティ機能追加

 Intelは16日(現地時間)、次期CPU“Tiger Lake”世代より、強力なセキュリティ機能「Intel CET(Control-Flow Enforcement Technology)」を実装すると発表した。

 この機能の利用にはOSのサポートが必要で、Windows 10では「Hardware-enforced Stack Protection」という名前で実装されるが、本日より提供開始されたInsider Previewで実現されている。

 Intel CETは、いわばWindows XP SP2以降に実装されている「データ実行防止(DEP)」に次ぐ強力なセキュリティ対策だ。DEPの実装により、データ領域におけるコードの実行が不可能になったため、大幅にセキュリティ性が向上したのだが、近年このDEPを迂回する手法が編み出されており、ソフトウェアだけの対策では不十分となった。

 これらの手法はROP(Return Oriented Programming)、もしくはJOP(Jump Oriented Programming)、COP(Coll Orented Programming)などと呼ばれ、攻撃者のあいだで近年流行している。これらの手法は実行可能なメモリから実行されている既存のコードを利用しているため、検出や防止が困難になっている。

 たとえばROPでは、メモリ上のプログラムのコードをスキャンし、プログラマが意図していないが、無効なオフセットからはじまると解釈した場合に、シーケンスを終了させるリターン命令(RET命令)として解釈できるコードを探す。そしてリターンの戻り先のアドレスを注意深く配置することで、オリジナルのプログラムが配置されている実行可能なバイトを利用して、本来意図していない任意の攻撃コードを実行できるようになる。

 このROP攻撃は、RET命令に依存していて、次に実行する命令のアドレスをスタックから取得するようになっている。よって、スタックを破壊することが攻撃の糸口となる。

Intel CETの仕組み

 そこでIntel CETでは、OSがアプリケーションを不慮のメモリアクセスから保護するシャドウスタックの作成することを可能にする。シャドウスタックでは、リターンアドレスのコピーをCPUに保存しておく。これにより、ROP攻撃を行なう目的で、スタックの戻りアドレスを変更/破壊できたとしても、CETステートマシンがシャドウスタックとの不一致を検出でき、OSに例外を報告して攻撃を防げるようになる。

 同様にJOPやCOPなどの間接的な分岐命令に対しては、間接的なブランチトラッキング機能を追加することで、攻撃を防ぐ仕組みとなっている。

 Intel CETはマイクロアーキテクチャレベルで実装されており、モバイルのみならず、デスクトップやサーバープラットフォームでも実装される。