在内核模式下运行的有缺陷的程序可能造成的损害示例

在内核模式下运行的有缺陷的程序可能造成的损害示例

我读到,程序在内核模式下运行是危险的,因为它可以访问内核内存。

我正在寻找真实的例子来说明在内核模式下运行的有缺陷的程序会造成什么损害。

我可以说,例如,这种损坏可能是程序可以覆盖内存中的部分或全部调度程序指令,因此下次调度程序需要运行时,CPU将执行垃圾指令?

如果发生这样的损坏会发生什么?我相信在Windows中会出现蓝屏,但是在Linux中会出现什么情况呢?

答案1

我可以说,例如,这种损坏可能是程序可以覆盖内存中的部分或全部调度程序指令,因此下次调度程序需要运行时,CPU将执行垃圾指令?

是的,内核模块或内核线程将能够覆盖部分或全部任何事物在记忆中。

它可能会导致内核崩溃并显示“紧急”错误消息。如果它做了极其错误的事情,可能会导致系统立即冻结,甚至无法输出错误信息。

这些是最好的结果,因为这些是立即引人注目的。

更阴险的情况是,有缺陷的代码可能会到处破坏一些字节,而不会立即导致崩溃。如果它命中任何用户空间进程的代码或数据,该进程可能会行为不当或崩溃,或者处理损坏的信息并输出错误的结果。您的系统可能会在没有明显规律或原因的情况下变得模糊地不可靠。

或者它可能会损坏磁盘 I/O 缓冲区中的传出数据,导致文件和文件系统元数据中累积错误。如果在系统即将对加密磁盘进行大量写入操作之前,行为不当的内核代码损坏了 RAM 中的磁盘加密密钥,则可能会导致使用错误的加密密钥进行写入操作 - 实际上使该数据无法恢复除非你能弄清楚究竟发生了什么。如果该写入操作包含一些重要的文件系统元数据,则您的文件系统现在将严重损坏并导致您丢失大量数据,在最坏的情况下甚至会丢失加密文件系统的全部内容。

相关内容