[发明专利]一种内核栈保护方法和系统在审
申请号: | 202310303025.8 | 申请日: | 2023-03-23 |
公开(公告)号: | CN116415254A | 公开(公告)日: | 2023-07-11 |
发明(设计)人: | 李晖;许人杰;王富帅 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/55;G06F21/64 |
代理公司: | 北京金咨知识产权代理有限公司 11612 | 代理人: | 宋教花 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内核 保护 方法 系统 | ||
1.一种内核栈保护方法,其特征在于,该方法包括以下步骤:
监控在富执行环境下内核中的事件函数,拦截与内核栈操作相关的事件函数,并在被拦截的与内核栈操作相关的事件函数设置勾住点;
接收与内核栈相关的事件函数所触发的SMC指令,在可信执行环境下的监视器模式中基于SMC指令包含的调用号判断所述SMC指令是否为预设范围内需执行内核栈操作的SMC指令,若SMC指令不是预设范围内需执行内核栈操作的,则返回勾住点取消对事件函数的拦截,若SMC指令是预设范围内需执行内核栈操作的,则对被拦截事件函数的内核栈操作执行合法性检查步骤;
合法性检查步骤:基于被拦截事件函数的内核栈操作对应的线程标识和所请求的内核栈基地址与安全内存中存储的线程标识和线程标识对应的内核栈基地址,检查被拦截事件函数对应的内核栈操作的合法性,其中,所述安全内存是在Linux内核初始化阶段在可信执行环境下分配的;
当检查到的被拦截事件函数对应的内核栈操作不合法将系统锁死,当检查到的被拦截事件函数对应的内核栈操作合法返回勾住点取消对事件函数的拦截。
2.根据权利要求1所述的内核栈保护方法,其特征在于,不是预设范围内需执行内核栈操作的SMC指令与非调度线程相对应,该方法还包括:
在内核运行期间将非调度线程对应的内核栈在所述安全内存中的区域读写权限设置为在富执行环境下Linux内核只读,在可信执行环境下的监视器模式中可读可写;
所述当检查到的被拦截事件函数对应的内核栈操作合法返回勾住点取消对事件函数的拦截步骤后还包括,在可信执行环境下的监视器模式中执行所述被拦截事件函数对应的内核栈操作,完成后由可信执行环境切换回富执行环境。
3.根据权利要求2所述的内核栈保护方法,其特征在于,所述在内核运行期间将非调度线程对应的内核栈在所述安全内存中的区域读写权限设置为在富执行环境下Linux内核只读,在可信执行环境下的监视器模式中可读可写步骤,通过内核栈控制器来实现安全内存中的区域读写权限的设置。
4.根据权利要求1所述的内核栈保护方法,其特征在于,所述预设范围内执行内核栈操作包括内核栈创建、内核栈切换和内核栈写入;
所述合法性检查步骤包括:
当被拦截事件函数的内核栈操作为内核栈创建,获取内核栈创建对应的线程标识和所请求的内核栈基地址,检查创建的内核栈基地址是否与所述安全内存中已存储的内核栈基地址冲突,若发生冲突则认定内核栈创建不合法,若不发生冲突则认定内核栈创建合法;
当被拦截事件函数的内核栈操作为内核栈切换,获取内核栈切换对应的线程标识和所请求的内核栈基地址,检查切入的内核栈基地址是否与所述安全内存中已存储的内核栈基地址相同,若不同则认定内核栈创建不合法,若相同则认定内核栈创建合法;
当被拦截事件函数的内核栈操作为内核栈写入,获取内核栈写入对应的线程标识和所请求的内核栈基地址,检查写入的内核栈基地址是否与所述安全内存中存储的写入线程的内核栈基地址相同,若不同则认定内核栈写入不合法,若相同则认定内核栈写入合法。
5.根据权利要求1所述的内核栈保护方法,其特征在于,预设范围内需执行内核栈操作的SMC指令与调度线程相对应,该方法还包括:
所述预设范围内需执行内核栈操作对应的内核栈在所述安全内存中权限被设置为可写或可执行,且不允许同时对任一线程的内核栈同时执行内核栈写入和内核栈执行。
6.根据权利要求1所述的内核栈保护方法,其特征在于,在所述合法性检查步骤中,当被拦截事件函数的内核栈操作为内核栈写入,该方法还包括:
结合前向控制流完整性保护和/或后向控制流完整性保护检查所述内核栈写入的合法性。
7.根据权利要求1所述的内核栈保护方法,其特征在于,所述若SMC指令不是预设范围内需执行内核栈操作的,则返回勾住点取消对事件函数的拦截步骤之后,该方法还包括:返回勾住点并基于所述SMC指令在可信执行环境下的监视器模式中执行SMC指令所对应的内核栈操作,在内核栈操作执行完成后切换可信执行环境为富执行环境;
所述不是预设范围内需执行内核栈操作包括内核栈释放。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310303025.8/1.html,转载请声明来源钻瓜专利网。