CN101587522A - 识别脚本病毒的方法及系统 - Google Patents
识别脚本病毒的方法及系统 Download PDFInfo
- Publication number
- CN101587522A CN101587522A CNA2009100866893A CN200910086689A CN101587522A CN 101587522 A CN101587522 A CN 101587522A CN A2009100866893 A CNA2009100866893 A CN A2009100866893A CN 200910086689 A CN200910086689 A CN 200910086689A CN 101587522 A CN101587522 A CN 101587522A
- Authority
- CN
- China
- Prior art keywords
- script
- behavior
- virus
- component object
- hook
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种识别脚本病毒的方法及系统,方法包括:通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的所述脚本的行为进行记录;当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;在所述匹配成功的情况下,判定所述脚本为脚本病毒。通过COM组件对象虚函数对脚本的动作行为进行监控,能够将监控的行为与脚本进行联系,并通过对监控的脚本的行为进行记录,将监控到的行为与有害脚本行为规则匹配,从而实现了对脚本病毒的识别。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种识别脚本病毒的方法及系统。
背景技术
由于脚本语言学习和程序编写简单,致使大量的脚本病毒出现。并且,脚本病毒本身就是病毒源代码,或者脚本病毒通过简单转换很容易得到病毒源代码,因此,脚本病毒的传播、变种更加广泛。此外,脚本病毒文件本身没有特定格式,所以脚本病毒更容易实现自变形,从而导致更多的变种病毒出现,急剧增加了脚本病毒对计算机造成的危害。
现有技术中,安全软件采用特征值匹配方法识别病毒。特征值匹配方法通过将程序、代码、数据中的部分或全部程序、代码、数据的特征数据信息与已有的特征数据信息进行比对,来判断程序、代码、数据是否为病毒。当程序、代码、数据为已出现的脚本病毒时,通过特征值匹配能够准确识别即匹配到。
现有技术存在的缺陷在于:由于脚本病毒本身就是脚本源代码或者通过简单转换很容易得到脚本源代码,且脚本程序编写简单,病毒易于修改,加上脚本本身的自变形、加密,致使新的脚本病毒快速涌现,而特征匹配只能对已有的脚本病毒进行识别,导致新的病毒往往在产生危害后才能被识别。
发明内容
本发明提出一种识别脚本病毒的方法及系统,以识别脚本病毒。
本发明提供了一种识别脚本病毒的方法,包括:
通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的所述脚本的行为进行记录;
当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;
在所述匹配成功的情况下,判定所述脚本为脚本病毒。
本发明还提供了一种识别脚本病毒的系统,包括:
监控模块,用于通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的所述脚本的行为进行记录;
匹配模块,用于当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;
判定模块,用于在所述匹配成功的情况下,判定所述脚本为脚本病毒。
上述技术方案通过钩挂组件对象模型(Component Object model,COM)组件对象虚函数对脚本的动作行为进行监控,能够将监控的行为与脚本进行联系,并通过对监控的脚本的行为进行记录,将监控到的行为与有害脚本行为规则匹配,从而实现了对脚本病毒的识别。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明实施例提供的一种识别脚本病毒的方法的流程图;
图2为本发明实施例提供的识别脚本病毒的方法中脚本程序的调用示意图;
图3为本发明实施例提供的一种识别脚本病毒的系统的结构示意图。
具体实施方式
图1为本发明实施例提供的一种识别脚本病毒的方法的流程图。假设通过钩挂进程创建应用程序编程接口(Application Programming Interface,API)函数监控程序的运行,当监控到的进程为脚本解释程序,也即脚本宿主进程如“wscript.exe”时,识别监控到的脚本是否为脚本病毒包括以下步骤:
步骤11、通过钩挂组件对象模型(Component Object model,COM)组件对象虚函数对脚本的动作行为进行监控,对监控到的所述脚本的行为进行记录,如将监控到的行为记录到行为描述结构实体;
步骤12、当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配。可根据行为描述结构实体中记录的该行为的描述信息对该行为与有害脚本行为规则进行比较,判断该行为是否符合有害脚本行为规则;
步骤13、在上述匹配成功的情况下,判定上述脚本为脚本病毒。根据比较结果判断当前监控的脚本的行为是否是有害脚本的行为,也即对当前监控的脚本是否是脚本病毒进行识别。当记录的行为符合有害脚本行为规则时,则监控的脚本是脚本病毒,报警并阻止该脚本继续运行;否则,继续执行步骤12。
上述步骤11中,采用钩挂COM组件对象虚函数的方式进行监控的原因在于:脚本程序的调用如图2所示,首先创建COM对象,然后启动COM组件服务提供者调用COM组件功能,执行API层与内核层的调用。而钩挂操作系统底层API监控的位置是图2中的API层和内核(kernel)层,虽然脚本程序对COM组件的调用最终会调用到API和Kernel层,但在这两层上的监控的行为对象是COM组件服务提供者,而非执行脚本的宿主程序。也就是说,此时监控的行为和脚本本身失去了联系,监控到的行为不能判定为是脚本的行为。例如,一个脚本病毒在发送邮件时,首先要创建一个“Outlook.Application”COM对象,然后启动“Outlook.Application”组件的提供者“Outlook”程序来发送邮件。通过钩挂操作系统底层API进行监控时,只能发现“Outlook”进程在端口25上传输数据的行为,且行为的对象是“Outlook”进程,无法判断是否是脚本病毒的行为。而通过钩挂COM组件对象虚函数进行监控时,也即对COM组件功能调用(即COM组件对象虚函数的调用)时,所监控的进程是脚本宿主进程,因而能够将监控的行为与脚本进行联系,从而监控脚本的行为。进一步地,可通过脚本宿主的命令行定位到脚本文件,从而能准确判定是哪个脚本程序触发的行为监控。
通过钩挂COM组件对象虚函数监控脚本的行为可包括以下方式的任意一种或组合:
第一种方式,通过钩挂所述COM组件的文件操作虚函数监控所述脚本的文件操作;如“Scripting.FileSystemObject”对象的“CopyFile”虚函数监控复制文件操作,监控的行为可包括:自拷贝动作、删除文件动作、修改文件动作、创建文件动作。
第二种方式,通过钩挂所述COM组件的进程创建虚函数监控所述脚本的创建进程操作;如“Shell.Application”对象的“ShellExecute”虚函数,监控的行为可包括:执行程序动作。
第三种方式,通过钩挂所述COM组件的注册表操作虚函数监控所述脚本的注册表操作;如“WScript.Shell”对象的“RegWrite”监控写注册表操作,监控的行为可包括:写自启动项动作。
第四种方式,通过钩挂所述COM组件的邮件发送虚函数监控所述脚本的邮件发送操作;如“CDO.Message”对象的Send函数监控邮件发送操作,监控的行为可包括:发送邮件动作,添加邮件附件动作。
第五种方式,通过钩挂所述COM组件的因特网访问虚函数监控所述脚本的因特网访问操作;如“msxml2.XMLHTTP”的“send”虚函数监控一个HTTP发送请求,监控的行为可包括:Internet访问动作、下载程序动作。
上述步骤11中,所监控的脚本的动作行为可分为受监控动作和危险动作。其中,受监控动作指脚本的动作可能影响计算机安全,需要进行实时监控的行为。危险动作首先是一个受监控动作,且该动作可能威胁到计算机安全。受监控动作可包括:自拷贝动作、下载程序动作、添加邮件附件动作、因特网(Internet)访问动作、创建文件动作等。危险动作可包括:写自启动项动作、发邮件动作、执行程序动作、删除文件动作、修改文件动作、写“StartPage”注册表项等。当监控到危险动作时,执行上述步骤12。
上述步骤12中,有害脚本行为规则可包括:邮件蠕虫规则一、邮件蠕虫规则二、下载者木马规则一、下载者木马规则二、P2P蠕虫规则、Autorun蠕虫规则、StartPage木马规则、恶意脚本病毒规则等。
邮件蠕虫规则一即遍历地址本,发送邮件。邮件蠕虫规则二即添加脚本文件附件,发送邮件。下载者木马规则一即下载程序文件并执行该程序文件。下载者木马规则二即下载程序文件并为该程序文件添加启动项。P2P蠕虫规则即拷贝脚本自身到P2P软件共享目录。Autorun蠕虫规则即修改或创建磁盘根目录“Autorun.inf”文件启动程序。StartPage木马规则即修改StartPage注册表项。恶意脚本病毒规则即删除、修改操作系统相关文件,比如删除ntldr,修改“system.ini”文件“【boot】”节“shell”项等。
本发明实施例提供的识别脚本病毒的方法可进一步包括:通过脚本解释器进程环境中的命令行参数对上述脚本进行定位。可以是对监控的每个动作进行脚本定位,将定位获得的脚本路径信息与监控到该脚本的行为对应记录到行为结构描述实体。
监控过程中记录脚本动作行为到行为描述结构实体,把所记录的行为与有害脚本行为规则进行匹配来判断是否有害脚本。
下面以“HappyTime”脚本病毒为例说明识别脚本病毒的过程。“HappyTime”病毒会在Windows目录下创建“Help.vbs,Untitled.html”病毒文件。该动作行为是一个受监控动作,监控时记录该创建文件的行为到行为描述结构。然后,“HappyTime”病毒会写注册表项“HKEY_CURRENT_USER\Software\Help\Wallpaper”及“HKEY_CURRENT_USER\Control Panel\desktop\wallPaper”用来启动生成的脚本病毒。该动作行为是一个危险动作,监控时记录该写自启动项的行为到行为描述结构,并将记录的行为描述结构与有害脚本行为规则进行匹配。如没有与之匹配的有害脚本行为规则,则继续进行动作行为监控。
当“HappyTime”脚本病毒搜索“Windows\WEB”目录下的HTML、ASP等文件,并在搜索到的文件末尾加入脚本病毒代码时,该动作是一个危险动作,监控、记录该修改文件的行为到行为描述结构,并将记录的行为描述结构与有害脚本行为规则进行匹配。如果没有与之匹配的有害脚本行为规则,则继续进行动作行为监控。
当“HappyTime”脚本病毒搜索邮件地址并发送病毒文件邮件时,该行为会触发一个添加邮件附件的受监控动作,和一个发送邮件的危险动作。监控并该记录这两个行为到行为描述结构。其中,危险动作触发将记录的行为描述结构与有害脚本行为规则进行匹配。匹配的结果是记录的行为与邮件蠕虫规则二即添加脚本文件附件、发送邮件匹配,则判定此脚本为邮件蠕虫型脚本病毒,报警提示用户并阻止邮件发送,恢复注册表项,恢复被修改文件,删除生成的脚本病毒文件。
图3为本发明实施例提供的一种识别脚本病毒的系统的结构示意图。该系统包括:监控模块31、匹配模块32及判定模块33。监控模块31用于通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的上述脚本的行为进行记录;匹配模块32用于当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;判定模块33用于在上述匹配成功的情况下,判定上述脚本为脚本病毒。
上述监控模块31通过钩挂组件对象模型组件对象虚函数监控脚本的行为包括以下方式的任意一种或组合:
通过钩挂上述组件对象模型组件的文件操作虚函数监控上述脚本的文件操作;
通过钩挂上述组件对象模型组件的进程创建虚函数监控上述脚本的创建进程操作;
通过钩挂上述组件对象模型组件的注册表操作虚函数监控上述脚本的注册表操作;
通过钩挂上述组件对象模型组件的邮件发送虚函数监控上述脚本的邮件发送操作;
通过钩挂上述组件对象模型组件的因特网访问虚函数监控上述脚本的因特网访问操作。具体详见上述方法实施例。
本发明实施例提供的识别脚本病毒的系统还可包括:定位模块。该定位模块用于通过脚本解释器进程环境中的命令行参数对上述脚本进行定位。
本发明实施例提供的识别脚本病毒的系统还可包括:阻止模块。该阻止模块用于在上述判定模块33判定上述脚本为脚本病毒之后,阻止上述脚本继续运行。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1、一种识别脚本病毒的方法,其特征在于,包括:
通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的所述脚本的行为进行记录;
当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;
在所述匹配成功的情况下,判定所述脚本为脚本病毒。
2、根据权利要求1所述的识别脚本病毒的方法,其特征在于,通过钩挂组件对象模型组件对象虚函数监控脚本的行为包括以下方式的任意一种或组合:
通过钩挂所述组件对象模型组件的文件操作虚函数监控所述脚本的文件操作;
通过钩挂所述组件对象模型组件的进程创建虚函数监控所述脚本的创建进程操作;
通过钩挂所述组件对象模型组件的注册表操作虚函数监控所述脚本的注册表操作;
通过钩挂所述组件对象模型组件的邮件发送虚函数监控所述脚本的邮件发送操作;
通过钩挂所述组件对象模型组件的因特网访问虚函数监控所述脚本的因特网访问操作。
3、根据权利要求1或2所述的识别脚本病毒的方法,其特征在于,还包括:通过脚本解释器进程环境中的命令行参数对所述脚本进行定位。
4、根据权利要求1或2所述的识别脚本病毒的方法,其特征在于,判定所述脚本为脚本病毒之后,还包括:阻止所述脚本继续运行。
5、一种识别脚本病毒的系统,其特征在于,包括:
监控模块,用于通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的所述脚本的行为进行记录;
匹配模块,用于当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;
判定模块,用于在所述匹配成功的情况下,判定所述脚本为脚本病毒。
6、根据权利要求5所述的识别脚本病毒的系统,其特征在于,包括:
所述监控模块通过钩挂组件对象模型组件对象虚函数监控脚本的行为包括以下方式的任意一种或组合:
通过钩挂所述组件对象模型组件的文件操作虚函数监控所述脚本的文件操作;
通过钩挂所述组件对象模型组件的进程创建虚函数监控所述脚本的创建进程操作;
通过钩挂所述组件对象模型组件的注册表操作虚函数监控所述脚本的注册表操作;
通过钩挂所述组件对象模型组件的邮件发送虚函数监控所述脚本的邮件发送操作;
通过钩挂所述组件对象模型组件的因特网访问虚函数监控所述脚本的因特网访问操作。
7、根据权利要求5或6所述的识别脚本病毒的系统,其特征在于,还包括:
定位模块,用于通过脚本解释器进程环境中的命令行参数对所述脚本进行定位。
8、根据权利要求5或6所述的识别脚本病毒的系统,其特征在于,还包括:
阻止模块,用于在所述判定模块判定所述脚本为脚本病毒之后,阻止所述脚本继续运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100866893A CN101587522B (zh) | 2009-06-17 | 2009-06-17 | 识别脚本病毒的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100866893A CN101587522B (zh) | 2009-06-17 | 2009-06-17 | 识别脚本病毒的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101587522A true CN101587522A (zh) | 2009-11-25 |
CN101587522B CN101587522B (zh) | 2011-03-23 |
Family
ID=41371766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100866893A Active CN101587522B (zh) | 2009-06-17 | 2009-06-17 | 识别脚本病毒的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101587522B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916937A (zh) * | 2012-09-11 | 2013-02-06 | 北京奇虎科技有限公司 | 一种拦截网页攻击的方法、装置和客户端设备 |
CN103258163A (zh) * | 2013-05-15 | 2013-08-21 | 腾讯科技(深圳)有限公司 | 一种脚本病毒识别方法、装置及系统 |
WO2014146527A1 (zh) * | 2013-03-20 | 2014-09-25 | 北京奇虎科技有限公司 | 拦截应用程序中的植入信息的方法及装置 |
CN104252596A (zh) * | 2013-06-28 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 一种脚本病毒的监控方法及装置 |
CN104252593A (zh) * | 2013-06-27 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 脚本监控方法和装置 |
CN107006389A (zh) * | 2016-11-04 | 2017-08-04 | 深圳市沃特沃德股份有限公司 | 终端以及宠物动作信号识别方法和装置 |
CN109254805A (zh) * | 2018-09-21 | 2019-01-22 | 武汉斗鱼网络科技有限公司 | 一种应用自启动方法、终端装置及可读存储介质 |
CN114611105A (zh) * | 2022-03-10 | 2022-06-10 | 北京中睿天下信息技术有限公司 | 一种有害脚本识别方法、装置、设备及存储介质 |
CN115277092A (zh) * | 2022-06-22 | 2022-11-01 | 中国电信股份有限公司 | 处理木马病毒的方法、系统、存储介质以及电子设备 |
-
2009
- 2009-06-17 CN CN2009100866893A patent/CN101587522B/zh active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916937B (zh) * | 2012-09-11 | 2015-11-25 | 北京奇虎科技有限公司 | 一种拦截网页攻击的方法、装置和客户端设备 |
CN102916937A (zh) * | 2012-09-11 | 2013-02-06 | 北京奇虎科技有限公司 | 一种拦截网页攻击的方法、装置和客户端设备 |
WO2014146527A1 (zh) * | 2013-03-20 | 2014-09-25 | 北京奇虎科技有限公司 | 拦截应用程序中的植入信息的方法及装置 |
CN103258163A (zh) * | 2013-05-15 | 2013-08-21 | 腾讯科技(深圳)有限公司 | 一种脚本病毒识别方法、装置及系统 |
CN103258163B (zh) * | 2013-05-15 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种脚本病毒识别方法、装置及系统 |
CN104252593A (zh) * | 2013-06-27 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 脚本监控方法和装置 |
CN104252596A (zh) * | 2013-06-28 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 一种脚本病毒的监控方法及装置 |
CN104252596B (zh) * | 2013-06-28 | 2019-01-25 | 贝壳网际(北京)安全技术有限公司 | 一种脚本病毒的监控方法及装置 |
CN107006389A (zh) * | 2016-11-04 | 2017-08-04 | 深圳市沃特沃德股份有限公司 | 终端以及宠物动作信号识别方法和装置 |
CN107006389B (zh) * | 2016-11-04 | 2021-06-22 | 深圳市沃特沃德股份有限公司 | 终端以及宠物动作信号识别方法和装置 |
CN109254805A (zh) * | 2018-09-21 | 2019-01-22 | 武汉斗鱼网络科技有限公司 | 一种应用自启动方法、终端装置及可读存储介质 |
CN114611105A (zh) * | 2022-03-10 | 2022-06-10 | 北京中睿天下信息技术有限公司 | 一种有害脚本识别方法、装置、设备及存储介质 |
CN115277092A (zh) * | 2022-06-22 | 2022-11-01 | 中国电信股份有限公司 | 处理木马病毒的方法、系统、存储介质以及电子设备 |
CN115277092B (zh) * | 2022-06-22 | 2024-05-14 | 中国电信股份有限公司 | 处理木马病毒的方法、系统、存储介质以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101587522B (zh) | 2011-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101587522B (zh) | 识别脚本病毒的方法及系统 | |
JP4871359B2 (ja) | 仮想アプリケーション環境でのデータのアーカイブ | |
EP1374017B1 (en) | System and method for restoring computer systems damaged by a malicious computer program | |
US10713361B2 (en) | Anti-malware protection using volume filters | |
CN101213557B (zh) | 限制操作系统及其它软件的安装的反骇客保护 | |
US20090019223A1 (en) | Method and systems for providing remote strage via a removable memory device | |
AU2002250453A1 (en) | System and method for restoring computer systems damaged by a malicious computer program | |
US11120147B2 (en) | Operating system garbage-collection with integrated clearing of sensitive data | |
GB2485622A (en) | Server detecting malware in user device. | |
US20140143283A1 (en) | Method and system for creating virtual editable data objects by using a read-only data set as baseline | |
CN110347341B (zh) | 数据清除方法及控制设备 | |
CN103473501A (zh) | 一种基于云安全的恶意软件追踪方法 | |
CN111240892B (zh) | 数据备份方法及装置 | |
CN105637521A (zh) | 一种数据处理方法及智能终端 | |
KR102460078B1 (ko) | 무해화(disarming) 동작에서 차이점(delta) 추출 방식을 이용한 원본 파일 백업 공간을 효율화하는 방법 및 이를 위한 장치 | |
CN103823873A (zh) | 一种浏览器设置项的读/写方法、装置和系统 | |
US20060236108A1 (en) | Instant process termination tool to recover control of an information handling system | |
JP2013521565A (ja) | サブバージョンリポジトリをバックアップする方法及び装置 | |
CN104572943A (zh) | 免安装程序清理方法及装置 | |
CN111382079A (zh) | 应用程序现场还原的方法、装置、设备及存储介质 | |
JP4765968B2 (ja) | ファイル管理システム及び方法並びにプログラム | |
CN116506222B (zh) | 一种安全防护系统 | |
KR100432487B1 (ko) | 온라인/오프라인으로 컴퓨터 시스템의 장애를 복구하는 방법 | |
CN101770554A (zh) | 防毒系统及其方法 | |
US20240160735A1 (en) | Malware Detection and Registry Repair Scripting |
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 |