一种漏洞利用的检测方法和系统技术方案

技术编号:9738824 阅读:257 留言:0更新日期:2014-03-06 18:18
本发明专利技术公开了一种漏洞利用的检测方法和系统,该方法包括:Loader管理模块获得数据流中待分析的数据块;Loader管理模块从所述待分析的数据块的起始位置或者指定位置,尝试将所述待分析的数据块视为指令执行,并在尝试将所述待分析的数据块视为指令执行的过程中,监控漏洞利用程序中的指定类型函数调用;Loader管理模块在监控到所述指定类型函数被调用,且调用所述指定类型函数的地址位于所述待分析的数据块的起止范围之内时,判定所述数据流中包含漏洞利用。本发明专利技术实施例,不仅可以避免依靠检测漏洞利用样本特征码的局限性,而且能够检测到与已知漏洞利用样本不同的漏洞利用和针对未知漏洞的利用,甚至是所有基于缓冲区溢出的攻击。

【技术实现步骤摘要】
一种漏洞利用的检测方法和系统
本专利技术涉及信息安全和网络安全领域,尤其是涉及了一种漏洞利用的检测方法和系统。
技术介绍
随着计算机与网络的普及,数字技术正在改变着、影响着人类的生活方式。高速发展中的互联网日夜不停地传输大量的文字、数字图形、声音、影像等数据流。检测、识别这些数据流中是否存在威胁的需求越来越广泛。现有技术中,安全研究员获得漏洞利用样本,并根据该漏洞利用样本从数据流中提取相应的特征码,并通过比对特征库中的特征码以及数据流中提取的特征码,以检测数据流中是否存在具有安全威胁的漏洞利用。但是,上述方式过于依赖于漏洞利用样本的特征,其无法检测到与已知漏洞利用样本不同的漏洞利用,而且由于漏洞利用样本众多,因此,根据漏洞利用样本从数据流中提取相应的特征码时还存在现实困难。
技术实现思路
本专利技术实施例提供一种漏洞利用的检测方法和系统,不仅可以避免依靠检测漏洞利用样本特征码的局限性,而且能够检测到与已知漏洞利用样本不同的漏洞利用和针对未知漏洞的利用,甚至是所有基于缓冲区溢出的攻击。为了达到上述目的,本专利技术实施例提供一种漏洞利用的检测方法,所述方法包括以下步骤:Loader管理模块获得数据流中待分析的数据块;所述Loader管理模块从所述待分析的数据块的起始位置或者指定位置,尝试将所述待分析的数据块视为指令执行,并在尝试将所述待分析的数据块视为指令执行的过程中,监控漏洞利用程序中的指定类型函数调用;其中,所述指定类型函数在调用时,表示存在漏洞利用;所述Loader管理模块在监控到所述指定类型函数被调用,且调用所述指定类型函数的地址位于所述待分析的数据块的起止范围之内时,判定所述数据流中包含漏洞利用。所述方法还包括:[0011 ] 所述Loader管理模块在尝试将所述待分析的数据块视为指令执行之前,将所述待分析的数据块的起始位置以及块大小通知给Monitor管理模块;所述Monitor管理模块利用所述待分析的数据块的起始位置以及所述块大小对所述Loader管理模块的指令执行过程进行监控;如果所述Loader管理模块在指令执行过程中触发异常,或者,所述Loader管理模块在指令执行过程中的执行时间超过预设阈值,则:所述Monitor管理模块中断所述Loader管理模块的指令执行过程,调整所述Loader管理模块的重新执行的位置,并继续由所述Loader管理模块从所述待分析的数据块的调整后的位置开始,尝试将所述待分析的数据块视为指令执行。所述方法还包括:所述Loader管理模块在尝试将所述待分析的数据块视为指令执行之前,将所述Loader管理模块当前已加载模块的信息通知给Monitor管理模块;所述Monitor管理模块利用所述Loader管理模块当前已加载模块的信息对所述Loader管理模块的指令执行过程进行监控;所述Monitor管理模块在接收到所述Loader管理模在指令执行过程中触发的模块加载事件,且加载的模块不是所述Loader管理模块当前已加载模块时,则判定所述数据流中包含漏洞利用。所述Loader管理模块获得数据流中待分析的数据块的过程,具体包括:所述Loader管理模块获得已经剥离网络协议头的负载数据,搜索负载数据中的指定特征,在发现指定特征之后再将相应的数据块作为所述待分析的数据块;或者,所述Loader管理模块获得已经剥离网络协议头的负载数据,利用Shellcode中限制存在的字节集合将所述负载数据分割为多个数据子块,且仅将数据子块长度大于Shellcode预设最小指令长度的数据子块作为所述待分析的数据块。所述Loader管理模块具体为模拟存在缓冲区溢出漏洞的数据模拟执行程序;所述Monitor管理模块具体为对Loader管理模块的各种异常和事件进行处理的处理程序。本专利技术实施例提供一种漏洞利用的检测系统,所述漏洞利用的检测系统包括Loader管理模块,且所述Loader管理模块具体包括:获得单元,用于获得数据流中待分析的数据块;第一处理单元,用于从所述待分析的数据块的起始位置或者指定位置,尝试将所述待分析的数据块视为指令执行,并在尝试将所述待分析的数据块视为指令执行的过程中,监控漏洞利用程序中的指定类型函数调用;其中,所述指定类型函数在调用时,表示存在漏洞利用;第一确定单元,用于在监控到所述指定类型函数被调用,且调用所述指定类型函数的地址位于所述待分析的数据块的起止范围之内时,判定所述数据流中包含漏洞利用。所述Loader管理模块还包括:发送单元,用于在尝试将所述待分析的数据块视为指令执行之前,将所述待分析的数据块的起始位置以及块大小通知给Monitor管理模块;所述检测系统还包括Monitor管理模块,所述Monitor管理模块具体包括:第一监控单元,用于利用所述待分析的数据块的起始位置以及所述块大小对所述Loader管理模块的指令执行过程进行监控;第二处理单元,用于在监控到所述Loader管理模块在指令执行过程中触发异常,或者,所述Loader管理模块在指令执行过程中的执行时间超过预设阈值,则:中断所述Loader管理模块的指令执行过程,调整所述Loader管理模块的重新执行的位置,并继续由所述Loader管理模块从所述待分析的数据块的调整后的位置开始,尝试将所述待分析的数据块视为指令执行。所述Loader管理模块还包括:发送单元,用于在尝试将所述待分析的数据块视为指令执行之前,将所述Loader管理模块当前已加载模块的信息通知给Monitor管理模块;所述检测系统还包括Monitor管理模块,所述Monitor管理模块具体包括:第二监控单元,用于利用所述Loader管理模块当前已加载模块的信息对所述Loader管理模块的指令执行过程进行监控;第二确定单元,用于在接收到所述Loader管理模在指令执行过程中触发的模块加载事件,且加载的模块不是所述Loader管理模块当前已加载模块时,则判定所述数据流中包含漏洞利用。所述获得单元,具体用于获得已经剥离网络协议头的负载数据,搜索负载数据中的指定特征,在发现指定特征之后再将相应的数据块作为所述待分析的数据块;或者,获得已经剥离网络协议头的负载数据,利用Shellcode中限制存在的字节集合将所述负载数据分割为多个数据子块,且仅将数据子块长度大于Shellcode预设最小指令长度的数据子块作为所述待分析的数据块。所述Loader管理模块具体为模拟存在缓冲区溢出漏洞的数据模拟执行程序;所述Monitor管理模块具体为对Loader管理模块的各种异常和事件进行处理的处理程序。与现有技术相比,本专利技术实施例至少具有以下优点:本专利技术实施例中,Loader (力口载)管理模块从待分析的数据块的起始位置或指定位置,尝试将待分析的数据块视为指令执行,并在尝试将待分析的数据块视为指令执行的过程中,通过监控漏洞利用程序中的指定类型函数调用,从而在监控到指定类型函数被调用,且调用指定类型函数的地址位于待分析的数据块的起止范围之内时,判定数据流中包含漏洞利用。上述方式不仅可以避免依靠检测漏洞利用样本特征码的局限性,而且能够检测到与已知漏洞利用样本不同的漏洞利用和针对未知漏洞的利用,甚至是所有基于缓冲区溢出的攻击,以解决特征码扫描方法无法检测各种采用多态本文档来自技高网...

【技术保护点】
一种漏洞利用的检测方法,其特征在于,所述方法包括以下步骤:Loader管理模块获得数据流中待分析的数据块;所述Loader管理模块从所述待分析的数据块的起始位置或者指定位置,尝试将所述待分析的数据块视为指令执行,并在尝试将所述待分析的数据块视为指令执行的过程中,监控漏洞利用程序中的指定类型函数调用;其中,所述指定类型函数在调用时,表示存在漏洞利用;所述Loader管理模块在监控到所述指定类型函数被调用,且调用所述指定类型函数的地址位于所述待分析的数据块的起止范围之内时,则判定所述数据流中包含漏洞利用。

【技术特征摘要】
1.一种漏洞利用的检测方法,其特征在于,所述方法包括以下步骤: Loader管理模块获得数据流中待分析的数据块; 所述Loader管理模块从所述待分析的数据块的起始位置或者指定位置,尝试将所述待分析的数据块视为指令执行,并在尝试将所述待分析的数据块视为指令执行的过程中,监控漏洞利用程序中的指定类型函数调用;其中,所述指定类型函数在调用时,表示存在漏洞利用; 所述Loader管理模块在监控到所述指定类型函数被调用,且调用所述指定类型函数的地址位于所述待分析的数据块的起止范围之内时,则判定所述数据流中包含漏洞利用。2.如权利要求1所述的方法,其特征在于,所述方法还包括: 所述Loader管理模块在尝试将所述待分析的数据块视为指令执行之前,将所述待分析的数据块的起始位置以及块大小通知给Monitor管理模块; 所述Monitor管理模块利用所述待分析的数据块的起始位置以及所述块大小对所述Loader管理模块的指令执行过程进行监控; 如果所述Loader管理模块在指令执行过程中触发异常,或者,所述Loader管理模块在指令执行过程中的执行时间超过预设阈值,则:所述Monitor管理模块中断所述Loader管理模块的指令执行过程,调整所述Loader管理模块的重新执行的位置,并继续由所述Loader管理模块从所述待分析的数据块的调整后的位置开始,尝试将所述待分析的数据块视为指令执行。3.如权利要求1所述的方法,其特征在于,所述方法还包括: 所述Loader管理模块在尝试将所述待分析的数据块视为指令执行之前,将所述Loader管理模块当前已加载模块的信息通知给Monitor管理模块; 所述Monitor管理模块利用所述Loader管理模块当前已加载模块的信息对所述Loader管理模块的指令执行过程进行监控; 所述Monitor管理模块在接收到所述Loader管理模在指令执行过程中触发的模块加载事件,且加载的模块不是所述Loader管理模块当前已加载模块时,则判定所述数据流中包含漏洞利用。4.如权利要求1-3任一项所述的方法,其特征在于,所述Loader管理模块获得数据流中待分析的数据块的过程,具体包括: 所述Loader管理模块获得已经剥离网络协议头的负载数据,搜索负载数据中的指定特征,在发现指定特征之后再将相应的数据块作为所述待分析的数据块;或者, 所述Loader管理模块获得已经剥离网络协议头的负载数据,利用Shellcode中限制存在的字节集合将所述负载数据分割为多个数据子块,且仅将数据子块长度大于Shellcode预设最小指令长度的数据子块作为所述待分析的数据块。5.如权利要求2或3所述的方法,其特征在于,所述Loader管理模块具体为模拟存在缓冲区溢出漏洞的数据模拟执行程序;所述Monitor管理模块具体为对Loader管理模块的各种异常和事件进行处理的处理程序。6.一种漏洞利用的检测系统,其特征在于...

【专利技术属性】
技术研发人员:任方英
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:

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

1