web-dev-qa-db-ja.com

HiASLRとは何ですか?

私はこの言葉を一日中聞いています。簡単な紹介をいただけますか? ASLRとどう違うのですか?

9
kiran

HiASLRは、Windows 8で改善されたASLRを表す用語です。「hi」の部分は、スタックとヒープをオフセットできるランダムビット数の増加によって生成されるエントロピーの改善を指します。マイクロソフトは、さまざまなシステムヒープ、システムテーブルなどをランダム化して、 NOPスレッド を使用する可能性を高めたり、情報漏えいをより困難にしたりしました。

次の表は、 Ken JohnsonとMatt Millerの「Win8でのエクスプロイト緩和の改善」 講演から引用したものです。BlackHatUSA 2012。

Entropy (in bits)      |    Windows 7    |           Windows 8         |
per region             | 32-bit | 64-bit | 32-bit | 64-bit | 64-bit HE |
-----------------------|--------+--------|--------+--------|-----------|
Bottom-up allocations* | 0      | 0      | 8      | 8      | 24        |
    Stacks             | 14     | 14     | 17     | 17     | 33        |
    Heaps              | 5      | 5      | 8      | 8      | 24        |
Top-down allocations*  | 0      | 0      | 8      | 17     | 17        |
    PEBs / TEBs        | 4      | 4      | 8      | 17     | 17        |
EXE images             | 8      | 8      | 8      | 17**   | 17**      |
DLL images             | 8      | 8      | 8      | 19**   | 19**      |
Non-ASLR DLL images*   | 0      | 0      | 8      | 8      | 24        |

* opt-in, either via flag in module or system option
** 64-bit DLLs based below 4GB get 14 bits, EXEs below 4GB get 8 bits.

最後の列は Hと EnASは、HiASLRの正式名称です。

11
Polynomial