一种内核级rootkit检测处理方法及系统技术方案

技术编号:9855091 阅读:89 留言:0更新日期:2014-04-02 18:08
本发明专利技术公开一种内核级rootkit检测处理方法及系统。其方法为:A、预先在内核模块链表当前节点保存新加载模块节点签名,并将当前节点签名保存在新加载模块节点中;B、新模块加载,判断新加载模块节点中保存的签名与当前节点签名是否匹配,判断当前节点中保存的签名与新加载模块节点签名是否匹配,若其中之一不匹配,则执行步骤C;C、将当前运行的系统调用表与备份系统调用表比对,若不一致,则生成发现隐藏模块报告。本发明专利技术通过设置新加载模块与链表当前节点签名的互相匹配机制来检测rootkit入侵,并通过系统调用表与备份基准文件的对比来进一步确认报告,从而提高检测结果的可靠性,同时设置系统恢复方法,保证了系统的安全运行。

【技术实现步骤摘要】
—种内核级rootkit检测处理方法及系统
本专利技术涉及计算机
,尤其涉及一种内核级rootkit检测处理方法及系统。
技术介绍
Android系统恶意软件数量增长迅速,而对Android安全性的研究却远远落后。rootkit技术是恶意程序用于隐藏自身的主要技术手段之一,其原理为:系统调用实现函数位于内核空间,而可加载内核模块可以通过内核符号表访问内核空间中的各种资源,这就为攻击者通过编写一个LKM (Loadable Kernel Modules ),利用HOOK技术挂钩系统调用以执行攻击者代码片段成为了可能。现有的内核级rootkit正是基于这种原理实现的。修改系统调用表的rootkit对位于系统调用表中的一些系统调用函数地址进行修改,它利用Android操作系统中的特性可加载内核模块,将一些系统调用的地址重定向到含有恶意代码的系统调用地址。内核级rootkit加载进Android系统,主要是通过如下步骤执行: 1、获取系统调用表地址 System, map文件包含了系统的内核符号地址,由于每次编译内核时,内核符号有可能会发生变化,因此每次编译都会生成一个新的System, map。System, map文件的内容格式为:线性地址类型符号。可通过文件搜索命令grep在文件中查找sys_call_table,例如,如下所示: sunxzisunxz:?/work/sdk_svn/SDK/STA0S_SDK/sourceCodeForSDK/sdk_kernel/goldfish$ grep sys_call_table System, mapc0028f84 T sys_call_table 从查询结果可以看出,系统调用表的地址为c0028f84,类型字母T意思是text,表示该符号位于代码段。类型字母小写表示局部,大写表示全局。2、实现系统调用的劫持 根据系统调用表地址,利用hook技术实现系统调用函数的劫持。实现方法是在rootkit模块加载时将系统调用表中待劫持的系统调用索引替换为攻击者定义的函数指针,如图1:重定向系统调用所示。图1以read和write系统调用展示了重定向系统调用过程。sys_read和sys_write是这两个系统调用的实现函数,系统调用表中_NR_read和_NR_write两个索引指向这两个函数(图中虚线所示)。攻击者将系统调用表中相关索引指向的具体实现函数更改为:rootkit_read和rootkit_write (图中实线所不),这样当read和write被调用时,实际执行的就是攻击者函数。3、执行恶意程序代码 攻击者可以在rootkit_read和(或)rootkit_write函数中增加触发条件分支,当智能设备执行特定动作时满足一定条件从而运行相应的指令序列。当攻击者设定的特定条件被触发时,攻击者可以在相应的逻辑分支中做任何事情,比如获取用户关键信息等。4、实现rootkit模块自身的隐藏 Andro i d系统对内核模块的维护通过一个全局双向链表来实现,该链表的每个节点都包括数据以及指向前驱和后继的两个指针。该数据结构定义在/include/linux/list, h中。list.h同时给出了链表的基本添加、删除、移动及替换等操作,并将相关函数作为内核符号导出。rootkit模块的隐藏是在模块自身的初始化函数中,将其前驱和后继节点的next和prev重定向以将自身从链表中删除。而与此同时,传统的rootkit检测技术由于各自的局限性,不能够完全适用于Android 平台。因此,现有技术还有待于改进和发展。
技术实现思路
鉴于上述现有技术的不足,本专利技术的目的在于提供一种内核级rootkit检测处理方法及系统,旨在解决目前Android系统无法很好检测内核级rootkit及进行系统恢复问题。本专利技术的技术方案如下: 一种内核级rootkit检测处理方法,其中,所述方法包括以下步骤: A、预先在内核模块链表当前节点中保存新加载模块节点生成的签名,并将内核模块链表当前节点生成的签名保存在所述新加载模块节点中; B、按照加载命令执行所述新模块的加载,判断该新加载模块节点中保存的签名与内核模块链表当前节点生成的签名是否匹配,以及同时判断内核模块链表当前节点中保存的签名与该新加载模块节点生成的签名是否匹配,若新加载模块节点中保存的签名与所述当前节点生成的签名不匹配和/或当前节点中保存的签名与该新加载模块节点生成的签名不匹配,则执行步骤C ; C、将系统当前运行的系统调用表与预先备份的系统调用表进行比对,若比对不一致,则系统生成发现rootkit隐藏模块报告。所述的内核级rootkit检测处理方法,其中,所述方法还包括: D、根据系统生成的发现rootkit隐藏模块的报告触发系统调用对应的恢复函数进行系统还原,所述系统还原包括系统调用表的恢复、终止恶意进程、移除可疑文件及关闭可疑网络端口。所述的内核级rootkit检测处理方法,其中,所述步骤D中系统调用表的恢复具体为: 在内核空间中为每个系统调用函数分配空间,并根据所述备份的系统调用表建立正确的系统调用函数; 在内核空间中为待恢复的系统调用表分配空间,根据所述备份的系统调用表使待恢复的系统调用表中的表项指向正确的系统调用函数地址。所述的内核级IOOtkit检测处理方法,其中,所述步骤D中终止恶意进程具体为: 访问内核进程链表获取系统中运行的进程信息,将所获取的系统中运行的进程信息与/proc目录中的进程信息进行比对,若所获取的系统中运行的进程信息中有不在/proc目录中的进程,则消除该恶意进程。所述的内核级rootkit检测处理方法,其中,所述步骤D中移除可疑文件具体为:在所述终止恶意进程中获取恶意进程名称,并根据该恶意进程名称在已恢复的系统调用表中抓取可疑关键信息字段,将该可疑关键信息字段在包含隐藏文件在内的所有文件中进行匹配,从而获取包含该可疑关键信息字段的可疑文件,通过执行rm命令删除该可疑文件。所述的内核级rootkit检测处理方法,其中,所述步骤D中关闭可疑网络端口具体为:检测系统所有已打开网络端口中是否存在包含所述可疑关键信息字段的网络端口,若存在,则关闭该网络端口。所述的内核级rootkit检测处理方法,其中,当所述新加载模块节点中保存的签名与所述当前节点生成的签名匹配且所述当前节点中保存的签名与所述新加载模块节点生成的签名也匹配,同时系统当前运行的系统调用表与预先备份的系统调用表经比对一致,则所述新加载模块加入内核模块链表,所述当前节点重新生成签名并更新保存在所述新加载模块节点中,所述新加载模块节点重新生成签名并更新保存在所述当前节点中。所述的内核级rootkit检测处理方法,其中,当内核模块卸载时,更新内核模块链表中该内核模块前后节点中的签名信息。一种内核级rootkit检测处理系统,其中,所述系统包括: 签名设置模块,用于预先在内核模块链表当前节点中保存新加载模块节点生成的签名,并将内核模块链表当前节点生成的签名保存在所述新加载模块节点中; 签名匹配模块,用于判断该新加载模块节点中保存的签名与内核模块链表当前节点生成的签名是否匹配,以及判本文档来自技高网
...

【技术保护点】
一种内核级rootkit检测处理方法,其特征在于,所述方法包括以下步骤:A、预先在内核模块链表当前节点中保存新加载模块节点生成的签名,并将内核模块链表当前节点生成的签名保存在所述新加载模块节点中;B、按照加载命令执行所述新模块的加载,判断该新加载模块节点中保存的签名与内核模块链表当前节点生成的签名是否匹配,以及判断内核模块链表当前节点中保存的签名与该新加载模块节点生成的签名是否匹配,若新加载模块节点中保存的签名与所述当前节点生成的签名不匹配和/或当前节点中保存的签名与该新加载模块节点生成的签名不匹配,则执行步骤C;C、将系统当前运行的系统调用表与预先备份的系统调用表进行比对,若比对不一致,则系统生成发现rootkit隐藏模块报告。

【技术特征摘要】
1.一种内核级IOOtkit检测处理方法,其特征在于,所述方法包括以下步骤: A、预先在内核模块链表当前节点中保存新加载模块节点生成的签名,并将内核模块链表当前节点生成的签名保存在所述新加载模块节点中; B、按照加载命令执行所述新模块的加载,判断该新加载模块节点中保存的签名与内核模块链表当前节点生成的签名是否匹配,以及判断内核模块链表当前节点中保存的签名与该新加载模块节点生成的签名是否匹配,若新加载模块节点中保存的签名与所述当前节点生成的签名不匹配和/或当前节点中保存的签名与该新加载模块节点生成的签名不匹配,则执行步骤C ; C、将系统当前运行的系统调用表与预先备份的系统调用表进行比对,若比对不一致,则系统生成发现rootkit隐藏模块报告。2.根据权利要求1所述的内核级rootkit检测处理方法,其特征在于,所述方法还包括: D、根据系统生成的发现rootkit隐藏模块的报告触发系统调用对应的恢复函数进行系统还原,所述系统还原包括系统调用表的恢复、终止恶意进程、移除可疑文件及关闭可疑网络端口。3.根据权利要求2所述的内核级rootkit检测处理方法,其特征在于,所述步骤D中系统调用表的恢复具体为: 在内核空间中为每个系统调用函数分配空间,并根据所述备份的系统调用表建立正确的系统调用函数; 在内核空间中为待恢复的系统调用表分配空间,根据所述备份的系统调用表使待恢复的系统调用表中的表项指向正确的系统调用函数地址。`4.根据权利要求2所述的内核级rootkit检测处理方法,其特征在于,所述步骤D中终止恶意进程具体为: 访问内核进程链表获取系统中运行的进程信息,将所获取的系统中运行的进程信息与/proc目录中的进程信息进行比对,若所获取的系统中运行的进程信息中有不在/proc目录中的进程,则消除该恶意进程。5.根据权利要求3或4所述的内核级rootkit检测处理方法,其特征在于,所述步骤D中移除可疑文件具体为:在所述终止恶意进程中获取恶意进程名称,并根据该恶意进程名称在已恢复的系统调用表中抓取可疑关键信息字段,将该可疑关键信息字段在包含隐藏文件在内的所有文件中进行匹配,从而获取包含该可疑关键信息字段的可疑文件,通过执行rm命令删除该可疑文件。6.根据权利要求5所述的内核级rootkit检测处理方法,其特征在于,所述步骤D中关闭可疑网络端口具体为:检测系统所有已打开网络端口中是否存在包含所述...

【专利技术属性】
技术研发人员:孙向作
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1