[发明专利]一种基于硬件机制的内核控制流异常检测方法有效
申请号: | 201710674436.2 | 申请日: | 2017-08-09 |
公开(公告)号: | CN107506638B | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 曾庆凯;焦贺贺 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F11/36 |
代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 戴朝荣 |
地址: | 210000 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 硬件 机制 内核 控制 异常 检测 方法 | ||
1.一种基于硬件机制的内核控制流异常检测方法,其特征在于,包括以下步骤:
进入VMM环境:在Intel处理器启动后进行配置,使系统进入VMM环境执行;
生成合法跳转目的地址集合:通过对目标操作系统内核进行解析,并运行预先准备的测试程序,分别产生三种指令的合法跳转目的地址集合,三种指令的合法跳转目的地址集合分别为call指令合法跳转目的地址集合、jump指令合法跳转目的地址集合和ret指令合法跳转目的地址集合;所述生成合法跳转目的地址集合的过程包括:收集内核函数入口地址;运行预先准备的测试程序;根据测试程序的执行情况设置白名单;生成call指令合法跳转目的地址集合;生成jump指令合法跳转目的地址集合;生成ret指令合法跳转目的地址集合;
配置VMCS区域:配置目标操作系统运行的VMCS区域,使其能够捕捉记录写满时产生的不可屏蔽中断,设置此不可屏蔽中断的中断处理程序地址;所述配置VMCS区域的过程包括:分配VMCS区域地址空间;写入VMCS ID值;配置I/O位图;配置MSR位图;配置捕捉NMI中断:设置系统使其能够捕捉记录写满时产生的NMI中断,而其它类型的中断则由目标操作系统自行处理,并且设置好此NMI中断的中断处理程序地址;配置扩展页表;开启扩展页表;
配置LBR:配置控制着LBR机制行为方式的IA32_DEBUGCTL寄存器和IA32_LASTBRANCH_TOS寄存器,使LBR在系统运行期间记录所需的分支跳转的源地址和目的地址;所述配置LBR的过程包括:检测处理器是否支持所需LBR功能;配置分支记录存放地址:分支记录的基地址是通过IA32_LASTBRANCH_TO寄存器来设定的;配置分支过滤功能:通过设置MSR_LBR_SELECT寄存器来配置分支过滤功能,使LBR只记录内核间接call、内核间接jump和内核ret;开启LBR机制:设置IA32_DEBUGCTL寄存器开始LBR记录功能;
配置PMU:配置控制着PMU机制行为方式的IA32_PMCI寄存器和IA32_PERFEVTSEL1寄存器,使其在LBR写满时产生一个不可屏蔽中断;所述配置PMU的过程包括:检测硬件是否支持所需PMU功能;配置监控事件:通过设置IA32_PERFEVTSELx寄存器来配置需要监控的事件,即间接call、间接jump和ret;配置事件计数器溢出条件:配置计数器溢出的条件为16,即当计数器计数到16时产生NMI中断;开启计数器:通过设置IA32_PERF_GLOBAL_CTRL寄存器和各自对应的控制器来开启事件计数器;
进入VM环境:使系统进入VM环境,目标操作系统开始执行,硬件机制自动记录分支跳转;
分支记录验证:根据跳转指令类型的不同,比较跳转目的地址是否在相应的合法跳转目的地址集合中,如果在,则为合法跳转,否则,为异常控制流,系统发出警报。
2.如权利要求1所述的一种基于硬件机制的内核控制流异常检测方法,其特征在于:所述进入VMM环境的过程包括:检测处理器是否支持VMX架构;开启VMX进入允许;分配VMXON区域地址空间;初始化VMXON区域;进入VMX模式,检查执行是否成功。
3.如权利要求1所述的一种基于硬件机制的内核控制流异常检测方法,其特征在于:所述进入VM环境的过程包括:执行VMCLEAR指令;执行VMPTRLD指令;执行VMLAUNCH指令。
4.如权利要求1所述的一种基于硬件机制的内核控制流异常检测方法,其特征在于:所述分支记录验证的过程包括:
步骤901:置LBR序号为0;
步骤902:从LBR分支记录中顺序取出一个新的记录,LBR序号加1;
步骤903:判断指令是否为call指令,是转到步骤904,否转到步骤905;
步骤904:验证call指令跳转目的地址是否合法,是转到步骤909,否转到步骤910;对call指令跳转目的地址是否合法的验证是通过查看记录的目的地址是否在call指令合法跳转目的地址集合中,如果在集合中,则跳转目的地址是合法的,否则,跳转目的地址不是合法的;
步骤905:判断指令是否为jump指令,是转到步骤906,否转到步骤907;
步骤906:验证jump指令跳转目的地址是否合法,是转到步骤909,否转到步骤910;对jump指令跳转目的地址是否合法的验证是通过查看记录的目的地址是否在jump指令合法跳转目的地址集合中,如果在集合中,则跳转目的地址是合法的,否则,跳转目的地址不是合法的;
步骤907:判断指令是否为ret指令,是转到步骤908,否转到步骤910;
步骤908:验证ret指令跳转目的地址是否合法,是转到步骤909,否转到步骤910;对ret指令跳转目的地址是否合法的验证是通过查看记录的目的地址是否在ret指令合法跳转目的地址集合中,如果在集合中,则跳转目的地址是合法的,否则,跳转目的地址不是合法的;
步骤909:查看LBR序号是否为16,是转到步骤911,否转到步骤902;
步骤910:系统会向管理员发出警报,内核控制流执行出现异常情况;
步骤911:验证结束,目标操作系统的控制流执行到目前为止是正确的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710674436.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:信息展示方法和装置、终端及可读存储介质
- 下一篇:一种应用管控方法和装置