我如何启用/禁用内核kaslr,smep和smap

时间:2019-04-10 15:08:42

标签: linux linux-kernel x86

我想知道如何从Linux内核启用或禁用这3个功能:

  • kaslr
  • s脚
  • 地图

我已阅读过我必须在内核的命令行中添加一些内容才能启用此功能。 我研究了/ proc / cmdline。我没有发现任何有关smeep的信息。

但是,当我询问/ proc / cpuinfo时,我可以看到smep已启用。

所以我的问题是:启用或禁用这3个功能的正确方法是什么。 检查它们是否在运行时启用的正确方法是什么

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下内核引导参数来禁用这些功能:

  • nosmap:禁用SMAP。从3.7开始支持,这也是第一个支持SMAP的版本。
  • nosmep:禁用SMEP。从3.0开始受支持,这也是第一个支持SMEP的版本。
  • nokaslr:禁用KASLR。从3.14开始支持,这也是第一个支持KASLR的版本。

默认情况下,内核还会在引导时启用这些功能(如果基础CPU和内核版本支持的话)。引导后永远不会启用或禁用它们。

您可以通过简单地使用内核模块更改所有逻辑内核上CR4寄存器中的相应标志来以编程方式禁用/启用SMAP和SMEP。