[发明专利]一种漏洞检测方法、装置和存储介质在审
申请号: | 201910753298.6 | 申请日: | 2019-08-15 |
公开(公告)号: | CN111191243A | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 李振环;陈楠;刘深荣 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 黄威 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 漏洞 检测 方法 装置 存储 介质 | ||
1.一种漏洞检测方法,其特征在于,包括:
当检测到待检测对象受到网络攻击时,调用漏洞检测函数;
通过所述漏洞检测函数,获取所述待检测对象当前的线程信息;
在所述线程信息中查询所述待检测对象当前的线程栈指针值;
当所述线程栈指针值位于预设栈指针值范围之外时,确定待检测对象存在漏洞。
2.根据权利要求1所述的漏洞检测方法,其特征在于,所述当检测到待检测对象受到网络攻击时,调用漏洞检测函数,包括:
当检测到待检测对象受到网络攻击时,获取所述待检测对象的导入函数表;
基于所述导入函数表查询漏洞检测函数的存储地址;
根据所述存储地址调用所述漏洞检测函数。
3.根据权利要求2所述的漏洞检测方法,其特征在于,所述当检测到待检测对象受到网络攻击时,调用漏洞检测函数之前,还包括:
获取待检测对象的内存函数;
将所述内存函数头部的指令修改为跳转指令,所述跳转指令携带目标位置;
在所述内存函数的目标位置插入检测代码,得到所述漏洞检测函数。
4.根据权利要求3所述的漏洞检测方法,其特征在于,所述通过所述漏洞检测函数,获取所述待检测对象当前的线程信息,包括:
在执行所述漏洞检测函数的跳转指令时,根据所述跳转指令将当前指针跳转至所述目标位置;
以所述目标位置为起始位置执行所述检测代码,以获取所述待检测对象当前的线程地址;
基于所述线程地址,搜索所述待检测对象当前的线程;
当搜索到所述待检测对象当前的线程时,读取所述待检测对象当前的线程信息。
5.根据权利要求2所述的漏洞检测方法,其特征在于,所述当检测到待检测对象受到网络攻击时,调用漏洞检测函数之前,还包括:
获取检测代码,并根据所述检测代码创建漏洞检测函数;
以内存函数的格式对所述漏洞检测函数进行存储;
在所述待检测对象的导入函数表中添加所述漏洞检测函数的存储地址。
6.根据权利要求5所述的漏洞检测方法,其特征在于,所述通过所述漏洞检测函数,获取所述待检测对象当前的线程信息,包括:
以所述漏洞检测函数的头部为起始位置执行所述检测代码,以获取所述待检测对象当前的线程地址;
基于所述线程地址,搜索所述待检测对象当前的线程;
当搜索到所述待检测对象当前的线程时,读取所述待检测对象当前的线程信息。
7.根据权利要求1至6任一项所述的漏洞检测方法,其特征在于,所述当所述线程栈指针值位于预设栈指针值范围之外时,确定待检测对象存在漏洞,包括:
当所述线程栈指针值位于预设栈指针值范围之外时,确定待检测对象存在漏洞;
停止所述待检测对象的服务;
采集通过所述漏洞攻击所述待检测对象的攻击信息。
8.根据权利要求1至6任一项所述的漏洞检测方法,其特征在于,当所述线程栈指针值位于预设栈指针值范围之外时,确定待检测对象存在漏洞之前,还包括
在所述线程信息中获取线程环境块,所述线程环境控制块存储有预设栈指针值范围;
在所述线程环境块中提取所述预设栈指针值范围。
9.一种漏洞检测装置,其特征在于,包括:
调用单元,用于当检测到待检测对象受到网络攻击时,调用漏洞检测函数,所述漏洞检测函数包括检测命令;
获取单元,用于通过所述漏洞检测函数,获取所述待检测对象当前的线程信息;
查询单元,用于在所述当前的线程信息中查询所述待检测对象当前的线程栈指针值;
确定单元,用于当所述线程栈指针值位于预设栈指针值范围之外时,确定待检测对象存在漏洞。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8任一项所述的漏洞检测方法中的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910753298.6/1.html,转载请声明来源钻瓜专利网。