目录

1.LSM是什么
2.LSM原理
3.关键hook点

Linux 原生框架机制 Kprobe: Linux提供的原生的调试机制(Debug),允许向任意的内核函数注册Hook回调通知点,当执行到Hooked函数的时候,会触发我们注册的kprobe_handleLSM(Linux Security Modules): Linux提供的原生的Hook框架,本质上来说,LSM是直接串行的插入到了Linux Kernel的代码路径中,是Linux本身对外提供了一套审计机制(Hook框架) 1.LSM是什么

Linux安全模块(LSM)是Linux内核的一个轻量级通用访问控制框架。它使得各种不同的安全访问控制模型能够以Linux可加载内核模块的形式实现出来,用户可以根据其需求选择适合的安全模块加载到Linux内核中,从而大大提高了Linux安全访问控制机制的灵活性和易用性

2.LSM(插桩)原理

LSM是内核安全模块的一套框架,本质是插桩法

3.关键hook点

内核安全相关的关键对象有:task_struct(任务和进程)、linux_binprm(程序)、super_block(文件系统)、inode(管道、文件或者 socket套接字)、file(打开的文件)、sk_buff(网络缓冲区)、net_device(网络设备)、ker_ipc_perm(Semaphore消息,共享内存段,消息队列)、msg_msg(单个消息)。

4.LSM的Hook点用途 5.使用LSM框架实现的实例 SELinuxAppArmorSmackTomoyoCapabilitiesDomain 5.1许多现有的增强访问控制实现,包括 Linux Capabilities Model – Linux能力模型Security-Enhanced Linux (SELinux) Model – 安全增强的Linux (SELinux)模型Domain and Type Enforcement (DTE) Model – 域和类型实施(DTE)模型 关于LSM框架的两种使用方式 像selinux一样,编译进内核中进行使用编译成普通的ko模块进行安装使用 参考: Linux LSM(Linux Security Modules) Hook TechnologyLSM(Linux Security Modules)框架原理解析