什么是堆栈随机化,它如何防止缓冲区溢出攻击?

Alc*_*ott 5 stack buffer-overflow

我从一本书中读到,缓冲区溢出可能用作注入将攻击系统的漏洞利用代码的方式。和堆栈随机化是防范此类攻击的有效途径之一。

我不明白什么是堆栈随机化及其如何防止这些攻击?

Hea*_*ohn 4

消除堆栈或缓冲区溢出(或使其变得更加困难)的技术称为地址空间布局随机化(ASLR),而不是堆栈随机化。其背后的理论是尝试随机化项目在内存中的位置,以使注入恶意代码的任务变得更加困难。一些缓冲区溢出和堆栈溢出攻击依赖于了解项目在内存中的位置,以便能够注入可以进行有效内存引用的代码。

所有这一切的困难在于,即使有了这样的机制,仍然有可能注入自包含代码,这些代码可以在运行时进行有效的相对内存引用,从而允许恶意代码执行。

查看stackoverflow 上的这篇文章,其中包含有关缓冲区溢出的更多信息的链接。