一种基于病毒样本特征的检测方法、检测装置及检测系统的制作方法

文档序号:6519162阅读:533来源:国知局
一种基于病毒样本特征的检测方法、检测装置及检测系统的制作方法【专利摘要】本发明公开了一种基于病毒样本特征的检测方法、检测装置及检测系统,其方法包括:对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合,对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。本发明的方法、装置和系统可以检测出隐藏于实际脚本中的恶意代码。【专利说明】一种基于病毒样本特征的检测方法、检测装置及检测系统【
技术领域
】[0001]本发明涉及计算机【
技术领域
】,具体涉及一种基于病毒样本特征的检测方法、检测装置及检测系统。【
背景技术
】[0002]随着互联网时代的来临,脚本病毒的传播也在加剧。脚本病毒是通过脚本语言编写的病毒,例如JS脚本病毒(使用JavaScript脚本语言编写)或VBS脚本病毒(使用VBScript脚本语言编写)。脚本病毒具有传播范围大、感染力强、破坏力大等特点。[0003]现有技术中对于脚本病毒的检测,是通过对网页代码全文进行线性搜索,将网页代码与样本病毒特征进行比对,如果发现网页代码中包括样本病毒的特征时,确认网页代码为病毒脚本。[0004]然而,恶意代码往往通过变形的方式隐藏在脚本中,以避免杀毒引擎的检测。如果仅仅对脚本代码进行线性搜索,会难以发现这种通过各种变形方式隐藏在脚本中的恶意代码,带来网络安全隐患。【
发明内容】[0005]鉴于上述对脚本代码进行线性搜索时,难以发现隐藏在脚本中的恶意代码的技术问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种基于病毒样本特征的检测方法和相应的检测装置、检测系统。[0006]根据本发明的第一方面,提供了一种基于病毒样本特征的检测方法,其包括:[0007]对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0008]对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0009]根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合,对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0010]检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0011]根据本发明的第二方面,提供了一种基于病毒样本特征的检测装置,其包括:[0012]词法分析模块,用于对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0013]语法分析模块,用于对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0014]虚拟执行模块,用于根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合,对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0015]检测模块,用于检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0016]根据本发明的第三方面,提供一种基于病毒样本特征的检测系统,其包括:根据本发明提供的检测装置,还包括:[0017]升级模块,用于使云服务器根据脚本病毒的检测结果对云端鉴别条件升级;[0018]发送模块,用于使客户端将本地的待检测文件的特征信息发送至云服务器;[0019]匹配反馈模块,用于使云服务器判断待检测文件的特征信息与云端鉴别条件是否匹配,当待检测文件的特征信息与云端鉴别条件匹配时,云服务器向客户端发送与云端鉴别条件相对应的需要检测的脚本文件信息;[0020]判断模块,客户端根据需要检测的脚本文件信息进行检测,判断待检测文件是否为脚本病毒。[0021]根据本发明的基于病毒样本特征的检测方法、检测装置及检测系统可以对实际脚本进行词法分析和语法分析,从而根据实际脚本解析获得多个虚拟脚本,然后对虚拟脚本进行虚拟执行,并对虚拟执行的结果进行检测以检测出隐藏于实际脚本中的恶意代码,由此解决了现有技术中对脚本代码进行线性搜索时,难以发现隐藏在脚本中的恶意代码的技术问题,取得了进一步增强网络安全的有益效果。[0022]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。【专利附图】【附图说明】[0023]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:[0024]图1示出了根据发明实施例一的基于病毒样本特征的检测方法流程图;[0025]图2示出了根据发明实施例二的基于病毒样本特征的检测方法流程图;[0026]图3示出了根据发明实施例三的基于病毒样本特征的检测方法流程图;[0027]图4示出了根据发明实施例四的基于病毒样本特征的检测方法流程图[0028]图5示出了根据发明实施例五的基于病毒样本特征的检测装置结构图;[0029]图6示出了根据发明实施例七的基于病毒样本特征的检测装置结构图;[0030]图7示出了根据发明实施例八的基于病毒样本特征的检测系统结构图。【具体实施方式】[0031]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。[0032]本发明第一个实施例提供了一种基于病毒样本特征的检测方法,图1示出了根据发明实施例一的基于病毒样本特征的检测方法流程图,如图1所示,其包括:[0033]步骤S101、对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0034]步骤S102、对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0035]步骤S103、根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合,对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0036]步骤S104、检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库;[0037]本发明实施例一的基于病毒样本特征的检测方法,可以对实际脚本进行词法分析和语法分析,确定脚本中词语的类型和语句的类型,进而根据实际脚本解析获得多个虚拟脚本,形成虚拟脚本集合,然后对各个虚拟脚本进行虚拟执行,并对虚拟执行的结果进行检测以检测出隐藏于实际脚本中的恶意代码。实际脚本指杀毒引擎进行检测时所针对的脚本。虚拟脚本指基于实际脚本进行词法分析和语法分析后获得的脚本,用于分析实际脚本以发现恶意代码。可以先对实际脚本进行词法分析,然后在词法分析的基础上再对实际脚本进行语法分析,能够进一步提高解析的准确率。[0038]本发明第二个实施例提供了一种基于病毒样本特征的检测方法,图2示出了根据发明实施例二的基于病毒样本特征的检测方法流程图,如图2所示,其包括:[0039]步骤S201、对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0040]具体地,单词类型集合包括以下至少一个单词类型元素:关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式;[0041]步骤S202、对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0042]具体地,语句类型集合包括以下至少一个语句类型元素:块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句;[0043]步骤S203、根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合,对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0044]具体地,虚拟脚本包含由词语单元和语句单元组成的至少一条脚本语句,步骤S203包括:[0045]步骤S2031、对于每一个词语单元,从词语单元所对应的单词类型集合中选择一个单词类型元素,得到具有确定类型的词语单元;[0046]步骤S2032、对于每一个语句单元,从语句单元所对应的语句类型集合中选择一个语句类型元素,得到具有确定类型的语句单元;[0047]步骤S2033、在实际脚本中,根据全部具有确定类型的词语单元和语句单元,形成一个虚拟脚本;[0048]步骤S2034、根据虚拟脚本获取虚拟脚本集合;虚拟脚本集合包括遍历全部单词类型集合和全部语句类型集合所形成的全部虚拟脚本;[0049]步骤S2035、对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0050]步骤S204、检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0051]本发明实施例二的检测方法是实施例一的检测方法的进一步细化,规定了词语单元和语句单元的具体类型,并给出了虚拟脚本集合的相应的具体形成方法。不论脚本是什么类型,脚本中的词语单元的类型包括关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式等,脚本中的语句单元的类型包括块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句等。针对仅包含词语单元和语句单元的实际脚本适用实施例二的检测方法。本发明实施例二的检测方法除了能够检测出隐藏于实际脚本中的恶意代码,还能够根据上述词语和语句的具体类型,获取包括全部解析可能性的虚拟脚本集合,进一步提高病毒检测效果。[0052]例如,实际脚本包含词语单元A和语句单元C,首先确定词语单元A的单词类型集合,词语单元A的类型可能是关键字或者标识符,那么词语单元A的单词类型集合包括关键字和标识符;然后确定语句单元C的语句类型集合,语句单元C的类型可能是条件语句或者选择语句,那么语句单元C的语句类型集合包括条件语句和选择语句。当生成虚拟脚本时,从词语单元A的单词类型集合中选择一个单词类型元素作为词语单元A的类型,假设选择关键字,则认为词语单元A的类型是关键字;然后从语句单元C的语句类型集合中选择一个语句类型元素,假设选择条件语句,则认为语句单元C的类型是条件语句;以作为关键字的词语单元A和作为条件语句的语句单元C组合成一个虚拟脚本。当生成虚拟脚本集合时,将词语单元A与语句单元C按照以下四种情况组合:[0053]词语单元A(关键字)和语句单元C(条件语句);[0054]词语单元A(关键字)和语句单元C(选择语句);[0055]词语单元A(标识符)和语句单元C(条件语句);[0056]词语单元A(标识符)和语句单元C(条件语句);[0057]得到包含上述四个虚拟脚本的虚拟脚本集合。对虚拟脚本集合中的每个虚拟脚本进行虚拟执行,检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0058]本发明第三个实施例提供了一种基于病毒样本特征的检测方法,图3示出了根据发明实施例三的基于病毒样本特征的检测方法流程图,如图3所示,其包括:[0059]步骤S301、对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0060]具体地,单词类型集合包括以下至少一个单词类型元素:关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式;[0061]步骤S302、对实际脚本进行表达式分析,确定实际脚本中每个表达式单元的表达式类型集合;表达式类型集合包括表达式单元所对应的至少一个表达式类型元素;[0062]具体地,表达式类型集合包括以下至少一个表达式类型元素:赋值表达式、条件表达式、逻辑表达式、位运算表达式、关系表达式、移位表达式、数学运算表达式、后缀表达式、成员表达式、调用表达式、主表达式;[0063]步骤S303、对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0064]具体地,语句类型集合包括以下至少一个语句类型元素:块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句;[0065]优选地,首先对实际脚本进行词法分析,然后在词法分析的基础上再对实际脚本进行表达式分析,最后在词法分析和表达式分析的基础上对实际脚本进行语法分析,能够进一步提闻脚本解析的准确率;[0066]步骤S304、根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合;根据单词类型集合、表达式集合和语句类型集合,获取实际脚本的虚拟脚本集合;对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0067]具体地,虚拟脚本包含由词语单元和语句单元组成的至少一条第一脚本语句、以及由词语单元、语句单元和表达式单元所组成的至少一条第二脚本语句;[0068]具体地,步骤S304具体包括:[0069]步骤S3041、对于每一个词语单元,从词语单元所对应的单词类型集合中选择一个单词类型元素,得到具有确定类型的词语单元;[0070]步骤S3042、对于每一个表达式单元,从表达式单元所对应的表达式类型集合中选择一个表达式类型元素,得到具有确定类型的表达式单元;[0071]步骤S3043、对于每一个语句单元,从语句单元所对应的语句类型集合中选择一个语句类型元素,得到具有确定类型的语句单元;[0072]步骤S3044、在实际脚本中,根据全部具有确定类型的词语单元、表达式单元和语句单元,形成一个虚拟脚本;[0073]步骤S3045、根据虚拟脚本获取虚拟脚本集合;虚拟脚本集合包括遍历全部单词类型集合、全部表达式类型集合和全部语句类型集合所形成的全部虚拟脚本;[0074]步骤S3046、对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0075]步骤S305、检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库;[0076]具体地,病毒样本特征包括字符特征和/或行为特征,步骤S307具体包括:[0077]步骤S3051、当病毒样本特征包括字符特征时,将虚拟执行的脚本语句转换为字符串形式;[0078]步骤S3052、判断字符串形式的脚本语句是否包括字符特征;[0079]步骤S3053、当字符串形式的脚本语句包括字符特征时,确定实际脚本为脚本病毒;[0080]和/或,[0081]步骤S3054、当病毒样本特征包括行为特征时,对虚拟执行的执行行为进行检测;[0082]步骤S3055、判断执行行为是否包括行为特征;[0083]步骤S3056、当执行行为包括行为特征时,确定实际脚本为脚本病毒;[0084]以及步骤S3057、将脚本病毒的检测结果保存至病毒特征库;在对虚拟脚本的执行结果进行字符特征和/或行为特征的比对后,如果虚拟脚本中包括有脚本病毒,则执行本步骤S3057,将检测结果保存至病毒特征库。[0085]具体地,步骤S3054中当病毒样本特征包括行为特征时,行为特征包括:增加超文本标记语言的iframe标签或script标签,和/或,执行js脚本中的document,write函数或creatElement函数。iframe标签和script标签均属于超文本标记语言(HTML、HypertextMarkupLanguage)标签。[0086]具体地,病毒特征库中可以保存多个病毒样本,病毒样本具有病毒样本特征,病毒样本可以实时增加并更新,每个病毒样本用于针对相应的脚本病毒的识别。病毒样本在脚本文件运行环境中加载并运行。[0087]具体地,步骤S305后还包括:根据脚本病毒从病毒特征库获取与脚本病毒对应的病毒名称和/或病毒标识信息(ID),并将病毒名称和/或病毒标识信息发送至杀毒引擎的客户端进行处理;客户端根据病毒名称和/或病毒标识信息进行对脚本病毒进行删除、发出报警信息或弹出提示对话框等处理。例如,在后台可以通过脚本文件运行环境中提供的回调函数import进行病毒报告。[0088]本发明实施例三的检测方法是实施例二的检测方法的进一步细化,在词法分析和语法分析的基础上进一步规定了表达式的具体类型,并给出了虚拟脚本集合的相应的具体形成方法。不论脚本是什么类型,脚本中的表达式单元的类型包括赋值表达式、条件表达式、逻辑表达式、位运算表达式、关系表达式、移位表达式、数学运算表达式、后缀表达式、成员表达式、调用表达式、主表达式等。针对包含词语单元、表达式单元和语句单元的实际脚本适用实施例三的检测方法。本发明实施例三的检测方法除了能够检测出隐藏于实际脚本中的恶意代码,还能够根据词语、表达式和语句的具体类型,获取包括全部解析可能性的虚拟脚本集合,进一步提高病毒检测效果。[0089]此外,步骤S305中检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒的步骤,能够根据字符特征或者行为特征检测病毒,进一步提高检测病毒的效果。[0090]例如,实际脚本包含词语单元A、表达式单元B和语句单元C,当发现该实际脚本被加密时,要对该实际脚本进行解密。对于解密后的实际脚本,确定词语单元A的单词类型集合,词语单元A的类型可能是关键字或者标识符,那么词语单元A的单词类型集合包括关键字和标识符;确定表达式单元B的表达式类型集合,表达式单元B的类型可能是赋值表达式或者位运算表达式,那么表达式单元B的表达式类型集合包括赋值表达式和位运算表达式;确定语句单元C的语句类型集合,语句单元C的类型可能是条件语句或者选择语句,那么语句单元C的语句类型集合包括条件语句和选择语句。当生成虚拟脚本时,从词语单元A的单词类型集合中选择一个单词类型元素作为词语单元A的类型,假设选择关键字,则认为词语单元A的类型是关键字;从表达式单元B的表达式类型集合中选择一个表达式类型元素,假设选择赋值表达式,则认为表达式单元B的类型是赋值表达式;从语句单元C的语句类型集合中选择一个语句类型元素,假设选择条件语句,则认为语句单元C的类型是条件语句;以作为关键字的词语单元A、作为择赋值表达式的表达式单元B和作为条件语句的语句单元C组合成一个虚拟脚本。当生成虚拟脚本集合时,将词语单元A、表达式单元B与语句单元C按照以下八种情况组合:[0091]词语单元A(关键字)、表达式单元B(赋值表达式)和语句单元C(条件语句);[0092]词语单元A(关键字)、表达式单元B(赋值表达式)和语句单元C(选择语句);[0093]词语单元A(关键字)、表达式单元B(位运算表达式)和语句单元C(条件语句);[0094]词语单元A(关键字)、表达式单元B(位运算表达式)和语句单元C(选择语句);[0095]词语单元A(标识符)、表达式单元B(赋值表达式)和语句单元C(条件语句);[0096]词语单元A(标识符)、表达式单元B(赋值表达式)和语句单元C(选择语句);[0097]词语单元A(标识符)、表达式单元B(位运算表达式)和语句单元C(条件语句);[0098]词语单元A(标识符)、表达式单元B(位运算表达式)和语句单元C(选择语句);[0099]得到包含上述八个虚拟脚本的虚拟脚本集合。对虚拟脚本集合中的每个虚拟脚本进行虚拟执行,检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0100]本发明第四个实施例提供了一种基于病毒样本特征的检测方法,图4示出了根据发明实施例四的基于病毒样本特征的检测方法流程图,如图4所示,其包括:[0101]步骤S401、确定实际脚本的类型,并调取与实际脚本的类型相对应的脚本杀毒引擎进行处理;[0102]具体为:预设多个脚本杀毒引擎;脚本杀毒引擎所针对的脚本类型包括:JS(JavaScript)脚本类型、HTML(HypertextMarkupLanguage)脚本类型、PHP(HypertextPreprocessor)脚本类型和VBS(MicrosoftVisualBasicScriptEditon)脚本类型;对应地,脚本杀毒引擎包括JS脚本杀毒引擎、HTML脚本杀毒引擎、PHP脚本杀毒引擎和VBS脚本杀毒引擎;其中,每个脚本杀毒引擎都根据脚本类型进行设置,根据确定类型的脚本规范对该类型脚本进行解析,例如,JS脚本杀毒引擎根据JS脚本的脚本规范进行设置,对JS脚本根据JS脚本规范进行词法分析、表达式分析和语法分析。当确定实际脚本的类型后,调用与实际脚本的类型相对应的脚本杀毒引擎进行处理,例如,当实际脚本是JS脚本时,则调用JS脚本杀毒引擎进行处理。本步骤S401仅仅为了根据实际脚本的类型设置不同的脚本杀毒引擎,是可选步骤。[0103]步骤S402、获取实际脚本的可执行代码;[0104]具体为:设定特征函数、以及特征函数捕获函数与特征函数的对应关系;当实际脚本调用特征函数时,将该特征函数替换为与该特征函数对应的特征函数捕获函数,例如,对于JavaScript脚本,可以采用HookJS的方式进行替换,Hook指的是将一个函数的调用变成另一个函数的调用;利用特征函数捕获函数获得特征函数中的可执行代码,即实际脚本中的可执行代码。通过获取实际脚本的可执行代码,可以集中针对可执行代码进行词法分析、表达式分析和语法分析,提高分析的准确率,并减少对非执行代码分析所带来的运算量。本步骤S402仅仅为了获取实际脚本的可执行代码,是可选步骤。[0105]步骤S403、对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素。[0106]步骤S404、对实际脚本进行表达式分析,确定实际脚本中每个表达式单元的表达式类型集合;表达式类型集合包括表达式单元所对应的至少一个表达式类型元素。[0107]步骤S405、对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素。[0108]优选地,步骤S403、步骤S404和步骤S405中是针对实际脚本中的可执行代码进行词法分析、表达式分析和语法分析,可以提高分析效率。[0109]步骤S406、根据单词类型集合、表达式集合和语句类型集合,获取实际脚本的虚拟脚本集合;对虚拟脚本集合中的每个虚拟脚本进行虚拟执行。[0110]步骤S407、检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0111]具体地,病毒特征库中可以保存多个病毒样本,病毒样本具有病毒样本特征,病毒样本可以实时增加并更新,每个病毒样本用于针对相应的脚本病毒的识别。病毒样本在脚本文件运行环境中加载并运行。[0112]具体地,本发明提供的上述基于脚本类型判断的病毒检测方法可以主要应用在杀毒装置中。具体应用时,可以预先对上文提到的病毒样本特征保存到预设的病毒特征库中。该病毒特征库可以设置在客户端本地或云端服务器上(例如保存在云端的数据库中,或者保存在本地的配置文件中),用于存储病毒样本的病毒特征,该病毒样本及其病毒特征可以通过md5值等进行标识。然后,杀毒装置(例如安全卫士软件等)通过进程间通信的机制先调用本发明实施例中提供的脚本杀毒引擎对待检测脚本进行查毒,由脚本杀毒引擎根据保存的病毒样本特征进行病毒检测;如果检测出了病毒,可以直接将该病毒删除,或者将该病毒提示给用户,由用户来决定是否删除;如果未检测出病毒,可以进一步调用其他杀毒引擎(例如云查杀引擎等)进行查杀。在后台可以通过脚本文件运行环境中提供的回调函数report进行病毒报告。[0113]步骤S408、云服务器根据脚本病毒的检测结果对云端鉴别条件升级;[0114]具体为:将脚本病毒的检测结果保存至部署于云服务器的病毒特征库后,云服务器定期检测脚本病毒的检测结果,当存在新的脚本病毒的检测结果时,云服务器从检测结果中获取新的脚本病毒的脚本名称信息、脚本大小信息、脚本图标信息、脚本特征值信息和/或进程命令信息作为新的脚本病毒的云端鉴别条件,通过加载新的脚本病毒的云端鉴别条件完成云端鉴别条件升级;升级条件在服务器中进行配置;云端鉴别条件包括以下至少之一:脚本名称信息、脚本大小信息、脚本图标信息、脚本特征值信息以及进程命令信息;[0115]可选地,步骤S408中结合已知黑/白名单对未知脚本病毒进行分析,具体为:[0116]如果未知脚本病毒的特征与现有黑/白名单中的已知脚本病毒特征相同,则将该未知脚本病毒的特征和程序行为都列入黑/白名单;[0117]如果未知脚本病毒的行为与现有黑/白名单中的已知脚本病毒行为相同或近似,则将该未知脚本病毒的行为和特征都列入黑/白名单。[0118]步骤S409、客户端将本地的待检测文件的特征信息发送至云服务器;[0119]具体为:待检测文件的特征信息与云端鉴别条件相对应;待检测文件的特征信息也同样包括:名称信息、大小信息、图标信息、特征值信息以及进程命令信息。[0120]步骤S410、云服务器判断待检测文件的特征信息与云端鉴别条件是否匹配,当待检测文件的特征信息与云端鉴别条件匹配时,云服务器向客户端发送与云端鉴别条件相对应的需要检测的脚本文件信息;[0121]具体为:云端鉴别条件存储在服务器中;在云服务器接收到客户端发送的检测文件的特征信息后,云服务器进行匹配;当匹配成功后,说明客户端的待检测文件为可疑文件,需要进一步检测,此时,云服务器将需要检测的脚本文件信息反馈至客户端,通过客户端进行进一步的检测。[0122]步骤S411、客户端根据需要检测的脚本文件信息进行检测,判断待检测文件是否为脚本病毒;[0123]具体为:客户端在接收到服务器下发的需要检测的脚本文件信息后,判断指定目录下是否存在需要检测的脚本文件信息。如果指定目录下存在需要检测的脚本文件信息,说明待检测文件存在脚本病毒,并且脚本病毒即为指定目录下存在的文件,需要对这些脚本病毒进行查杀处理;如果指定目录下不存在需要检测的脚本文件信息,说明这些文件不会被待检测文件加载,因此不需要对其进行查杀处理。[0124]步骤S412、当判断待检测文件不是脚本病毒时,调用非脚本杀毒引擎对待检测文件进行检测,判断待检测文件是否为除脚本病毒外的其他程序病毒;[0125]具体地,非脚本杀毒引擎包括:用以查杀PE(PortableExecute,可移植执行体)类型文件的云查杀引擎和QVM引擎(QihooVirtualMachine,人工智能引擎),以及BitDefender杀毒引擎和小红伞杀毒引擎等(常见的PE类型文件包括EXE、DLL、OCX、SYS、COM等类型文件)。当脚本杀毒引擎未检测出脚本病毒时,由客户端调用云查杀引擎、QVM引擎、BitDefender杀毒引擎或小红伞杀毒引擎等其他杀毒引擎进行病毒查杀。[0126]此外,也可以先通过客户端调用云查杀引擎、QVM引擎、BitDefender杀毒引擎或小红伞杀毒引擎等其他杀毒引擎进行病毒查杀,当未检测出病毒时,再调用脚本杀毒引擎对脚本进行查杀。[0127]当判断待检测文件为脚本病毒和/或除脚本病毒外的其他程序病毒时,对待检测文件进行查杀处理。其中,查杀处理包括:根据记录的逆向行为执行恢复动作;对于无法通过执行逆向行为得到恢复的文件,通过替换的方式进行恢复。[0128]通过本发明实施例四的基于病毒样本特征的检测方法,能够通过云服务器基于脚本病毒的检测结果对云端鉴别条件进行升级,然后根据客户端提供的待检测文件的特征信息和云端鉴别条件进行病毒检测,不需要再针对每个待检测文件进行词法分析、表达式分析和语句分析,减少了脚本病毒检测的运算量,而且有利于传播病毒样本的特征信息,实现云查杀。[0129]此外,发明实施例四的基于病毒样本特征的检测方法采用脚本杀毒引擎和非脚本杀毒引擎结合的杀毒方式,能够针对包括脚本和PE文件在内的各种类型计算机文件进行病毒查杀。[0130]本发明第五个实施例提供了一种基于病毒样本特征的检测装置,图5示出了根据发明实施例五的基于病毒样本特征的检测装置结构图,如图5所示,其包括:[0131]词法分析模块1,用于对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0132]语法分析模块2,用于对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0133]虚拟执行模块3,用于根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合,对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0134]检测模块4,用于检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0135]本发明实施例五的检测装置,是本发明实施例一的检测方法的实现装置,其具体原理与本发明第一个实施例提供的方法相同,因此不再赘述。[0136]本发明实施例五的检测装置,可以对实际脚本进行词法分析和语法分析,确定脚本中词语的类型和语句的类型,进而根据实际脚本解析获得多个虚拟脚本,形成虚拟脚本集合,然后对各个虚拟脚本进行虚拟执行,并对虚拟执行的结果进行检测以检测出隐藏于实际脚本中的恶意代码。[0137]本发明第六个实施例提供了一种基于病毒样本特征的检测装置,其大体结构与本发明实施例五的检测装置相似,故可以参照图5,如图5所示,其包括:[0138]词法分析模块1,用于对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0139]语法分析模块2,用于对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0140]虚拟执行模块3,用于根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合,对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0141]具体地,虚拟脚本包含由词语单元和语句单元组成的至少一条脚本语句,虚拟执行模块3具体用于:[0142]对于每一个词语单元,从词语单元所对应的单词类型集合中选择一个单词类型元素,得到具有确定类型的词语单元;[0143]对于每一个语句单元,从语句单元所对应的语句类型集合中选择一个语句类型元素,得到具有确定类型的语句单元;[0144]在实际脚本中,根据全部具有确定类型的词语单元和语句单元,形成一个虚拟脚本;[0145]根据虚拟脚本获取虚拟脚本集合;虚拟脚本集合包括遍历全部单词类型集合和全部语句类型集合所形成的全部虚拟脚本;[0146]对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0147]检测模块4,用于检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0148]本发明实施例六的检测装置,是本发明实施例二的检测方法的实现装置,其具体原理与本发明第二个实施例提供的方法相同,因此不再赘述。[0149]本发明实施例六的检测装置,除了能够检测出隐藏于实际脚本中的恶意代码,还能够根据上述词语和语句的具体类型,获取包括全部解析可能性的虚拟脚本集合,进一步提闻病毒检测效果。[0150]本发明第七个实施例提供了一种基于病毒样本特征的检测装置,图6示出了根据发明实施例七的基于病毒样本特征的检测装置结构图,如图6所示,其包括:[0151]词法分析模块1,用于对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0152]具体地,单词类型集合包括以下至少一个单词类型元素:关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式;[0153]表达式分析模块5,用于对实际脚本进行表达式分析,确定实际脚本中每个表达式单元的表达式类型集合;表达式类型集合包括表达式单元所对应的至少一个表达式类型元素;[0154]具体地,表达式类型集合包括以下至少一个表达式类型元素:赋值表达式、条件表达式、逻辑表达式、位运算表达式、关系表达式、移位表达式、数学运算表达式、后缀表达式、成员表达式、调用表达式、主表达式。[0155]语法分析模块2,用于对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0156]具体地,语句类型集合包括以下至少一个语句类型元素:块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句;[0157]虚拟执行模块3,用于根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合;根据单词类型集合、表达式集合和语句类型集合,获取实际脚本的虚拟脚本集合;对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0158]具体地,虚拟脚本包含由词语单元和语句单元组成的至少一条第一脚本语句、以及由词语单元、语句单元和表达式单元所组成的至少一条第二脚本语句;[0159]虚拟执行模块3具体用于:[0160]对于每一个词语单元,从词语单元所对应的单词类型集合中选择一个单词类型元素,得到具有确定类型的词语单元;[0161]对于每一个语句单元,从语句单元所对应的语句类型集合中选择一个语句类型元素,得到具有确定类型的语句单元;[0162]在实际脚本中,根据全部具有确定类型的词语单元和语句单元,形成一个虚拟脚本;[0163]根据虚拟脚本获取虚拟脚本集合;虚拟脚本集合包括遍历全部单词类型集合和全部语句类型集合所形成的全部虚拟脚本;[0164]对虚拟脚本集合中的每个虚拟脚本进行虚拟执行。[0165]具体地,虚拟执行模块3具体还用于:[0166]对于每一个词语单元,从词语单元所对应的单词类型集合中选择一个单词类型元素,得到具有确定类型的词语单元;[0167]对于每一个表达式单元,从表达式单元所对应的表达式类型集合中选择一个表达式类型元素,得到具有确定类型的表达式单元;[0168]对于每一个语句单元,从语句单元所对应的语句类型集合中选择一个语句类型元素,得到具有确定类型的语句单元;[0169]在实际脚本中,根据全部具有确定类型的词语单元、表达式单元和语句单元,形成一个虚拟脚本;[0170]根据虚拟脚本获取虚拟脚本集合;虚拟脚本集合包括遍历全部单词类型集合、全部表达式类型集合和全部语句类型集合所形成的全部虚拟脚本;[0171]对虚拟脚本集合中的每个虚拟脚本进行虚拟执行。[0172]检测模块4,用于检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库;[0173]具体地,病毒样本特征包括字符特征和/或行为特征;[0174]具体地,检测模块4具体用于:[0175]当病毒样本特征包括字符特征时,将虚拟执行的脚本语句转换为字符串形式;[0176]判断字符串形式的脚本语句是否包括字符特征;[0177]当字符串形式的脚本语句包括字符特征时,确定实际脚本为脚本病毒;[0178]和/或,[0179]当病毒样本特征包括行为特征时,对虚拟执行的执行行为进行检测;[0180]判断执行行为是否包括行为特征;[0181]当执行行为包括行为特征时,确定实际脚本为脚本病毒。[0182]具体地,当病毒样本特征包括行为特征时,行为特征包括:增加超文本标记语言的iframe标签或script标签,和/或,执行js脚本中的document,write函数或creatElement函数。[0183]本发明实施例七的检测装置,是本发明实施例三的检测方法的实现装置,其具体原理与本发明第三个实施例提供的方法相同,因此不再赘述。[0184]本发明实施例七的检测装置,除了能够检测出隐藏于实际脚本中的恶意代码,还能够根据词语、表达式和语句的具体类型,获取包括全部解析可能性的虚拟脚本集合,进一步提闻病毒检测效果。[0185]此外,检测模块能够根据字符特征或者行为特征检测脚本病毒,进一步提高检测病毒的效果。[0186]本发明第八个实施例提供了一种基于病毒样本特征的检测系统,图8示出了根据发明实施例八的基于病毒样本特征的检测系统结构图,如图8所示,其包括:本发明的基于病毒样本特征的检测装置12;还包括:[0187]升级模块6,用于使云服务器根据脚本病毒的检测结果对云端鉴别条件升级;[0188]发送模块7,用于使客户端将本地的待检测文件的特征信息发送至云服务器;[0189]匹配反馈模块8,用于使云服务器判断待检测文件的特征信息与云端鉴别条件是否匹配,当待检测文件的特征信息与云端鉴别条件匹配时,云服务器向客户端发送与云端鉴别条件相对应的需要检测的脚本文件信息;[0190]判断模块9,客户端根据需要检测的脚本文件信息进行检测,判断待检测文件是否为脚本病毒。[0191]其中,本发明的基于病毒样本特征的检测装置12包括:[0192]词法分析模块1,用于对实际脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合;单词类型集合包括词语单元所对应的至少一个单词类型元素;[0193]表达式分析模块5,用于对实际脚本进行表达式分析,确定实际脚本中每个表达式单元的表达式类型集合;表达式类型集合包括表达式单元所对应的至少一个表达式类型元素;[0194]语法分析模块2,用于对实际脚本进行语法分析,确定实际脚本中每个语句单元的语句类型集合;语句类型集合包括语句单元所对应的至少一个语句类型元素;[0195]虚拟执行模块3,用于根据单词类型集合和语句类型集合,获取实际脚本的虚拟脚本集合;根据单词类型集合、表达式集合和语句类型集合,获取实际脚本的虚拟脚本集合;对虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0196]检测模块4,用于检测虚拟执行的结果,当虚拟执行的结果符合病毒样本特征时,确定实际脚本为脚本病毒并且将脚本病毒的检测结果保存至病毒特征库。[0197]进一步,本发明实施例八的检测系统,还包括:[0198]非脚本杀毒引擎调用模块10,用于当判断待检测文件不是脚本病毒时,调用非脚本杀毒引擎对待检测文件进行检测,判断待检测文件是否为除脚本病毒外的其他程序病毒。[0199]其中,升级模块6和匹配反馈模块8部署于云服务器13,发送模块7、判断模块9和非脚本杀毒引擎调用模块10部署于终端设备14的客户端。[0200]进一步,本发明实施例八的检测装置12,还包括:[0201]脚本杀毒引擎调用模块,用于确定实际脚本的类型,并调取与实际脚本的类型相对应的脚本杀毒引擎进行处理;[0202]捕获模块,用于获取实际脚本的可执行代码。[0203]脚本杀毒引擎调用模块和捕获模块在图7中未出示。[0204]本发明实施例八的检测系统,是本发明实施例四的检测方法的实现系统,其具体原理与本发明第四个实施例提供的方法相同,因此不再赘述。[0205]本发明实施例八的检测系统,能够通过云服务器基于脚本病毒的检测结果对云端鉴别条件进行升级,然后根据客户端提供的待检测文件的特征信息和云端鉴别条件进行病毒检测,不需要再针对每个待检测文件进行词法分析、表达式分析和语句分析,减少了脚本病毒检测的运算量,而且有利于传播病毒样本的特征信息,实现云查杀。[0206]此外,发明实施例八的检测系统采用脚本杀毒引擎和非脚本杀毒引擎结合的杀毒方式,能够针对包括脚本和PE文件在内的各种类型计算机文件进行病毒查杀。[0207]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。[0208]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。[0209]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。[0210]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。[0211]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。[0212]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于病毒样本特征的检测装置和检测系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。[0213]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。[0214]本发明实施例公开了:[0215]Al、一种基于病毒样本特征的检测方法,其包括:[0216]对实际脚本进行词法分析,确定所述实际脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;[0217]对所述实际脚本进行语法分析,确定所述实际脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;[0218]根据所述单词类型集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合,对所述虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0219]检测所述虚拟执行的结果,当所述虚拟执行的结果符合病毒样本特征时,确定所述实际脚本为脚本病毒并且将所述脚本病毒的检测结果保存至病毒特征库。[0220]A2、根据Al所述的检测方法,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条脚本语句。[0221]A3、根据Al所述的检测方法,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条第一脚本语句、以及由所述词语单元、所述语句单元和所述表达式单元所组成的至少一条第二脚本语句;[0222]在所述对实际脚本进行词法分析之后,在对所述实际脚本进行语法分析之前,还包括:[0223]对所述实际脚本进行表达式分析,确定所述实际脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;[0224]在对所述实际脚本进行语法分析之后,对所述虚拟脚本集合中的每个虚拟脚本进行虚拟执行之前,还包括:[0225]根据所述单词类型集合、所述表达式集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合。[0226]A4、根据A2所述的检测方法,其中,所述根据所述单词类型集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合的步骤具体包括:[0227]对于每一个所述词语单元,从所述词语单元所对应的所述单词类型集合中选择一个所述单词类型元素,得到具有确定类型的所述词语单元;[0228]对于每一个所述语句单元,从所述语句单元所对应的所述语句类型集合中选择一个所述语句类型元素,得到具有确定类型的所述语句单元;[0229]在所述实际脚本中,根据全部具有确定类型的所述词语单元和所述语句单元,形成一个所述虚拟脚本;[0230]根据所述虚拟脚本获取所述虚拟脚本集合;所述虚拟脚本集合包括遍历全部所述单词类型集合和全部所述语句类型集合所形成的全部所述虚拟脚本。[0231]A5、根据A3所述的检测方法,其中,根据所述单词类型集合、所述表达式集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合的步骤具体包括:[0232]对于每一个所述词语单元,从所述词语单元所对应的所述单词类型集合中选择一个所述单词类型元素,得到具有确定类型的所述词语单元;[0233]对于每一个所述表达式单元,从所述表达式单元所对应的所述表达式类型集合中选择一个所述表达式类型元素,得到具有确定类型的所述表达式单元;[0234]对于每一个所述语句单元,从所述语句单元所对应的所述语句类型集合中选择一个所述语句类型元素,得到具有确定类型的所述语句单元;[0235]在所述实际脚本中,根据全部具有确定类型的所述词语单元、表达式单元和所述语句单元,形成一个所述虚拟脚本;[0236]根据所述虚拟脚本获取所述虚拟脚本集合;所述虚拟脚本集合包括遍历全部所述单词类型集合、全部所述表达式类型集合和全部所述语句类型集合所形成的全部所述虚拟脚本。[0237]A6、根据A3所述的检测方法,其中,[0238]所述单词类型集合包括以下至少一个单词类型元素:关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式;[0239]所述语句类型集合包括以下至少一个语句类型元素:块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句;[0240]所述表达式类型集合包括以下至少一个表达式类型元素:赋值表达式、条件表达式、逻辑表达式、位运算表达式、关系表达式、移位表达式、数学运算表达式、后缀表达式、成员表达式、调用表达式、主表达式。[0241]A7、根据Al?A6任一项所述的检测方法,其中,所述病毒样本特征包括字符特征和/或行为特征;[0242]检测所述虚拟执行的结果,当所述虚拟执行的结果符合病毒样本特征时,确定所述实际脚本为脚本病毒的步骤具体包括:[0243]当所述病毒样本特征包括所述字符特征时,将所述虚拟执行的脚本语句转换为字符串形式;[0244]判断所述字符串形式的所述脚本语句是否包括所述字符特征;[0245]当所述字符串形式的所述脚本语句包括所述字符特征时,确定所述实际脚本为脚本病毒;[0246]和/或,[0247]当所述病毒样本特征包括所述行为特征时,对所述虚拟执行的执行行为进行检测;[0248]判断所述执行行为是否包括所述行为特征;[0249]当所述执行行为包括所述行为特征时,确定所述实际脚本为脚本病毒。[0250]AS、根据A7所述的检测方法,其中,当所述病毒样本特征包括所述行为特征时,所述行为特征包括:增加超文本标记语言的iframe标签或script标签,和/或,执行js脚本中的document,write函数或creatElement函数。[0251]A9、根据Al?A6任一项所述的检测方法,其中,在确定所述实际脚本为所述脚本病毒并且将所述脚本病毒的所述检测结果保存至所述病毒特征库之后,还包括:[0252]云服务器根据所述脚本病毒的所述检测结果对云端鉴别条件升级;[0253]客户端将本地的待检测文件的特征信息发送至所述云服务器;[0254]所述云服务器判断所述待检测文件的特征信息与所述云端鉴别条件是否匹配,当所述待检测文件的特征信息与所述云端鉴别条件匹配时,所述云服务器向所述客户端发送与所述云端鉴别条件相对应的需要检测的脚本文件信息;[0255]所述客户端根据所述需要检测的脚本文件信息进行检测,判断所述待检测文件是否为所述脚本病毒。[0256]A10、根据A9所述的检测方法,其中,在所述客户端根据所述需要检测的脚本文件信息进行检测,判断所述待检测文件是否为所述脚本病毒之后,还包括:[0257]当判断所述待检测文件不是所述脚本病毒时,调用非脚本杀毒引擎对所述待检测文件进行检测,判断所述待检测文件是否为除脚本病毒外的其他程序病毒。[0258]本发明实施例还公开了:[0259]B11、一种基于病毒样本特征的检测装置,其包括:[0260]词法分析模块,用于对实际脚本进行词法分析,确定所述实际脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;[0261]语法分析模块,用于对所述实际脚本进行语法分析,确定所述实际脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;[0262]虚拟执行模块,用于根据所述单词类型集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合,对所述虚拟脚本集合中的每个虚拟脚本进行虚拟执行;[0263]检测模块,用于检测所述虚拟执行的结果,当所述虚拟执行的结果符合病毒样本特征时,确定所述实际脚本为脚本病毒并且将所述脚本病毒的检测结果保存至病毒特征库。[0264]B12、根据Bll所述的检测装置,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条脚本语句。[0265]B13、根据Bll所述的检测装置,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条第一脚本语句、以及由所述词语单元、所述语句单元和所述表达式单元所组成的至少一条第二脚本语句;[0266]所述装置还包括:[0267]表达式分析模块,用于对所述实际脚本进行表达式分析,确定所述实际脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;[0268]所述虚拟执行模块还用于:[0269]根据所述单词类型集合、所述表达式集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合。[0270]B14、根据B12所述的装置,其中,[0271]所述虚拟执行模块具体用于:[0272]对于每一个所述词语单元,从所述词语单元所对应的所述单词类型集合中选择一个所述单词类型元素,得到具有确定类型的所述词语单元;[0273]对于每一个所述语句单元,从所述语句单元所对应的所述语句类型集合中选择一个所述语句类型元素,得到具有确定类型的所述语句单元;[0274]在所述实际脚本中,根据全部具有确定类型的所述词语单元和所述语句单元,形成一个所述虚拟脚本;[0275]根据所述虚拟脚本获取所述虚拟脚本集合;所述虚拟脚本集合包括遍历全部所述单词类型集合和全部所述语句类型集合所形成的全部所述虚拟脚本;[0276]对所述虚拟脚本集合中的每个所述虚拟脚本进行虚拟执行。[0277]B15、根据B13所述的检测装置,其中,[0278]所述虚拟执行模块具体用于:[0279]对于每一个所述词语单元,从所述词语单元所对应的所述单词类型集合中选择一个所述单词类型元素,得到具有确定类型的所述词语单元;[0280]对于每一个所述表达式单元,从所述表达式单元所对应的所述表达式类型集合中选择一个所述表达式类型元素,得到具有确定类型的所述表达式单元;[0281]对于每一个所述语句单元,从所述语句单元所对应的所述语句类型集合中选择一个所述语句类型元素,得到具有确定类型的所述语句单元;[0282]在所述实际脚本中,根据全部具有确定类型的所述词语单元、表达式单元和所述语句单元,形成一个所述虚拟脚本;[0283]根据所述虚拟脚本获取所述虚拟脚本集合;所述虚拟脚本集合包括遍历全部所述单词类型集合、全部所述表达式类型集合和全部所述语句类型集合所形成的全部所述虚拟脚本;[0284]对所述虚拟脚本集合中的每个所述虚拟脚本进行虚拟执行。[0285]B16、根据B13所述的检测装置,其中,[0286]所述单词类型集合包括以下至少一个单词类型元素:关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式;[0287]所述语句类型集合包括以下至少一个语句类型元素:块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句;[0288]所述表达式类型集合包括以下至少一个表达式类型元素:赋值表达式、条件表达式、逻辑表达式、位运算表达式、关系表达式、移位表达式、数学运算表达式、后缀表达式、成员表达式、调用表达式、主表达式。[0289]B17、根据Bll?B16任一项所述的检测装置,其中,所述病毒样本特征包括字符特征和/或行为特征;[0290]所述检测模块具体用于:[0291]当所述病毒样本特征包括所述字符特征时,将所述虚拟执行的脚本语句转换为字符串形式;[0292]判断所述字符串形式的所述脚本语句是否包括所述字符特征;[0293]当所述字符串形式的所述脚本语句包括所述字符特征时,确定所述实际脚本为脚本病毒;[0294]和/或,[0295]当所述病毒样本特征包括所述行为特征时,对所述虚拟执行的执行行为进行检测;[0296]判断所述执行行为是否包括所述行为特征;[0297]当所述执行行为包括所述行为特征时,确定所述实际脚本为脚本病毒。[0298]B18、根据B17所述的检测装置,其中,当所述病毒样本特征包括所述行为特征时,所述行为特征包括:增加超文本标记语言的iframe标签或script标签,和/或,执行js脚本中的document,write函数或creatElement函数。[0299]本发明实施例还公开了:[0300]C19、一种基于病毒样本特征的检测系统,其包括:根据Bll?B16任一项所述的检测装置,还包括:[0301]升级模块,用于使云服务器根据所述脚本病毒的所述检测结果对云端鉴别条件升级;[0302]发送模块,用于使客户端将本地的待检测文件的特征信息发送至所述云服务器;[0303]匹配反馈模块,用于使所述云服务器判断所述待检测文件的特征信息与所述云端鉴别条件是否匹配,当所述待检测文件的特征信息与所述云端鉴别条件匹配时,所述云服务器向所述客户端发送与所述云端鉴别条件相对应的需要检测的脚本文件信息;[0304]判断模块,所述客户端根据所述需要检测的脚本文件信息进行检测,判断所述待检测文件是否为所述脚本病毒。[0305]C20、根据C19所述的检测系统,其中,还包括:[0306]非脚本杀毒引擎调用模块,用于当判断所述待检测文件不是所述脚本病毒时,调用非脚本杀毒引擎对所述待检测文件进行检测,判断所述待检测文件是否为除脚本病毒外的其他程序病毒。【权利要求】1.一种基于病毒样本特征的检测方法,其包括:对实际脚本进行词法分析,确定所述实际脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;对所述实际脚本进行语法分析,确定所述实际脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;根据所述单词类型集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合,对所述虚拟脚本集合中的每个虚拟脚本进行虚拟执行;检测所述虚拟执行的结果,当所述虚拟执行的结果符合病毒样本特征时,确定所述实际脚本为脚本病毒并且将所述脚本病毒的检测结果保存至病毒特征库。2.根据权利要求1所述的检测方法,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条脚本语句。3.根据权利要求1所述的检测方法,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条第一脚本语句、以及由所述词语单元、所述语句单元和所述表达式单元所组成的至少一条第二脚本语句;在所述对实际脚本进行词法分析之后,在对所述实际脚本进行语法分析之前,还包括:对所述实际脚本进行表达式分析,确定所述实际脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;在对所述实际脚本进行语法分析之后,对所述虚拟脚本集合中的每个虚拟脚本进行虚拟执行之前,还包括:根据所述单词类型集合、所述表达式集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合。4.根据权利要求2所述的检测方法,其中,所述根据所述单词类型集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合的步骤具体包括:对于每一个所述词语单元,从所述词语单元所对应的所述单词类型集合中选择一个所述单词类型元素,得到具有确定类型的所述词语单元;对于每一个所述语句单元,从所述语句单元所对应的所述语句类型集合中选择一个所述语句类型元素,得到具有确定类型的所述语句单元;在所述实际脚本中,根据全部具有确定类型的所述词语单元和所述语句单元,形成一个所述虚拟脚本;根据所述虚拟脚本获取所述虚拟脚本集合;所述虚拟脚本集合包括遍历全部所述单词类型集合和全部所述语句类型集合所形成的全部所述虚拟脚本。5.根据权利要求3所述的检测方法,其中,根据所述单词类型集合、所述表达式集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合的步骤具体包括:对于每一个所述词语单元,从所述词语单元所对应的所述单词类型集合中选择一个所述单词类型元素,得到具有确定类型的所述词语单元;对于每一个所述表达式单元,从所述表达式单元所对应的所述表达式类型集合中选择一个所述表达式类型元素,得到具有确定类型的所述表达式单元;对于每一个所述语句单元,从所述语句单元所对应的所述语句类型集合中选择一个所述语句类型元素,得到具有确定类型的所述语句单元;在所述实际脚本中,根据全部具有确定类型的所述词语单元、表达式单元和所述语句单元,形成一个所述虚拟脚本;根据所述虚拟脚本获取所述虚拟脚本集合;所述虚拟脚本集合包括遍历全部所述单词类型集合、全部所述表达式类型集合和全部所述语句类型集合所形成的全部所述虚拟脚本。6.一种基于病毒样本特征的检测装置,其包括:词法分析模块,用于对实际脚本进行词法分析,确定所述实际脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;语法分析模块,用于对所述实际脚本进行语法分析,确定所述实际脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;虚拟执行模块,用于根据所述单词类型集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合,对所述虚拟脚本集合中的每个虚拟脚本进行虚拟执行;检测模块,用于检测所述虚拟执行的结果,当所述虚拟执行的结果符合病毒样本特征时,确定所述实际脚本为脚本病毒并且将所述脚本病毒的检测结果保存至病毒特征库。7.根据权利要求6所述的检测装置,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条脚本语句。8.根据权利要求6所述的检测装置,其中,所述虚拟脚本包含由所述词语单元和所述语句单元组成的至少一条第一脚本语句、以及由所述词语单元、所述语句单元和所述表达式单元所组成的至少一条第二脚本语句;`所述装置还包括:表达式分析模块,用于对所述实际脚本进行表达式分析,确定所述实际脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;所述虚拟执行模块还用于:根据所述单词类型集合、所述表达式集合和所述语句类型集合,获取所述实际脚本的虚拟脚本集合。9.一种基于病毒样本特征的检测系统,其包括:根据权利要求6~8任一项所述的检测装置,还包括:升级模块,用于使云服务器根据所述脚本病毒的所述检测结果对云端鉴别条件升级;发送模块,用于使客户端将本地的待检测文件的特征信息发送至所述云服务器;匹配反馈模块,用于使所述云服务器判断所述待检测文件的特征信息与所述云端鉴别条件是否匹配,当所述待检测文件的特征信息与所述云端鉴别条件匹配时,所述云服务器向所述客户端发送与所述云端鉴别条件相对应的需要检测的脚本文件信息;判断模块,所述客户端根据所述需要检测的脚本文件信息进行检测,判断所述待检测文件是否为所述脚本病毒。10.根据权利要求9所述的检测系统,其中,还包括:非脚本杀毒引擎调用模块,用于当判断所述待检测文件不是所述脚本病毒时,调用非脚本杀毒引擎对所述待检测文件进行检测,判断所述待检测文件是否为除脚本病毒外的其他程序病毒。【文档编号】G06F21/56GK103559447SQ201310573299【公开日】2014年2月5日申请日期:2013年11月15日优先权日:2013年11月15日【发明者】陈卓,杨康,唐海申请人:北京奇虎科技有限公司,奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1