一种检测堆喷射型网页木马的方法和装置的制作方法

文档序号:6364393阅读:137来源:国知局
专利名称:一种检测堆喷射型网页木马的方法和装置的制作方法
一种检测堆喷射型网页木马的方法和装置
技术领域
本发明涉及计算机安全技术领域,特别涉及一种检测堆喷射型网页木马的方法和
>J-U ρ α装直。
背景技术
随着计算机技术的不断发展,计算机网络已经成为人们获取信息的主要工具,随之而来的是对计算机安全技术需求的不断提高。计算机病毒、木马、间谍软件和恶意代码是近几年来计算机网络面对的主要安全威胁,其中堆喷射(Heap Spraying)型网页木马是近期出现的一种新型木马,堆喷射型网页木马因其通用性强、生成恶意网页简单而被广泛的采用,目前已占网页木马的90%左右,因此堆喷射型网页木马的检测已是迫在眉睫的任务。现有检测堆喷射型网页木马的方式为监控javascript脚本引擎的内存分配函数,如果检测到内存分配函数为某个写操作分配了一块过大的内存,则判定为堆喷射网页木马,然而现有技术的该方式监控内存分配函数容易导致误报,将正常的写内存误报为木马,且仅针对javascprit脚本,适用范围较窄。

发明内容本发明提供了一种检测堆喷射型网页木马的方法和装置,用以提高检测准确率, 扩大适用范围。具体技术方案如下一种检测堆喷射型网页木马的方法,该方法包括SI、解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果监测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则执行步骤S3 ;S3、对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至所述步骤Si继续解析所述待检测网页的脚本,如果能够顺利反汇编, 则认为检测到喷射特性,执行步骤S4 ;S4、确定检测到堆喷射型网页木马。根据本发明一优选实施例,在所述步骤SI之前还包括SO :新建一个浏览器IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子。根据本发明一优选实施例,在所述步骤SI和所述步骤S3之间还包括S2、对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则执行所述步骤S3 ;否则,转至所述步骤SI继续解析所述待检测网页的脚本。根据本发明一优选实施例,所述重复性检测为对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值, 则认为重复性达到预设重复性要求。根据本发明一优选实施例,在所述步骤S3中如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则转至所述步骤Si继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。根据本发明一优选实施例,所述步骤S3中在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。根据本发明一优选实施例,在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。根据本发明一优选实施例,在所述步骤SI之前还包括初始化喷射计数值;在所述步骤S3中认为检测到堆喷射特性时,将所述喷射计数值进行自加;在执行所述步骤S4之前还包括判断当前的喷射计数值是否达到预设的计数阈值,如果是,继续执行所述步骤S4 ;否则,转至所述步骤SI继续解析所述待检测网页的脚本。根据本发明一优选实施例,在所述步骤S4中采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式。一种检测堆喷射型网页木马的装置,该装置包括脚本解析单元,用于解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果检测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则触发反汇编检测单元;反汇编检测单元,用于受到触发后,对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,触发结果确输出单元;结果输出单元,用于受到触发后,确定检测到堆喷射型网页木马。根据本发明一优选实施例,该装置还包括预处理单元,用于新建一个浏览器IE 控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子;所述脚本解析单元通过已挂的所述函数钩子监测所述待检测网页的脚本变量。根据本发明一优选实施例,该装置还包括重复性检测单元;所述脚本解析单元在检测到所述待检测网页的脚本变量的长度超过预设的长度阈值时,通过触发所述重复性检测单元来触发所述反汇编检测单元;所述重复性检测单元,用于受到触发后,对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则触发所述反汇编检测单元, 否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。根据本发明一优选实施例,所述重复性检测单元在进行重复性检测时,具体对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。
根据本发明一优选实施例,所述反汇编检测单元如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。根据本发明一优选实施例,所述反汇编检测单元在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。根据本发明一优选实施例,所述反汇编检测单元在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。根据本发明一优选实施例,该装置还包括喷射计数单元,用于在所述脚本解析单元解析待检测网页的脚本之前,初始化喷射计数值;所述反汇编检测单元在认为检测到堆喷射特性时,触发所述喷射技术单元将喷射计数值进行自加,然后判断当前的喷射计数值是否达到预设的计数阈值,如果是,触发结果确输出单元,否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。根据本发明一优选实施例,所述结果输出单元采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式,确定检测到堆喷射型网页木马。由以上技术方案可以看出,本发明在解析待检测网页的脚本过程中,通过挂函数钩子对检测网页的脚本变量进行监测,在检测到脚本变量的长度超过预设的长度阈值时,通过反汇编检测的方式确定是否具有堆喷射特性,这种方式基于堆喷射特性,相比较现有对内存分配进行监控的方式提高了检测准确性,大大降低了误报率,并且并不限于 javascript类型的脚本,适用范围更广。

图I为本发明实施例一提供的动态检测堆喷射型网页木马的方法流程图;图2为本发明实施例二提供的动态检测堆喷射型网页木马的方法流程图;图3为本发明实施例三提供的检测堆喷射型网页木马的装置结构图;图4为本发明实施例三提供的另一种检测堆喷射型网页木马的装置结构图。
具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明实施例提供的检测方式针对堆喷射型网页木马,经总结发现堆喷射型网页木马具有如下特性通过向内存中喷射大量包含shellcode的填充数据,该填充数据称为nopslide,使得在加载导致浏览器崩溃的漏洞代码时,控制指令寄存器(EIP)指向 nopslide,最终导致shellcode执行。其中shellcode是利用特定漏洞的代码,一般作为数据发送给服务端造成溢出。针对该特性,本发明提供了一种动态检测堆喷射型网页木马的方法,下面通过实施例一对该方法进行详细描述。实施例一、
图I为本发明实施例一提供的动态检测堆喷射型网页木马的方法流程图,如图I 所示,该方法包括以下步骤步骤101 :解析待检测网页的脚本,在解析过程中通过挂函数钩子监测待检测网页的脚本变量,如果监测到待检测网页的脚本变量的长度超过预设的长度阈值,则执行步骤 102。在本步骤之前,首先执行准备步骤新建一个浏览器(IE)控件进程,针对 javascript、vbscript、action script等类型脚本中导致脚本变量变化的操作挂上函数钩子,其中导致脚本变量变化的操作包括但不限于对加(“ + ”)操作、array的push操作、赋值类操作等,该函数钩子能够实时监测脚本变量的变化。本步骤在解析待检测网页脚本的过程中,所挂的函数钩子在某个脚本变量执行加操作或push操作等时,能够获取到该脚本变量的原始变量的长度和被加变量的长度,由原始变量的长度和被加变量的长度之和可以得到该脚本变量的长度,如果该脚本变量的长度超过预设的长度阈值,例如超过0x1000,则会触发后续的重复性检测和反汇编检测。如果该脚本变量的长度未超过预设的长度阈值,则认为该脚本变量安全,继续解析待检测网页的脚本。其中原始变量的长度和被加变量的长度也可以分别由原始变量的地址和被加变量的地址获得。如果当前监测到的脚本变量的长度未超过预设的长度阈值,则认为该脚本变量正常,继续对待检测网页的脚本进行解析。本发明实施例提供的检测方式可以通过单进程的方式实现,也可以通过多线程的方式实现,例如新建20个进程等待输入待检测网页,并分别对不同的待检测网页进行解析和检测。步骤102 :对长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则执行步骤103 ;否则,转至步骤101继续解析待检测网页的脚本。此处的重复性检测可以对该脚本变量的有效存储空间存储内容进行检测,如果有效存储空间存储内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。举个例子,假设在该脚本变量的有效存储空间存储的内容为0x141414141414,由于14连续重复出现,且连续重复出现的次数超过了预设的次数阈值,例如阈值为5,则就认为该脚本变量的内容的重复性达到预设重复性要求,有可能是堆喷射代码,继续执行步骤103。本发明可以采用任意的重复性检测方式,在此仅举一个实现重复性检测的例子从上述有效存储区间的地址A开始,从地址A+B开始逐字节搜索,并与地址A中的数据进行比对,如果没有搜索到相等的数据,则确定该有效存储区间不具备重复性;如果搜索到,则标识搜索到的地址为K,取K与A的差值得到M。从地址A+M开始以长度M为地址间隔搜索与地址A中数据相同的数据,例如,搜索地址A+2M中的数据与地址A的数据是否相同,搜索地址A+3M中的数据与地址A的数据是否相同……,如果连续N次搜索到相同的数据,则确定该有效存储区间具有重复性。上述A、B、M通常为二进制数据,N为预设的正整数。
如果脚本变量内容的重复性不符合预设重复性要求,则认为不符合堆喷射的特性,转至步骤101继续解析待检测网页的脚本。本步骤102进行的重复性检测并不是本发明所必须执行的步骤,目的是为了提高检测效率,也可以不执行步骤102直接由步骤101触发执行步骤103。步骤103 :对该脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至步骤101继续解析待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,确定检测到堆喷射型网页木马,结束流程。在该脚本变量的有效存储空间内的二进制数据进行反汇编,如果反汇编过程中发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则认为不能顺利反汇编,说明将该段二进制数据用作代码执行时会发生错误,不符合堆喷射特性,认为这段二进制数据不是堆喷射代码,转至步骤101继续解析待检测网页的脚本。如果能够顺利反汇编,则符合堆喷射特性。另外,为了提高堆喷射特性的检测准确性,可以在顺利反汇编后,重新进行一次反汇编检测,两次反汇编检测均可以是从该脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。如果重新进行一次反汇编检测时,检测到反汇编过程中发生了指令解析错误、反汇编代码中存在分值跳转指令或反汇编代码中操作了不可预知的高地址内存中的至少一种,则认为该脚本变量的内容安全,转至步骤101继续解析待检测网页的脚本,否则才认为检测到喷射特性,确定检测到堆喷射型网页木马,结束流程。在上述实施例一的流程中,如果未检测到堆喷射型网页木马则继续转至步骤101 进行待检测网页的脚本解析,直至解析结束或者检测到退喷射型网页木马。为了更进一步提高检测精度,可以在多次检测到喷射特性时才认为检测到堆喷射型网页木马,这种情况通过实施例二进行描述。实施例二、图2为本发明实施例二提供的动态检测堆喷射型网页木马的方法流程图,如图2 所示,该方法包括以下步骤步骤201同步骤101,但需要在准备步骤中初始化喷射计数值,该喷射计数值用于对检测到堆喷射特性的次数进行计数,后续将会描述。步骤202 :对长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则执行步骤203 ;否则,转至步骤201继续解析待检测网页的脚本。本步骤具体参见实施例一中步骤102的描述,不再赘述。步骤203 :对该脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至步骤201继续解析待检测网页的脚本;否则,认为检测到堆喷射特性,将喷射计数值进行自加。如果在反汇编过程中发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码中操作了不可预知的高地址内存中的至少一种,均是不能顺利反汇编。同样,在本步骤中,如果能够顺利反汇编,即未检测到反汇编过程中发生了指令解析错误、反汇编代码中存在分支跳转指令以及反汇编代码操作了不可预知的高地址内存, 则对该脚本变量的有效存储空间的内容重新进行一次反汇编检测,如果仍能顺利反汇编,则认为检测到堆喷射特性,将喷射计数值进行自加。步骤204 :判断当前喷射计数值是否达到预设的计数阈值,如果是,确定检测到堆喷射型网页木马,结束流程;否则,转至步骤101继续解析待检测网页的脚本。本步骤中涉及的计数阈值可以选取一个经验值,该经验值可以通过实验的方式获得检出率较高、误报率较低的数值,例如可以取5。在确定检测到堆喷射型网页木马时,可以采用发出警报、上报检测信息或者将待检测网页加入恶意网页库等中的至少一种处理方式。以上是本发明所提供方法进行的详细描述,下面结合实施例三对本发明所提供的装置进行详细描述。实施例三、图3为本发明实施例三提供的检测堆喷射型网页木马的装置结构图,如图3所示, 该装置可以具体包括脚本解析单元301、反汇编检测单元302和结果输出单元303。脚本解析单元301解析待检测网页的脚本,在解析过程中通过挂函数钩子监测待检测网页的脚本变量,如果检测到待检测网页的脚本变量的长度超过预设的长度阈值,则触发反汇编检测单元302。反汇编检测单元302受到触发后,对长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则触发脚本解析单元301继续解析待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,触发结果确输出单元303。结果输出单元303受到触发后,确定检测到堆喷射型网页木马。为了方便脚本解析单元301监测脚本变量,该装置还可以包括预处理单元300, 用于新建IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子。这样,脚本解析单元301就能够通过已挂的函数钩子监测待检测网页的脚本变量。具体地,预处理单兀300针对javascript、vbscript、action script等类型脚本中导致脚本变量变化的操作挂上函数钩子,其中导致脚本变量变化的操作包括但不限于对加操作、array的push操作、赋值类操作等。脚本解析单元301在解析待检测网页脚本的过程中,所挂的函数钩子在某个脚本变量执行诸如加操作或push操作等时,能够获取到该脚本变量的原始变量的长度和被加变量的长度,由原始变量的长度和被加变量的长度之和可以得到该脚本变量的长度,如果该脚本变量的长度超过预设的长度阈值,则会触发后续的反汇编检测。如果该脚本变量的长度未超过预设的长度阈值,则认为该脚本变量安全,继续解析待检测网页的脚本。作为一种优选的实施方式,在反汇编检测之前可以首先对长度超过预设长度阈值的脚本变量内容进行重复性检测,从而提高检测效率,此时该装置还可以包括重复性检测单元304。脚本解析单元301在监测到待检测网页的脚本变量的长度超过预设的长度阈值时,通过触发重复性检测单元304来触发反汇编检测单元302。重复性检测单元304受到触发后,对长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则触发反汇编检测单元302,否则,触发脚本解析单元301继续解析待检测网页的脚本。即在脚本解析单元和反汇编检测单元302之间包括一个重复性检测单元304,脚本解析单元301检测到待检测网页的脚本变量的长度超过预设的长度阈值时,先触发重复性检测单元304,重复性检测单元304在检测到重复性达到预设重复性要求后,触发反汇编检测单元302进行反汇编检测。在进行重复性检测时,重复性检测单元304对长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。另外,为了提高堆喷射特性的检测准确性,反汇编检测单元304在进行反汇编检测时,如果能够对脚本变量的内容顺利反汇编,则可以进一步对长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则触发脚本解析单元301 继续解析待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。其中,如果在反汇编过程中发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。另外,反汇编检测单元304在反汇编检测时,从长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。为了更进一步提高检测精度,可以在多次检测到喷射特性时才认为检测到堆喷射型网页木马,这种情况的装置结构可以如图4所示,与图3所示结构不同的是,这种情况下的装置还可以进一步包括喷射计数单元401。该喷射计数单元401在脚本解析单元301解析待检测网页的脚本之前,初始化喷射计数值。反汇编检测单元302在认为检测到堆喷射特性时,触发喷射技术单元401将喷射计数值进行自加,然后判断当前的喷射计数值是否达到预设的计数阈值,如果是,触发结果确输出单元303,否则,触发脚本解析单元301继续解析待检测网页的脚本。其中上述计数阈值可以选取一个经验值,该经验值可以通过实验的方式获得检出率较高、误报率较低的数值,例如可以取5。另外,在图3和图4中的结果输出单元303可以采用发出警报、上报检测信息或者将待检测网页加入恶意网页库中的至少一种处理方式,确定检测到堆喷射型网页木马。为了方便理解,下面举一个具体的实例,假设其中一个待检测的网页脚本如下
〈script language='vbscript'>
dim sc(lOOO)
dim shellcode
dim nop
dimi
dimj
10shellcode=unescape(M%u5858%uE8FC%u0044%u0000%u458B%u8B3C%u057C%u017
8%u8BEF%ul84F%u5F8B%u0120%
u49EB%u348B%u018B%u31EE%u99C0%u84AC%u74C0%uC107%u0DCA%uC201%u
F4EB%u543B%u0424%uE575%u5F8B%
u0124%u66EB%u0C8B%u8B4B%ulC5F%uEB01%ulC8B%u018B%u89EB%u245C%u
C304%uC031%u8B64%u3040%uC085%
u0C78%u408B%u8B0C%ulC70M)
nop=unescape("%u9091%u9190%u9091%u9190%u9091") for i=l to 2000 for j=0 to 5000
sc(i) = sc(i)+nop
next
sc(i)=sc(i)+shellcode
next
</script>由于预先已经对vbscript类型脚本中加操作、array的push操作、赋值类操作等挂上函数钩子,因此在进行解析过程中解析到sc(i) = sc⑴+nop、sc (i)= sc (i)+shellcode时均会监测到脚本变量sc (i)长度发生变化,当sc (i)长度超过预设的长度阈值0x1000时,对sc⑴的有效存储空间进行重复性检测。假设sc⑴的有效存储空间内存储的数据如表I所示。表I
权利要求
1.一种检测堆喷射型网页木马的方法,其特征在于,该方法包括51、解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果监测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则执行步骤 S3 ;53、对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至所述步骤SI继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,执行步骤S4 ;54、确定检测到堆喷射型网页木马。
2.根据权利要求I所述的方法,其特征在于,在所述步骤SI之前还包括SO :新建一个浏览器IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子。
3.根据权利要求I所述的方法,其特征在于,在所述步骤SI和所述步骤S3之间还包括52、对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则执行所述步骤S3 ;否则,转至所述步骤SI继续解析所述待检测网页的脚本。
4.根据权利要求3所述的方法,其特征在于,所述重复性检测为对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。
5.根据权利要求I所述的方法,其特征在于,在所述步骤S3中如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则转至所述步骤Si继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。
6.根据权利要求I或5所述的方法,其特征在于,所述步骤S3中在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。
7.根据权利要求I或5所述的方法,其特征在于,在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。
8.根据权利要求I至5任一权项所述的方法,其特征在于,在所述步骤SI之前还包括 初始化喷射计数值;在所述步骤S3中认为检测到堆喷射特性时,将所述喷射计数值进行自加;在执行所述步骤S4之前还包括判断当前的喷射计数值是否达到预设的计数阈值,如果是,继续执行所述步骤S4 ;否则,转至所述步骤SI继续解析所述待检测网页的脚本。
9.根据权利要求I所述的方法,其特征在于,在所述步骤S4中采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式。
10.一种检测堆喷射型网页木马的装置,其特征在于,该装置包括脚本解析单元,用于解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果检测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则触发反汇编检测单元;反汇编检测单元,用于受到触发后,对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,触发结果确输出单元;结果输出单元,用于受到触发后,确定检测到堆喷射型网页木马。
11.根据权利要求10所述的装置,其特征在于,该装置还包括预处理单元,用于新建一个浏览器IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子;所述脚本解析单元通过已挂的所述函数钩子监测所述待检测网页的脚本变量。
12.根据权利要求10所述的装置,其特征在于,该装置还包括重复性检测单元;所述脚本解析单元在检测到所述待检测网页的脚本变量的长度超过预设的长度阈值时,通过触发所述重复性检测单元来触发所述反汇编检测单元;所述重复性检测单元,用于受到触发后,对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则触发所述反汇编检测单元,否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。
13.根据权利要求12所述的装置,其特征在于,所述重复性检测单元在进行重复性检测时,具体对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。
14.根据权利要求10所述的装置,其特征在于,所述反汇编检测单元如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。
15.根据权利要求10或14所述的装置,其特征在于,所述反汇编检测单元在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。
16.根据权利要求10或14所述的装置,其特征在于,所述反汇编检测单元在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。
17.根据权利要求10至14任一权项所述的装置,其特征在于,该装置还包括喷射计数单元,用于在所述脚本解析单元解析待检测网页的脚本之前,初始化喷射计数值;所述反汇编检测单元在认为检测到堆喷射特性时,触发所述喷射技术单元将喷射计数值进行自加,然后判断当前的喷射计数值是否达到预设的计数阈值,如果是,触发结果确输出单元,否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。
18.根据权利要求10所述的装置,其特征在于,所述结果输出单元采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式,确定检测到堆喷射型网页木马。
全文摘要
本发明提供了一种检测堆喷射型网页木马的方法和装置,其中方法包括S1、解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果监测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则执行步骤S3;S3、对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至所述步骤S1继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,确定检测到堆喷射型网页木马。通过本发明能够提高检测准确率,具有广泛的适用范围。
文档编号G06F21/00GK102609655SQ20121002736
公开日2012年7月25日 申请日期2012年2月8日 优先权日2012年2月8日
发明者黄正 申请人:北京百度网讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1