Ubuntu是否使用DEP和ALSR等安全function?

我经常读到Windows上提供了诸如DEP(数据执行保护)和ASLR(地址空间布局随机化)等function。 在Windows上,您可以控制为32位程序打开DEP。

  • 这些function是否在Ubuntu中可用
  • 我们需要做些什么才能打开这些function?

对两者都是的。 它们默认开启; 你不需要做任何事情来启用它。 更长的答案如下……

默认情况下,在Ubuntu中使用DEP。 如果CPU支持,则通过NX位完成,或者如果CPU不支持,则通过内存分段进行仿真。 有关更多详细信息,请参阅非可执行内存function项 。

默认情况下,ASLR在任何可以重定位的内存段(堆栈,库,堆,mmap)上用于Ubuntu。 默认情况下不可重定位的程序的唯一部分是主代码区域(“文本”段)。 程序需要专门编译为PIE(位置无关的可执行文件)才能启用此function。 许多敏感程序已经以这种方式构建。 有关更多详细信息,请参阅列表

Ubuntu中默认还提供许多其他安全function。 有关完整列表,请参阅Ubuntu安全function文档 。

默认情况下,Linux内核确实使用了类似的技术,但它们与Windows版本不同。 如果您的处理器能够设置NX位(最现代的CPU),那么内核将使用它。 内核中的ASLR实现也很弱,可以安装更强的实现,但默认情况下不会在Ubuntu上安装。

一般而言,简单来说,你需要一个PAE版本的内核。 有关此主题的详细信息,请参阅此摘要 。