禁用,只为自己重新启用的地址空间布局随机化禁用,只为自己重新启用的地址空间布局随机化(Disable

2019-06-14 08:06发布

我想我的系统上禁用地址空间布局随机化(ASLR)(Ubuntu的GNU / Linux的2.6.32-41服务器),但是,如果我用

sysctl -w kernel.randomize_va_space=0

的变化将影响到所有用户的系统上,我相信。 (这是真的吗?)我怎么可以限制禁用ASLR对自己作为唯一的,或仅在其中我调用命令禁用shell会话的用户的影响?

顺便说一句,我看到我的系统的电流(默认)设置为

sysctl -w kernel.randomize_va_space=0

为什么2,而不是1或3? 我在哪里可以找到有关的/ proc / sys目录设置,其范围的数值,其含义文档? 谢谢!

Answer 1:

对于文档randomize_va_space sysctl的设置是在Documentation/sysctl/kernel.txt在内核源代码树。 基本上,

0 - 关闭进程的地址空间随机化关闭。

1 - 让MMAP基地的地址,栈和VDSO页随机。

2 - 另外启用堆随机化。



Answer 2:

本地禁用基于Linux系统上的ASLR的最好方法是使用过程中的个性标志。 操纵个性标志的命令是setarch

-R--addr-no-randomize

禁用虚拟地址空间(打开ADDR_NO_RANDOMIZE)的随机化。

下面是如何进行的:

$> setarch $(uname -m) -R /bin/bash

此命令运行中的ASLR已被禁用的外壳。 这个过程中的所有后代将继承父亲的个性标志,因而具有禁用ASLR。 打破标志的遗产将是调用setuid程序的唯一方法(这将是一个安全漏洞,以支持这种功能)。

请注意, uname -m是在这里没有硬编码平台的体系结构,使这个命令便携。



文章来源: Disable and re-enable address space layout randomization only for myself