小编heb*_*thu的帖子

Linux内核安全的一些基本问题

我对Linux内核了解不多,有一些疑问。

  1. 将内核内存与用户空间内存分开的主要目的是什么?确保用户应用程序不会对内核做任何坏事?

  2. 用户级应用程序有多少种方法可以将控制权转移到内核?我能想到的包括(1)调用系统调用,(2)将内存映射到内核(但我认为mmap()也是一个系统调用),以及(3)加载内核模块(但我猜是lsmod还调用一些系统调用)。我对么?还有其他方法我错过了吗?

  3. 有多少种攻击内核的方法?我可以简要介绍一下他们吗?

  4. 如果我获得了root权限,是否意味着我完全控制了内核?也就是说,我可以对内核和硬件做任何我想做的事情?还是我对内核的权力仍然有限?

如果有人能帮我找出这些问题的答案,我将不胜感激。

linux security kernel system-calls linux-kernel

8
推荐指数
1
解决办法
562
查看次数

系统调用是用户程序有意影响 Linux 内核状态的唯一方式吗?

我认为用户程序可以通过多种方式有意影响 Linux 内核的状态。

  1. 通过调用系统调用;
  2. 通过调用mmap(),写入已经映射到内核的内存;
  3. 通过insmod加载内核模块。

我想不出任何其他方式。不考虑硬件中断,因为它们不是由用户程序启动的。我认为mmap()insmod都在使用系统调用,所以用户程序可能不得不依赖系统调用来影响内核的状态。我对么?

如果我是对的,假设内核中存在一些漏洞,恶意用户程序想要利用它们来攻击内核。考虑到我们的验证总能说出真相,是否有可能验证每个系统调用来防御此类攻击?

linux security kernel system-calls linux-kernel

1
推荐指数
1
解决办法
529
查看次数

标签 统计

kernel ×2

linux ×2

linux-kernel ×2

security ×2

system-calls ×2