增强Linux内核中访问控制安全的方法

2019-10-09 11:44:19王旭

需要有一点的内核源码经验,比如说对于read操作,源码如下:


在这里当发起read系统调用后,就会进入到sys read,在sys read中会调用vfs read函数,在vfs read的参数中正好有我们需要过滤的信息,那么就可以把vfs_ read当做一个hook点。

对于第二个问题:

如何Hook?这里介绍两种方式:

第一种方式:直接进行二进制替换,将call指令的操作数替换为hook函数的地址。


第二种方式:Linux内核提供的kprobes机制。

其原理是在hook点注入int 3(x86)的机器码,让cpu运行到这里的时候会触发sig trap信号,然后将用户自定义的hook函数注入到sig trap的回调函数中,达到触发hook函数的目的。这个其实也是调试器的原理。

LSM

LSM是Linux Secrity Module的简称,即linux安全模块。是一种通用的Linux安全框架,具有效率高,简单易用等特点。原理如下:

LSM