CN102609655B - 一种检测堆喷射型网页木马的方法和装置 - Google Patents

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

Info

Publication number
CN102609655B
CN102609655B CN201210027365.4A CN201210027365A CN102609655B CN 102609655 B CN102609655 B CN 102609655B CN 201210027365 A CN201210027365 A CN 201210027365A CN 102609655 B CN102609655 B CN 102609655B
Authority
CN
China
Prior art keywords
script
dis
assembling
detected
webpage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210027365.4A
Other languages
English (en)
Other versions
CN102609655A (zh
Inventor
黄正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210027365.4A priority Critical patent/CN102609655B/zh
Publication of CN102609655A publication Critical patent/CN102609655A/zh
Application granted granted Critical
Publication of CN102609655B publication Critical patent/CN102609655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种检测堆喷射型网页木马的方法和装置,其中方法包括:S1、解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果监测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则执行步骤S3;S3、对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至所述步骤S1继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,确定检测到堆喷射型网页木马。通过本发明能够提高检测准确率,具有广泛的适用范围。

Description

一种检测堆喷射型网页木马的方法和装置
【技术领域】
本发明涉及计算机安全技术领域,特别涉及一种检测堆喷射型网页木马的方法和装置。
【背景技术】
随着计算机技术的不断发展,计算机网络已经成为人们获取信息的主要工具,随之而来的是对计算机安全技术需求的不断提高。计算机病毒、木马、间谍软件和恶意代码是近几年来计算机网络面对的主要安全威胁,其中堆喷射(Heap Spraying)型网页木马是近期出现的一种新型木马,堆喷射型网页木马因其通用性强、生成恶意网页简单而被广泛的采用,目前已占网页木马的90%左右,因此堆喷射型网页木马的检测已是迫在眉睫的任务。
现有检测堆喷射型网页木马的方式为:监控javascript脚本引擎的内存分配函数,如果检测到内存分配函数为某个写操作分配了一块过大的内存,则判定为堆喷射网页木马,然而现有技术的该方式监控内存分配函数容易导致误报,将正常的写内存误报为木马,且仅针对javascprit脚本,适用范围较窄。
【发明内容】
本发明提供了一种检测堆喷射型网页木马的方法和装置,用以提高检测准确率,扩大适用范围。
具体技术方案如下:
一种检测堆喷射型网页木马的方法,该方法包括:
S1、解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果监测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则执行步骤S3;
S3、对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至所述步骤S1继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,执行步骤S4;
S4、确定检测到堆喷射型网页木马。
根据本发明一优选实施例,在所述步骤S1之前还包括:
S0:新建一个浏览器IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子。
根据本发明一优选实施例,在所述步骤S1和所述步骤S3之间还包括:
S2、对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则执行所述步骤S3;否则,转至所述步骤S1继续解析所述待检测网页的脚本。
根据本发明一优选实施例,所述重复性检测为:
对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。
根据本发明一优选实施例,在所述步骤S3中如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则转至所述步骤S1继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。
根据本发明一优选实施例,所述步骤S3中在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。
根据本发明一优选实施例,在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。
根据本发明一优选实施例,在所述步骤S1之前还包括:初始化喷射计数值;
在所述步骤S3中认为检测到堆喷射特性时,将所述喷射计数值进行自加;
在执行所述步骤S4之前还包括:判断当前的喷射计数值是否达到预设的计数阈值,如果是,继续执行所述步骤S4;否则,转至所述步骤S1继续解析所述待检测网页的脚本。
根据本发明一优选实施例,在所述步骤S4中采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式。
一种检测堆喷射型网页木马的装置,该装置包括:
脚本解析单元,用于解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果检测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则触发反汇编检测单元;
反汇编检测单元,用于受到触发后,对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,触发结果确输出单元;
结果输出单元,用于受到触发后,确定检测到堆喷射型网页木马。
根据本发明一优选实施例,该装置还包括:预处理单元,用于新建一个浏览器IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子;
所述脚本解析单元通过已挂的所述函数钩子监测所述待检测网页的脚本变量。
根据本发明一优选实施例,该装置还包括:重复性检测单元;
所述脚本解析单元在检测到所述待检测网页的脚本变量的长度超过预设的长度阈值时,通过触发所述重复性检测单元来触发所述反汇编检测单元;
所述重复性检测单元,用于受到触发后,对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则触发所述反汇编检测单元,否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。
根据本发明一优选实施例,所述重复性检测单元在进行重复性检测时,具体对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。
根据本发明一优选实施例,所述反汇编检测单元如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。
根据本发明一优选实施例,所述反汇编检测单元在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。
根据本发明一优选实施例,所述反汇编检测单元在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。
根据本发明一优选实施例,该装置还包括:喷射计数单元,用于在所述脚本解析单元解析待检测网页的脚本之前,初始化喷射计数值;
所述反汇编检测单元在认为检测到堆喷射特性时,触发所述喷射计数单元将喷射计数值进行自加,然后判断当前的喷射计数值是否达到预设的计数阈值,如果是,触发结果确输出单元,否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。
根据本发明一优选实施例,所述结果输出单元采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式,确定检测到堆喷射型网页木马。
由以上技术方案可以看出,本发明在解析待检测网页的脚本过程中,通过挂函数钩子对检测网页的脚本变量进行监测,在检测到脚本变量的长度超过预设的长度阈值时,通过反汇编检测的方式确定是否具有堆喷射特性,这种方式基于堆喷射特性,相比较现有对内存分配进行监控的方式提高了检测准确性,大大降低了误报率,并且并不限于javascript类型的脚本,适用范围更广。
【附图说明】
图1为本发明实施例一提供的动态检测堆喷射型网页木马的方法流程图;
图2为本发明实施例二提供的动态检测堆喷射型网页木马的方法流程图;
图3为本发明实施例三提供的检测堆喷射型网页木马的装置结构图;
图4为本发明实施例三提供的另一种检测堆喷射型网页木马的装置结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明实施例提供的检测方式针对堆喷射型网页木马,经总结发现堆喷射型网页木马具有如下特性:通过向内存中喷射大量包含shellcode的填充数据,该填充数据称为nopslide,使得在加载导致浏览器崩溃的漏洞代码时,控制指令寄存器(EIP)指向nopslide,最终导致shellcode执行。其中shellcode是利用特定漏洞的代码,一般作为数据发送给服务端造成溢出。针对该特性,本发明提供了一种动态检测堆喷射型网页木马的方法,下面通过实施例一对该方法进行详细描述。
实施例一、
图1为本发明实施例一提供的动态检测堆喷射型网页木马的方法流程图,如图1所示,该方法包括以下步骤:
步骤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可以采用发出警报、上报检测信息或者将待检测网页加入恶意网页库中的至少一种处理方式,确定检测到堆喷射型网页木马。
为了方便理解,下面举一个具体的实例,假设其中一个待检测的网页脚本如下:
由于预先已经对vbscript类型脚本中加操作、array的push操作、赋值类操作等挂上函数钩子,因此在进行解析过程中解析到sc(i)=sc(i)+nop、sc(i)=sc(i)+shellcode时均会监测到脚本变量sc(i)长度发生变化,当sc(i)长度超过预设的长度阈值0x1000时,对sc(i)的有效存储空间进行重复性检测。假设sc(i)的有效存储空间内存储的数据如表1所示。
表1
内存地址 存储内容
09141414 90919190 90919190 90919191 90919191
09141424 90919191 90919190 90919190 90919191
09141434 90919191 90919191 90919190 90919190
09141444 90919191 90919191 90919191 90919190
09141454 90919190 90919191 90919191 90919191
90919190 90919190 90919191 90919191 90919191连续重复出现,且连续重复出现的次数超过预设的次数阈值,确认检测到重复性满足重复性要求,然后进行反汇编检测。
假设在反汇编过程中能够顺利反汇编,且重新进行一次反汇编同样能够顺利反汇编,则将喷射计数值进行自加,继续对上述网页脚本进行解析,如果喷射计数值达到阈值5,则停止脚本解析,将确认检测到该网页存在堆喷射型网页木马,上报检测结果。
由以上描述可以看出,本发明实施例提供的上述方法和装置具备以下优点:
1)本发明在解析待检测网页的脚本过程中,通过挂函数钩子对检测网页的脚本变量进行监测,在检测到脚本变量的长度超过预设的长度阈值时,通过反汇编检测的方式确定是否具有堆喷射特性,这种方式基于堆喷射特性,相比较现有对内存分配进行监控的方式提高了检测准确性,大大降低了误报率。
2)由于本发明并不限于javascript类型的脚本,适用范围更广。
3)本发明可以在服务器端实现、也可以在客户端实现,其中在服务器端实现作为一种优选的实现方式能够处理大规模的网页检测,例如运行于服务器集群,每天检测超大规模的URL,具有很高的检测效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (18)

1.一种检测堆喷射型网页木马的方法,其特征在于,该方法包括:
S1、解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果监测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则执行步骤S3;
S3、对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则转至所述步骤S1继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,执行步骤S4;
S4、确定检测到堆喷射型网页木马。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S1之前还包括:
S0:新建一个浏览器IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子。
3.根据权利要求1所述的方法,其特征在于,在所述步骤S1和所述步骤S3之间还包括:
S2、对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则执行所述步骤S3;否则,转至所述步骤S1继续解析所述待检测网页的脚本。
4.根据权利要求3所述的方法,其特征在于,所述重复性检测为:
对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。
5.根据权利要求1所述的方法,其特征在于,在所述步骤S3中如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则转至所述步骤S1继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。
6.根据权利要求1或5所述的方法,其特征在于,所述步骤S3中在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。
7.根据权利要求1或5所述的方法,其特征在于,在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。
8.根据权利要求1至5任一权项所述的方法,其特征在于,在所述步骤S1之前还包括:初始化喷射计数值;
在所述步骤S3中认为检测到堆喷射特性时,将所述喷射计数值进行自加;
在执行所述步骤S4之前还包括:判断当前的喷射计数值是否达到预设的计数阈值,如果是,继续执行所述步骤S4;否则,转至所述步骤S1继续解析所述待检测网页的脚本。
9.根据权利要求1所述的方法,其特征在于,在所述步骤S4中采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式。
10.一种检测堆喷射型网页木马的装置,其特征在于,该装置包括:
脚本解析单元,用于解析待检测网页的脚本,在解析过程中通过挂函数钩子监测所述待检测网页的脚本变量,如果检测到所述待检测网页的脚本变量的长度超过预设的长度阈值,则触发反汇编检测单元;
反汇编检测单元,用于受到触发后,对所述长度超过预设长度阈值的脚本变量的内容进行反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果能够顺利反汇编,则认为检测到喷射特性,触发结果确输出单元;
结果输出单元,用于受到触发后,确定检测到堆喷射型网页木马。
11.根据权利要求10所述的装置,其特征在于,该装置还包括:预处理单元,用于新建一个浏览器IE控件进程,针对预设类型脚本中导致脚本变量变化的操作挂上函数钩子;
所述脚本解析单元通过已挂的所述函数钩子监测所述待检测网页的脚本变量。
12.根据权利要求10所述的装置,其特征在于,该装置还包括:重复性检测单元;
所述脚本解析单元在检测到所述待检测网页的脚本变量的长度超过预设的长度阈值时,通过触发所述重复性检测单元来触发所述反汇编检测单元;
所述重复性检测单元,用于受到触发后,对所述长度超过长度阈值的脚本变量内容进行重复性检测,如果检测到重复性达到预设重复性要求,则触发所述反汇编检测单元,否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。
13.根据权利要求12所述的装置,其特征在于,所述重复性检测单元在进行重复性检测时,具体对所述长度超过长度阈值的脚本变量的有效存储空间内容进行检测,如果所述有效存储空间内容中存在数据连续重复出现,且连续重复出现的次数超过预设的次数阈值,则认为重复性达到预设重复性要求。
14.根据权利要求10所述的装置,其特征在于,所述反汇编检测单元如果能够顺利反汇编,则对所述长度超过预设长度阈值的脚本变量的内容重新进行一次反汇编检测,如果不能顺利反汇编,则触发所述脚本解析单元继续解析所述待检测网页的脚本,如果仍能够顺利反汇编,则认为检测到喷射特性。
15.根据权利要求10或14所述的装置,其特征在于,所述反汇编检测单元在反汇编过程中如果发生了指令解析错误、反汇编代码中存在分支跳转指令或反汇编代码操作了不可预知的高地址内存中的至少一种,则确定不能顺利反汇编;否则确定能够顺利反汇编。
16.根据权利要求10或14所述的装置,其特征在于,所述反汇编检测单元在反汇编检测时,从所述长度超过预设长度阈值的脚本变量的有效存储空间中随机选择一个地址开始进行反汇编。
17.根据权利要求10至14任一权项所述的装置,其特征在于,该装置还包括:喷射计数单元,用于在所述脚本解析单元解析待检测网页的脚本之前,初始化喷射计数值;
所述反汇编检测单元在认为检测到堆喷射特性时,触发所述喷射计数单元将喷射计数值进行自加,然后判断当前的喷射计数值是否达到预设的计数阈值,如果是,触发结果确输出单元,否则,触发所述脚本解析单元继续解析所述待检测网页的脚本。
18.根据权利要求10所述的装置,其特征在于,所述结果输出单元采用发出警报、上报检测信息或者将所述待检测网页加入恶意网页库中的至少一种处理方式,确定检测到堆喷射型网页木马。
CN201210027365.4A 2012-02-08 2012-02-08 一种检测堆喷射型网页木马的方法和装置 Active CN102609655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210027365.4A CN102609655B (zh) 2012-02-08 2012-02-08 一种检测堆喷射型网页木马的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210027365.4A CN102609655B (zh) 2012-02-08 2012-02-08 一种检测堆喷射型网页木马的方法和装置

Publications (2)

Publication Number Publication Date
CN102609655A CN102609655A (zh) 2012-07-25
CN102609655B true CN102609655B (zh) 2017-02-08

Family

ID=46527016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210027365.4A Active CN102609655B (zh) 2012-02-08 2012-02-08 一种检测堆喷射型网页木马的方法和装置

Country Status (1)

Country Link
CN (1) CN102609655B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106855925B (zh) * 2015-12-09 2020-02-18 中国电信股份有限公司 堆喷射检测方法及装置
CN110059477B (zh) * 2019-03-14 2021-08-10 成都亚信网络安全产业技术研究院有限公司 一种攻击检测方法及装置
CN110610090B (zh) * 2019-08-28 2022-05-03 北京小米移动软件有限公司 信息处理方法及装置、存储介质
CN110704816B (zh) * 2019-09-29 2021-10-22 武汉极意网络科技有限公司 接口破解的识别方法、装置、设备及存储介质
CN112422553A (zh) * 2020-11-17 2021-02-26 杭州安恒信息技术股份有限公司 一种检测VBScript漏洞利用的方法、装置及设备
CN114629711B (zh) * 2022-03-21 2024-02-06 广东云智安信科技有限公司 一种针对Windows平台特种木马检测的方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673326B (zh) * 2008-09-11 2012-04-18 北京理工大学 基于程序执行特征的网页木马检测方法
CN101719204B (zh) * 2009-12-15 2011-07-27 北京大学 基于中间指令动态插装的Heapspray型网页木马的检测方法
CN101887497A (zh) * 2010-06-24 2010-11-17 北京安天电子设备有限公司 一种基于堆栈分配规律的缓冲区溢出的检测方法
CN101964036B (zh) * 2010-10-29 2013-01-16 深圳市安盾椒图科技有限公司 漏洞检测方法及装置

Also Published As

Publication number Publication date
CN102609655A (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
CN102609655B (zh) 一种检测堆喷射型网页木马的方法和装置
US9680848B2 (en) Apparatus, system and method for detecting and preventing malicious scripts using code pattern-based static analysis and API flow-based dynamic analysis
US9032516B2 (en) System and method for detecting malicious script
CN101964026A (zh) 网页挂马检测方法和系统
Tian et al. Differentiating malware from cleanware using behavioural analysis
Park et al. Fast malware classification by automated behavioral graph matching
KR101122650B1 (ko) 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법
CN102622543B (zh) 一种动态检测恶意网页脚本的方法和装置
US20130152200A1 (en) Predictive Heap Overflow Protection
US20130305373A1 (en) Method and apparatus for inspecting non-portable executable files
CN106055980A (zh) 一种基于规则的JavaScript安全性检测方法
WO2014049104A1 (en) A method, apparatus and system for optimizing test cases in fuzz testing
WO2013026320A1 (zh) 一种网页挂马检测方法及系统
CN104809391B (zh) 缓冲区溢出攻击检测装置、方法和安全防护系统
CN102012988B (zh) 自动二进制恶意代码行为分析方法
CN101902481B (zh) 一种网页木马实时监测方法及其装置
US20160196427A1 (en) System and Method for Detecting Branch Oriented Programming Anomalies
CN103065089A (zh) 网页木马的检测方法和装置
CN102185859A (zh) 计算机系统和数据交互方法
Choi et al. HXD: Hybrid XSS detection by using a headless browser
Vadrevu et al. Maxs: Scaling malware execution with sequential multi-hypothesis testing
US20120222116A1 (en) System and method for detecting web browser attacks
CN105791250B (zh) 应用程序检测方法及装置
CN109413022B (zh) 一种基于用户行为检测http flood攻击的方法和装置
CN111159708B (zh) 检测服务器中网页木马的装置、方法及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant