Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.5. 内核请求空间布局随机化

内核 Adress Space Layout Randomization(KASLR)由两个部分组成,它们共同工作来增强 Linux 内核的安全性:

  • 内核文本 KASLR
  • 内存管理 KASLR

内核文本本身的物理地址和虚拟地址分别随机化为不同的位置。内核的物理地址可以为 64TB 以下的任意位置,而内核的虚拟地址在 [0xffffffff80000000、0xffffc0000000](1GB 空间)之间受到限制。

内存管理 KASLR 有三个部分,其起始地址在特定区域随机化。因此,如果此代码依赖于知道感兴趣的符号位于内核地址空间中的什么位置,KASLR 可以防止将内核执行并重定向到恶意代码。

内存管理 KASLR 部分包括:

  • 直接映射部分
  • vmalloc 部分
  • vmemmap 部分

KASLR 代码现在编译到 Linux 内核中,它默认是启用的。要明确禁用它,请在内核命令行中添加 nokaslr 内核选项。