[发明专利]基于虚拟机的内核漏洞检测方法及装置有效
申请号: | 201611070436.3 | 申请日: | 2016-11-28 |
公开(公告)号: | CN106778242B | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 李琦 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F21/53 | 分类号: | G06F21/53;G06F21/56;G06F21/57 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟机 内核 漏洞 检测 方法 装置 | ||
1.一种基于虚拟机的内核漏洞检测方法,所述方法在虚拟机沙箱隔离环境下运行,方法包括:
加载驱动程序;
接收用户层进程发送的样本文件的相关信息以及各检测功能点的开关信息;其中,样本文件和检测包来自虚拟机外部主机,启动检测包中的调度管控进程,调度管控进程获取样本文件存储路径,识别样本文件类型,根据通用检测配置文件中的配置选项选择检测模式和各检测功能点,以创建针对所述样本文件的目标检测配置文件;其中,针对不同类型的样本文件,选择的检测模式和各检测功能点有所不同;
根据各检测功能点的开关信息开启内核层行为监控总控开关;
当系统启动样本进程来运行样本文件时,将样本进程认定为新进程添加到进程创建记录名单中;
对所述新进程的内核层各操作行为进行检测;
根据检测结果生成日志文件,将日志文件存储到日志目录下。
2.根据权利要求1所述的方法,在加载驱动程序过程中,所述方法还包括:记录至少一个系统进程的进程ID,记录HAL例程地址表中存储的至少一项关键函数指针值。
3.根据权利要求1或2所述的方法,所述接收用户层进程发送的样本文件的相关信息以及各检测功能点的开关信息具体为:接收用户层进程通过IO控制码发送的样本文件的相关信息以及各检测功能点的开关信息。
4.根据权利要求1或2所述的方法,在所述接收用户层进程发送的样本文件的相关信息以及各检测功能点的开关信息之后,所述方法还包括:
根据样本文件的相关信息以及各检测功能点的开关信息,挂钩SSDT中针对各功能检测点的指定API和NtQueryIntervalProfile。
5.根据权利要求4所述的方法,在所述接收用户层进程发送的样本文件的相关信息以及各检测功能点的开关信息之后,所述方法还包括:
设置进程创建通知例程;
在所述进程创建通知例程中记录所创建的新进程的属性值。
6.根据权利要求4所述的方法,所述对所述新进程的内核层各操作行为进行检测还包括:
利用挂钩技术,在调用NtQueryIntervalProfile之前,获取HAL例程地址表中存储的至少一项关键函数指针值;
将所获取的HAL例程地址表中存储的至少一项关键函数指针值与加载驱动程序过程中所记录的HAL例程地址表中存储的至少一项关键函数指针值进行比对;
若所述至少一项关键函数指针值比对不一致,则检测出所述新进程存在提权行为。
7.根据权利要求4所述的方法,所述对所述新进程的内核层各操作行为进行检测还包括:
利用挂钩技术,在调用相应的指定API之前,根据加载驱动程序过程中所记录的至少一个系统进程的进程ID获取至少一个系统进程的EPROCESS结构地址,同时获取所述新进程的EPROCESS结构地址;
将所述新进程的EPROCESS结构地址中的Token域的指针值与至少一个系统进程的EPROCESS结构地址中的Token域的指针值进行比对;
若所述新进程的EPROCESS结构地址中的Token域的指针值与其中一个系统进程的EPROCESS结构地址中的Token域的指针值比对一致,则检测出所述新进程存在提权行为。
8.根据权利要求5所述的方法,所述对所述新进程的内核层各操作行为进行检测还包括:
利用挂钩技术,在调用相应的指定API之前,获取所述新进程的属性值;
将所获取的所述新进程的属性值与在所述进程创建通知例程中所记录的新进程的属性值进行比对;
若比对不一致,则检测出所述新进程存在提权行为。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611070436.3/1.html,转载请声明来源钻瓜专利网。