Security 内核-在环0中执行->;风险?

Security 内核-在环0中执行->;风险?,security,unix,kernel,privileges,virtual-address-space,Security,Unix,Kernel,Privileges,Virtual Address Space,这个问题是非常理论性的 请考虑这种情况: 在ring0中运行最大权限 如果一个内核有20个可信的运行进程 每个进程从自己的页面读取/写入/执行,否则无法执行 这些进程有一个彼此相距很远的虚拟地址,这应该提供足够的进程隔离 它们由管理器(根)设置,并以最少的权限(适当设置的ldt位)自行运行 只有受信任的程序员才会添加经过仔细审查的代码->信任 关于SEG故障,是否仍存在导致整个系统崩溃的风险 如果用户是可信的,那么这种隔离策略就足够了吗? 更新(回答ninjalj): 1) 这些过程不需

这个问题是非常理论性的

请考虑这种情况:

  • 在ring0中运行最大权限
  • 如果一个内核有20个可信的运行进程
  • 每个进程从自己的页面读取/写入/执行,否则无法执行
  • 这些进程有一个彼此相距很远的虚拟地址,这应该提供足够的进程隔离
  • 它们由管理器(根)设置,并以最少的权限(适当设置的ldt位)自行运行
  • 只有受信任的程序员才会添加经过仔细审查的代码->信任

关于SEG故障,是否仍存在导致整个系统崩溃的风险

如果用户是可信的,那么这种隔离策略就足够了吗?


更新(回答ninjalj): 1) 这些过程不需要相互通信。如果将来他们需要,他们将感谢一个具有预定偏移量和原子锁的大型环形缓冲区以及完整的RCu支持(已经在预测中完成)

如果缓冲区满了(不应该发生,因为有很多极端测试都是为了将值设置为适当的大小),他们将等待添加任何内容(重新同步,但这是最糟糕的情况)

2) 不需要进程间验证。他们都表现得好像只有他们一个人在机器上

3) 我们拥有全面的RCU支持(即使流程目前不需要,但很快就会需要)。在不可行的情况下,使用基本原子锁


4) DMA被放置在一个不应该被重写的物理偏移(大偏移)处。它当前放在低物理内存中。保护页保护此区域。

这些内核进程如何相互通信?他们是否正确验证来自其他流程的请求?一个进程是否可以重写它已经发送给另一个进程的请求(它在共享内存中)?您有支持DMA的设备吗?这些设备能覆盖你的记忆吗?@ninjalj:不错,让我更新我的问题;)