CN113360900A - 脚本检测方法、装置、设备及存储介质 - Google Patents
脚本检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113360900A CN113360900A CN202010139781.8A CN202010139781A CN113360900A CN 113360900 A CN113360900 A CN 113360900A CN 202010139781 A CN202010139781 A CN 202010139781A CN 113360900 A CN113360900 A CN 113360900A
- Authority
- CN
- China
- Prior art keywords
- script
- detected
- preprocessed
- library
- feature
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种脚本检测方法、装置、设备及存储介质,该方法包括:获取待检测脚本;将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本;将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测脚本是否属于病毒脚本。该技术方案通过对待检测脚本进行预处理,能够去掉待检测脚本中的冗余信息,减少了待检测脚本中的特征数量,并将预处理后的脚本与预处理特征库中的特征数据进行比对,能够更精准的确定待检测脚本是否属于病毒脚本,降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性。
Description
技术领域
本发明一般涉及信息安全技术领域,具体涉及一种脚本检测方法、装置、设备及存储介质。
背景技术
随着信息技术的快速发展,各类恶意文件也越来越多,恶意文件可以是脚本,其以某种方式引入目标计算机后会造成损害,一般具有以下行为:强制安装、浏览器劫持、窃取、修改用户数据、恶意收集用户信息、恶意捆绑及其他侵犯用户知情权等,这些恶意行为严重侵犯用户合法权益,为用户带来经济或其他形式的利益损失。因此,为了维护网络世界安全,对脚本的检测十分重要。
现有技术中通过分别计算黑样本和待检测脚本中对应的熵值,将待检测脚本中计算的熵值与黑样本中计算的熵值进行比对,对待检测脚本中与黑样本熵值相同的特征数据进行报毒。
但是,该方法在对病毒脚本进行检测时,由于熵值是对概率事件的衡量,对脚本中特征数据的检测存在不确定性,使得对不同变形的病毒脚本的通杀性差,导致误报率高。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种脚本检测方法、装置、设备及存储介质,能够提高对病毒脚本的不同变种的通杀性,减少了误报率。
第一方面,本申请实施例提供了一种脚本检测方法,该方法包括:
获取待检测脚本;
将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本;
将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测脚本是否属于病毒脚本。
第二方面,本申请提供了一种脚本检测装置,该装置包括:
获取模块,用于获取待检测脚本;
处理模块,用于将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本;
第一比对模块,用于将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测脚本是否属于病毒脚本。
第三方面,本申请实施例提供一种设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如上述第一方面所述的脚本检测方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序用于实现如上第一方面所述的脚本检测方法。
本申请实施例中提供的脚本检测方法、装置、设备及存储介质,通过获取待检测脚本,并将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,从而得到预处理后的脚本,将预处理后的脚本与预处理特征库中的特征数据进行比对,以确定待检测脚本是否属于病毒脚本。该技术方案由于对待检测脚本进行了预处理,使得能够将待检测脚本中的不同变形脚本处理为预设格式,得到预处理后的脚本,从而去掉了待检测脚本中的冗余信息,减少了待检测脚本中的特征数量,进而将预处理后的脚本与预处理特征库中的特征数据进行比对,能够更精准的确定待检测脚本是否属于病毒脚本,降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的脚本检测的实施环境架构图;
图2为本申请实施例提供的脚本检测方法的流程示意图;
图3为本申请实施例提供的对待检测脚本的预处理方法的流程示意图;
图4为本申请实施例提供的待检测脚本预处理的界面示意图;
图5为本申请实施例提供的待检测脚本预处理的界面示意图;
图6为本申请另一实施例提供的脚本检测方法的流程示意图;
图7为本申请另一实施例提供的脚本检测方法的流程示意图;
图8为本申请另一实施例提供的脚本检测方法的流程示意图;
图9为本申请实施例提供的脚本检测装置的结构示意图;
图10为本申请另一实施例提供的脚本检测装置的结构示意图;
图11为本申请又一实施例提供的脚本检测装置的结构示意图;
图12为本申请又一实施例提供的脚本检测装置的结构示意图;
图13为本申请实施例示出的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
以下为对一些技术术语的相关解释:
变形脚本:是指对正常脚本经过加密变形处理后形成的脚本,其中包括大量的混淆语句和被加密的代码。
全部查杀:是指病毒检测引擎通过一条病毒特征同时命中多个变形脚本。
熵值:是指接收的脚本中包含的信息的平均量,可以用来判断每条消息中包含的信息的离散程度,又可以称为信息熵;在反病毒领域,信息熵可以表示一段信息的混乱程度。
如背景技术中提到的,在对脚本进行检测的过程中,相关技术中通过分别计算黑样本和待检测脚本对应的熵值,并对待检测脚本中与黑样本中熵值相同的特征进行报毒,但是,由于熵值是对概率事件的衡量,对脚本中特征数据的检测存在不确定性,使得对不同变形的病毒脚本的通杀性差,并且通过熵值进行报毒可读性差,无法直观了解到样本信息。
基于上述缺陷,本申请中提供了脚本检测方法、装置、设备及存储介质,通过获取待检测脚本,并对待检测脚本进行预处理,得到预处理后的脚本,将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测样本是否属于病毒脚本。与相关技术相比,该方法能够去掉待检测脚本中的冗余信息,减少了待检测脚本中的特征数量,进而将预处理后的脚本与预处理特征库中的特征数据进行比对,能够更精准的确定待检测脚本是否属于病毒脚本,降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性,并且通过与预处理特征库中的特征数据进行比对,可以直观了解到脚本信息。
图1是本申请实施例提供的一种脚本检测的实施环境架构图。如图1所示,该实施环境架构包括:终端100和服务器200。
终端100可以独立实现脚本的检测,也可以与服务器200配合实现脚本的检测。
其中,终端100可运行有病毒检测引擎,当终端100独立实现脚本检测时,预处理特征库存储在终端100内。当终端接收到脚本检测指令后,可以对获取的待检测脚本进行预处理,得到预处理后的脚本,并将预处理后的脚本与预处理特征库中的特征库中的特征数据进行比对,实现对病毒脚本的检测。
终端100的类型可以包括但不限于智能手机、平板电脑、笔记本电脑、台式电脑等,本申请实施例对此不进行具体限定。
其中,服务器200上运行有多种特征库时,服务器200具有数据处理功能,可以将多种特征库与待检测脚本进行数据处理得到数据处理结果,并将数据处理结果发送给终端100,以使终端100与服务器200配合实现对病毒脚本进行检测。
服务器200可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
终端100与服务器200通过有线或无线网络建立通信连接。
为了便于理解和说明,下面通过图2至图10详细阐述本申请实施例提供的脚本检测方法、装置、设备及存储介质。
图2所示为本申请实施例的脚本检测方法的流程示意图,该方法可以由脚本检测装置执行,如图2所示,该方法包括:
S101、获取待检测脚本。
具体的,本申请实施例中,待检测脚本为需要进行检测的样本,待检测脚本可以是一个,也可以是多个,可以包括变形脚本,也可以包括正常脚本。变形脚本与正常脚本不同,其中包含有大量的混淆语句和被加密的代码;正常脚本为根据预设的编码规则形成的脚本。
可选的,该待检测脚本可以是任意样本类型的文件,例如可以是可移植可执行(Portable Executable,简称PE)文件,例如常见的EXE、DLL、SYS、COM都是PE文件,待检测脚本还可以是JS格式,也可以是html格式,还可以是vbs格式。
其中,脚本检测装置可以从用户预设的指定位置获取待检测脚本,该指定位置可以是存储路径,也可以是通过其他外部设备导入的待检测脚本,该外部设备可以是u盘,还可以是用户向终端提交待检测脚本,本实施例对此不做限定。
S102、将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本。
其中,上述预处理用于将待检测脚本处理为符合预处理特征库中特征数据的数据格式,该预处理特征库中特征数据的数据格式可以是按照语法规则形成的预设的脚本格式。
在获取到待检测脚本后,可以对待检测脚本依次进行查找并删除多余字符,并统一待检测脚本中的变量赋值的表达方式,例如当待检测脚本中的同一变量由不同数字计算赋值时,可将相同变量赋值的不同数字统一预处理为零,并且统一待检测脚本的相同变量名的表达方式,即将待检测脚本中相同格式的不同变量名预处理为同一变量名,该不同变量名可以是中间变量名。
可选的,图3为本申请实施例提供的对待检测脚本进行预处理方法的流程示意图,可以参见图3所示,步骤102可以包括如下步骤:
S1021、查找并删除待检测脚本所包含的多余字符。
本申请实施例中,待处理脚本可以为正常脚本,也可以是变形脚本,病毒攻击者为了避免病毒脚本被病毒检测引擎查杀,会对脚本进行不同形式的变种,形成变形脚本。
示例性地,变形脚本可以是被许多操作字符插入,可以在字母的不定位置插入回车符、空格操作符等不同的操作字符,例如对脚本autorun shell au.exe,经过插入回车符变形后会出现如下所示两种变形脚本:
au
torun she
ll a
u.exe
或
au
torun s
hell
a
u.exe
具体的,在获取到待检测脚本后,对待检测脚本进行预处理时,可以查找并删除待检测脚本中包含的多余字符,通过确定待检测脚本的字符标识,根据字符标识,确定待检测脚本中所包含的多余字符,并删掉待检测脚本中的多余字符。可选的,该字符标识可以是以二进制形式表示,也可以是以十六进制形式表示,还可以是八进制形式表示。多余字符可以是回车符、换行符、水平制表符、字符串中字母之间的空格操作符,以及不同字母之间插入的运算符等。其中,回车符的字符标识可以表示为0xD,换行操作符的字符标识可以表示为0xA,水平制表符的字符标识可以表示为0x9,空格操作符的字符标识可以表示为0x20。
当对获取到的待检测脚本进行预处理后,可以得到符合预处理特征库中特征数据的预设格式的脚本。请参见图4所示,例如对上述插入了回车符的变形脚本进行预处理后,可以得到autorun shell au.exe。
另外,变形脚本可以是利用不同的拼写组合形成的脚本,例如对于字符串“virus”,其变形脚本可以是“v”+“ir”+“us”或“vi”+“r”+“us”,可以删掉字符串中的多余字符“+“,对变形脚本进行预处理后得到“virus”。
S1022、统一待检测脚本的变量赋值的表达方式。
需要说明的是,变形脚本可以是通过改变计算数字的形式对同一变量进行赋值,例如对于变量a=1,其变形脚本可以是a=4+6-2-7或a=9+3-8-3。
具体的,在查找并删除待检测脚本所包含的多余字符后,可以统一待检测脚本赋值的表达方式,当待检测脚本中的同一变量由不同数字计算进行赋值时,可以将该同一变量赋值的不同数字预处理为零,例如可以对变形脚本a=4+6-2-7、a=9+3-8-3预处理后得到a=0+0-0-0。
S1023、统一待检测脚本的相同变量名的表达方式。
需要说明的是,变形脚本可以是有多个中间变量,且变量命名为随机的,但不同的变量名具有相同格式。例如待检测脚本a中,其变形脚本可以为如下所示:
Afong=gaoeua+qognfr;
Wepipgr=Replace(Afong,ppgair)
if(faogur){try(Wepipgr)}
对于不同的待检测脚本b中可能会出现不同变量,但表达式的整体格式不变的不同变形脚本,例如,其变形脚本可以为如下所示:
Bfong=gaoeua+bognfr;
Fepipgr=Replace(Bfong,ppgair)
if(faogur){try(Fepipgr)}
请参见图5,可以统一待检测脚本中相同变量名的表达方式,将以上不同变形脚本中的不同变量名预处理为同一变量名,并且保留脚本语言中特定的关键字,对以上不同变形脚本的预处理后,得到预处理后的脚本。例如对以上示例的不同变形脚本经过预处理得到如下所示脚本:
a=b+c;
d=Replace(a,f)
if(e){try(d)}
S103、将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测脚本是否属于病毒脚本。
需要说明的是,可以预先采集已知病毒脚本,对所有病毒脚本进行分析,建立预处理特征库。
具体的,在对待处理脚本进行预处理,得到预处理后的脚本后,可以提取预处理后的脚本中的第一特征数据,并将第一特征数据与预处理特征库中对应的第二特征数据进行比对,得到第一特征比对结果。其中,该第一特征比对结果为将处理后的脚本与预处理特征库进行比对得到的结果,第一特征数据为预处理后的脚本中的代码信息,第二特征数据为预处理特征库中与第一特征数据对应的代码信息,该特征数据可以是同一变量对应的代码信息,也可以是不同变量对应的代码信息。
其中,当第一特征数据与预处理特征库中对应的第二特征数据比对一致时,则第一特征比对结果为比对成功,表示该待检测脚本属于病毒脚本;当第一特征数据与预处理特征库中对应的第二特征数据比对不一致时,则第一特征比对结果为比对失败,表示该待检测脚本不属于病毒脚本,即为正常脚本。
示例性地,当待处理脚本为autorun shell au.exe的不同变形脚本,预处理特征库中的第二特征数据可以是autorun shell au.exe,通过将autorun shell au.exe的不同变形脚本预处理为autorun shell au.exe脚本,当预处理后的脚本中的第一特征数据与预处理特征库中的第二特征数据比对一致时,使得预处理特征库中的autorun shell au.exe可以查杀到其不同变形脚本;同理,特征库中的“virus”也可以同时查杀到“v”+“ir”+“us”或“vi”+“r”+“us”,特征库中的a=0+0-0-0可以同时查杀到变形脚本a=4+6-2-7、a=9+3-8-3,
特征库中的a=b+c;
d=Replace(a,f)
if(e){try(d)}
也可以查杀到同一变量的不同变量名的变形脚本。
在实际脚本中,对同一类脚本可以出现多个不同的变形脚本,同一类脚本会形成几十倍甚至几百倍的变形脚本,选取10万个检测样本,经过预处理后,可以得到如下测试数据:
没有预处理对应的特征数量 | 预处理后对应的特征数量 |
10687 | 165 |
由以上测试数据可以得到,经过对不同的变形脚本进行预处理后,使得待检测样本对应的特征数量大大减少,从而将预处理后的脚本与预处理特征库进行比对,提高了对不同变形脚本的通杀性,减少了对病毒脚本检测的误报率。
本申请实施例中提供的脚本检测方法、装置、设备及存储介质,通过获取待检测脚本,并将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,从而得到预处理后的脚本,将预处理后的脚本与预处理特征库中的特征数据进行比对,以确定待检测脚本是否属于病毒脚本。该技术方案由于对待检测脚本进行了预处理,使得能够将待检测脚本中的不同变形脚本处理为数据格式,得到预处理后的脚本,从而去掉了待检测脚本中的冗余信息,减少了待检测脚本中的特征数量,进而将预处理后的脚本与预处理特征库中的特征数据进行比对,能够更精准的确定待检测脚本是否属于病毒脚本,降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性。
进一步地,在上述实施例的基础上,如图6所示,该方法包括以下步骤:
S201、基于待检测脚本的文本特征确定待检测脚本对应的样本类型。
具体的,当脚本检测装置为终端时,终端上可以运行有病毒检测引擎,基于该病毒检测引擎对待检测脚本进行病毒脚本的检测。在获取到待检测脚本后,可以通过病毒检测引擎对待检测脚本进行扫描,以识别待检测脚本的文本特征,从而根据文本特征确定待检测脚本的样本类型,该文本特征包括头部特征和关键字。通过分析待检测脚本的头部特征和关键字,确定出待检测脚本的样本类型。由于不同样本类型的脚本具有不同的头部特征,例如PE文件的头部特征由DOS头和PE文件头等组合形成。
其中,PE文件的结构一般包括DOS头、NT头、节表以及具体的节,DOS头是用来兼容MS-DOS操作系统中的可执行文件;NT头包括windows PE文件的主要信息,其中包括一个‘PE’字样的签名、PE文件头和PE可选头;节表是PE文件后续节的描述,windows根据节表的描述加载每个节;每个节可以包括代码、数据等,每个节由独立的内存权限,比如代码节默认有读/执行权限,节的名字和数量可以自定义,例如PE文件的头两个字节为0x4D5A,在文件结构的特定位置衔接有PE头,如PE头的头两个字节为0x5045。
可以理解,不同格式的脚本具有不同的语法标识,在根据头部特征确定出脚本文件后,可以确定关键字,根据关键字确定待检测脚本的样本类型,例如:JS格式文件,其关键字可以包括:break,case,catch,default,function,return,switch等;又如html格式,其关键字可以包括:break,do,instanceof,typeof,case,else,new,var,void等,其中,不同格式的脚本的关键字由不同的语法结构表示,可以结合待检测脚本的关键字和对应的语法结构来确定出待检测脚本对应的样本类型。
S202、基于与样本类型对应的特征库对待检测脚本进行比对,得到第二特征比对结果。
S203、当第二特征比对结果表示比对失败时,对待检测脚本进行预处理。
或者,S204,当第二特征比对结果表示比对失败时,基于与待检测脚本对应的熵库对待检测脚本进行比对,得到熵值比对结果。
需要说明的是,可以预先采集已知病毒脚本,对所有病毒脚本进行分析,建立特征库,该特征库中存储有大量已知的病毒脚本。
具体的,在确定出待检测脚本的样本类型后,查找与样本类型对应的特征库。例如,确定出待检测脚本为js格式的脚本,则查找js格式的脚本对应的特征库,当确定出待检测脚本为html格式的脚本时,则查找html格式的脚本对应的特征库。在查找到与样本类型对应的特征库后,提取待检测脚本中的第三特征数据,将第三特征数据与特征库中的第四特征数据进行比对,确定第二特征比对结果,该第二特征比对结果为将检测脚本与对应的特征库进行比对的结果。第三特征数据为待检测脚本中的代码信息,第四特征数据为特征库中与第三特征数据对应的代码信息,该特征数据可以是同一变量对应的代码信息,也可以是不同变量对应的代码信息。
如果第三特征数据与特征库中对应的第四特征数据比对一致,则确定第二特征比对结果为比对成功,表示该待检测脚本属于病毒脚本,则对该待检测脚本结束检测过程;如果第三特征数据与特征库中对应的第四特征数据比对不一致,则确定第二特征比对结果为比对失败,表示该待检测脚本不属于病毒脚本,并对该待检测脚本进行预处理,得到预处理后的脚本,将该预处理后的脚本与预处理特征库中的特征数据进行比对,得到对应的特征比对结果,进而根据特征比对结果,确定待检测脚本是否属于病毒脚本。
其中,待检测脚本中可以具有多个特征数据,也可以具有一个特征数据。可以将待检测脚本中的特征数据与对应的特征库中的特征数据息进行逐一比对,以确定对应的特征比对结果。
需要说明的是,可以预先采集已知病毒脚本,对所有病毒脚本进行分析信息的平均量,并基于该平均量建立熵库。
当第二特征比对结果为比对失败时,查找与待检测脚本对应的熵库,计算待检测脚本的第五特征数据对应的第一熵值,并将第一熵值与熵库中的第二熵值进行比对,得到熵值比对结果。该第五特征数据可以是待检测脚本的属性特征,其中,该属性特征可以是脚本中所有字母计算的CRC哈希,也可以是脚本中所有符号计算的CRC哈希,还可以是文本复杂度。第一熵值表示待检测脚本中的第五特征数据中包含的信息的平均值,第二熵值表示熵库中特征数据中包含的信息的平均值。
如果第一熵值与熵库中的第二熵值比对一致,则确定熵值比对结果为比对成功,表示该待检测脚本属于病毒脚本,从而结束对待检测脚本的判定;如果第一熵值与熵库中的第二熵值比对不一致,则确定熵值比对结果为比对失败,表示该待检测脚本不属于病毒脚本,并对该待检测脚本进行预处理,得到预处理后的脚本,将该预处理后的脚本与预处理特征库中的特征数据进行比对,得到对应的特征比对结果,进而根据特征比对结果,确定待检测脚本是否属于病毒脚本。
本实施例中,当待检测脚本为一个时,例如为脚本a,可以基于该脚本a的文本特征,确定样本类型,查找与该样本类型对应的特征库,并将特征库与该脚本a进行比对,确定第二特征比对结果,如果特征库与脚本a比对一致,即第二特征比对结果为比对成功,则表示该脚本a为病毒脚本,可以对脚本a结束检测流程;如果特征库与脚本a比对不一致,即第二特征比对结果为比对失败,则可以对该脚本a进行预处理,得到预处理后的脚本a,以进一步将预处理后的脚本a与预处理特征库进行比对,确定脚本a是否属于病毒脚本。
当第二特征比对结果为比对失败时,也可以继续查找对应的熵库,将熵库与脚本a进行比对,确定熵库比对结果,如果熵库与脚本a比对一致,即熵库比对结果为比对成功,则表示该脚本a为病毒脚本,并结束对脚本a的检测流程,如果熵库与脚本a比对不一致,即熵库比对结果为比对失败,则继续对脚本a进行预处理,得到处理后的脚本a,将处理后的脚本a与预处理特征库进行比对,得到第一特征比对结果,如果预处理特征库与处理后的脚本a比对一致,确定第一特征比对结果为比对成功,表示该脚本a属于病毒脚本,如果预处理特征库与处理后的脚本a比对不一致,确定第一特征比对结果为比对失败,即表示该脚本a不属于病毒脚本。
另外,当待检测脚本为多个时,分别为脚本a、脚本b、脚本c,可以分别识别该脚本a、脚本b、脚本c的文本特征,确定各脚本对应的样本类型,并分别将特征库与各脚本进行比对,确定第二特征比对结果,如果第二特征比对结果为脚本a比对成功,脚本b和脚本c比对失败,则可以确定第一比对结果为脚本a为病毒脚本,结束对脚本a的检测流程,可以继续对脚本b和脚本c进行预处理,得到预处理后的脚本b和预处理后的脚本c,以进一步分别将预处理后的脚本b和预处理后的脚本c,与预处理特征库进行比对,确定脚本b和脚本c是否属于病毒脚本。
当对脚本b和脚本c的第二特征比对结果为比对失败时,也可以继续查找对应的熵库,将熵库与分别脚本b和脚本c进行比对,确定熵库比对结果,如果熵库比对结果为脚本b比对成功,脚本c比对失败,则可以结束对脚本b的检测流程,并继续对脚本c进行预处理,得到预处理后的脚本c,并将预处理后的脚本c与预处理特征库进行比对,确定第一特征比对结果,如果第一特征比对结果为比对成功,则表示脚本c为病毒脚本,如果第一特征比对结果为比对失败,则表示脚本c不为病毒脚本。
本申请实施例中通过先将待检测脚本与特征库进行比对,确定出第二特征比对结果,并在第二特征比对结果为比对失败时,查找对应的熵库,将熵库与待检测脚本进行比对,从而确定熵库比对结果,并根据熵库比对结果,对待检测脚本进行预处理,得到预处理后的脚本,并将预处理后的脚本与预处理特征库进一步比对,使得当待检测脚本为一个时,通过与不同特征库进行比对,从而能够精确判断待检测脚本是否属于病毒脚本,减少了误报率;并且当待检测脚本为多个时,通过对多个待检测脚本的逐个特征库进行比对,使得在检测出相应的病毒脚本后结束对该病毒脚本的检测流程,从而减少了待检测脚本的数量,提高了对待检测脚本的检测效率,并且减少了误报率。
可选的,本实施例中可以先将待检测脚本与对应的特征库进行比对,确定出第二特征比对结果,并当第二特征比对结果为比对失败时,对待检测脚本进行预处理,得到预处理后的脚本,并将预处理后的脚本与预处理特征库进行比对,确定出第一特征比对结果,进而根据第一特征比对结果确定待检测脚本是否属于病毒脚本。
可选的,本实施例中还可以先将待检测脚本与熵库进行比对,确定出熵库比对结果,并当熵库比对结果为比对失败时,对待检测脚本进行预处理,得到预处理后的脚本,并将预处理后的脚本与预处理特征库进行比对,确定出第一特征比对结果,进而根据第一特征比对结果确定待检测脚本是否属于病毒脚本。
该方法能够根据与特征库的第二特征比对结果或熵库比对结果,对待处理脚本进行预处理,从而得到预处理后的脚本,将不同的变形脚本处理为预设格式,减少了待检测脚本中的特征数量,进而将预处理后的脚本与预处理特征库中的特征数据进行比对,能够更精准的确定待检测脚本是否属于病毒脚本,降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性。
为了更清楚地理解本申请的发明构思,如图7所示,该方法包括:
S301、终端设备获取待检测脚本。
S302、终端设备基于待检测脚本的文本特征确定待检测脚本对应的样本类型。
S303、终端设备根据样本类型与对应的特征库进行比对。
S304、终端设备当与对应的特征库比对成功时,确定待检测脚本属于病毒脚本。
S305、终端设备当与对应的特征库比对失败时,基于与待检测脚本对应的熵库对待检测脚本进行比对。
S306、终端设备当与待检测脚本对应的熵库对待检测脚本比对成功时,确定待检测脚本属于病毒脚本。
S307、终端设备当与待检测脚本对应的熵库对待检测脚本比对失败时,对待检测脚本进行预处理。
S308、终端设备查找并删除待检测脚本中所包含的多余字符。
S309、终端设备统一待检测脚本的变量赋值的表达方式。
S310、终端设备统一待检测脚本的相同变量名的表达方式,得到预处理后的脚本。
S311、终端设备将预处理后的脚本与预处理特征库进行比对。
S312、终端设备当预处理后的脚本与预处理特征库比对成功时,确定待检测脚本属于病毒脚本。
S313、终端设备当预处理后的脚本与预处理特征库比对失败时,确定待检测脚本不属于病毒脚本。
具体的,可以参见图8,该终端设备上可以运行有病毒检测引擎,当获取待检测脚本后,通过病毒检测引擎扫描待检测脚本,并对待检测脚本进行识别,可以是识别该待检测脚本的文件特征,如头部特征,得到识别结果以确定待检测脚本对应的样本类型,该样本类型可以是JS格式、html格式、压缩格式等不同格式。
在对待检测脚本进行格式识别之后,可选的,先根据待检测脚本的样本类型查找与该样本类型对应的特征库,例如当样本类型的识别结果为JS格式时则查找到JS格式对应的特征库,当样本类型的识别结果为HTML格式时则查找到HTML格式对应的特征库,并将待检测脚本与样本类型对应的特征库进行比对,当与对应的特征库比对成功时,则确定待检测脚本属于病毒脚本,可以用黑表示该比对结果,结束对待检测脚本的检测流程。
如果待检测脚本与对应的特征库比对失败时,则进一步将待检测脚本与进行熵库比对,即通过待检测脚本的熵值与熵库中的熵值进行比对,如果比对成功,则确定待检测脚本为病毒脚本,可以用黑表示该比对结果,结束对待检测脚本的检测流程。
如果待检测脚本与熵库进行比对得到的比对结果仍为失败,则对待检测脚本进行预处理,可以对待检测样本依次执行三步预处理,第一步预处理,查找并删除待检测脚本所包含的多余字符;第二步预处理,统一待检测脚本的变量赋值的表达方式;第三步预处理,统一所述待检测脚本的相同变量名的表达方式。
在经过三步预处理之后,得到预处理后的脚本,该预处理后的脚本为符合预处理特征库中特征数据的数据格式,并利用预处理后的脚本与预处理特征库进行比对。在比对成功之后,确定该待检测脚本为病毒脚本,用黑表示该比对结果,结束对待检测脚本的检测流程。在比对失败之后,判断该待检测脚本不属于病毒脚本,即为正常脚本,用白表示该比对结果,结束对待检测脚本的检测流程。
本申请实施例通过基于特征库、熵库和预处理特征库,将待检测脚本逐步进行检测,有效地降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性。
另一方面,图9为本申请实施例提供的一种脚本检测装置的结构示意图。该装置可以为终端或服务器内的装置,如图9所示,该装置500包括:
获取模块510,用于获取待检测脚本;
处理模块520,用于将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本;
第一比对模块530,用于将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测脚本是否属于病毒脚本。
可选的,参见图10,处理模块520,包括:
删除单元5201,用于查找并删除待检测脚本所包含的多余字符;
第一处理单元5202,用于统一待检测脚本的变量赋值的表达方式;
第二处理单元5203,用于统一待检测脚本的相同变量名的表达方式。
可选的,参见图11,第一比对模块530,包括:
提取单元5301,用于提取预处理后的脚本中的第一特征数据;
第一比对单元5302,用于将第一特征数据与预处理特征库中对应的第二特征数据进行比对,得到第一特征比对结果;
确定单元5303,用于基于第一特征比对结果,确定待检测脚本是否属于病毒脚本。
可选的,参见图12,该装置还包括:
确定模块540,用于基于待检测脚本的文本特征确定待检测脚本对应的样本类型;
第二比对模块550,用于基于与样本类型对应的特征库对待检测脚本进行比对,得到第二特征比对结果;
第三比对模块560,用于当第二特征比对结果表示比对失败时,对待检测脚本进行预处理,或者基于与待检测脚本对应的熵库对待检测脚本进行比对,得到熵值比对结果。
可选的,确定模块540,具体用于:
确定待检测脚本的头部特征和关键字;
基于头部特征和关键字确定待检测脚本对应的样本类型。
可选的,第二比对模块550,具体用于:
提取待检测脚本中的第三特征数据;
将第三特征数据与特征库中的第四特征数据进行比对,得到第二特征比对结果。
可选的,第三比对模块560,具体用于:
计算待检测脚本的第五特征数据对应的第一熵值;
将第一熵值与熵库中的第二熵值进行比对得到熵值比对结果;
当熵值比对结果表示比对失败时,再对待检测脚本进行预处理。
可以理解的是,本实施例的脚本检测装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,在此不再赘述。
综上所述,本申请实施例提供的恶意文件检测装置,获取模块获取待检测脚本,处理模块将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本,第一比对模块将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测脚本是否属于病毒脚本。该装置由于对待检测脚本进行了预处理,使得能够将待检测脚本中的不同变形脚本处理得到预处理后的脚本,从而去掉了待检测脚本中的冗余信息,减少了待检测脚本中的特征数量,进而将预处理后的脚本与预处理特征库中的特征数据进行比对,能够更精准的确定待检测脚本是否属于病毒脚本,降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性。
另一方面,本申请实施例提供的设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如上述的脚本检测方法。
下面参考图13,图13为本申请实施例的终端设备的计算机系统的结构示意图。
如图13所示,计算机系统300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储部分303加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有系统300操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分303从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(CPU)301执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器,包括:获取模块、处理模块及第一比对模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,获取模块还可以被描述为“用于获取待检测脚本”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本申请的脚本检测方法:
获取待检测脚本;
将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本;
将预处理后的脚本与预处理特征库中的特征数据进行比对,确定待检测脚本是否属于病毒脚本。
综上所述,本申请实施例中提供的脚本检测方法、装置、设备及存储介质,通过获取待检测脚本,并将待检测脚本预处理为符合预处理特征库中特征数据的数据格式,从而得到预处理后的脚本,将预处理后的脚本与预处理特征库中的特征数据进行比对,以确定待检测脚本是否属于病毒脚本。该技术方案由于对待检测脚本进行了预处理,使得能够将待检测脚本中的不同变形脚本处理为预设格式,得到预处理后的脚本,从而去掉了待检测脚本中的冗余信息,减少了待检测脚本中的特征数量,进而将预处理后的脚本与预处理特征库中的特征数据进行比对,能够更精准的确定待检测脚本是否属于病毒脚本,降低了对病毒脚本的误报率,提高了对待检测脚本中不同变形的病毒脚本的通杀性。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种脚本检测方法,其特征在于,包括:
获取待检测脚本;
将所述待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本;
将所述预处理后的脚本与所述预处理特征库中的特征数据进行比对,确定所述待检测脚本是否属于病毒脚本。
2.根据权利要求1所述的脚本检测方法,其特征在于,将所述待检测脚本预处理为符合预处理特征库中特征数据的数据格式,包括:
查找并删除所述待检测脚本所包含的多余字符;
统一所述待检测脚本的变量赋值的表达方式;
统一所述待检测脚本的相同变量名的表达方式。
3.根据权利要求1所述的脚本检测方法,其特征在于,将所述预处理后的样本与所述预处理特征库中的特征数据进行比对,确定所述待检测脚本是否属于病毒脚本,包括:
提取所述预处理后的脚本中的第一特征数据;
将所述第一特征数据与所述预处理特征库中对应的第二特征数据进行比对,得到第一特征比对结果;
基于所述第一特征比对结果,确定所述待检测脚本是否属于病毒脚本。
4.根据权利要求1所述的脚本检测方法,其特征在于,在对所述待检测脚本进行预处理之前,所述方法还包括:
基于所述待检测脚本的文本特征确定所述待检测脚本对应的样本类型;
基于与所述样本类型对应的特征库对所述待检测脚本进行比对,得到第二特征比对结果;
当所述第二特征比对结果表示比对失败时,对所述待检测脚本进行预处理,或者基于与所述待检测脚本对应的熵库对所述待检测脚本进行比对,得到熵值比对结果。
5.根据权利要求4所述的脚本检测方法,其特征在于,基于所述待检测脚本的文本特征确定所述待检测脚本对应的样本类型,包括:
确定所述待检测脚本的头部特征和关键字;
基于所述头部特征和所述关键字确定所述待检测脚本对应的样本类型。
6.根据权利要求4所述的脚本检测方法,其特征在于,基于与所述样本类型对应的特征库对所述待检测脚本进行比对,得到第二特征比对结果,包括:
提取所述待检测脚本中的第三特征数据;
将所述第三特征数据与特征库中的第四特征数据进行比对,得到所述第二特征比对结果。
7.根据权利要求4所述的脚本检测方法,其特征在于,基于与所述待检测脚本对应的熵库对所述待检测脚本进行比对,得到熵值比对结果,包括:
计算所述待检测脚本的第五特征数据对应的第一熵值;
将所述第一熵值与所述熵库中的第二熵值进行比对得到熵值比对结果;
当所述熵值比对结果表示比对失败时,再对所述待检测脚本进行预处理。
8.一种脚本检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测脚本;
处理模块,用于将所述待检测脚本预处理为符合预处理特征库中特征数据的数据格式,得到预处理后的脚本;
第一比对模块,用于将所述预处理后的脚本与所述预处理特征库中的特征数据进行比对,确定所述待检测脚本是否属于病毒脚本。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在存储器并可在处理器上运行的计算机程序,所述处理器用于执行所述程序时实现如权利要求1-7任一项所述的脚本检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如权利要求1-7任一项所述的脚本检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139781.8A CN113360900A (zh) | 2020-03-03 | 2020-03-03 | 脚本检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139781.8A CN113360900A (zh) | 2020-03-03 | 2020-03-03 | 脚本检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360900A true CN113360900A (zh) | 2021-09-07 |
Family
ID=77523221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010139781.8A Pending CN113360900A (zh) | 2020-03-03 | 2020-03-03 | 脚本检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360900A (zh) |
-
2020
- 2020-03-03 CN CN202010139781.8A patent/CN113360900A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101337874B1 (ko) | 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템 | |
CN107851156B (zh) | 分析方法、分析装置和记录介质 | |
US11216554B2 (en) | Determining apparatus, determining method, and determining program | |
CN108154031B (zh) | 伪装应用程序的识别方法、装置、存储介质和电子装置 | |
US11550920B2 (en) | Determination apparatus, determination method, and determination program | |
CN107437088B (zh) | 文件识别方法和装置 | |
CN111339531A (zh) | 恶意代码的检测方法、装置、存储介质及电子设备 | |
CN112231696B (zh) | 恶意样本的识别方法、装置、计算设备以及介质 | |
CN112817877A (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN114143074B (zh) | webshell攻击识别装置及方法 | |
CN112182569A (zh) | 一种文件识别方法、装置、设备及存储介质 | |
CN116015861A (zh) | 一种数据检测方法、装置、电子设备及存储介质 | |
CN113360900A (zh) | 脚本检测方法、装置、设备及存储介质 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和系统 | |
CN115495740A (zh) | 一种病毒检测方法和装置 | |
CN114510717A (zh) | 一种elf文件的检测方法、装置、存储介质 | |
CN114925365A (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN112163217B (zh) | 恶意软件变种识别方法、装置、设备及计算机存储介质 | |
CN112003819B (zh) | 识别爬虫的方法、装置、设备和计算机存储介质 | |
CN112580038A (zh) | 反病毒数据的处理方法、装置及设备 | |
CN112699369A (zh) | 一种通过栈回溯检测异常登录的方法及装置 | |
CN113518118B (zh) | 基于物联网安全服务的信息处理方法及系统 | |
CN115348096B (zh) | 命令注入漏洞检测方法、系统、设备及存储介质 | |
CN117540385B (zh) | 脚本文件的监测方法、系统及存储介质 |
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 |