CN106909843A - 一种计算机病毒的检测方法及装置 - Google Patents

一种计算机病毒的检测方法及装置 Download PDF

Info

Publication number
CN106909843A
CN106909843A CN201510971480.0A CN201510971480A CN106909843A CN 106909843 A CN106909843 A CN 106909843A CN 201510971480 A CN201510971480 A CN 201510971480A CN 106909843 A CN106909843 A CN 106909843A
Authority
CN
China
Prior art keywords
script
detected
word
type
coding
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.)
Pending
Application number
CN201510971480.0A
Other languages
English (en)
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 Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510971480.0A priority Critical patent/CN106909843A/zh
Publication of CN106909843A publication Critical patent/CN106909843A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/562Static detection
    • G06F21/563Static detection by source code analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本申请公开了一种计算机病毒的检测方法,用以解决现有技术中根据病毒特征代码进行病毒识别导致的计算机病毒识别率低的问题。该方法包括:对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个组合编码脚本元素;将所述组合编码脚本集合中的组合编码脚本元素与预设的病毒库中的病毒脚本元素进行对比,根据对比结果判断所述组合编码脚本集合中是否包含病毒脚本元素,进而判断所述被检测脚本是否为病毒脚本。本申请还公开了一种计算机病毒的检测装置。

Description

一种计算机病毒的检测方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种计算机病毒的检测方法及装置。
背景技术
在互联网时代,计算机病毒极大地威胁着计算机的安全。计算机病毒传染性极强,计算机随时都有可能被计算机病毒感染,而且计算机病毒的破坏力极大,可能会导致计算机系统瘫痪、信息泄露等。
当计算机系统中存在病毒文件或计算机系统中的文件被病毒感染时,需要通过杀毒软件对系统中的文件进行扫描,以便清除病毒。在对脚本病毒进行检测时,一般是在脚本的编码中寻找具备病毒特征的代码,如果脚本编码中包含所述具备病毒特征的代码,则判断该文件为病毒文件。
但是病毒文件往往采用变形的方式躲避杀毒软件的检测,如果仅仅对文件代码进行搜索,会难以发现以变形方式隐藏在文件中的恶意代码。
发明内容
本申请实施例提供一种计算机病毒的检测方法,用以解决现有技术中根据病毒特征代码进行病毒识别导致的计算机病毒识别率低的问题。
本申请实施例还提供一种计算机病毒的检测装置,用以解决现有技术中根据病毒特征代码进行病毒识别导致的计算机病毒识别率低的问题。
本申请实施例采用下述技术方案:
一种计算机病毒的检测方法,包括:
对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
将所述组合编码脚本集合中的脚本元素与预设的病毒库中的病毒脚本元素进行对比,根据对比结果判断所述组合编码脚本集合中是否包含病毒脚本元素,进而判断所述被检测脚本是否为病毒脚本。
一种计算机病毒的检测装置,包括:
集合构建单元:用于对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
病毒判断单元:用于将所述组合编码脚本集合中的脚本元素与预设的病毒库中的病毒脚本元素进行对比,根据对比结果判断所述组合编码脚本集合中是否包含病毒脚本元素,进而判断所述被检测脚本是否为病毒脚本。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
相对于现有技术中通过判断脚本代码中是否包含病毒特征代码来判断脚本是否为病毒脚本,本方案将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过判断所述组合编码脚本集合中是否包含病毒脚本元素,判断被检测脚本是否为病毒脚本,提高了计算机病毒的识别率,解决了现有技术中根据病毒特征代码进行病毒识别,导致的计算机病毒识别率低的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的一种计算机病毒检测方法的实现流程示意图;
图2为本申请实施例2提供的一种计算机病毒检测方法的一种实现流程示意图;
图3为本申请实施例3提供的一种计算机病毒检测装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
为解决现有技术中根据病毒特征代码进行病毒识别,导致的计算机病毒识别率低的问题,本申请实施例1提供一种计算机病毒检测方法。该方法的执行主体,可以但不限于为手机、平板电脑、个人电脑(Personal Computer,PC)等任何可以运行杀毒引擎的终端设备中的至少一种。此外,该方法的执行主体,也可以是杀毒引擎本身。
为便于描述,下文以该方法的执行主体为杀毒引擎为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为杀毒引擎只是一种示例性的说明,并不应理解为对该方法的限定。
该方法的实现流程示意图如图1所示,包括下述步骤:
步骤11:对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;
本申请实施例中,所述脚本可以是由脚本语言编写的以纯文本形式保存的程序,所述脚本可以控制计算机进行运算操作。所述脚本比如可以是利用JavaScript语言编写的JS脚本、利用Visual Basic Script语言编写的VBScript脚本等。所述编码为编写所述脚本的代码。
在实际应用中,在对被检测脚本的编码进行词语分析之前,可以预先确定被检测脚本的类型,然后利用与所述被检测脚本的类型相对应的脚本杀毒引擎对被检测脚本进行处理。
本申请实施例中所述的脚本杀毒引擎,为判断脚本是否为病毒脚本并进行病毒清理的程序。由于不同类型的脚本的编写语言不同,本申请实施例中,可以根据待检测脚本的类型,确定与所述待检测脚本的类型对应的脚本杀毒引擎进行处理。
在实际应用中,可以根据脚本的类型,设置与脚本的类型对应的脚本杀毒引擎。本申请实施例中的脚本杀毒引擎所处理的脚本的类型包括但不限于下述几种:JS(JavaScript)脚本、VBScript(Microsoft Visual Basic Script Editon)脚本、PHP(Hypertext Preprocessor)脚本和ASP(Active Server Page)脚本。
与所述脚本的类型相对应,所述脚本杀毒引擎包括但不限于下述几种:JS脚本杀毒引擎、VBScript脚本杀毒引擎、PHP脚本杀毒引擎和ASP脚本杀毒引擎。
本申请实施例中,脚本杀毒引擎对脚本的分析规则与脚本的类型有关,即脚本杀毒引擎可以根据与之对应的脚本的类型的脚本规范,对该类型脚本进行分析。所述脚本规范比如可以是脚本的编码规范。例如,JS脚本杀毒引擎可以根据JS脚本的脚本规范对JS脚本进行分析。
为了获取被检测脚本的编码,以便对被检测脚本进行分析,本申请实施例中,可以利用脚本编码获取引擎对脚本中的编码进行获取。例如,可以利用windows平台下的MS Script脚本引擎来实现对VBScript脚本代码的获取,MSScript脚本引擎可以通过运行VBScript脚本代码,进而提取VBScript脚本代码中的变量、函数等信息。
本申请实施例中,还可以通过特征函数捕获函数来获取被检测脚本的编码。具体地,可以预先设定特征函数、以及特征函数捕获函数与特征函数的对应关系;当被检测脚本调用特征函数时,将该特征函数替换为与该特征函数对应的特征函数捕获函数,例如,对于JavaScript脚本,可以采用Hook JS的方式进行替换,Hook指的是将一个函数的调用变成另一个函数的调用;利用特征函数捕获函数获得特征函数中的编码。
需要说明的是,在对被检测脚本的编码进行获取时,对于混淆加密的脚本,可以对混淆加密的脚本进行解混淆处理,获得混淆加密前的原始编码。所述混淆加密,指将编码中的各种元素(如变量,函数,类的名字)按照某种规则转换成其它名字进行表示,从而进行加密,使得阅读的人无法根据名字猜测其用途。
在实际应用中,由于不可执行编码一般不会对计算机中的数据带来危害,为了减少编码分析时的运算量,在获取脚本编码时,可以仅获取被检测脚本的可执行编码,并在后续步骤中仅针对可执行代码进行词语分析,以便减少词语分析时的运算量。
基于上述编码获取方法获取到被检测脚本的编码后,可以对被检测脚本的编码进行词语分析。所述词语分析包括词法分析、语法分析、表达式分析中的至少一种。
具体地,可以对被检测脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合。
所述词语单元的单词类型集合,为根据所述词语单元可能具备的单词类型构建的集合。所述单词类型集合中的元素为不同单词类型的单词。为了便于描述,在这里将单词类型集合中的元素称为单词类型元素。所述单词类型集合包括词语单元所对应的至少一个单词类型元素。所述词语单元的单词类型比如可以是关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式等单词类型。例如,词语单元A可能具备的单词类型为关键字和标识符,则可以确定词语单元A的单词类型集合为{关键字A,标识符A}。
也可以对所述被检测脚本进行语法分析,确定所述被检测脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素。所述语句单元的语句类型集合为根据所述语句单元可能的语句类型构建的集合。为了便于描述,在这里将语句类型集合中的单个语句类型的语句称为语句类型元素,所述语句单元的语句类型比如可以是块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句等语句类型。
还可以对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素。所述表达式单元的表达式类型集合为根据所述表达式单元可能的表达式类型构建的集合。为了便于描述,在这里将表达式类型集合中的单个表达式类型的表达式称为表达式类型元素,所述表达式单元的表达式类型比如可以是:赋值表达式、条件表达式、逻辑表达式、位运算表达式、关系表达式、移位表达式、数学运算表达式、后缀表达式、成员表达式、调用表达式、主表达式等表达式类型。
在对所述被检测脚本进行语法分析后,可以根据所述语法分析的结果,构建所述被检测脚本对应的组合编码脚本集合。
在实际应用中,可以仅根据单词类型集合和语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
具体的构建方式比如可以包括下述步骤:
从单词类型集合中选取一个单词类型元素,从词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、以及语句类型元素组合成一个组合编码脚本元素。
按照上述两个步骤,遍历所述单词类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素。
例如,获取到的被检测脚本的编码包含词语单元A和语句单元C。经过词语分析得出:词语单元A的可能的单词类型是关键字或标识符;语句单元C的语句类型可能是条件语句或选择语句。则确定词语单元A的单词类型集合为{关键字A,标识符A},语句类型单元C的语句类型集合为{条件语句C,选择语句C}。在构建所述被检测脚本的组合编码脚本元素时,从单词类型集合中选取一个单词类型元素“关键字A”,从语句类型集合中选取一个语句类型“条件语句C”,则可生成当生成虚拟脚本:词语单元A(关键字)和语句单元C(条件语句)。类似地,遍历单词类型集合和语句类型集合中的所以元素,构建组合编码脚本元素,将所有组合编码脚本元素组合成组合编码脚本集合,则所述组合编码脚本集合包括如下组合编码脚本元素:
词语单元A(关键字)和语句单元C(条件语句);
词语单元A(关键字)和语句单元C(选择语句);
词语单元A(标识符)和语句单元C(条件语句);
词语单元A(标识符)和语句单元C(条件语句)。
在实际应用中,可以根据单词类型集合、表达式类型集合和语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
具体的构建方式比如可以包括下述步骤:
从单词类型集合中选取一个单词类型元素,从表达式类型集合中选取一个表达式类型元素,从词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素。
按照上述两个步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素。
例如,获取到的被检测脚本的编码包含词语单元A、表达式单元B和语句单元C。经过词语分析得出:词语单元A的可能的单词类型是关键字或标识符;表达式单元B的表达式类型是赋值表达式或位运表达式;语句单元C的语句类型可能是条件语句或选择语句。则,与上述根据词语单元集合和语句单元集合构建组合编码脚本集合的方法类似,构建包含如下组合编码脚本元素的组合编码脚本集合:
词语单元A(关键字)、表达式单元B(赋值表达式)和语句单元C(条件语句);
词语单元A(关键字)、表达式单元B(赋值表达式)和语句单元C(选择语句);
词语单元A(关键字)、表达式单元B(位运算表达式)和语句单元C(条件语句);
词语单元A(关键字)、表达式单元B(位运算表达式)和语句单元C(选择语句);
词语单元A(标识符)、表达式单元B(赋值表达式)和语句单元C(条件语句);
词语单元A(标识符)、表达式单元B(赋值表达式)和语句单元C(选择语句);
词语单元A(标识符)、表达式单元B(位运算表达式)和语句单元C(条件语句);
词语单元A(标识符)、表达式单元B(位运算表达式)和语句单元C(选择语句)。
步骤12:将所述组合编码脚本集合中的脚本元素与预设的病毒库中的病毒脚本元素进行对比,根据对比结果判断所述组合编码脚本集合中是否包含病毒脚本元素,进而判断所述被检测脚本是否为病毒脚本。
本申请实施例中,所述预设的病毒库中包含至少一个病毒脚本元素,所述病毒脚本元素具备病毒的特征,所述病毒库中的病毒脚本元素可以用于确定组合编码脚本元素是否为病毒脚本,所述病毒库中的病毒样本元素可以被实时更新。
本申请实施例中,所述预设的病毒库是通过下述方法构建的:
对病毒脚本的编码进行词语分析;根据对所述病毒脚本编码词语分析的结果,构建所述病毒脚本的病毒库,所述病毒库包括所述病毒脚本所对应的至少一个病毒脚本元素。
在实际应用中,对病毒脚本的编码进行词语分析并构建病毒脚本的病毒库的方法,与对被检测脚本进行词法分析构建被检测脚本的组合编码脚本集合的方法类似,在此不再赘述。
本申请实施例中,可以将病毒脚本元素和组合编码脚本元素进行对比,来判断组合编码脚本元素是否为病毒,进而判断被检测脚本是否为病毒脚本。
具体地,可以通过对比算法来对病毒脚本元素和组合编码脚本元素进行对比。所述对比算法可以获得病毒脚本元素和组合编码脚本元素之间的相似度,也可以扫描所述组合编码脚本元素中是否包含病毒脚本元素中特定的关键编码。
对比算法一般分为单模式对比算法和多模式对比算法两种。单模式对比算法包括BF(Brute-Force)算法、KMP(Knuth-Morris-Pratt)算法、BM(Boyer-Moore)算法和QS(Quick Search)算法等。多模式对比算法包括经典多模式对比DFSA(deterministic finite state automaton)算法和基于有序二叉树的多模式对比算法。
在通过上述对比算法将病毒脚本元素和组合编码脚本元素进行对比后,可以根据病毒脚本元素的编码和组合编码脚本元素的编码的相似度,来判断组合编码脚本元素是否为病毒。例如,可以预先设置如果所述相似度大于80%,则判断所述组合编码脚本元素为病毒脚本元素,即判断所述被检测脚本为病毒脚本。
也可以根据组合编码脚本元素的编码中是否包含病毒脚本元素编码的关键编码,来判断组合编码脚本元素是否为病毒脚本元素。即,如果所述组合编码脚本元素的编码中包含病毒脚本元素编码的关键编码,则判断所述组合编码脚本元素为病毒脚本元素。所述关键编码比如可以是具备行为特征的编码,所述行为特征包括但不限于增加超文本标记语言的iframe标签或script标签、执行JS脚本中的document.write函数或creatElement函数。
基于上述病毒脚本检测方法,若判定所述被检测脚本为病毒脚本,则可以将所述被检测脚本的组合编码脚本集合中的组合编码脚本元素,添加到病毒库中,起到更新病毒库的效果。
需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤11和步骤12的执行主体为设备1;又比如,步骤11的执行主体可以为设备1,步骤12的执行主体可以为设备2;等等。
本申请实施例1提供的计算机病毒的检测方法,相对于现有技术中通过判断脚本代码中是否包含病毒特征代码来判断脚本是否为病毒脚本,本方案将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过判断所述组合编码脚本集合中是否包含病毒脚本元素,判断被检测脚本是否为病毒脚本,提高了计算机病毒的识别率,解决了现有技术中根据病毒特征代码进行病毒识别,导致的计算机病毒识别率低的问题。
实施例2
本申请实施例2,主要介绍本申请实施例1提供的上述方法在实际中的一种应用方案。
在对该方案的实现方式进行详细介绍前,先对该方案的实施场景进行简单介绍:
本申请实施例中,需要对某网页中的JS脚本进行检测,以判断所述网页中的JS脚本是否为病毒脚本。
基于上述实施场景,实施例2提供的信息展示过程如图3所示,包括下述步骤:
步骤21:利用脚本编码获取引擎获取所述JS脚本的编码;
步骤22:对所述JS脚本的编码进行词语分析;
具体地,对所述被检测脚本进行词法分析,确定所述被检测脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;
对所述被检测脚本进行语法分析,确定所述被检测脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;
对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素。
步骤23:构建所述JS脚本的组合编码脚本集合;
具体地,从所述单词类型集合中选取一个单词类型元素,从所述表达式类型集合中选取一个表达式类型元素,从所述词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素;
按照上述步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。
步骤24:将所述组合编码脚本集合中的组合脚本元素与预设的病毒库中的病毒脚本元素进行对比;
其中,组合编码脚本集合中的某组合编码脚本元素和病毒库中的某病毒脚本元素相似度为95%。
步骤25:根据预设的相似度阈值,判断所述组合编码脚本元素为病毒脚本元素,进而判断所述JS脚本为病毒脚本。
步骤26:将所述JS脚本的组合编码脚本集合中的组合编码脚本元素,添加到病毒库中。
本申请实施例2提供的计算机病毒的检测方法,相对于现有技术中通过判断脚本代码中是否包含病毒特征代码来判断脚本是否为病毒脚本,本方案将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过判断所述组合编码脚本集合中是否包含病毒脚本元素,判断被检测脚本是否为病毒脚本,提高了计算机病毒的识别率,解决了现有技术中根据病毒特征代码进行病毒识别,导致的计算机病毒识别率低的问题。
实施例3
为解决现有技术中根据病毒特征代码进行病毒识别,导致的计算机病毒识别率低的问题,本申请实施例3提供一种计算机病毒检测装置。该计算机病毒检测装置的结构示意图如图3所示,主要包括下述功能单元:
集合构建单元31,用于对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
病毒判断单元32,用于将所述组合编码脚本集合中的脚本元素与预设的病毒库中的病毒脚本元素进行对比,根据对比结果判断所述组合编码脚本集合中是否包含病毒脚本元素,进而判断所述被检测脚本是否为病毒脚本。
为了获取构建集合的元素,在一种实施方式中,所述集合构建单元31,具体用于对所述被检测脚本进行词法分析,确定所述被检测脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
在一种实施方式中,所述集合构建单元31,还用于对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;
在一种实施方式中,所述集合构建单元31,还用于从所述单词类型集合中选取一个单词类型元素,从所述表达式类型集合中选取一个表达式类型元素,从所述词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素;
按照上述步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。
为了提高词语分析的效率,在一种实施方式中,所述集合构建单元,还用于根据被检测脚本的类型,确定被检测脚本的词语分析引擎;利用所述词语分析引擎,对所述被检测脚本进行词语分析。
所述预设的病毒库,是通过下述方法构建的:
对病毒脚本的编码进行词语分析;
根据对所述病毒脚本编码词语分析的结果,构建所述病毒脚本的病毒库,所述病毒库包括所述病毒脚本所对应的至少一个病毒脚本元素。
病毒库更新单元33,用于若判定所述被检测脚本为病毒脚本,则将所述被检测脚本的组合编码脚本集合中的组合编码脚本元素,添加到病毒库中。
相对于现有技术中通过判断脚本代码中是否包含病毒特征代码来判断脚本是否为病毒脚本,本申请实施例3提供的计算机病毒的检测装置,将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过判断所述组合编码脚本集合中是否包含病毒脚本元素,判断被检测脚本是否为病毒脚本,提高了计算机病毒的识别率,解决了现有技术中根据病毒特征代码进行病毒识别,导致的计算机病毒识别率低的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种计算机病毒的检测方法,其特征在于,包括:
对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个组合编码脚本元素;
将所述组合编码脚本集合中的组合编码脚本元素与预设的病毒库中的病毒脚本元素进行对比,根据对比结果判断所述组合编码脚本集合中是否包含病毒脚本元素,进而判断所述被检测脚本是否为病毒脚本。
2.如权利要求1所述的方法,其特征在于,对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合,包括:
对所述被检测脚本进行词法分析,确定所述被检测脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;
对所述被检测脚本进行语法分析,确定所述被检测脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合,包括:
根据所述单词类型集合、表达式类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
4.如权利要求3所述的方法,其特征在于,根据单词类型集合、表达式类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合,包括:
从所述单词类型集合中选取一个单词类型元素,从所述表达式类型集合中选取一个表达式类型元素,从所述词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素;
按照上述步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。
5.如权利要求1所述的方法,其特征在于,对被检测脚本的编码进行词语分析,包括:
根据被检测脚本的类型,确定被检测脚本的词语分析引擎;
利用所述词语分析引擎,对所述被检测脚本进行词语分析。
6.如权利要求1所述的方法,其特征在于,所述预设的病毒库,是通过下述方法构建的:
对病毒脚本的编码进行词语分析;
根据对所述病毒脚本编码词语分析的结果,构建所述病毒脚本的病毒库,所述病毒库包括所述病毒脚本所对应的至少一个病毒脚本元素。
7.如权利要求1所述的方法,其特征在于,在判断所述被检测脚本是否为病毒脚本后,所述方法还包括:
若判定所述被检测脚本为病毒脚本,则将所述被检测脚本的组合编码脚本集合中的组合编码脚本元素,添加到病毒库中。
8.一种计算机病毒的检测装置,其特征在于,包括:
集合构建单元:用于对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
病毒判断单元:用于将所述组合编码脚本集合中的脚本元素与预设的病毒库中的病毒脚本元素进行对比,根据对比结果判断所述组合编码脚本集合中是否包含病毒脚本元素,进而判断所述被检测脚本是否为病毒脚本。
9.如权利要求8所述的装置,其特征在于:
所述集合构建单元,具体用于对所述被检测脚本进行词法分析,确定所述被检测脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
10.如权利要求8所述的装置,其特征在于:
所述集合构建单元,具体用于从所述单词类型集合中选取一个单词类型元素,从所述表达式类型集合中选取一个表达式类型元素,从所述词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素;
按照上述步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。
CN201510971480.0A 2015-12-22 2015-12-22 一种计算机病毒的检测方法及装置 Pending CN106909843A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510971480.0A CN106909843A (zh) 2015-12-22 2015-12-22 一种计算机病毒的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510971480.0A CN106909843A (zh) 2015-12-22 2015-12-22 一种计算机病毒的检测方法及装置

Publications (1)

Publication Number Publication Date
CN106909843A true CN106909843A (zh) 2017-06-30

Family

ID=59201014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510971480.0A Pending CN106909843A (zh) 2015-12-22 2015-12-22 一种计算机病毒的检测方法及装置

Country Status (1)

Country Link
CN (1) CN106909843A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804921A (zh) * 2018-05-29 2018-11-13 中国科学院信息工程研究所 一种PowerShell代码的去混淆方法及装置
CN112307478A (zh) * 2020-11-30 2021-02-02 深信服科技股份有限公司 一种脚本病毒检测方法、系统及电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983295A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 病毒识别方法及装置
CN103559447A (zh) * 2013-11-15 2014-02-05 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统
CN104036187A (zh) * 2013-03-04 2014-09-10 阿里巴巴集团控股有限公司 计算机病毒类型确定方法及其系统
US20150169874A1 (en) * 2013-05-15 2015-06-18 Tencent Technology (Shenzhen) Company Limited Method, device, and system for identifying script virus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983295A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 病毒识别方法及装置
CN104036187A (zh) * 2013-03-04 2014-09-10 阿里巴巴集团控股有限公司 计算机病毒类型确定方法及其系统
US20150169874A1 (en) * 2013-05-15 2015-06-18 Tencent Technology (Shenzhen) Company Limited Method, device, and system for identifying script virus
CN103559447A (zh) * 2013-11-15 2014-02-05 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
本书编委会: "《网络技术应用 选修》", 31 August 2016, 云南人民出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804921A (zh) * 2018-05-29 2018-11-13 中国科学院信息工程研究所 一种PowerShell代码的去混淆方法及装置
CN112307478A (zh) * 2020-11-30 2021-02-02 深信服科技股份有限公司 一种脚本病毒检测方法、系统及电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN108259494B (zh) 一种网络攻击检测方法及装置
JP6736532B2 (ja) 静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法
CN109598124A (zh) 一种webshell检测方法以及装置
Cho et al. Security assessment of code obfuscation based on dynamic monitoring in android things
CN108694042B (zh) 网页中的JavaScript代码解混淆方法
CN105653949B (zh) 一种恶意程序检测方法及装置
Turoňová et al. Regex matching with counting-set automata
CN112115427A (zh) 代码混淆方法、装置、电子设备及存储介质
CN112231645A (zh) 一种基于主动学习的恶意pdf文档检测方法
CN115168861A (zh) 数据安全验证方法、装置、设备及存储介质
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN106909843A (zh) 一种计算机病毒的检测方法及装置
CN116167057B (zh) 基于关键代码语义检测的代码动态安全加载方法及装置
CN105989284B (zh) 网页入侵脚本特征的识别方法及设备
CN111310186A (zh) 混淆命令行检测方法、装置及系统
CN113111346A (zh) 一种多引擎WebShell脚本文件检测方法及系统
CN115859273A (zh) 一种数据库异常访问的检测方法、装置、设备及存储介质
CN110990834A (zh) 一种android恶意软件的静态检测方法、系统及介质
CN107368427B (zh) 一种基于自适应随机测试的Sql注入漏洞自动检测平台及方法
Ablahd et al. Using flask for SQLIA detection and protection
CN114169540A (zh) 一种基于改进机器学习的网页用户行为检测方法及系统
Armoun et al. A general paradigm for normalizing metamorphic malwares
CN114936369A (zh) 基于标记的sql注入攻击主动防御方法、系统及存储介质
CN114579965A (zh) 一种恶意代码的检测方法、装置及计算机可读存储介质
Wang et al. Deep learning-based multi-classification for malware detection in IoT

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170630