为什么在内核模式下执行回调函数不好?

时间:2016-10-23 02:17:43

标签: c linux-kernel operating-system kernel

为什么在内核空间中调用来自用户空间的回调函数被认为是“坏”' vs从用户空间调用用户空间中的回调函数?

2 个答案:

答案 0 :(得分:3)

允许用户以内核模式执行代码将是一个巨大的安全风险。也就是说,如果用户空间程序在内核模式下执行,则没有安全性:游戏完全丢失,用户可以完全访问所有人和所有内容。

请注意,如果您在内核模式下执行,则虚拟内存查找不再受特权级别的保护。在x86中,当处于内核模式时,您的权限级别为0;意思是你可以访问物理内存中的任何内容因此,如果进程的回调在内核空间中执行,那么它就可以在机器上做任何想要的任何事情。

想要删除每个人的页面表? K.想要查看那些页面表中的内容吗?你说对了。想要将内核内存归零并导致整个系统崩溃? Lolz好主意。想破解机器上的另一个进程,以便记录其I / O流量?似乎是合法的。

不要让用户在内核空间中运行代码。

答案 1 :(得分:0)

有些系统支持此类回调。 E.g:

http://h41379.www4.hpe.com/doc/732final/4527/4527pro_001.html#index_x_190

在这种情况下,您的进程必须具有在内核模式下执行的适当权限。

允许代码在内核模式下执行会使系统崩溃并出现安全漏洞。

相关问题