什么是 HiASLR?

信息安全 aslr windows-8
2021-08-20 11:08:17

我整天都在听到这个词。谁能给我一个简短的介绍?它与 ASLR 有何不同?

1个回答

HiASLR 是代表 Windows 8 中改进的 ASLR 的术语。“hi”部分指的是由于堆栈和堆可以抵消的随机位数增加而产生的熵的改进。Microsoft 还包括对各种系统堆、系统表等的随机化,以使使用NOP 雪橇或信息泄漏的可能性更加困难。

下表摘自Ken Johnson 和 Matt Miller 在 BlackHat USA 2012 上的“Win8 中的漏洞利用缓解改进”演讲。

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.

请注意,最后一列代表,这是 HiASLR 的正式名称