root 用户是否具有对内核代码的读/写访问权限?

root 用户是否具有对内核代码的读/写访问权限?

我想知道 root 用户是否可以读取和写入内存中的内核代码部分。它可以?

答案1

是的,通常 root 用户有足够的权限来间接修改内核代码,尽管假设考虑了足够的安全措施,可以使用一些机制来限制这一点。特权 root 用户修改内核代码的方法的非详尽列表:

  • ioperm()syscallsiopl()可以设置 I/O 端口权限。

  • 当然,引导目录(包括内核)中的文件是可以修改的。

  • /dev/mem/dev/kmem和字符设备/dev/port允许直接内存访问。

  • 各种 MSR 可用于更改低级 CPU 行为,从而破坏安全性。

  • kexec功能可用于引导至新内核。

  • ACPI 表可以由 root 在运行时加载,在内核中执行 AML。

  • ACPIcustom_method可能被滥用直接写入内存。

  • 如果模块签名被禁用,内核模块可以由 root 加载。

  • 像 kprobes 这样的调试功能可以修改内核行为。

可以通过使用强化内核(例如正确配置)来完成缓解网络安全,或者通过使用内核锁定修补哪些现在是上游。当然,仍然有必要防止 root 用户写入内核所在的引导加载程序或引导分区。

相关内容