我设法执行 objcopy 以查看和提取 .rodata 段内容作为不可变完整性检查的引用,但是,我意识到内核驱动程序无法读取文件。从这个意义上讲,我们如何编写驱动程序代码来确定它在运行时的完整性?
一些示例代码来制作一些插图会很好。
最佳答案
您可以使用加密签名的模块在运行时验证内核模块的完整性。
以 this Unix and Linux Stack Exchange answer 开头.
Here是 Jake Edge 关于截至 2011 年主线内核中加密签名状态的更新。补丁最终迁移到 mainline in 3.7 .
模块签名是最近内核中的一个配置选项。您可以在配置内核时通过menuconfig
: "Enable loadable module support"->"Module signature verification"来设置。
关于c - 运行时内核驱动程序完整性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956618/