CN108563952A - 文件的病毒检测方法、装置及存储介质 - Google Patents
文件的病毒检测方法、装置及存储介质 Download PDFInfo
- Publication number
- CN108563952A CN108563952A CN201810373210.3A CN201810373210A CN108563952A CN 108563952 A CN108563952 A CN 108563952A CN 201810373210 A CN201810373210 A CN 201810373210A CN 108563952 A CN108563952 A CN 108563952A
- Authority
- CN
- China
- Prior art keywords
- file
- virus
- detected
- virus document
- code
- 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
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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件的病毒检测方法、装置及存储介质,属于互联网技术领域。所述方法包括:获取待检测文件;从待检测文件中提取至少两个操作代码;将提取的操作代码转换为图形文件;提取图形文件的图片特征,将提取的图片特征组成目标特征矩阵;将目标特征矩阵与病毒文件的特征矩阵进行匹配,以对待检测文件进行病毒检测。本发明通过获取待检测文件的操作代码,将待检测文件的操作代码转换为图形文件,并将从图形文件中提取的图片特征组成目标特征矩阵,进而通过将目标特征矩阵与病毒文件的特征矩阵进行匹配,对待检测文件进行病毒检测。由于无需包括特征片段,通过特征矩阵进行匹配,即可检测出变形后的病毒文件,因而检测结果更全面。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种文件的病毒检测方法、装置及存储介质。
背景技术
随着互联网技术的发展,基于互联网的各种网络犯罪时有发生,网络犯罪不仅危害用户的财产安全,甚至影响社会稳定及国家安全。病毒文件作为网络犯罪的一种重要方式,如何从互联网上的海量文件中检测出带有病毒的文件,已成为了维护网络秩序的重要方式。
相关技术在对文件进行病毒检测时,主要采用如下方法:采用人工的方式提取病毒文件的特征片段;对于任一待检测文件,如果该待检测文件中包含病毒文件的特征片段,则确定该待检测文件为病毒文件。
由于相关技术仅在待检测文件包括病毒文件的特征片段时,才判定待检测文件为病毒文件,因而检测结果并不全面。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种文件的病毒检测方法、装置及存储介质。所述技术方案如下:
一方面,提供了一种文件的病毒检测方法,所述方法包括:
获取待检测文件;
从所述待检测文件中提取至少两个操作代码,不同操作代码能够执行不同的操作;
将提取的操作代码转换为图形文件,所述图形文件的像素点由对应操作代码转换得到;
提取所述图形文件的图片特征,将提取的图片特征组成目标特征矩阵;
将所述目标特征矩阵与病毒文件的特征矩阵进行匹配,以对所述待检测文件进行病毒检测。
另一方面,提供了一种文件检测装置,所述装置包括:
获取模块,用于获取待检测文件;
提取模块,用于从所述待检测文件中提取至少两个操作代码,不同操作代码能够执行不同的操作;
转换模块,用于将提取的操作代码转换为图形文件,所述图形文件的像素点由对应的操作代码转换得到;
所述提取模块,用于提取所述图形文件的图片特征,将提取的图片特征组成目标特征矩阵;
检测模块,用于将所述目标特征矩阵与病毒文件的特征矩阵进行匹配,以对所述待检测文件进行病毒检测。
另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现文件的病毒检测方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现文件的病毒检测方法。
本发明实施例提供的技术方案带来的有益效果是:
通过获取待检测文件的操作代码,将待检测文件的操作代码转换为图形文件,并将从图形文件中提取的图片特征组成目标特征矩阵,进而通过将目标特征矩阵与病毒文件的特征矩阵进行匹配,对待检测文件进行病毒检测。由于无需包括特征片段,通过特征矩阵进行匹配,即可检测出变形后的病毒文件,因而检测结果更全面。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种文件的病毒检测方法所涉及的实施环境;
图2是本发明实施例提供的一种文件的病毒检测方法的流程图;
图3是本发明实施例提供的待检测文件的结构示意图;
图4是本发明实施例提供的一种待检测文件的处理过程示意图;
图5是本发明实施例提供的病毒文件库的生成过程示意图;
图6是本发明实施例提供的文件相似性计算过程的示意图;
图7是本发明实施例提供的文件的病毒检测过程的示意图;
图8是本发明实施例提供的文件的病毒检测过程的示意图;
图9是本发明实施例提供的文件的病毒检测装置的示意图;
图10是根据一示例性实施例示出的一种用于文件的病毒检测的服务器。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在执行本发明实施例之前,首先对本发明实施例涉及的名词进行解释。
Android病毒文件:恶意Android应用,通常在用户不知情的情况下给用户的利益带来损失。
Opcode指令:Android程序的执行部分,代表Android操作指令。
图片指纹:图片中的关键节点,目前应用较为广泛的是SIFT(Scale InvariantFeature Transfrm,尺度不变特征变换)特征,该特征采用一种标准算法提取图片中若干具有代表性的像素点特征。
SIFT特征:对图片的旋转、尺度缩放、亮度变化等保持尺度不变形,是一种非常稳定的具部特征。SIFT特征由64个数字组成的向量表示,对于一张图片而言,包括至少一个SIFT特征。
向量:由至少一个数字组成的向量表示,在本发明实施例中用于表示SIFT特征。
向量的余弦相似度:用于表示两个向量的相似程度。对于两个向量,余弦相似度越大,两个向量差别越小;余弦相似度越小,两个向量差别越小。余弦相似度的计算公式为:向量1*向量2/向量1的长度*向量2的长度。
为了维护网络安全,相关技术通过人工方式提取出已知病毒文件的特征片段,并基于病毒文件的特征片段,对未知的待检测文件进行检测。当待检测文件中包括病毒文件的特征片段时,可判定该待检测文件为病毒文件,否则无法对该待检测文件的属性进行判定。采用该种方式存在以下两个缺陷:第一,需要人工提取病毒文件的特征片段,检测方式不够智能,且资源消耗较大;第二,当且仅当待检测文件包括病毒文件的特征片段时,判定待检测文件为病毒文件,一旦病毒文件发生变异,部分代码发生改变,相关技术是无法识别出该变异后的病毒文件的,检测结果不够全面。为了解决相关技术中存在的问题,本发明实施例从待检测文件中提取操作代码,并将提取的操作代码转换为图形文件,然后从图形文件中提取图片特征,将提取的图片特征组成目标特征矩阵,进而基于所提取的目标特征矩阵与病毒文件库包括的每个病毒文件进行匹配,从而实现对待检测文件的病毒检测。
图1示出了本发明实施例提供的用于文件的病毒检测的服务器的结构示意图,该服务器包括:图片指纹生成子模块、病毒文件数据库准备子模块、检测流程控制子模块及相似度计算子模块。
其中,图片指纹生成子模块为一个独立的模块,可被其他子模块调用,用于提取文件的操作代码,将所提取的操作代码转换为图形文件,并从图形文件中提取文件特征。该图形文件可以为图片、二维码、条形码等等。
病毒库准备子模块用于获取大量的病毒文件,并调用图片指纹生成子模块获取各个病毒文件的特征矩阵。
检测控制子模块调用图片指纹生成子模块获取待检测文件的目标特征矩阵,依次遍历病毒数据库所存储的每个特征矩阵,调用相似度计算子模块进行相似度计算,当相似指数达到指数阈值时,确定待检测文件为病毒文件。
本发明实施例提供了一种文件的病毒检测方法,参见图2,本发明实施例提供的方法流程包括:
201、服务器获取待检测文件。
其中,待检测文件为一种类型未知的可执行文件,该可执行文件包括待检测文件所能执行的全部操作的代码,也即是,该待检测文件实际上为一个代码文件。依据所运行的操作系统,待检测文件包括Android文件、IOS文件及Windows文件等。以待检测文件为Android文件为例,待检测文件为一种后缀名为.apk的Android平台下可执行文件,该待检测文件的形式为一个zip压缩包,zip压缩包内的文件结构如表1:
表1
202、服务器从待检测文件中提取至少两个操作代码。
其中,不同操作代码能够执行不同的操作。服务器从待检测文件中提取至少两个操作代码时,可采用如下步骤:
2021、服务器对待检测文件进行解析,得到至少一个代码片段。
该步骤可分为如下两个过程:
(1)、服务器对待检测文件进行解析,得到指定文件。
其中,指定文件为一种可执行文件。以待检测文件为Android文件为例,通过对Android文件的zip压缩包进行解压缩,可得到classes.dex文件,该classes.dex文件为Android系统底层虚拟机的可执行的文件,也即是apk文件的可执行代码。classes.dex文件的内部结构如图3所示,包括class1、class1、…、classN等多个文件,每个class文件为java可执行文件。
(2)、服务器对指定文件进行解析,得到至少一个代码片段。
服务器按照指定文件的文件格式,对指定文件进行解析,得到至少一个代码片段。当待检测文件为Android文件时,服务器通过对每个class文件进行解析,可得到至少一个method代码片段。参见图3,服务器对class1文件进行解析,得到method1、method2、….、methodN;服务器对其他class文件进行解析,同样可得到至少一个method代码片段。
2022、服务器根据预设的操作代码,从至少一个代码片段中,提取与预设的操作代码相同的至少两个操作代码。
其中,预设的操作代码为操作系统所支持的可执行代码。以Android操作系统为例,预设的操作代码包括Mov操作代码、Add操作代码、Invoke操作代码等等。
每个代码片段中包括至少一个操作代码,服务器根据预设的操作代码,可从至少一个代码片段中,提取与预设的操作代码相同的至少两个操作代码。在本发明实施例中,从不同代码片段中提取的操作代码可以相同,也可不同。例如,服务器从method1代码片段中提取的操作代码可以为Mov操作代码、Add操作代码,从method2代码片段中提取的操作代码可以为Mov操作代码、Invoke操作代码。
203、服务器将提取的操作代码转换为图形文件。
通常来说,从待检测文件中提取的操作代码种类是确定的(一般不超过256种),而像素点的像素值介于0至255之间,因而可将每个操作代码转换为一个像素点,最终得到包括至少两个像素点的图形文件。
具体地,服务器将提取的操作代码转换为图片时,可采用如下步骤:
2031、服务器从操作代码数据库中,获取每个操作代码对应的代码编号。
本发明实施维护一个操作代码数据库,该操作代码数据库中存储有操作代码与代码编号之间的对应关系。该操作代码数据库中所存储的操作代码与代码编号之间的对应关系,可由服务器根据所存储的操作代码随机进行设置,该代码编号为自然数。例如,可将Mov操作代码设置对应的代码编号为1,将Add操作代码设置对应的代码编号为2,为Invoke操作代码设置定的代码编号为3等等。对于操作代码数据库中所存储的操作代码与代码编号之间的对应关系,可参见表2。
表2
操作代码 | 代码编号 |
Mov | 1 |
Add | 2 |
Invoke | 3 |
… | … |
2032、服务器根据每个操作代码对应的代码编号,将每个操作代码转换为一个像素点。
当获取到每个操作代码对应的代码编码后,服务器将每个操作代码对应的代码编号转换为十六进制字节,并将每个操作代码对应的十六进制字节转换为十进制字节,进而通过将每个转换后的十进制字节作为像素点的像素值,将每个操作代码转换为一个像素值介于0~255的像素点。
例如,对于Android文件的payload文件(包括classes.dex文件),服务器对该payload文件进行解析,得到至少一个method代码片段,对于其中的任一个method代码片段,该method代码片段包括的操作代码为:
Mov va,1
Add va,vb
Invoke xxx
服务器从该method代码片段中提取的操作代码分别为Mov、Add、Invoke,参照表2所示的操作代码与代码编号之间的对应关系,可得到该method代码片段对应的代码编号为1、2、3,将所提取的代码编号转换为十六进制字节分别为01、02、03,由于每个字节在0~255之间,因而可将上述三个代码编号转换为像素值分别为1、2、3的三个像素点。
2033、服务器将提取的操作代码转换的像素点组成图形文件。
服务器通过将所有的操作代码对应的代码编号进行转换,可得到包括至少两个像素点的图形文件。
204、服务器提取图形文件的图片特征,将提取的图片特征组成目标特征矩阵。
服务器采用特征提取算法从得到的图形文件中提取图片特征,由于一张图形文件包括至少一个图片特征,每个图片特征为一个指定维度的目标特征向量,因而基于所提取的至少一个目标特征向量,可组成一个目标特征矩阵。其中,图片特征可以为SIFT特征等;指定维度可以为32维、64维等等。
以待检测文件为Android样本为例,对待检测文件进行处理,得到目标特征矩阵的过程,可参见图4。
参见图4,服务器对Android样本进行解析,得到payload文件(包括classes.dex文件),然后对payload文件进行解析,得到method代码片段,从每个method代码片段中提取method指令,并将每个method指令转换为一个像素点,得到一张图片。之后,服务器采用SIFT算法从该图片中提取SIFT特征,得到一组特征向量,进而存储所得到的特征向量。
205、服务器将目标特征矩阵与病毒文件的特征矩阵进行匹配,以对待检测文件进行病毒检测。
本步骤中服务器通过将待检测文件的目标特征矩阵与每个病毒文件的特征矩阵进行匹配,对待检测文件进行病毒检测。在此之前,服务器需要获取每个病毒文件的特征矩阵,进而基于每个病毒文件的特征矩阵建立一个病毒数据库。
对于该病毒数据库的建立过程如下:服务器获取至少一个病毒文件,并按照对待检测文件的处理方式,从每个病毒文件中提取图片特征,并组成特征矩阵,进而根据所有病毒文件中的特征矩阵,构建病毒数据库。参见图5,对于输入的Android病毒样本,服务器通过调用图片指纹生成子模块对Android病毒样本进行处理,得到Android病毒样本的特征矩阵,进而基于Android病毒样本的特征矩阵构建病毒数据库。
服务器通过将目标特征矩阵与病毒文件的特征矩阵进行匹配,以对待检测文件进行病毒检测时,可采用如下步骤:
2051、服务器将目标特征矩阵与病毒文件的特征矩阵进行匹配,获取待检测文件与病毒文件的相似数值。
在本发明实施例中,目标特征矩阵包括至少一个目标特征向量,每个特征矩阵包括至少一个特征向量,且每个目标特征向量和每个特征向量具有相同维度。对于任一病毒文件,服务器在计算待检测文件与该病毒文件的相似数值时,可采用如步骤:
20511、服务器计算每个目标特征向量与病毒文件包括的每个特征向量之间相似度。
服务器可调用相似度计算子模块,计算每个目标特征向量与病毒文件包括的每个特征向量之间的余弦相似度。对于任意两个向量X[x1,x2,…,x64]和向量Y[y1,y2,…,y64],向量X和向量Y之间的余弦相似度为:
20512、如果任一目标特征向量与任一特征向量之间的相似度大于相似度阈值,则服务器确定目标特征向量与特征向量相似。
其中,相似度阈值可根据服务器的处理能力确定,该相似度阈值可以为0.90、0.95等。
20513、服务器将病毒文件中与至少一个目标特征向量相似的特征向量的数量,作为待检测文件与病毒文件的相似数值。
服务器依次计算每个目标特征向量与病毒文件包括的每个特征向量之间的相似度,获取相似度大于相似度阈值的特征向量的数量,作为该待检测文件与病毒文件的相似数值。
参见图6,对于从病毒文件和待检测文件中提取的两组SIFT向量,服务器计算两组SIFT向量中任意两个SIFT向量的余弦相似度,并统计余弦相似度大于相似度阈值的数量,将所统计的数量作为该病毒文件与待检测文件之间的相似数值。
2052、如果待检测文件与任一病毒文件的相似数值大于指定阈值,则服务器确定待检测文件为病毒文件。
其中,指定阈值由服务器的处理能力决定,该指定阈值可以为5个、6个、8个等。
在本发明的另一个实施例中,基于所计算出的待检测文件与病毒文件的相似指数,服务器可从待测文件与每个病毒文件的相似数值中,获取最大相似数值,并将最大相似数值与指定阈值进行比较,当最大相似数值大于指定阈值时,服务器确定该待检测文件为病毒文件;当最大相似度数值小于指定阈值时,服务器无法确定该待检测文件是否为病毒文件。例如,病毒数据库包括3个病毒文件,待测文件与第一个病毒文件的相似数值Sim_1=4,待测文件与第二个病毒文件的相似数值Sim_2=0,待测文件与第三个病毒文件的相似数值Sim_=8,服务器从待测文件与三个病毒文件的相似数值中,获取最大相似数值8。设定指数数值为5,服务器将最大相似数值8与指定阈值5进行比较,由于最大相似数值大于指定阈值,因而可确定该检测文件为病毒文件。
采用相似度计算的方式,能够及时检测出变异的病毒文件,检测结果更加全面,能够避免变异的病毒文件对网络安全造成危害,为维护网络秩序发挥重要作用。
在本发明的另一个实施例中,病毒数据库中的每个病毒文件对应一个病毒类型标签,服务器基于类型标签可将同一类型的病毒文件的特征矩阵作为一组。例如,将诈骗类病毒文件的特征矩阵作为一组,将流氓类病毒文件的特征矩阵作为一组。基于每个病毒文件对应的病毒类型标签,当确定待检测文件的最大相似数值大于指定阈值时,服务器可根据每个病毒文件的病毒类型标签和待检测文件与每个病毒文件的相似数值,确定待检测文件的类型。该确定过程包括但不限于如下几种:
在一种实现方式中,服务器可从待检测文件与每个病毒文件的相似数值中,获取最大相似数值,并获取最大相似数值对应的病毒文件的病毒类型标签,进而将病毒类型标签作为待检测文件的类型。例如,病毒数据库包括3个病毒文件,待测文件与第一个病毒文件的相似数值Sim_1=4,待测文件与第二个病毒文件的相似数值Sim_2=0,待测文件与第三个病毒文件的相似数值Sim_=8,服务器从待测文件与三个病毒文件的相似数值中,获取最大相似数值8,该最大相似指数8对应的病毒文件的病毒类型标签为诈骗类病毒文件,则可确定待检测文件的类型为诈骗类病毒文件。
在另一种实现方式中,服务器可根据待检测文件与每个病毒文件的相似数值,获取大于指定阈值的相似指数对应的至少一个病毒文件,并获取至少一个病毒文件的病毒类型标签,进而根据至少一个病毒文件的病毒类型标签,确定待检测文件的类型。进一步地,服务器根据至少一个病毒文件的病毒类型标签,确定待检测文件的类型,可分为如下两种情况:
第一种情况、服务器根据至少一个病毒文件的病毒类型标签,统计每种病毒类型标签对应的病毒文件数量,并从每种病毒类型标签对应的病毒文件数量中,获取所对应的病毒文件数量最多的病毒类型标签,进而将病毒文件数量最多的病毒类型标签作为待检测文件的类型。例如,服务器通过将待检测文件与每个病毒文件的相似数值与指定阈值进行比较,获取到大于指定阈值的相似指数对应的病毒文件有三个,分别为病毒文件1、病毒文件2及病毒文件3,之后,服务器获取到病毒文件1的病毒类型标签为诈骗类病毒文件、病毒文件2的病毒类型标签为流氓类病毒文件、病毒文件3的病毒类型标签为诈骗类病毒文件,服务器统计每种病毒类型标签对应的病毒文件数量,得到诈骗类病毒文件为2个,流氓类病毒文件为1个,然后服务器获取所对应的病毒文件数量最多的病毒类型标签,即诈骗类病毒文件,进而确定待检测文件的类型为诈骗类病毒文件。
第二种情况、服务器根据至少一个病毒文件与待检测文件的相似数值,确定待检测文件与每个病毒文件属于同一类型病毒文件的概率,进而根据至少一个病毒文件的病毒类型标签和待检测文件与每个病毒文件属于同一类型病毒文件的概率,确定待检测文件的类型。具体地,服务器可将至少一个病毒文件与待检测文件的相似数值相加,得到相似数值总和,服务器通过将每个病毒文件与待检测文件的相似数值除以相似数值总和,可得到待检测文件与每个病毒文件属于同一类型病毒文件的概率,进而基于该概率确定出待检测文件属于某种类型的病毒文件的概率。在该过程中,如果至少一个病毒文件中存在至少两个类型相同的病毒文件,则可将至少两个类型相同的病毒文件的概率相加,作为待检测文件属于该类型病毒文件的概率。
图7为采用本发明实施例提供的文件的病毒检测方法进行文件检测过程的示意图。参见图7,服务器待调用图片指纹生成子模块,提取待检测Android样本的SIFT特征。之后,服务器遍历病毒数据库包括的每个病毒文件的SIFT特征,并调用相似度计算子模块计算每个病毒文件的SIFT特征与待检测Android样本的SIFT特征之间的相似度,获取最大相似数值,进而将最大相似数值与指定阈值进行比较,如果最大相似数值大于指定阈值,则确定该待检测文件为病毒文件,否则无法判定该待检测文件是否为病毒文件。
图8为采用本发明实施例提供的文件的病毒检测方法进行文件检测过程的示意图。参见图8,将一批Android病毒样本和待检测Android样本输入到服务器中,服务器对Android样本进行解析,得到payload文件,并从payload文件中提取method指令,进而将所提取的method指令转换为一个像素点,得到一张图片,进而提取该图片的SIFT特征,得到至少一组SIFT向量,并存储至少构建病毒数据库,遍历病毒数据库,并调用相似度计算子模块计算待检测Android样本的SIFT向量与每个Android病毒样本的SIFT向量之间的相似数值,服务器获取最大相似数值,并判断最大相似数值是否大于指定阈值,如果最大相似数值大于指定阈值,则判定待检测Android样本为病毒文件,如果最大相似数值小于指定阈值,则无法判定该待检测Android样本是否为病毒文件。
本发明实施例提供的方法,通过获取待检测文件的操作代码,将待检测文件的操作代码转换为图形文件,并将从图形文件中提取的图片特征组成目标特征矩阵,进而通过将目标特征矩阵与病毒文件的特征矩阵进行匹配,对待检测文件进行病毒检测。由于无需包括特征片段,通过特征矩阵进行匹配,即可检测出变形后的病毒文件,因而检测结果更全面。
参见图9,本发明实施例提供了一种文件的病毒检测装置,该装置包括:
获取模块901,用于获取待检测文件;
提取模块902,用于从待检测文件中提取至少两个操作代码,不同操作代码能够执行不同的操作;
转换模块903,用于将提取的操作代码转换为图形文件,该图形文件的像素点由对应操作代码转换得到;
提取模块902,用于提取图形文件的图片特征,将提取的图片特征组成目标特征矩阵;
检测模块904,用于将目标特征矩阵与病毒文件的特征矩阵进行匹配,以对待检测文件进行病毒检测。
在本发明的另一个实施例中,提取模块902,用于对待检测文件进行解析,得到至少一个代码片段,每个代码片段包括至少一个操作代码;根据预设的操作代码,从至少一个代码片段中,提取与预设的操作代码相同的至少两个操作代码。
在本发明的另一个实施例中,转换模块903,用于从操作代码数据库中,获取每个操作代码对应的代码编号,操作代码数据库中存储有操作代码与代码编号之间的对应关系;根据每个操作代码对应的代码编号,将每个操作代码转换为一个像素点;将提取的操作代码转换的像素点组成图形文件。
在本发明的另一个实施例中,转换模块903,用于将每个操作代码对应的代码编号转化为十六进制字节;将每个十六进制字节转换为十进制字节;通过将每个转换后的十进制字节作为像素点的像素值,将每个操作代码转换为一个像素点。
在本发明的另一个实施例中,检测模块904,用于通过将目标特征矩阵与病毒文件的特征矩阵进行匹配,得到待检测文件与病毒文件的相似数值;如果待检测文件与病毒文件的相似数值大于指定阈值,则确定待检测文件为病毒文件。
在本发明的另一个实施例中,目标特征矩阵包括至少一个目标特征向量,每个特征矩阵包括至少一个特征向量,每个目标特征向量和每个特征向量具有相同维度;
检测模块904,用于计算每个目标特征向量与病毒文件包括的每个特征向量之间相似度;如果任一目标特征向量与任一特征向量之间的相似度大于相似度阈值,则确定目标特征向量与特征向量相似;将病毒文件中与至少一个目标特征向量相似的特征向量的数量,作为待检测文件与病毒文件的相似数值。
在本发明的另一个实施例中,每个病毒文件对应一个病毒类型标签;
该装置还包括:
获取模块901,用于获取最大相似度指数对应的病毒文件的病毒类型标签;
确定模块,用于根据每个病毒文件的病毒类型标签和待检测文件与每个病毒文件的相似数值,确定待检测文件的类型。
在本发明的另一个实施例中,确定模块,用于从待检测文件与每个病毒文件的相似数值中,获取最大相似数值;获取最大相似数值对应的病毒文件的病毒类型标签;将病毒类型标签作为待检测文件的类型。
在本发明的另一个实施例中,确定模块,用于根据待检测文件与每个病毒文件的相似数值,获取大于指定阈值的相似指数对应的至少一个病毒文件;获取至少一个病毒文件的病毒类型标签;根据至少一个病毒文件的病毒类型标签,确定待检测文件的类型。
在本发明的另一个实施例中,确定模块,用于根据至少一个病毒文件的病毒类型标签,统计每种病毒类型标签对应的病毒文件数量;从每种病毒类型标签对应的病毒文件数量中,获取所对应的病毒文件数量最多的病毒类型标签;将病毒文件数量最多的病毒类型标签作为待检测文件的类型。
在本发明的另一个实施例中,确定模块,用于根据至少一个病毒文件与待检测文件的相似数值,确定待检测文件与每个病毒文件属于同一类型病毒文件的概率;根据至少一个病毒文件的病毒类型标签和待检测文件与每个病毒文件属于同一类型病毒文件的概率,确定待检测文件的类型。
综上,本发明实施例提供的装置,通过获取待检测文件的操作代码,将待检测文件的操作代码转换为图形文件,并将从图形文件中提取的图片特征组成目标特征矩阵,进而通过将目标特征矩阵与病毒文件的特征矩阵进行匹配,对待检测文件进行病毒检测。由于无需包括特征片段,通过特征矩阵进行匹配,即可检测出变形后的病毒文件,因而检测结果更全面。
图10是根据一示例性实施例示出的一种用于文件的病毒检测的服务器。参照图10,服务器1000包括处理组件1022,其进一步包括一个或多个处理器,以及由存储器1032所代表的存储器资源,用于存储可由处理组件1022的执行的指令,例如应用程序。存储器1032中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1022被配置为执行指令,以执行上述文件的病毒检测方法中服务器所执行的功能。
服务器1000还可以包括一个电源组件1026被配置为执行服务器1000的电源管理,一个有线或无线网络接口1050被配置为将服务器1000连接到网络,和一个输入输出(I/O)接口1058。服务器1000可以操作基于存储在存储器1032的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本发明实施例提供的服务器,通过获取待检测文件的操作代码,将待检测文件的操作代码转换为图形文件,并将从图形文件中提取的图片特征组成目标特征矩阵,进而通过将目标特征矩阵与病毒文件的特征矩阵进行匹配,对待检测文件进行病毒检测。由于无需包括特征片段,通过特征矩阵进行匹配,即可检测出变形后的病毒文件,因而检测结果更全面。
需要说明的是:上述实施例提供的文件的病毒检测装置在对文件进行病毒检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将文件的病毒检测装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件的病毒检测装置与文件的病毒检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种文件的病毒检测方法,其特征在于,所述方法包括:
获取待检测文件;
从所述待检测文件中提取至少两个操作代码,不同操作代码能够执行不同的操作;
将提取的操作代码转换为图形文件,所述图形文件的像素点由对应操作代码转换得到;
提取所述图形文件的图片特征,将提取的图片特征组成目标特征矩阵;
将所述目标特征矩阵与病毒文件的特征矩阵进行匹配,以对所述待检测文件进行病毒检测。
2.根据权利要求1所述的方法,其特征在于,所述从所述待检测文件中提取至少两个操作代码,包括:
对所述待检测文件进行解析,得到至少一个代码片段,每个代码片段包括至少一个操作代码;
根据预设的操作代码,从所述至少一个代码片段中,提取与所述预设的操作代码相同的至少两个操作代码。
3.根据权利要求1所述的方法,其特征在于,所述将提取的操作代码转换为图形文件,包括:
从操作代码数据库中,获取每个操作代码对应的代码编号,所述操作代码数据库中存储有操作代码与代码编号之间的对应关系;
根据每个操作代码对应的代码编号,将每个操作代码转换为一个像素点;
将提取的操作代码转换的像素点组成所述图形文件。
4.根据权利要求3所述的方法,其特征在于,所述根据每个操作代码对应的代码编号,将每个操作代码转换为一个像素点,包括:
将每个操作代码对应的代码编号转化为十六进制字节;
将每个十六进制字节转换为十进制字节;
通过将每个转换后的十进制字节作为像素点的像素值,将每个操作代码转换为一个像素点。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述将所述目标特征矩阵与病毒文件的特征矩阵进行匹配,以对所述待检测文件进行病毒检测,包括:
将所述目标特征矩阵与病毒文件的特征矩阵进行匹配,得到所述待检测文件与病毒文件的相似数值;
如果所述待检测文件与病毒文件的相似数值大于指定阈值,则确定所述待检测文件为病毒文件。
6.根据权利要求5所述的方法,其特征在于,所述目标特征矩阵包括至少一个目标特征向量,特征矩阵包括至少一个特征向量,每个目标特征向量和每个特征向量具有相同维度;
所述将所述目标特征矩阵与病毒文件的特征矩阵进行匹配,得到所述待检测文件与病毒文件的相似数值,包括:
计算每个目标特征向量与所述病毒文件包括的每个特征向量之间相似度;
如果任一目标特征向量与任一特征向量之间的相似度大于相似度阈值,则确定所述目标特征向量与所述特征向量相似;
将所述病毒文件中与所述至少一个目标特征向量相似的特征向量的数量,作为所述待检测文件与所述病毒文件的相似数值。
7.根据权利要求5所述的方法,其特征在于,所述每个病毒文件对应一个病毒类型标签;
所述确定所述待检测文件为病毒文件之后,还包括:
根据每个病毒文件的病毒类型标签和所述待检测文件与每个病毒文件的相似数值,确定所述待检测文件的类型。
8.根据权利要求7所述的方法,其特征在于,所述根据每个病毒文件的病毒类型标签和所述待检测文件与每个病毒文件的相似数值,确定所述待检测文件的类型,包括:
从所述待检测文件与每个病毒文件的相似数值中,获取最大相似数值;
获取所述最大相似数值对应的病毒文件的病毒类型标签;
将所述病毒类型标签作为所述待检测文件的类型。
9.根据权利要求7所述的方法,其特征在于,所述根据每个病毒文件的病毒类型标签和所述待检测文件与每个病毒文件的相似数值,确定所述待检测文件的类型,包括:
根据所述待检测文件与每个病毒文件的相似数值,获取大于所述指定阈值的相似指数对应的至少一个病毒文件;
获取所述至少一个病毒文件的病毒类型标签;
根据所述至少一个病毒文件的病毒类型标签,确定所述待检测文件的类型。
10.根据权利要求9所述的方法,其特征在于,所述根据所述至少一个病毒文件的病毒类型标签,确定所述待检测文件的类型,包括:
根据所述至少一个病毒文件的病毒类型标签,统计每种病毒类型标签对应的病毒文件数量;
从每种病毒类型标签对应的病毒文件数量中,获取所对应的病毒文件数量最多的病毒类型标签;
将所述病毒文件数量最多的病毒类型标签作为所述待检测文件的类型。
11.根据权利要求9所述的方法,其特征在于,所述根据所述至少一个病毒文件的病毒类型标签,确定所述待检测文件的类型,包括:
根据所述至少一个病毒文件与所述待检测文件的相似数值,确定所述待检测文件与每个病毒文件属于同一类型病毒文件的概率;
根据所述至少一个病毒文件的病毒类型标签和所述待检测文件与每个病毒文件属于同一类型病毒文件的概率,确定所述待检测文件的类型。
12.一种文件的病毒检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测文件;
提取模块,用于从所述待检测文件中提取至少两个操作代码,不同操作代码能够执行不同的操作;
转换模块,用于将提取的操作代码转换为图形文件,所述图形文件的像素点由对应操作代码转换得到;
所述提取模块,用于提取所述图形文件的图片特征,将提取的图片特征组成目标特征矩阵;
检测模块,用于将所述目标特征矩阵与病毒文件的特征矩阵进行匹配,以对所述待检测文件进行病毒检测。
13.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至11中任一项所述的文件的病毒检测方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1至11中任一项所述的文件的病毒检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810373210.3A CN108563952B (zh) | 2018-04-24 | 2018-04-24 | 文件的病毒检测方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810373210.3A CN108563952B (zh) | 2018-04-24 | 2018-04-24 | 文件的病毒检测方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563952A true CN108563952A (zh) | 2018-09-21 |
CN108563952B CN108563952B (zh) | 2023-03-21 |
Family
ID=63536624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810373210.3A Active CN108563952B (zh) | 2018-04-24 | 2018-04-24 | 文件的病毒检测方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563952B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492692A (zh) * | 2018-11-07 | 2019-03-19 | 北京知道创宇信息技术有限公司 | 一种网页后门检测方法、装置、电子设备及存储介质 |
CN110515652A (zh) * | 2019-08-30 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 代码摘要的生成方法、装置和存储介质 |
CN111091128A (zh) * | 2019-12-18 | 2020-05-01 | 北京数衍科技有限公司 | 字符图片分类方法、装置和电子设备 |
CN112487426A (zh) * | 2020-11-26 | 2021-03-12 | 网宿科技股份有限公司 | 一种系统白名单的确定方法、系统及服务器 |
CN112487428A (zh) * | 2020-11-26 | 2021-03-12 | 南方电网数字电网研究院有限公司 | 一种基于区块链的休眠式组合计算机病毒发现方法 |
CN113204483A (zh) * | 2021-04-21 | 2021-08-03 | 北京达佳互联信息技术有限公司 | 应用检测方法、装置、服务器、检测程序组件以及存储介质 |
CN113553586A (zh) * | 2021-06-16 | 2021-10-26 | 深信服科技股份有限公司 | 病毒检测方法、模型训练方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068768A1 (en) * | 2012-08-29 | 2014-03-06 | The Johns Hopkins University | Apparatus and Method for Identifying Related Code Variants in Binaries |
CN104978522A (zh) * | 2014-04-10 | 2015-10-14 | 北京启明星辰信息安全技术有限公司 | 一种检测恶意代码的方法和装置 |
US20160070911A1 (en) * | 2013-08-19 | 2016-03-10 | Amazon Technologies, Inc. | Rapid malware inspection of mobile applications |
CN106096411A (zh) * | 2016-06-08 | 2016-11-09 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN107092829A (zh) * | 2017-04-21 | 2017-08-25 | 中国人民解放军国防科学技术大学 | 一种基于图像匹配的恶意代码检测方法 |
CN107895117A (zh) * | 2017-11-29 | 2018-04-10 | 四川无声信息技术有限公司 | 恶意代码标注方法和装置 |
-
2018
- 2018-04-24 CN CN201810373210.3A patent/CN108563952B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068768A1 (en) * | 2012-08-29 | 2014-03-06 | The Johns Hopkins University | Apparatus and Method for Identifying Related Code Variants in Binaries |
US20160070911A1 (en) * | 2013-08-19 | 2016-03-10 | Amazon Technologies, Inc. | Rapid malware inspection of mobile applications |
CN104978522A (zh) * | 2014-04-10 | 2015-10-14 | 北京启明星辰信息安全技术有限公司 | 一种检测恶意代码的方法和装置 |
CN106096411A (zh) * | 2016-06-08 | 2016-11-09 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN107092829A (zh) * | 2017-04-21 | 2017-08-25 | 中国人民解放军国防科学技术大学 | 一种基于图像匹配的恶意代码检测方法 |
CN107895117A (zh) * | 2017-11-29 | 2018-04-10 | 四川无声信息技术有限公司 | 恶意代码标注方法和装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492692A (zh) * | 2018-11-07 | 2019-03-19 | 北京知道创宇信息技术有限公司 | 一种网页后门检测方法、装置、电子设备及存储介质 |
CN110515652A (zh) * | 2019-08-30 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 代码摘要的生成方法、装置和存储介质 |
CN110515652B (zh) * | 2019-08-30 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 代码摘要的生成方法、装置和存储介质 |
CN111091128A (zh) * | 2019-12-18 | 2020-05-01 | 北京数衍科技有限公司 | 字符图片分类方法、装置和电子设备 |
CN111091128B (zh) * | 2019-12-18 | 2023-09-22 | 北京数衍科技有限公司 | 字符图片分类方法、装置和电子设备 |
CN112487426A (zh) * | 2020-11-26 | 2021-03-12 | 网宿科技股份有限公司 | 一种系统白名单的确定方法、系统及服务器 |
CN112487428A (zh) * | 2020-11-26 | 2021-03-12 | 南方电网数字电网研究院有限公司 | 一种基于区块链的休眠式组合计算机病毒发现方法 |
CN112487428B (zh) * | 2020-11-26 | 2022-03-11 | 南方电网数字电网研究院有限公司 | 一种基于区块链的休眠式组合计算机病毒发现方法 |
CN113204483A (zh) * | 2021-04-21 | 2021-08-03 | 北京达佳互联信息技术有限公司 | 应用检测方法、装置、服务器、检测程序组件以及存储介质 |
CN113553586A (zh) * | 2021-06-16 | 2021-10-26 | 深信服科技股份有限公司 | 病毒检测方法、模型训练方法、装置、设备及存储介质 |
CN113553586B (zh) * | 2021-06-16 | 2024-05-28 | 深信服科技股份有限公司 | 病毒检测方法、模型训练方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108563952B (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563952A (zh) | 文件的病毒检测方法、装置及存储介质 | |
JP5957064B2 (ja) | 秘密情報の検出 | |
CN104751055B (zh) | 一种基于纹理的分布式恶意代码检测方法、装置及系统 | |
CN104700033B (zh) | 病毒检测的方法及装置 | |
TWI271056B (en) | System security approach methods using state tables, related computer-readable medium, and related systems | |
CN105224600B (zh) | 一种样本相似度的检测方法及装置 | |
CN111711614B (zh) | 基于知识图谱的可疑用户验证方法、装置及计算机设备 | |
CN106557697A (zh) | 生成杀毒记录集合的系统和方法 | |
CN110881050A (zh) | 安全威胁检测方法及相关产品 | |
CN105306463A (zh) | 基于支持向量机的Modbus TCP入侵检测方法 | |
CN104866764B (zh) | 一种基于对象引用图的Android手机恶意软件检测方法 | |
CN106709336A (zh) | 识别恶意软件的方法和装置 | |
Chen et al. | Invariants based failure diagnosis in distributed computing systems | |
CN110362995A (zh) | 一种基于逆向与机器学习的恶意软件检测及分析系统 | |
CN112329012A (zh) | 针对包含JavaScript的恶意PDF文档的检测方法及电子设备 | |
CN111159115A (zh) | 相似文件检测方法、装置、设备及存储介质 | |
EP4232915A1 (en) | Code similarity search | |
Chhabra et al. | Engineering order‐preserving pattern matching with SIMD parallelism | |
CN109413108A (zh) | 一种基于安全的waf检测方法和系统 | |
CN113642025A (zh) | 接口数据处理方法、装置、设备及存储介质 | |
CN110766402B (zh) | 交易顺序依赖漏洞检测方法、系统、电子装置及存储介质 | |
CN117435480A (zh) | 一种二进制文件检测方法、装置、电子设备及存储介质 | |
Carrillo-Mondejar et al. | Automatic analysis architecture of IoT malware samples | |
CN114021116A (zh) | 一种同源分析知识库的构建方法、同源分析方法及装置 | |
CN113420569A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |