【技术实现步骤摘要】
内核线程的保护方法、终端和计算机可读存储介质
[0001]本申请实施例涉及通信
,特别涉及一种内核线程的保护方法、终端和计算机可读存储介质。
技术介绍
[0002]在现代计算机操作系统中,多线程操作扮演着十分重要的角色,它可以允许使用者在同一时间对多个任务加以控制。在操作系统内核中,存在着许多内核线程,内核线程是直接由内核本身启动的进程,它实际上是将内核函数委托给独立的进程来执行。内核线程可以看作内核的分身,一个分身可以处理一件特定的事情。内核线程只能运行在内核态,不能在用户态运行,而且内核线程只能访问虚拟地址空间的内核部分,不能访问用户空间。如果用户需要执行任务,这个任务需要在系统启动后就立即自动执行,而且希望任务在系统运行期间一直不停地运行,那么使用内核线程来执行这种任务是一种很好的选择。
[0003]现有的内核线程保护方案主要为:单线程监控,即创建一个线程,对其他的线程进行监控,但是这种方案有一个严重的缺陷,那就是如果攻击者先将监控线程杀死,那么这个保护措施就失去了作用,即对内核线程保护的安全性低。 />
技术实现思路
...
【技术保护点】
【技术特征摘要】
1.一种内核线程的保护方法,其特征在于,所述内核线程至少包括:第一线程和第二线程,所述方法包括:通过所述第一线程执行待保护工作;通过所述第一线程对所述第二线程进行监控,并通过所述第二线程对所述第一线程进行监控;若监控到所述第一线程出现异常或监控到所述第二线程出现异常,对执行所述待保护工作时的内存读写操作进行拦截。2.根据权利要求1所述的内核线程的保护方法,其特征在于,在所述第一线程和第二线程执行的工作代码存储在内核空间的只读代码段的情况下,所述通过所述第一线程对所述第二线程进行监控,并通过所述第二线程对所述第一线程进行监控,包括:获取所述第一线程执行的工作代码在所述内核空间中的第一地址区间,并获取所述第二线程执行的工作代码在所述内核空间中的第二地址区间;根据所述第一地址区间的内容和所述第二地址区间的内容,对所述第一线程执行的工作代码和所述第二线程执行的工作代码进行校验,得到所述第一线程对应的第一校验结果和所述第二线程对应的第二校验结果;根据所述第一校验结果与所述第一线程对应的第一标准校验结果,监控所述第一线程执行的工作代码是否被篡改;根据所述第二校验结果与所述第二线程对应的第二标准校验结果,监控所述第二线程执行的工作代码是否被篡改。3.根据权利要求2所述的内核线程的保护方法,其特征在于,在所述获取所述第一线程执行的工作代码在所述内核空间中的第一地址区间,并获取所述第二线程执行的工作代码在所述内核空间中的第二地址区间之前,还包括:拦截到从普通世界Normal World向安全世界Secure World中发送的目标SMC指令;其中,所述目标SMC指令用于对工作代码是否被篡改进行检测。4.根据权利要求1所述的内核线程的保护方法,其特征在于,所述通过所述第一线程对所述第二线程进行监控,并通过所述第二线程对所述第一线程进行监控,包括:通过所述第一线程对所述第二线程的运行状态进行监控,确定所述第二线程的运行状态是否为死亡状态或永久挂起状态;通过所述第二线程对所述第一线程的运行状态进行监控,确定所述第一线程的运行状态是否为死亡状态或永久挂起状态。5.根据权利要求4所述的内核线程的保护方法,其特征在于,所述通过所述第一线程对所述第二线程的运行状态进行监控,确定所述第二线程的运行状态是否为死亡状态或永久挂起状态,包括:检测通过所述第一线程创建的task_struct类型的第一指针是否为有效指针;其中,所述第一指针指向所述第二线程的第一task_struct结构体;在所述第一指针为有效指针的情况下,检测所述第一task_struct结构体的state变量的值;在所述第一task_struct结构体的state变量的值为预设的第一类值的情况下,确定所述第二线程的运行状态为死亡状态;
在所述第一task_struct结构体的state变量的值为预设的第二类值的情况下,确定所述第二线程的运行状态为不可中断的挂起状态,当所述第二...
【专利技术属性】
技术研发人员:李晖,杨超锋,刁亮,王富帅,张文,许人杰,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。