ブログ

FFRI BLOG

2012-08-6 Black Hat 技術報告 前編


技術戦略室の大居です。


予告通り、3回に分けて Black Hat で注目したトレンドについて解説します。


Black Hat というセキュリティカンファレンスは、毎年 "新しい" 技術やトレンドに関する発表を優先して選ぶ傾向にあります。
そのためか、Windosw 8 に関する発表は複数 [1][2][3] ありました。
その中で私が参加したのは、"Windows 8 Heap Internals" [1] と "Exploit Mitigation Improvements in Windows 8" [2] です。



Windows 8 は脆弱性攻撃の弱体化 (exploit mitigation) に力を注いでいるようで、カーネル内での DEP 機能、ヒープ管理の堅牢性向上、ASLR の改良などが行われているとのことです。
ですが、これらを挙げるととても長くなってしまうので主要な改良の一部を紹介します。


Windows 8 のカーネルは、特にカーネルを乗っ取る攻撃に対処するため、CPU が持つ新しい保護機能を使用するように改良されました。
カーネルモード内でプログラムの実行ができない (DEP の有効な) メモリ領域を確保できるようになり、さらにカーネルモードで発生した NULL ポインタ参照が攻撃に転用されないよう、アドレス空間の NULL に近い領域はメモリ確保に使用することができなくなりました。


さらに、最近の CPU (Intel であれば Ivy Bridge 以降) がサポートする新しい保護機能 (Intel の場合 SMEP、ARM の場合 PXN) の利用によって、カーネルモード内では脆弱性攻撃に悪用されうるユーザーモードのメモリが実行できなくなりました。


ユーザーモードに目を移してみましょう。
プロセス内のメモリ配置をランダムにする ASLR の強度は大幅に向上しました。
特に、VirtualAlloc などで確保するメモリアドレスがはじめてランダム化されたこと、そして確保したヒープの中からランダムな順序でメモリを確保する機構が追加されたことなどで、Windows の ASLR はほとんど完全になったといえます。
また、64-bit プロセスであれば独自のコンパイルフラグを有効にすることで、通常の ASLR に比べてメモリ配置のランダム性をさらに向上させることができるようになりました。


Windows 8 のヒープについては、さらなる改良が施されています。
ヒープを破壊することによって起こる脆弱性攻撃に対抗するため、Windows ヒープの内部構造やページの配置を変更して幾つかのチェックを追加し、さらにヒープ構造に正常アクセスできなかった場合には即座にアプリケーションを終了させるようになりました。このような改良により、今まで行われていた攻撃のほとんどを無力化できるようになりました。


しかしながら、"Windows 8 Heap Internals" において発表した両者によると、部分的にはまだ攻撃の可能性が残っているとのことでした。
"Exploit Mitigation Improvements in Windows 8" を発表したのは Microsoft 社員であり、極めて詳細に Windows 8 内部の exploit mitigation 機能が解説されました。
特に Windows 8 だけに限らず、Microsoft Visual C++ の最新バージョン (2010 や 2012) が含んでいるセキュリティ機能の強化 (例えばバッファオーバーフローを防止する /GS メカニズムの最新版) にも踏み込んでいたことが印象的です。


さて、Black Hat USA 会場に Windows 8 の専門知識を持つ Microsoft 社員がいて、私が Windows Phone の研究を行っている。なおかつ、次リリースである Windows Phone 8 は Windows 8 と同等のShared Windows Core を搭載する予定だと当の Microsoft からアナウンスが行われている…。
となれば…これは聞かなければならないでしょう!



 "Windows Phone 8 には Windows 8 の exploit mitigation 機能が搭載される予定なのか?"



下手な英語、しかも部分的に関係ない質問だったので一瞬戸惑われてしまいましたが、簡潔に答えて頂きました。




 "Yes."




 (※この回答は米 Microsoft Corporation の公式見解を示すものではありません。ご了承ください。)





…これは期待できそう!




[1] Black Hat USA 2012 - https://media.blackhat.com/bh-us-12/Briefings/Valasek/BH_US_12_Valasek_Windows_8_Heap_Internals_Slides.pdf

[2] Black Hat USA 2012 - https://media.blackhat.com/bh-us-12/Briefings/M_Miller/BH_US_12_Miller_Exploit_Mitigation_Slides.pdf

[3] Black Hat USA 2012 - https://media.blackhat.com/bh-us-12/Briefings/Tsai/BH_US_12_Tsai_Pan_Exploiting_Windows8_Slides.pdf