查看: 2956|回复: 16
收起左侧

[微点] 搬运工【北京东方微点专利技术:识别脚本病毒的方法及系统】

[复制链接]
zhq445078388
发表于 2012-2-22 16:11:58 | 显示全部楼层 |阅读模式
闲的无聊逛逛
然后发现了这个。。
原来 微点对脚本也是行为拦的啊。。
以后测脚本也不能光扫描了
识别脚本病毒的方法及系统
 技术领域

 本发明涉及网络安全技术领域,尤其涉及一种识别脚本病毒的方法及系统。

 背景技术

 由于脚本语言学习和程序编写简单,致使大量的脚本病毒出现。并且,脚本病毒本身就是病毒源代码,或者脚本病毒通过简单转换很容易得到病毒源代码,因此,脚本病毒的传播、变种更加广泛。此外,脚本病毒文件本身没有特定格式,所以脚本病毒更容易实现自变形,从而导致更多的变种病毒出现,急剧增加了脚本病毒对计算机造成的危害。

 现有技术中,安全软件采用特征值匹配方法识别病毒。特征值匹配方法通过将程序、代码、数据中的部分或全部程序、代码、数据的特征数据信息与已有的特征数据信息进行比对,来判断程序、代码、数据是否为病毒。当程序、代码、数据为已出现的脚本病毒时,通过特征值匹配能够准确识别即匹配到。

 现有技术存在的缺陷在于:由于脚本病毒本身就是脚本源代码或者通过简单转换很容易得到脚本源代码,且脚本程序编写简单,病毒易于修改,加上脚本本身的自变形、加密,致使新的脚本病毒快速涌现,而特征匹配只能对已有的脚本病毒进行识别,导致新的病毒往往在产生危害后才能被识别。

 发明内容

 本发明提出一种识别脚本病毒的方法及系统,以识别脚本病毒。

 本发明提供了一种识别脚本病毒的方法,包括:

 通过钩挂进程创建应用程序编程接口函数监控程序的运行,当监控到的进程为脚本解释程序时,通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的所述脚本的行为进行记录;

 当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;

 在所述匹配成功的情况下,判定所述脚本为脚本病毒。

 本发明还提供了一种识别脚本病毒的系统,包括:

 监控模块,用于通过钩挂进程创建应用程序编程接口函数监控程序的运行,当监控到的进程为脚本解释程序时,通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的所述脚本的行为进行记录;

 匹配模块,用于当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;

 判定模块,用于在所述匹配成功的情况下,判定所述脚本为脚本病毒。

 上述技术方案通过钩挂组件对象模型(Component Object model,COM)组件对象虚函数对脚本的动作行为进行监控,能够将监控的行为与脚本进行联系,并通过对监控的脚本的行为进行记录,将监控到的行为与有害脚本行为规则匹配,从而实现了对脚本病毒的识别。


--  1  --

 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

 附图说明

 图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组件对象虚函数监控脚本的行为可包括以下方式的任意一种或组合:


--  2  --

 第一种方式,通过钩挂所述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”用来启动生成的脚本病毒。该动作行为是一个危险动作,监控时记录该写自启动项的行为到 行为描述结构,并将记录的行为描述结构与有害脚本行为规则进行匹配。如没有与之匹配的有害脚本行为规则,则继续进行动作行为监控。


--  3  --

 当“HappyTime”脚本病毒搜索“Windows\WEB”目录下的HTML、ASP等文件,并在搜索到的文件末尾加入脚本病毒代码时,该动作是一个危险动作,监控、记录该修改文件的行为到行为描述结构,并将记录的行为描述结构与有害脚本行为规则进行匹配。如果没有与之匹配的有害脚本行为规则,则继续进行动作行为监控。

 当“HappyTime”脚本病毒搜索邮件地址并发送病毒文件邮件时,该行为会触发一个添加邮件附件的受监控动作,和一个发送邮件的危险动作。监控并该记录这两个行为到行为描述结构。其中,危险动作触发将记录的行为描述结构与有害脚本行为规则进行匹配。匹配的结果是记录的行为与邮件蠕虫规则二即添加脚本文件附件、发送邮件匹配,则判定此脚本为邮件蠕虫型脚本病毒,报警提示用户并阻止邮件发送,恢复注册表项,恢复被修改文件,删除生成的脚本病毒文件。

 图3为本发明实施例提供的一种识别脚本病毒的系统的结构示意图。该系统包括:监控模块31、匹配模块32及判定模块33。监控模块31用于通过钩挂组件对象模型组件对象虚函数监控脚本的行为,对监控到的上述脚本的行为进行记录;匹配模块32用于当监控到的脚本的行为为危险动作时,将记录的行为与预置的有害脚本行为规则进行匹配;判定模块33用于在上述匹配成功的情况下,判定上述脚本为脚本病毒。

 上述监控模块31通过钩挂组件对象模型组件对象虚函数监控脚本的行为包括以下方式的任意一种或组合:

 通过钩挂上述组件对象模型组件的文件操作虚函数监控上述脚本的文件操作;

 通过钩挂上述组件对象模型组件的进程创建虚函数监控上述脚本的创建进程操作;

 通过钩挂上述组件对象模型组件的注册表操作虚函数监控上述脚本的注册表操作;

 通过钩挂上述组件对象模型组件的邮件发送虚函数监控上述脚本的邮件发送操作;

 通过钩挂上述组件对象模型组件的因特网访问虚函数监控上述脚本的因特网访问操作。具体详见上述方法实施例。

 本发明实施例提供的识别脚本病毒的系统还可包括:定位模块。该定位模块用于通过脚本解释器进程环境中的命令行参数对上述脚本进行定位。

 本发明实施例提供的识别脚本病毒的系统还可包括:阻止模块。该阻止模块用于在上述判定模块33判定上述脚本为脚本病毒之后,阻止上述脚本继续运行。

 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

评分

参与人数 2经验 +20 人气 +2 收起 理由
挥泪斩情思 + 20 + 1 为什么这么长?
雪丫鬟 + 1 版区有你更精彩: )

查看全部评分

Howl
发表于 2012-2-22 16:34:21 | 显示全部楼层
麻烦给个原帖地址
天原
发表于 2012-2-22 17:10:19 来自手机 | 显示全部楼层
看看下
boxing
发表于 2012-2-22 17:21:15 | 显示全部楼层
微点的技术有创新
31997
发表于 2012-2-22 18:08:44 | 显示全部楼层
微点不错啊
xuhuier
发表于 2012-2-22 18:10:52 | 显示全部楼层
不知道效果如何呢。。
tang2011
发表于 2012-2-22 18:11:05 | 显示全部楼层
微点不错
轻巧夺命
发表于 2012-2-22 19:30:46 | 显示全部楼层
给个地址吧,这个里边缺图的。
happywangxl
发表于 2012-2-22 22:06:07 | 显示全部楼层
学习,哈哈
zhq445078388
 楼主| 发表于 2012-2-23 09:14:17 | 显示全部楼层
Howl 发表于 2012-2-22 16:34
麻烦给个原帖地址

没有原帖。。是专利
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-21 04:56 , Processed in 0.129047 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表