【问题标题】:how to overcome buffer overflow attacks?如何克服缓冲区溢出攻击?
【发布时间】:2013-06-19 21:44:27
【问题描述】:

我阅读了有关缓冲区溢出攻击的信息,想知道是否将处理器更改为拒绝执行不在代码区域中的指令可以解决吗? 谢谢

【问题讨论】:

  • 不。只是该死的检查你的阵列。 snprintf()fgets() 等和sizeof 是你的朋友。
  • @userXXX 如果你真的不让任何事情超过预期的时间,那么即使没有写异或执行技巧(所有正常的操作系统反正包括 OS X 和 Linux,但当然不包括 Windows...)

标签: buffer-overflow processor


【解决方案1】:

这通常是通过在现代 CPU 中设置内存页或段(例如堆栈)上的不执行位来完成的。它有助于防止一些基于堆栈的溢出,但不是 100% 万无一失的解决方法。

查看http://en.wikipedia.org/wiki/No_execute

【讨论】:

  • 值得注意的是,这只会阻止注入堆栈的代码被执行。例如,由于缓冲区溢出可能会重写返回指针,因此系统仍然容易受到return into libc attack 的攻击。
猜你喜欢
  • 2011-11-12
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 2016-06-06
  • 2019-04-14
  • 2021-12-03
  • 1970-01-01
相关资源
最近更新 更多