CN102819698B - 检测网页中恶意代码的方法及装置 - Google Patents

检测网页中恶意代码的方法及装置 Download PDF

Info

Publication number
CN102819698B
CN102819698B CN201110445277.1A CN201110445277A CN102819698B CN 102819698 B CN102819698 B CN 102819698B CN 201110445277 A CN201110445277 A CN 201110445277A CN 102819698 B CN102819698 B CN 102819698B
Authority
CN
China
Prior art keywords
function
code
list
functional
obtains
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
CN201110445277.1A
Other languages
English (en)
Other versions
CN102819698A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110445277.1A priority Critical patent/CN102819698B/zh
Publication of CN102819698A publication Critical patent/CN102819698A/zh
Priority to PCT/CN2012/087530 priority patent/WO2013097718A1/en
Priority to US14/130,233 priority patent/US20140150099A1/en
Application granted granted Critical
Publication of CN102819698B publication Critical patent/CN102819698B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及一种检测网页中恶意代码的方法及装置,其方法包括:通过执行脚本代码及预定义的对象代码,获取函数列表;对脚本代码进行解析,根据解析结果及函数列表获取变量值;以便对变量值进行验证。本发明可提前识别带有恶意VBScript等脚本代码的网页,进而屏蔽并提示用户,保障用户权益,使用户能够安全的浏览网页;并避免VBScript转换为JavaScript导致的失败,提高检测准确性。

Description

检测网页中恶意代码的方法及装置
技术领域
本发明涉及网页技术领域,尤其涉及一种检测网页中恶意代码的方法及装置。
背景技术
随着信息技术的不断发展,人们习惯于通过浏览网页的方式来了解周边的时事动态。网页技术作为重要的信息共享技术,为用户提供了非常丰富的信息。
然而,最初的静态网页缺乏互动,可重用性较差,不便于维护,由此逐渐发展出动态网页技术,VBScript(Visual Basic Script,Visual Basic脚本语言)脚本技术即是其中之一。
VBScript脚本技术可以用来指挥客户端浏览器,动态实现HTML,甚至可以将外部程序结合到网页中。然而,由于其缺乏安全性,恶意攻击者常常利用VBScript技术,在网页中植入恶意代码,下载木马,攻击用户主机,获取用户信息。
目前,检测恶意VBScript脚本方案之一即是通过将VBScript转为JavaScript,然后再利用JavaScript脚本引擎进行分析。其存在的缺陷在于:VBScript和JavaScript并不能等价转换,转换后得到的JavaScript可能与原有的VBScript语义功能不一致,从而导致检测结果不准确。
发明内容
本发明的主要目的在于提供一种检测网页中恶意代码的方法及装置,旨在提高用户浏览网页的安全性。
为了达到上述目的,本发明提出一种检测网页中恶意代码的方法,包括:
通过执行代码及预定义的对象代码,获取函数列表;
对所述代码进行解析,根据解析结果及所述函数列表获取变量值。
优选地,所述对代码进行解析,根据解析结果及所述函数列表获取变量值的步骤包括:
对所述代码进行解析,获取所述代码中的函数过程信息;
根据所述函数列表及所述函数过程信息对所述代码进行展开;
运行展开后的代码,提取变量值。
优选地,该方法还包括:对所述变量值进行验证。
优选地,所述代码为脚本代码,所述通过执行代码及预定义的对象代码,获取函数列表的步骤包括:
调用脚本接口提供的执行代码方法,执行脚本代码及预定义的对象代码;
调用所述脚本接口提供的过程名列表获取方法,获取所述脚本代码中的过程名列表;
调用所述脚本接口提供的变量列表获取方法,获取接口指针,并利用反射机制获取所述脚本代码中的全局变量列表。
优选地,所述根据函数列表及所述函数过程信息对所述代码进行展开的步骤包括:
根据所述函数过程信息获取各函数的调用关系;
根据各函数的调用关系生成二维依赖表;
根据所述函数列表及所述二维依赖表对所述代码进行展开。
优选地,所述根据函数列表及所述二维依赖表对所述代码进行展开的步骤包括:
遍历所述函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;
依次展开所述函数列表中的各所述待展开函数。
优选地,所述对代码进行解析,获取所述代码中的函数过程信息的步骤进一步包括:
对每一函数依次调用所述执行代码方法及全局变量列表方法获取局部变量列表。
本发明还提出一种检测网页中恶意代码的装置,包括:
函数列表获取模块,用于通过执行代码及预定义的对象代码,获取函数列表;
解析获取模块,用于对所述代码进行解析,根据解析结果及所述函数列表获取变量值。
优选地,所述解析获取模块包括:
解析获取单元,用于对所述代码进行解析,获取所述代码中的函数过程信息;
展开单元,用于根据所述函数列表及所述函数过程信息对所述代码进行展开;
变量值提取单元,用于运行展开后的代码,提取变量值。
优选地,该装置还包括:验证模块,用于对所述变量值置进行验证。
优选地,所述代码为脚本代码,所述函数列表获取模块包括:
执行单元,用于调用脚本接口提供的执行代码方法,执行脚本代码及预定义的对象代码;
过程名列表获取单元,用于调用所述脚本接口提供的过程名列表获取方法,获取所述脚本代码中的过程名列表;
全局变量列表获取单元,用于调用所述脚本接口提供的变量列表获取方法,获取接口指针,并利用反射机制获取所述脚本代码中的全局变量列表。
优选地,所述展开单元包括:
调用关系获取子单元,用于根据所述函数过程信息获取各函数的调用关系;
生成子单元,用于根据各函数的调用关系生成二维依赖表;
展开子单元,用于根据所述函数列表及所述二维依赖表对所述代码进行展开。
优选地,所述展开子单元还用于遍历所述函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;依次展开所述函数列表中的各所述待展开函数。
优选地,所述解析获取模块还用于对每一函数依次调用所述执行代码方法及变量列表获取方法获取局部变量列表。
本发明提出的一种检测网页中恶意代码的方法及装置,通过执行脚本代码及预定义的对象代码,获取函数列表,对脚本代码进行解析,根据解析结构及获取函数列表提取变量值;将变量值置入特征提取器中进行验证,从而使得用户在浏览网页时,可提前检测出含有恶意VBScript等脚本代码的网页,系统可进行屏蔽处理并提示用户,保护用户的利益不受侵害,提高了用户访问网页的安全性。
附图说明
图1是本发明检测网页中恶意代码的方法较佳实施例的流程示意图;
图2是本发明检测网页中恶意代码的方法较佳实施例中通过执行代码及预定义的对象代码,获取函数列表的流程示意图;
图3是本发明检测网页中恶意代码的方法较佳实施例中对代码进行解析,根据解析结果及函数列表获取变量值的流程示意图;
图4是本发明检测网页中恶意代码的方法较佳实施例中根据函数列表及函数过程信息对代码进行展开的流程示意图;
图5是本发明检测网页中恶意代码的装置较佳实施例的结构示意图;
图6是本发明检测网页中恶意代码的装置较佳实施例中函数列表获取模块的结构示意图;
图7是本发明检测网页中恶意代码的装置较佳实施例中解析获取模块的结构示意图;
图8是本发明检测网页中恶意代码的装置较佳实施例中展开单元的结构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
本发明实施例解决方案主要是:通过执行脚本代码及预定义的对象代码,获取函数列表,对脚本代码进行解析,根据解析结果及函数列表提取变量值;对变量值进行验证,使得用户在浏览网页时,可提前检测出含有恶意脚本代码的网页,提高用户访问网页的安全性。
本发明中的代码可以为脚本代码,具体可以指VBScript脚本代码,还可以为其他脚本代码,以下各实施例均以VBScript脚本代码为例进行说明。
对于网页浏览中恶意VBScript脚本代码的检测,现有的将VBScript转换为JavaScript后再解析的检测方案,存在转换成功率较低的问题,本实施例利用windows平台下的MSScript脚本引擎来实现恶意VBScript脚本代码的检查,通过该MSScript脚本引擎,运行VBScript脚本代码,进而提取VBScript脚本代码中的变量、函数等信息,并把这些提取到的信息置入特征提取器中进行检测。但是考虑到这种方式只能提取到VBScript脚本代码中的全局定义的变量,却无法获取函数中的局部变量,导致无法检测到存于局部的恶意特征。本实施例通过预处理展开方案,以解决局部变量检测问题。
如图1所示,本发明较佳实施例提出一种检测网页中恶意代码的方法,包括:
步骤S101,通过执行代码及预定义的对象代码,获取函数列表;
以VBScript脚本代码为例,考虑到网页中使用的VBScript脚本代码,其常用到的Browser对象及DOM对象若直接置入MSScript引擎中,会提示对象未定义错误,导致运行失败。本实施例首先预定义常用的Browser对象和DOM对象代码,如Navigator对象、Document对象、Object对象等,以解决对象未定义问题。
然后,通过脚本接口IScriptControl提供的ExecuteStatement方法执行VBScript脚本代码,同时加入上述预定义的对象代码一起执行。
成功执行后,通过脚本接口IScriptControl提供的GetProcedures方法,获取VBScript脚本代码中的过程(函数)名列表;调用脚本接口IScriptControl提供的GetCodeObject方法获取IDispatch接口指针,再利用COM反射机制得到VBScript脚本代码中的全局变量列表,上述过程名列表及全局变量列表即为获取的函数列表。
步骤S102,对代码进行解析,根据解析结果及函数列表获取变量值;
步骤S103,对变量值进行验证。
上述步骤S102及步骤S103中,在获取到函数列表之后,再对原始的VBScript脚本代码进行解析,得到详细的函数过程信息,如函数参数列表、函数体等,并将原始VBScript脚本代码进行函数过程裁剪,即将原始VBScript脚本代码中的函数过程全部去除,得到新的VBScript脚本代码,其中,将原始VBScript脚本代码进行函数过程裁剪的目的是便于后续在MSScript脚本引擎中运行展开后的VBScript脚本代码,从中提取变量值。
同时,根据获取到的VBScript脚本代码中详细的函数过程信息,对于每个函数,依次调用脚本接口IScriptControl提供的ExecuteStatement方法和GetCodeObject方法获取局部变量列表,由于局部变量中经常会保存一些恶意的执行代码,通过获得局部变量,便于后续将局部变量置于特征提取器中进行验证,判断是否含有恶意的脚本代码。
通过上述过程得到了对VBScript脚本代码进行展开所需的所有基本信息,为了提高VBScript脚本代码展开效率,本实施例引入了函数依赖关系表。通过函数依赖关系表,可以分层次的进行函数展开,从而提高展开效率。
具体地,首先分析各函数之间的调用关系,生成一张体现各函数之间的依赖关系的二维依赖表。此处的依赖关系生成采用的是一种反向依赖的方式,举例如下:
对于函数A、B、C、D、E、F、G,有函数调用关系A调用B、D、G;B调用C、E、G;E调用F、G。
则可构造如下如下二维依赖表:
A->NIL;
B->A;
C->B;
D->A;
E->B;
F->E;
G->A,B,E。
在对各函数进行展开时,其展开过程主要依据函数依赖关系表进行,同时需要设计一个函数展开选择器,该函数展开选择器每次返回下一个待展开函数。首先函数展开选择器遍历当前的函数列表,将找到的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回,依次对函数列表中各函数进行展开。
对于上述例子(函数A、B、C、D、E、F、G)而言,其展开过程如下:
1、A不依赖于任何函数,则展开函数A;
2、在展开函数A后,B和D的依赖关系项均为NIL,则可选择其中任一个进行展开,此处选择第一个扫描到B展开;
3、B展开后,C、D、E依赖关系项为NIL,继而展开C;
4、展开C后,继续展开D、E;
5、展开E后,F和G的表项均为空,则可继续展开F和G。
对于每个函数的展开,其展开原则为:找到函数调用处,构造新函数体,在此处进行替换;新函数体的构造方法为:重命名函数参数和函数局部变量,命名规则为:函数名_变量名(参数名)_调用ID,并在函数体前部将参数本地变量化,把调用时传入的参数对应赋值到变量中。调用ID值为当前检测的函数调用个数,其作用是避免函数多次调用展开而产生的变量冲突。
最后,在各函数展开完成后,由此得到新的VBScript脚本代码。
将函数展开完成后得到的新的VBScript脚本代码置入MSScript脚本引擎执行,通过COM接口反射机制得到所有的变量值列表,再将得到的变量值置入特征提取器进行提取验证,最终完成恶意VBScript脚本代码的检测。
具体实施过程中,以VBScript脚本代码为例,如图2所示,上述步骤S101包括:
步骤S1011,调用脚本接口提供的ExecuteStatement方法,执行VBScript脚本代码及预定义的对象代码;
步骤S1012,调用脚本接口提供的GetProcedures方法,获取VBScript脚本代码中的过程名列表;
步骤S1013,调用脚本接口提供的GetCodeObject方法,获取IDispatch接口指针,并利用COM反射机制获取VBScript脚本代码中的全局变量列表。
如图3所示,上述步骤S102包括:
步骤S1021,对代码进行解析,获取代码中的函数过程信息;
步骤S1022,根据函数列表及函数过程信息对代码进行展开;
步骤S1023,运行展开后的代码,提取变量值。
如图4所示,上述步骤S1022包括:
步骤S10221,根据函数过程信息获取各函数的调用关系;
步骤S10222,根据各函数的调用关系生成二维依赖表;
步骤S10223,根据函数列表及二维依赖表对VBScript脚本代码进行展开。
通过函数展开选择器遍历函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;依次展开函数列表中的各函数。
本实施例可以在windows平台下识别带有恶意VBScript脚本代码的网页,进而屏蔽并提示用户,从而保障用户的权益,使得用户能够安全的浏览网页。同时,本方案避免了由VBScript转换为JavaScript过程中导致的失败,从而能够更加有效的检测恶意VBScript脚本代码。
如图5所示,本发明较佳实施例提出一种检测网页中恶意脚本代码的装置,包括:函数列表获取模块401、解析获取模块402以及验证模块403,其中:
函数列表获取模块401,用于通过执行脚本代码及预定义的对象代码,获取函数列表;
解析获取模块402,用于用于对代码进行解析,根据解析结果及函数列表获取变量值。
验证模块403,用于对变量值进行验证。
以VBScript脚本代码为例,考虑到网页中使用的VBScript脚本代码,其常用到的Browser对象及DOM对象若直接置入MSScript引擎中,会提示对象未定义错误,导致运行失败。本实施例首先预定义常用的Browser对象和DOM对象代码,如Navigator对象、Document对象、Object对象等,以解决对象未定义问题。
然后,通过函数列表获取模块401调用脚本接口执行VBScript脚本代码及预定义的对象代码,获取函数列表。具体通过脚本接口IScriptControl提供的ExecuteStatement方法执行VBScript脚本代码,同时加入上述预定义的对象代码一起执行。
成功执行后,函数列表获取模块401调用脚本接口IScriptControl提供的GetProcedures方法,获取VBScript脚本代码中的过程(函数)名列表;调用脚本接口IScriptControl提供的GetCodeObject方法获取IDispatch接口指针,再利用COM反射机制得到VBScript脚本代码中的全局变量列表,上述过程名列表及全局变量列表即为获取的函数列表。
在获取到函数列表之后,再通过解析获取模块402对原始的VBScript脚本代码进行解析,得到详细的函数过程信息,如函数参数列表、函数体等,并将原始VBScript脚本代码进行函数过程裁剪,即将原始VBScript脚本代码中的函数过程全部去除,得到新的VBScript脚本代码,其中,将原始VBScript脚本代码进行函数过程裁剪的目的是便于后续在MSScript脚本引擎中运行展开后的VBScript脚本代码,从中提取变量值。
同时,解析获取模块402根据获取到的VBScript脚本代码中详细的函数过程信息,对于每个函数,依次调用脚本接口IScriptControl提供的ExecuteStatement方法和GetCodeObject方法获取局部变量列表,由于局部变量中经常会保存一些恶意的执行代码,通过获得局部变量,便于后续将局部变量置于特征提取器中进行验证,判断是否含有恶意的脚本代码。
通过上述过程得到了对VBScript脚本代码进行展开所需的所有基本信息,之后根据函数列表及函数过程信息对VBScript脚本代码进行展开。
为了提高VBScript脚本代码展开效率,本实施例引入了函数依赖关系表。通过函数依赖关系表,可以分层次的进行函数展开,从而提高展开效率。
具体地,首先分析各函数之间的调用关系,生成一张体现各函数之间的依赖关系的二维依赖表。此处的依赖关系生成采用的是一种反向依赖的方式,举例如下:
对于函数A、B、C、D、E、F、G,有函数调用关系A调用B、D、G;B调用C、E、G;E调用F、G。
则可构造如下如下二维依赖表:
A->NIL;
B->A;
C->B;
D->A;
E->B;
F->E;
G->A,B,E。
在对各函数进行展开时,其展开过程主要依据函数依赖关系表进行,同时需要设计一个函数展开选择器,该函数展开选择器每次返回下一个待展开函数。首先函数展开选择器遍历当前的函数列表,将找到的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回,依次对函数列表中各函数进行展开。
对于上述例子(函数A、B、C、D、E、F、G)而言,其展开过程如下:
1、A不依赖于任何函数,则展开函数A;
2、在展开函数A后,B和D的依赖关系项均为NIL,则可选择其中任一个进行展开,此处选择第一个扫描到B展开;
3、B展开后,C、D、E依赖关系项为NIL,继而展开C;
4、展开C后,继续展开D、E;
5、展开E后,F和G的表项均为空,则可继续展开F和G。
对于每个函数的展开,其展开原则为:找到函数调用处,构造新函数体,在此处进行替换;新函数体的构造方法为:重命名函数参数和函数局部变量,命名规则为:函数名_变量名(参数名)_调用ID,并在函数体前部将参数本地变量化,把调用时传入的参数对应赋值到变量中。调用ID值为当前检测的函数调用个数,其作用是避免函数多次调用展开而产生的变量冲突。
最后,在各函数展开完成后,由此得到新的VBScript脚本代码。
将函数展开完成后得到的新的VBScript脚本代码置入MSScript脚本引擎执行,通过COM接口反射机制得到所有的变量值列表,验证模块403再将得到的变量值置入特征提取器进行提取验证,最终完成恶意VBScript脚本代码的检测。
具体实施过程中,以VBScript脚本代码为例,如图6所示,上述函数列表获取模块401包括:执行单元4011、过程名列表获取单元4012以及全局变量列表获取单元4013,其中:
执行单元4011,用于调用脚本接口提供的ExecuteStatement方法,执行VBScript脚本代码及预定义的对象代码;
过程名列表获取单元4012,用于调用脚本接口提供的GetProcedures方法,获取VBScript脚本代码中的过程名列表;
全局变量列表获取单元4013,用于调用脚本接口提供的GetCodeObject方法,获取IDispatch接口指针,并利用COM反射机制获取VBScript脚本代码中的全局变量列表。
如图7所示,上述解析获取模块402包括:
解析获取单元4021,用于对代码进行解析,获取代码中的函数过程信息;
展开单元4022,用于根据函数列表及函数过程信息对代码进行展开;
变量值提取单元4023,用于运行展开后的代码,提取变量值。
如图8所示,上述展开单元4022包括:调用关系获取子单元40221、生成子单元40222以及展开子单元40223,其中:
调用关系获取子单元40221,用于根据函数过程信息获取各函数的调用关系;
生成子单元40222,用于根据各函数的调用关系生成二维依赖表;
展开子单元40223,用于根据函数列表及所述二维依赖表对VBScript脚本代码进行展开。
具体地,展开子单元40223遍历函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;依次展开函数列表中的各待展开函数。
本发明实施例检测网页中恶意代码的方法及装置,通过脚本接口执行VBScript脚本代码及预定义的对象代码,获取函数列表,对VBScript脚本代码进行解析,获取VBScript脚本代码中的函数过程信息,然后根据函数列表及函数过程信息对VBScript脚本代码进行展开,在MSScript脚本引擎中运行展开后的VBScript脚本代码,提取变量值;将变量值置入特征提取器中进行验证,从而使得用户在浏览网页时,可提前检测出含有恶意VBScript脚本代码的网页,系统可进行屏蔽处理并提示用户,保护用户的利益不受侵害,提高了用户访问网页的安全性。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种检测网页中恶意代码的方法,其特征在于,包括:
通过执行代码及预定义的对象代码,获取函数列表;所述代码为脚本代码,所述通过执行代码及预定义的对象代码,获取函数列表的步骤包括:调用脚本接口提供的执行代码方法,执行脚本代码及预定义的对象代码;调用所述脚本接口提供的过程名列表获取方法,获取所述脚本代码中的过程名列表;调用所述脚本接口提供的变量列表获取方法,获取接口指针,并利用反射机制获取所述脚本代码中的全局变量列表;
对所述代码进行解析,根据解析结果及所述函数列表获取变量值;具体包括:对所述代码进行解析,获取所述代码中的函数过程信息;根据所述函数列表及所述函数过程信息对所述代码进行展开;运行展开后的代码,提取变量值;所述根据所述函数列表及所述函数过程信息对所述代码进行展开具体包括:根据所述函数过程信息获取各函数的调用关系;根据各函数的调用关系生成二维依赖表;通过函数展开选择器遍历函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;依次展开函数列表中的各函数。
2.根据权利要求1所述的方法,其特征在于,还包括:
对所述变量值进行验证。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述对代码进行解析,获取所述代码中的函数过程信息的步骤进一步包括:
对每一函数依次调用所述执行代码方法及全局变量列表方法获取局部变量列表。
4.一种检测网页中恶意代码的装置,其特征在于,包括:
函数列表获取模块,用于通过执行代码及预定义的对象代码,获取函数列表;所述代码为脚本代码,所述函数列表获取模块包括:
执行单元,用于调用脚本接口提供的执行代码方法,执行脚本代码及预定义的对象代码;
过程名列表获取单元,用于调用所述脚本接口提供的过程名列表获取方法,获取所述脚本代码中的过程名列表;
全局变量列表获取单元,用于调用所述脚本接口提供的变量列表获取方法,获取接口指针,并利用反射机制获取所述脚本代码中的全局变量列表;通过函数展开选择器遍历函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;依次展开函数列表中的各函数;
解析获取模块,用于对所述代码进行解析,根据解析结果及所述函数列表获取变量值;所述解析获取模块包括:
解析获取单元,用于对所述代码进行解析,获取所述代码中的函数过程信息;
展开单元,用于根据所述函数列表及所述函数过程信息对所述代码进行展开;
变量值提取单元,用于运行展开后的代码,提取变量值;所述展开单元,用于根据所述函数列表及所述函数过程信息对所述代码进行展开;包括:
调用关系获取子单元,用于根据所述函数过程信息获取各函数的调用关系;生成子单元,用于根据各函数的调用关系生成二维依赖表;展开子单元,用于通过函数展开选择器遍历函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;依次展开函数列表中的各函数。
5.根据权利要求4所述的装置,其特征在于,还包括:
验证模块,用于对所述变量值置进行验证。
6.根据权利要求4-5中任一项所述的装置,其特征在于,所述解析获取模块还用于对每一函数依次调用所述执行代码方法及变量列表获取方法获取局部变量列表。
CN201110445277.1A 2011-12-27 2011-12-27 检测网页中恶意代码的方法及装置 Active CN102819698B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201110445277.1A CN102819698B (zh) 2011-12-27 2011-12-27 检测网页中恶意代码的方法及装置
PCT/CN2012/087530 WO2013097718A1 (en) 2011-12-27 2012-12-26 Method and device for detecting malicious code on web pages
US14/130,233 US20140150099A1 (en) 2011-12-27 2012-12-26 Method and device for detecting malicious code on web pages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110445277.1A CN102819698B (zh) 2011-12-27 2011-12-27 检测网页中恶意代码的方法及装置

Publications (2)

Publication Number Publication Date
CN102819698A CN102819698A (zh) 2012-12-12
CN102819698B true CN102819698B (zh) 2015-05-20

Family

ID=47303808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110445277.1A Active CN102819698B (zh) 2011-12-27 2011-12-27 检测网页中恶意代码的方法及装置

Country Status (3)

Country Link
US (1) US20140150099A1 (zh)
CN (1) CN102819698B (zh)
WO (1) WO2013097718A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819698B (zh) * 2011-12-27 2015-05-20 腾讯科技(深圳)有限公司 检测网页中恶意代码的方法及装置
CN103885875A (zh) * 2012-12-21 2014-06-25 中国银联股份有限公司 脚本验证装置及方法
CN103258163B (zh) * 2013-05-15 2015-08-26 腾讯科技(深圳)有限公司 一种脚本病毒识别方法、装置及系统
US9774620B2 (en) * 2013-06-18 2017-09-26 Microsoft Technology Licensing, Llc Automatic code and data separation of web application
CN104424434A (zh) * 2013-08-29 2015-03-18 腾讯科技(深圳)有限公司 数据校验方法及装置
CN104899016B (zh) * 2014-03-07 2018-10-09 腾讯科技(深圳)有限公司 调用堆栈关系获取方法及装置
CN108319822B (zh) * 2018-01-05 2020-05-12 武汉斗鱼网络科技有限公司 一种保护网页代码的方法、存储介质、电子设备和系统
CN110262803B (zh) * 2019-06-30 2023-04-18 潍柴动力股份有限公司 一种依赖关系的生成方法及装置
CN112653660A (zh) * 2020-09-02 2021-04-13 浙江德迅网络安全技术有限公司 一种Javascript在恶意网页异常检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983295A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 病毒识别方法及装置
KR20090084529A (ko) * 2008-02-01 2009-08-05 주식회사 안철수연구소 악성 스크립트 코드 복호화 방법 및 시스템
CN101667230A (zh) * 2008-09-02 2010-03-10 北京瑞星国际软件有限公司 一种监控脚本执行的方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4747127A (en) * 1985-12-23 1988-05-24 American Telephone And Telegraph Company, At&T Bell Laboratories Customer programmable real-time system
US8001595B1 (en) * 2006-05-10 2011-08-16 Mcafee, Inc. System, method and computer program product for identifying functions in computer code that control a behavior thereof when executed
KR20080036706A (ko) * 2006-10-24 2008-04-29 박재철 웹 공격 정규표현과 스크립트 파일의 포함 기능을 이용한웹 보안 모듈
US8713679B2 (en) * 2011-02-18 2014-04-29 Microsoft Corporation Detection of code-based malware
US8959477B2 (en) * 2011-10-21 2015-02-17 Sap Se Scripting language for business applications
CN102819698B (zh) * 2011-12-27 2015-05-20 腾讯科技(深圳)有限公司 检测网页中恶意代码的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983295A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 病毒识别方法及装置
KR20090084529A (ko) * 2008-02-01 2009-08-05 주식회사 안철수연구소 악성 스크립트 코드 복호화 방법 및 시스템
CN101667230A (zh) * 2008-09-02 2010-03-10 北京瑞星国际软件有限公司 一种监控脚本执行的方法和装置

Also Published As

Publication number Publication date
WO2013097718A1 (en) 2013-07-04
US20140150099A1 (en) 2014-05-29
CN102819698A (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
CN102819698B (zh) 检测网页中恶意代码的方法及装置
CN110324311B (zh) 漏洞检测的方法、装置、计算机设备和存储介质
CN103095681B (zh) 一种检测漏洞的方法及装置
CN106796637B (zh) 分析装置、分析方法
CN107341399B (zh) 评估代码文件安全性的方法及装置
CN105760379B (zh) 一种基于域内页面关联关系检测webshell页面的方法及装置
CN113110825B (zh) 一种小程序的接口转换方法和装置
CN102143016B (zh) 网站自动化测试方法和系统
CN106886494A (zh) 一种接口自动化测试方法及其系统
CN112989348B (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
WO2015007166A1 (en) Method and apparatus for detecting security vulnerability for animation source file
CN106022127A (zh) Apk文件安全检测方法及装置
CN109194776B (zh) 一种检测方法、系统、电子设备和介质
CN110472165B (zh) Url提取方法、装置、设备及计算机可读存储介质
CN103455600A (zh) 一种视频url抓取方法、装置及服务器设备
Gupta et al. An infrastructure-based framework for the alleviation of JavaScript worms from OSN in mobile cloud platforms
CN107590236A (zh) 一种面向建筑施工企业的大数据采集方法和系统
CN111143722A (zh) 一种网页暗链检测方法、装置、设备及介质
CN103390129B (zh) 检测统一资源定位符安全性的方法和装置
CN109714225B (zh) 一种Elink的自动化测试方法及系统
CN103810091A (zh) 一种用于实现页面测试的方法和设备
CN103838865A (zh) 用于挖掘时效性种子页的方法及装置
CN116451271A (zh) 一种应用软件的隐私政策自动提取方法
CN104050165A (zh) 一种基于iptv的网页初始焦点选定方法和装置
CN116361793A (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