我知道ASLR是如何工作的,它是如何在Linux和Windows系统上实现的。它提供了一个额外的保护层,恶意软件必须加以考虑。但如今,随着计算机的长期使用,ASLR似乎并没有像我们所希望的那样对地址空间进行随机化。Windows 8有采取额外步骤以确保ASLR是有效的。
当我构建和升级我的Linux内核时,我才发现了内核级的ASLR,并注意到在引导时它说:
KASLR not enabled
在做了一些搜索之后,我在KASLR上发现的并不多。所以现在我很好奇这里有没有人有经验。
或者世界还没准备好.
发布于 2014-10-07 12:55:08
在Linux发布当天,KASLR受到了严厉的批评,而且在那一天也被打败了。grsecurity公司的“花花公子”就此写了一篇文章. (连同LWN评论),我只想简单地总结一下。我强烈建议阅读原始资料。
正如我们都知道的,地址空间布局随机化最初是通过随机设置堆栈上许多指针的位置来使攻击复杂化的。击败ASLR需要以下任一项:
第二种选择对于内核非常有希望:它们不可能有太多的随机偏移量,因为一些硬件配置可能有有限的地址空间,而最重要的是内核不能在整个生命周期中更改它们的偏移量!这意味着一个单一的内存布局泄漏将击败KASLR,直到机器重新启动。事实证明,这种错误据说经常发生在斯彭德。
这正是Linux的弱点,甚至是Spender所说的“失败”的原因。这一机制不是为内核设计的。如果你想要更多的细节,一定要读他的文章。他确实谈到了其他实现,您应该从上面的要点中了解到,不只是实现薄弱,而是设计。与传统的ASLR相比,KASLR在如何实施方面需要更多的注意,因为开发条件要好得多。
编辑:很显然,你只是一个谷歌搜索远离了解如何利用Windows实现。
https://security.stackexchange.com/questions/69054
复制相似问题