我经常读到在Windows上提供了一些特性,例如DEP(数据执行预防)和ASLR(地址空间布局随机化)。在Windows上,您可以对32位程序打开DEP进行一些控制。
- 这些特性是否在Ubuntu上可用?
- 我们需要做些什么来启用这些特性吗?
是的,两者都是默认开启的;您不需要做任何操作来启用它们。下面是更详细的解释...
在Ubuntu中,默认使用DEP。如果CPU支持,通过NX位实现;如果CPU不支持,则通过内存分段进行模拟。更多详情,请参阅非可执行内存特性项目。
在Ubuntu中,默认使用ASLR对可以重定位的内存段(堆栈、库、映射内存)进行保护。唯一不能默认重定位的部分是程序的主代码区域("text"段)。要启用此功能,程序需要特殊编译为PIE(位置无关可执行文件)。许多敏感程序已经以这种方式构建。更多详情,请参阅列表。
在Ubuntu中,默认提供了许多其他安全功能。请查看Ubuntu安全功能文档获取完整列表。
dmesg
显示“无法启用NX(执行禁用)保护:非PAE内核”。另一方面,当我从http://bazaar.launchpad.net/~ubuntu-bugcontrol/qa-regression-testing/master/files/head%3A/scripts/kernel-security/nx/运行测试时,似乎强制执行了nx,但对于`-pie`和`-rie`测试则不是。所以这对我来说有点令人困惑。 - arrange