【问题标题】:Can protection mode be turned off with inline assembly?可以使用内联汇编关闭保护模式吗?
【发布时间】:2012-04-24 08:12:00
【问题描述】:

如果用户没有root权限,假设操作系统是linux,该用户是否仍然可以编写带有内联汇编的用户空间程序来关闭计算机上的保护模式以覆盖其他段中的内存?

【问题讨论】:

    标签: linux assembly linux-kernel kernel inline-assembly


    【解决方案1】:

    除非用户知道获取 root 权限的安全漏洞,否则不会。 /dev/mem 等机制允许 root 读写所有用户空间内存,内核模块加载允许 root 访问内核内存和系统的其余 IO 空间。

    【讨论】:

    • 我的 5 美分 - 它不一定是内核漏洞。可能有一个易受攻击的用户空间进程以 root 权限运行,通过利用它你可以获得一个 root,然后加载一个进入保护模式的内核模块。
    • 是的,事实上他不需要加载内核模块来读取/写入所有用户空间内存,只需进入内核空间。 (编辑:我在维基上找到了答案,因为它现在和我一样是你的 :-)
    • 我对操作系统如何防止人们做未经授权的事情非常着迷。只是从上一门汇编入门课程开始,在我看来,如果你能找到一种写入代码堆栈指针的方法,那么你就劫持了系统,你几乎可以做任何你想做的事情。虽然如果你只局限于你的小部分,那么你仍然是有限的。对我来说如何解决这个问题非常有趣。
    • 确实,非常有趣。简而言之,操作系统管理对内存的所有访问,因此如果您在用户空间(内核之外的任何内容)中运行,内核将决定您可以访问哪些内存,而您不能访问哪些内存。它不仅保护每个用户的内存不受其他用户的影响,还保护每个进程的内存不受以同一用户身份运行的其他进程的影响。 en.wikipedia.org/wiki/Virtual_memory
    【解决方案2】:

    假设系统按预期工作,不。

    实际上,毫无疑问,在某个地方存在一些允许它的漏洞 - 鉴于代码库的大小,错误是不可避免的,并且可能会利用一些漏洞进入第 0 环。

    也就是说,我只是根据统计数据进行猜测——我无法指出具体的漏洞。

    【讨论】:

      猜你喜欢
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      相关资源
      最近更新 更多