Windows 8、8.1和10错误地实现了ASLR安全功能

目录:

Anonim

Windows Vista带来了一种有趣的安全功能,称为ASLR –地址空间布局随机化。 它使用一个随机的内存地址来执行代码,但是在Windows 8,Windows 8.1和Windows 10中,似乎此功能并不总是能够正确实现。

根据安全分析师的说法,在Windows的这最后三个版本中,ASLR没有使用随机内存地址。 换句话说,它是没有用的。

如何手动实施ASLR

通过在随机位置执行代码,ASLR有助于防止利用您试图利用在可预测或已知内存地址中执行的代码的攻击。

当使用EMET或Windows Defender Exploit Guard在系统范围内启用强制性ASLR时,将出现问题。

研究此问题的安全专家是Will Dormann,他解释了您需要了解的有关注册表项的所有问题。

据Dormann所说,Windows Defender Exploit Guard和EMET都可以启用系统范围的ASLR,而无需同时启用系统范围的自底向上的ASLR。

即使Windows Defender Exploit Guard为系统范围的自下而上的ASLR提供了系统范围的选项,默认的GUI值“默认为开”也不会反映基础注册表值。

这将导致以下事实:没有/ DYNAMICBASE的程序可以在没有熵的情况下进行重定位。 每次重新引导和跨不同系统时,程序将被转移到同一地址。

解决方案是您必须使用以下文本创建一个.reg文件:

Windows注册表编辑器版本5.00

“ MitigationOptions” =十六进制:00, 01, 01, 00, 00, 00, 00, 00, 00, 00, 00, 0, 00, 00

然后,您必须将此文件导入到注册表编辑器中,所有内容都应进行整理。

一些用户指出问题出在EMET及其替代品,EMET是系统管理员的工具,他们“手头有太多时间”,并且在没有替代品的情况下就已终止。 他们不认为问题出在底层的ASLR系统上。

Windows 8、8.1和10错误地实现了ASLR安全功能