第 42 章 启用 kstack 随机化偏移以提高安全性
内核堆栈(kstack)随机化偏移安全功能,为每个系统调用随机化内核堆栈位置。这可防止攻击者利用内核漏洞。
与依赖 kstack 随机化循环计数器的其他架构不同,一种不可可靠的 64 位 ARM (aarch64)的方法使用内核的随机数字生成器(RNG)。这个方法的原因如下:
- 没有持续启用或快速周期计数器
- 缺少高频率计时器
-
不支持 v8.5
FEAT_RNG指令集的系统
虽然内核 RNG 通常是一个可靠的解决方案,但它可能会带来显著的延迟激增,特别是对于实时(RT)工作负载。因此,在 aarch64 实时内核中默认禁用 kstack 随机化偏移功能。然而,这个决定包括权衡:它稍微降低内核安全性。
42.1. 在 64 位 ARM 上启用 kstack 随机化偏移 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
在 64 位 ARM (aarch64)系统上,实时内核中默认禁用 kstack 随机化偏移功能。如果您的用例可以接受潜在的延迟,您可以重新启用此功能来提高内核安全性。
先决条件
- 有管理员特权。
- 您的系统在 64 位 ARM (aarch64)架构上运行。
流程
使用
grubby启用randomize_kstack_offset内核参数。# grubby --update-kernel=ALL --args="randomize_kstack_offset=y"重启系统以使更改生效。
# reboot
验证
检查
/proc/cmdline文件中指定了randomize_kstack_offset=y参数。# cat /proc/cmdline输出包括
randomize_kstack_offset=y。