【技术实现步骤摘要】
一种攻击检测方法及装置
本专利技术涉及计算机安全领域,尤其涉及一种攻击检测方法及装置。
技术介绍
随着信息技术的发展,计算机网络已经成为人们获取信息的主要工具,随之而来的是对计算机数据安全技术需求的不断提高。其中,堆喷射(HeapSpray)作为一种黑客常用的漏洞利用(Exploit)技术,经常被用于进行高级持续性威胁(AdvancedPersistentThreat,APT)等攻击方式中,从而实现数据窃取的目的。堆喷射是漏洞攻击中常用的技术,很多文档(doc,pdf,swf等)或者网页(html等)中都可以嵌入脚本,在文档或者网页打开的时候这些脚本可以在相应的应用程序,例如word,adobereader或者浏览器进程中执行,黑客在进行漏洞攻击的时候可以构造恶意文件或者html网页,先执行一段脚本把滑板指令(通常是NOP空指令)加ShellCode写入默认堆内存中并且尽量填满堆内存,又称为堆喷射技术,然后再触发漏洞,劫持EIP寄存器(保存CPU要执行的下一条指令地址)稳定跳转到堆中的滑板指令进而执行到ShellCode,如图1所示。通常情况下,应用程序(以32位程序为例)刚运行的时候仅使用进程默认堆中低地址空间的少量内存,黑客的恶意脚本通过构造适当大小的滑板指令加ShellCode内存块,再重复申请分配该内存块适当的次数,就可以达到接近填满整个默认堆内存空间的效果,然后触发漏洞直接跳转到类似0x06060606,0x07070707,…,0x0c0c0c0c这样的固定地址就可以稳定跳转到滑板指令(NOP空指令),进而一直执行到后面的ShellCode。目 ...
【技术保护点】
1.一种攻击检测方法,其特征在于,包括:响应于目标进程加载操作系统提供的动态链接库DLL的操作,在所述目标进程对应的应用程序用户态内存中搜索内存分配函数的地址;在搜索到所述内存分配函数的地址后,将所述内存分配函数的第一条指令修改为第二跳转指令;所述第二跳转指令,用于当所述目标进程执行所述内存分配函数时,执行第二回调函数;响应于执行所述第二回调函数的操作,记录所述目标进程所需占用内存的参数信息;并根据所述目标进程所需占用内存的参数信息,生成检测结果。
【技术特征摘要】
1.一种攻击检测方法,其特征在于,包括:响应于目标进程加载操作系统提供的动态链接库DLL的操作,在所述目标进程对应的应用程序用户态内存中搜索内存分配函数的地址;在搜索到所述内存分配函数的地址后,将所述内存分配函数的第一条指令修改为第二跳转指令;所述第二跳转指令,用于当所述目标进程执行所述内存分配函数时,执行第二回调函数;响应于执行所述第二回调函数的操作,记录所述目标进程所需占用内存的参数信息;并根据所述目标进程所需占用内存的参数信息,生成检测结果。2.根据权利要求1所述攻击检测方法,其特征在于,所述响应于目标进程加载操作系统提供的动态链接库DLL的操作,在所述目标进程对应的应用程序用户态内存中搜索内存分配函数的地址,具体包括:将操作系统的动态链接库加载函数中的第一条指令修改为第一跳转指令;所述第一跳转指令,用于当目标进程根据所述动态链接库加载函数加载所述操作系统提供的DLL时,执行第一回调函数;响应于执行所述第一回调函数的操作,加载自定义DLL;所述自定义DLL,用于生成第一预设线程;所述第一预设线程,用于在所述目标进程对应的应用程序用户态内存中搜索内存分配函数的地址。3.根据权利要求2所述攻击检测方法,其特征在于,所述响应于执行所述第一回调函数的操作,加载自定义DLL,具体包括:响应于执行所述第一回调函数的操作,获取所述目标进程的进程识别号PID;判断所述目标进程的PID是否存储在活动进程列表中;所述活动进程列表,用于存储之前运行过的进程的PID;若所述目标进程的PID没有存储在所述活动进程列表中,则加载所述自定义DLL。4.根据权利要求1所述攻击检测方法,其特征在于,所述响应于执行所述第二回调函数的操作,记录所述目标进程的内存占用信息;所述根据所述目标进程所需占用内存的参数信息,生成检测结果,具体包括:响应于执行所述第二回调函数的操作,记录所述目标进程请求分配内存时,连续请求分配同一预设大小内存的次数;若所述连续请求分配同一预设大小内存的次数大于第一阈值,则在默认堆内存中从高地址开始往低地址搜索所述预设大小的相邻内存块,记录所述预设大小的相邻内存块中每个内存块的前L个字节分别包括的指令的种类个数N;若所述预设大小的相邻内存块中每个内存块的前L个字节分别包括的指令的种类个数N,均不为零且小于第二阈值,则生成告警信号。5.根据权利要求4所述攻击检测方法,其特征在于,在确定所述连续请求分配同一预设大小内存的次数大于第一阈值之后,所述方法还包括:创建第二预设线程;所述第二预设线程,用于在默认堆内存中从高地址开始往低地址搜索所述预设大小的相邻内存块,记录所述预设大小的相邻内存块中每个内存块的前L个字节分别包括的指令的种类个数N;所述第二预设线程,还用于若所述预设大小的相邻内存块中每个内存块的前L个字节分别包括的指令的种类个数N,均不为...
【专利技术属性】
技术研发人员:黄勇,王光辉,李超君,钟鑫,陆晓敏,
申请(专利权)人:成都亚信网络安全产业技术研究院有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。