「Hardware-enforced Stack Protection」(ハードウェア強制型スタック保護)と呼ばれるこの機能は、ローカル環境のCPUハードウェアを用いることで、該当CPUが使用するメモリー上で動作するアプリケーションの実行を保護するというものだ。 同機能の主な役割は、その名が示すように、アプリケーションの実行時に制御フローやローカル変数、パラメーターが格納されるスタックメモリーの保護だ。 この「ハードウェア強制型スタック保護」は、(1)近代的なCPUハードウェアと、(2)シャドースタックを組み合わせて、メモリースタックの厳格な管理を強制することで実現される。 シャドースタックという言葉は目新しいが、これはプログラムが想定している制御フロー(コードの実行順序とも呼ばれる)をコピーしたスタックのことだ。 この新たな「ハードウェア強制型スタック保護」は、近代的なCPUに搭載されて