マイクロソフトは9月23日、同社のセキュリティチームによるブログで、Windows10における実効性のある攻撃コードの開発を困難にするため搭載された脆弱性緩和技術に関する記事を公開した。

Windowsに搭載されている、脆弱性を悪用した不正なコード実行を防ぐ(困難にする)緩和機能は、Windowsのバージョンを重ねるごとに、悪用手法に対抗する機能が追加、強化されており、Windows10では、制御フローガード(CFG)という機能が新たに追加されている。

各バージョンの Windows で追加された主なメモリ保護機能

この機能は、アドレス空間レイアウトのランダム化(ASLR)をバイパスしようとする手法への対策として生まれた。

ASLRはアプリケーションが実行されるメモリ アドレスをランダム化することで、攻撃者がコードを挿入して実行することを困難にするが、たとえば、「Use after Free (開放済みメモリ使用)」などの手法を使うと、アプリケーションがメモリのどの位置を使用しているかを特定してASLRをバイパスすることが可能だった。

今回搭載されたCFGは、正常な関数のみを呼び出すことで不正な関数が読み込まれることを防ぎ、アプリケーションのコードの流れと連続性を監視して、不正と判断した場合はコード ハイジャックなどの非直接的なコールが実行される前に、アプリケーションを終了してコードの実行を防ぐもの。

仮にASLRがバイパスされるなどで悪用コードを挿入された場合でも、その先の重要情報の搾取やPCの遠隔操作といった実際の被害を阻止できるという。

同社は、セキュリティ強化の観点から、アプリケーションをCFGでコンパイルするよう、開発者に推奨している。