CN110363000B - 识别恶意文件的方法、装置、电子设备及存储介质 - Google Patents
识别恶意文件的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110363000B CN110363000B CN201910619922.3A CN201910619922A CN110363000B CN 110363000 B CN110363000 B CN 110363000B CN 201910619922 A CN201910619922 A CN 201910619922A CN 110363000 B CN110363000 B CN 110363000B
- Authority
- CN
- China
- Prior art keywords
- file
- identified
- malicious
- matrix
- vector
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 239000013598 vector Substances 0.000 claims abstract description 406
- 239000011159 matrix material Substances 0.000 claims abstract description 253
- 238000004422 calculation algorithm Methods 0.000 claims description 75
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 41
- 230000006870 function Effects 0.000 description 22
- 230000008901 benefit Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 13
- 241000700605 Viruses Species 0.000 description 5
- 230000006399 behavior Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000008570 general process Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 244000019194 Sorbus aucuparia Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 235000006414 serbal de cazadores Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- General Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Virology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种识别恶意文件的方法、装置、电子设备及存储介质,所述方法包括:对待识别文件的数据分组,组成待识别文件元素矩阵;基于待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量;对第一向量的组合向量求摘要,得到待识别文件的第一摘要;对第二向量的组合向量求摘要,得到待识别文件的第二摘要;对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到待识别文件的索引摘要;将待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定待识别文件是否为恶意文件。本公开实施例能够提高识别恶意文件的效率。
Description
技术领域
本公开涉及网络安全领域,具体涉及一种识别恶意文件的方法、装置、电子设备及存储介质。
背景技术
在互联网遍及生活各个角落的今天,用户的个人终端常常会遭到不法人员的攻击,例如,不法人员于用户的个人终端中植入病毒文件、木马文件之类的恶意文件,从而破坏用户的个人终端的正常运行、或者窃取用户的隐私信息。为了保护用户免于恶意文件的危害,需要对恶意文件进行识别,从而对恶意文件进行打击。现有技术中,识别恶意文件多是基于如MD5算法之类的高复杂度的摘要算法计算得到待识别文件的摘要,再将其与恶意文件的摘要进行对比,从而进行识别。但由于如MD5算法之类的高复杂度的摘要算法常常需要极大的运算能力,会给用户的个人终端造成极大的负担,从而导致恶意文件的识别效率低下。
发明内容
本公开的一个目的在于提出一种识别恶意文件的方法、装置、电子设备及存储介质,能够提高识别恶意文件的效率。
根据本公开实施例的一方面,公开了一种识别恶意文件的方法,包括:
根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵;
基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述待识别文件元素矩阵中的元素进行划分确定的;
对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要;
对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要;
对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到所述待识别文件的索引摘要;
将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件。
根据本公开实施例的一方面,公开了一种识别恶意文件的装置,包括:
分组模块,配置为根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵;
元素集合向量生成模块,配置为基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述待识别文件元素矩阵中的元素进行划分确定的;
第一摘要生成模块,配置为对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要;
第二摘要生成模块,配置为对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要;
索引摘要生成模块,配置为对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到所述待识别文件的索引摘要;
对比模块,配置为将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件。
根据本公开实施例的一方面,公开了一种识别恶意文件的电子设备,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行如上所述的方法。
根据本公开实施例的一方面,公开了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的方法。
本公开实施例在计算待识别文件以及恶意文件的索引摘要时:对文件(待识别文件、或者恶意文件)的数据进行分组,基于分组后的数据建立文件元素矩阵,再对文件元素矩阵进行信息的压缩、组合、多次摘要,由于经过了这些分组、压缩、组合等过程,就可以采用低复杂度、对运算力要求低的摘要算法,仍然能够得到文件的有区分度的索引摘要。进而在识别恶意文件时,通过该有区分度的索引摘要的对比来确定待识别文件是否为恶意文件。由于进行摘要时可以采用低复杂度、对运算力要求低的摘要算法,且对文件元素矩阵进行了信息的压缩、组合、多次摘要,使得本公开实施例得到的文件的索引摘要在保证了安全性的同时,降低了计算索引摘要对终端运算能力的要求,从而提高了识别恶意文件的效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参考附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了根据本公开一个实施例的识别恶意文件的方法的体系构架图。
图2A-2G示出了根据本公开一个实施例的识别恶意文件过程中各终端的显示界面图,这些界面图展示了识别恶意文件的大体过程。
图3示出了根据本公开一个实施例的识别恶意文件的方法的流程图。
图4示出了根据本公开一个实施例的识别单个特定恶意文件的场景下的流程图。
图5示出了根据本公开一个实施例的建立恶意文件库的流程图。
图6示出了根据本公开一个实施例的恶意文件库中存储的信息的构成示意图。
图7示出了根据本公开一个实施例的实际环境中恶意文件库中存储的信息的示意图。
图8示出了根据本公开一个实施例的索引摘要列表的示意图。
图9示出了根据本公开一个实施例的识别恶意文件的整体流程图。
图10示出了根据本公开一个实施例的各终端的通信交互示意图。
图11示出了根据本公开一个实施例的攻击传统摘要计算的示意图。
图12示出了根据本公开一个实施例的攻击本公开实施例的索引摘要计算的示意图。
图13示出了根据本公开一个实施例的识别恶意文件的终端的模块图。
图14示出了根据本公开一个实施例的识别恶意文件的终端的硬件结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面首先参考图1描述本公开实施例应用的体系构架。
图1示出了本公开实施例所应用的体系构架:恶意文件库100中存储着恶意文件的索引摘要值。识别服务器200连接着各个客户端300、以及恶意文件库100。识别恶意文件时,客户端300根据本公开实施例所示的方法计算待识别文件的索引摘要值,将待识别文件的索引摘要值上传到识别服务器200,由识别服务器200将其与恶意文件库100进行对比,确定待识别文件是否为恶意文件,进而将结果返回给客户端300。
在一实施例中,识别服务器200是指用于云查的服务器。其中,云查是指云端维护一套由病毒、木马等恶意文件组成的恶意文件库,通过扫描客户端中是否包含云端中恶意文件库的恶意文件,来判断客户端中是否有病毒、木马等恶意文件。
在一实施例中,恶意文件库中存储的还有恶意文件的消息摘要MD5值。当识别***确定一待识别文件为恶意文件时,可以根据该恶意文件的索引摘要值确定该恶意文件的MD5值,进而获取该恶意文件的原始文件。
在一实施例中,恶意文件库中存储的还有恶意文件的备注信息,例如,恶意文件的文件描述、恶意文件的恶意行为特征等信息。当识别***确定一待识别文件为恶意文件时,可以根据该恶意文件的索引摘要值获取该恶意文件的备注信息。
下面参考图2A-2G描述本公开实施例中各终端的显示界面图,以展示出识别恶意文件的大体过程。
安装在客户端300的识别***启动时,客户端300的界面显示如图2A所示的启动提醒信息。其中,该识别***为安装在客户端300上、能够与识别服务器200建立连接、作为识别服务器200与客户端300之间通信接口的可执行文件。
安装在客户端300的识别***启动完成后,开始连接识别服务器200,客户端300的界面显示如图2B所示的连接提醒信息,用户可以通过点击界面上的“确定”按钮,确认与识别服务器200进行连接。
客户端300与识别服务器200进行连接后,识别服务器200显示如图2C所示的与客户端300建立连接过程中,识别服务器200进行的一系列操作:接收连接请求、对客户端进行认证......
与识别服务器200连接成功后,客户端300的界面显示如图2D所示的连接成功提醒信息,提醒用户指定扫描位置,并显示出提供能够扫描不同位置的选项按钮。用户可以通过点击界面上的按钮,以指定相应的扫描位置。进一步地,如果用户点击界面上的“指定路径”按钮,客户端300的界面显示如图2E所示的路径指定界面,用户可以从中指定要扫描的文件的路径。
确认扫描之后,客户端300的界面显示如图2F所示的扫描提醒信息,用户可以通过点击界面上的“确定”按钮,确认识别***的扫描。
扫描完成之后,若识别出文件virus.exe为病毒文件,客户端300的界面显示如2G所示的识别结果信息。
需要说明的是,以上终端界面图只是为了展示本公开实施例的大体过程而作出的示例性展示,不应对本公开功能和范围造成限制。
下面对本公开实施例的过程进行具体描述。
如图3所示,根据本公开一个实施例,提供了一种识别恶意文件的方法,包括:
步骤310、根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵;
步骤320、基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述待识别文件元素矩阵中的元素进行划分确定的;
步骤330、对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要;
步骤340、对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要;
步骤350、对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到所述待识别文件的索引摘要;
步骤360、将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件。
恶意文件是指具有恶意行为的行为文件,如非法截获网络数据的文件、非法获取受保护数据的文件、恶意注入到其它进程的文件等。
第一类元素集合、第二类元素集合是指根据预定元素划分规则对待识别文件元素矩阵中的元素进行划分得到的元素集合。例如,在一实施例中,待识别文件元素矩阵为:
若预定元素划分规则是将每一行的元素划分为对应的第一类元素集合,将每一列的元素划分为对应的第二类元素集合,则得到4个第一类元素集合:【a11、a12、a13、a14】、【a21、a22、a23、a24】、【a31、a32、a33、a34】、【a11、a12、a13、a14】,以及4个第二类元素集合:【a11、a21、a31、a41】、【a12、a22、a32、a42】、【a13、a23、a33、a43】、【a14、a24、a34、a44】。
若预定元素划分规则是将与主对角线平行或者重合的元素划分为对应的第一类元素集合,将与副对角线平行或者重合的元素划分为对应的第二类元素集合,则得到7个第一类元素集合:【a41】、【a31、a42】、【a21、a32、a43】、【a11、a22、a33、a44】、【a12、a23、a34】、【a13、a24】、【a14】,以及7个第二类元素集合:【a11】、【a12、a21】、【a13、a22、a31】、【a14、a23、a32、a41】、【a24、a33、a42】、【a34、a43】、【a44】。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
摘要是指把任意长度的输入输出为伪随机的、长度固定的信息。常用的摘要算法可以按照加密与否分为两大类,一种是加密摘要算法:例如SHA算法,即Secure HashAlgorithm安全散列算法,SHA家族的五个算法分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512;MD5算法,即MD5Message-Digest Algorithm,能够输出一个128位的摘要值;另一种是非加密摘要算法,例如CRC32算法,即Cyclic redundancy check循环冗余校验算法的一种,能够输出一个32位的摘要值。
需要说明的是,本公开实施例的识别对象可以是PE文件,即Portable Executable可移植可执行的文件。常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作***上的程序文件(可能是间接被执行,如DLL)。
本公开实施例中,接收到待识别文件后,识别***将待识别文件的数据进行分组,基于分组后得到的每一组数据,建立待识别文件元素矩阵。确定待识别文件元素矩阵中每一第一类元素集合的第一向量、每一第二类元素集合的第二向量,进而在第一向量以及第二向量的基础上进行摘要运算,得到该待识别文件的索引摘要。将该识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定该待识别文件是否为恶意文件。
下面描述对待识别文件的数据分组,建立待识别文件元素矩阵的过程。
在步骤310中,根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵。
在一实施例中,待识别文件的数据包括待识别文件的二进制表示中的字节,所述根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵,包括:
从所述待识别文件的二进制表示中按顺序将每预定数目个字节,作为一个元素取出,按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中。
该实施例中,预先设定矩阵中每个元素的字节大小,获取到待识别文件后,识别***将获取到的待识别文件的二进制数据,按顺序取出预设字节大小的数据作为一元素,按照自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中。
例如,预先设定矩阵中每个元素为1个字节大小,预设矩阵宽度为3。获取到的待识别文件的二进制数据为00111001011101010010101011111001......10110110。识别***从该二进制数据中,按顺序取出1个字节大小的数据,得到了元素1:00111001、元素2:01110101、元素3:00101010、元素4:11111001......元素12:10110110。
将这12个元素按照自上而下、从左到右的顺序填入矩阵宽度为3的空白矩阵中,得到待识别文件元素矩阵:
通过这种方法,得到了包含待识别文件所有数据的待识别文件元素矩阵,使得后续对该待识别文件元素矩阵的处理即可等同于对待识别文件的处理。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,待识别文件的数据包括待识别文件的字符,所述对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵,包括:
从所述待识别文件中按顺序将预定数目各字符,转换成比特串作为一个元素取出,按自上而下、从左到右的顺序填入预设矩阵宽带的空白矩阵中。
该实施例中,预先设定矩阵中每个元素的字符数目,获取到待识别文件后,识别***将获取到的待识别文件的字符数据,按顺序取出预设字符数目的数据转换为二进制的比特串后,作为一元素按照自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中。
例如,预先设定矩阵中每个元素的字符数目为1,预设矩阵宽度为3。获取到的以ASCII编码的待识别文件的字符数据为:a2Fg......H,识别***按顺序取出1个字符并转换为二进制的比特串(将‘a’取出并转换为二进制比特串01100001、将‘2’取出并转换为二进制比特串00110010.....)后,得到了元素1:01100001、元素2:00110010、元素3:01000110、元素4:01100111......元素12:01001000。
将这12个元素按照自上而下、从左到右的顺序填入矩阵宽度为3的空白矩阵中,得到待识别文件元素矩阵:
通过这种方法,得到了包含待识别文件所有数据的待识别文件元素矩阵,使得后续对该待识别文件元素矩阵的处理即可等同于对待识别文件的处理。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,在按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中之后,还包括:
如果对于所述待识别文件,所有元素已取出完毕,在所述空白矩阵中未填充的位置填入预定占位符。
该实施例中,由于在接收到待识别文件之前,能够将待识别文件的数据分为几组是不确定的,因此,将待识别文件的数据分组后得到的每一组数据作为一个元素填充入预设矩阵宽度的空白矩阵中后,可能会出现无法将空白矩阵填充满的情况。在这种请求下,将空白矩阵中为填充的位置填入预定占位符(例如,比特0),以将空白矩阵填充完整。
例如,预设矩阵宽度为3,将待识别文件的二进制数据分组后,得到了元素1:00111001、元素2:01110101、元素3:00101010、元素4:11111001......元素11:10110110。
将这11个元素按照自上而下、从左到右的顺序填入矩阵宽度为3的空白矩阵中,得到未填充满的待识别文件元素矩阵:
这时,为了将待识别文件元素矩阵填充满,于该矩阵中未填充的位置填入比特0,得到填充满的待识别文件元素矩阵:
通过这种方法,达到了在不影响待识别文件元素矩阵性质的前提下、得到完整的待识别文件元素矩阵的目的。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,在对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵之后,还包括:
在待识别文件元素矩阵中引入第一混淆因子,所述第一混淆因子包括以下中的至少一项:
待识别文件元素矩阵中每个元素后拼接的预设比特;
在待识别文件元素矩阵中预定行数位置增加的预设的元素行。
混淆因子是指用于增强整体数据散列效果的部分数据,可以由用户根据对散列效果的要求自行构造。其中,第一混淆因子是指本公开实施例中,于待识别文件元素矩阵中引入的混淆因子。
由于待识别文件元素矩阵是生成待识别文件的索引摘要的基础,因此,待识别文件元素矩阵的散列效果,直接影响着生成的索引摘要的安全性。为了提高最终生成的索引摘要的安全性,将待识别文件的数据分组,组成待识别文件元素矩阵之后,于待识别文件元素矩阵中引入第一混淆因子,以增强待识别文件元素矩阵的散列效果。
在一实施例中,在待识别文件元素矩阵中引入第一混淆因子,包括:在待识别文件元素矩阵中每个元素后拼接预设比特。其中,该预设比特即为第一混淆因子。
例如,第一混淆因子为比特01。识别***对待识别文件的二进制数据分组,将各元素填充入空白矩阵后,得到待识别文件元素矩阵:
为了增强待识别文件元素矩阵的散列效果,于每个元素后拼接预设比特01,得到待识别文件元素矩阵:
该实施例的优点在于,通过引入第一混淆因子,使得待识别文件元素矩阵的散列效果更好,从而后续摘要计算的安全性更高。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,在待识别文件元素矩阵中引入第一混淆因子,包括:在待识别文件元素矩阵中预定行数位置增加预设的元素行。其中,该预设的元素行即为第一混淆因子。
例如,第一混淆因子为在待识别文件元素矩阵第二行下面增加的元素行(11110000 11110000 11110000)。识别***对待识别文件的二进制数据分组,将各元素填充入空白矩阵后,得到待识别文件元素矩阵:
为了增强待识别文件元素矩阵的散列效果,于第二行下面增加元素行(1111000011110000 11110000),得到待识别文件元素矩阵:
该实施例的优点在于,通过引入第一混淆因子,使得待识别文件元素矩阵的散列效果更好,从而后续摘要计算的安全性更高。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
下面描述获取待识别文件的待识别文件元素矩阵后,生成第一类元素集合的第一向量、第二类元素集合的第二向量的具体过程。
在步骤320中,基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述待识别文件元素矩阵中的元素进行划分确定的。
由上述对第一类元素集合、第二类元素集合的划分的说明可知,可以按照待识别文件元素矩阵的行或者列进行划分,从而得到每个第一类元素集合、每个第二类元素集合;也可以按照待识别文件元素矩阵的对角线进行划分,从而得到每个第一类元素集合、每个第二类元素集合。为了简要说明,对本公开实施例后续过程的说明,是针对按照待识别文件元素矩阵的行或者列进行划分的这一方式的后续过程进行描述的。显而易见,按照待识别文件元素矩阵的对角线进行划分的本公开实施例的后续过程、或者按照其它方法进行划分的本公开实施例的后续过程与之同理,故将不再赘述。
在一实施例中,根据预定的元素划分规则将所述待识别文件元素矩阵中每一行元素确定为对应的第一类元素集合,将所述待识别文件元素矩阵中每一列元素确定为对应的第二类元素集合,所述基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,包括:
基于所述待识别文件元素矩阵中行的元素,生成该行的行向量,并基于所述待识别文件元素矩阵中列的元素,生成该列的列向量。
该实施例中,按照待识别文件元素矩阵的行或者列进行划分,将待识别文件元素矩阵中每一行元素确定为对应的第一类元素集合,将所述待识别文件元素矩阵中每一列元素确定为对应的第二类元素集合。则,基于第一类元素集合生成对应的第一向量,即基于该行的元素生成该行的行向量;基于第二类元素集合生成对应的第二向量,即基于该列的元素生成该行的行向量。
在一实施例中,基于所述待识别文件元素矩阵中行的元素,生成该行的行向量,并基于所述待识别文件元素矩阵中列的元素,生成该列的列向量,包括:
求所述待识别文件元素矩阵中行的各元素的异或,得到该行的行向量;
求所述待识别文件元素矩阵中列的各元素的异或,得到该列的行向量。
该实施例中,生成待识别文件元素矩阵中各行的行向量以及各列的列向量时,是对各行的各元素异或得到对应的行向量、或者对各列的各元素异或得到对应的列向量。
例如,待识别文件元素矩阵为:
生成第一行的行向量时,对第一行的各元素异或: 得到第一行的行向量为(01100110)。其它行的行向量的生成、与各列的列向量的生成与之同理,故在此不再赘述。
该实施例的优点在于,通过对各元素的异或,实现了对矩阵信息的压缩,提高了后续对矩阵处理的效率。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,基于所述待识别文件元素矩阵中行的元素,生成该行的行向量,并基于所述待识别文件元素矩阵中列的元素,生成该列的列向量,包括:
求所述待识别文件元素矩阵中行的第奇数个元素的异或,得到第一异或向量;
求所述待识别文件元素矩阵中行的第偶数个元素的异或,得到第二异或向量;
将第一异或向量和第二异或向量级联,得到该列的行向量。
该实施例中,生成待识别文件元素矩阵中各行的行向量时,是对各行的各第奇数个元素异或得到第一异或向量、对各行的各第偶数个元素异或得到第二异或向量,将第一异或向量与第二异或向量级联,从而得到对应行的行向量。
例如,待识别文件元素矩阵为:
生成第一行的行向量时,对第一行的各第奇数个元素异或: 得到第一行的第一异或向量(00010011);对第一行的各第偶数个元素异或:得到第一行的第二异或向量(001110101)。将二者级联从而得到第一行的行向量(00010011001110101)。其它行的行向量的生成、与各列的列向量的生成与之同理,故在此不再赘述。
该实施例的优点在于,通过对各奇数行元素、各奇数列元素、各偶数行元素、各偶数列元素分别进行异或,实现了对矩阵信息的压缩,提高了后续对矩阵处理的效率。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
下面描述在各第一类元素集合的第一向量以及各第二类元素集合的第二向量的基础上,生成索引摘要的具体过程。
在步骤330中,对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要。
各第一类元素集合的第一向量的组合向量是指将各第一类元素集合的第一向量组合在一起,所得到的向量。
在一实施例中,根据预定的元素划分规则将所述待识别文件元素矩阵中每一行元素确定为对应的第一类元素集合,将所述待识别文件元素矩阵中每一列元素确定为对应的第二类元素集合,所述对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要,包括:
对各行的行向量的组合向量求摘要,得到所述待识别文件的第一摘要。
各行的行向量的组合向量是指将各行的行向量组合在一起,所得到的向量。
在步骤340中,对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要。
各第二类元素集合的第二向量的组合向量是指将各第二类元素集合的第二向量组合在一起,所得到的向量。
在一实施例中,根据预定的元素划分规则将所述待识别文件元素矩阵中每一行元素确定为对应的第一类元素集合,将所述待识别文件元素矩阵中每一列元素确定为对应的第二类元素集合,所述对各第一类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要,包括:
对各列的列向量的组合向量求摘要,得到所述待识别文件的第二摘要。
各列的列向量的组合向量是指将各列的列向量组合在一起,所得到的向量。
在一实施例中,各行的行向量的组合向量是各行的行向量级联而成的向量,各列的列向量的组合向量是各列的列向量级联而成的向量。
该实施例中,生成待识别文件元素矩阵各行的行向量、各列的列向量后,将各行的行向量级联,得到各行的行向量的组合向量;将各列的列向量级联,得到各列的列向量的组合向量。
例如,生成待识别文件元素矩阵的第一行的行向量为(01100110)、第二行的行向量为(10111100)、第三行的行向量为(11011000)、第四行的行向量为(00001011),将这四个行向量级联后得到各行的行向量的组合向量(01100110,10111100,11011000,00001011);该待识别文件元素矩阵的第一列的列向量为(10111000)、第二列的列向量为(10001101)、第三列的列向量为(00110100),将这三个列向量级联后得到各列的列向量的组合向量(10111000,10001101,00110100)。
该实施例的优点在于,将各行向量、各列向量分别组合起来,实现对待识别文件元素矩阵包含的信息的整合,从而能够对其进行统一处理。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,各行的行向量的组合向量是奇数行的行向量级联而成的向量、与偶数行的行向量级联而成的向量级联而成的向量,所述各列的列向量的组合向量是奇数列的列向量级联而成的向量、与偶数列的列向量级联而成的向量级联而成的向量。
该实施例中,生成待识别文件元素矩阵各行的行向量、各列的列向量后,将各奇数行的行向量级联而成的向量、与将各偶数行的行向量级联而成的向量进行级联,从而得到各行的行向量的组合向量;将各奇数列的列向量级联而成的向量、与将各偶数列的列向量级联而成的向量进行级联,从而得到各列的列向量的组合向量。
例如,生成待识别文件元素矩阵的第一行的行向量为(01100110)、第二行的行向量为(10111100)、第三行的行向量为(11011000)、第四行的行向量为(00001011)。将第一行的行向量与第三行的行向量级联后得到(01100110,11011000),将第二行的行向量与第四行的行向量级联后得到(10111100,00001011),将二者级联后得到各行的行向量的组合向量(01100110,11011000,10111100,00001011);该待识别文件元素矩阵的第一列的列向量为(10111000)、第二列的列向量为(10001101)、第三列的列向量为(00110100),将第一列的列向量与第三列的列向量级联后得到(10111000,00110100),只有一个偶数列,因此,偶数列级联后得到的即为第二列的列向量(10001101),将二者级联后得到各列的列向量的组合向量(10111000,00110100,10001101)。
该实施例的优点在于,将各奇数行向量与各偶数行向量组合起来,将各奇数列向量与各偶数列向量组合起来,实现对待识别文件元素矩阵包含的信息的整合,从而能够对其进行统一处理的同时,使得其更不易被攻击,提高了后续摘要计算的安全性。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
本公开实施例中,得到第一向量的组合向量后,对第一向量的组合向量求摘要,得到该待识别文件的第一摘要;得到第二向量的组合向量后,对第二向量的组合向量求摘要,得到该待识别文件的第二摘要。
具体地,当第一类元素集合、第二类元素集合是按照待识别文件元素矩阵的行或者列进行划分时:得到行向量的组合向量后,对行向量的组合向量求摘要,得到该待识别文件的第一摘要;得到列向量的组合向量后,对列向量的组合向量求摘要,得到该待识别文件的第二摘要。
例如,得到的行向量的组合向量为(01100110,10111100,11011000,00001011),对其进行哈希运算:Hash(01100110,10111100,11011000,00001011),从而得到待识别文件的第一摘要;得到的列向量的组合向量为(10111000,10001101,00110100),对其进行哈希运算:Hash(10111000,10001101,00110100),从而得到待识别文件的第二摘要。
在一实施例中,求第一摘要时使用的摘要算法与求第二摘要时使用的摘要算法可以为同一摘要算法,也可以为不同摘要算法。
该实施例的优点在于,通过自行配置求第一摘要时使用的摘要算法、与求第二摘要时使用的摘要算法,使得求得的第一摘要与第二摘要难以被攻击,提高了摘要计算的安全性。
在一实施例中,求第一摘要时使用的摘要算法或求第二摘要时使用的摘要算法为满足一致性的一致性摘要算法。
一致性摘要算法是一种分布式算法,将key-va l ue均匀分配到众多Hash节点上。摘要算法的过程看作一个映射过程:将各种原始消息映射到一个固定大小的空间中,一致性摘要算法能够均匀地进行映射,从而降低映射的冲突。即,使用一致性摘要算法求得到摘要满足低冲突率的要求。
在一实施例中,求第一摘要时使用的摘要算法或求第二摘要时使用的摘要算法为Jump Consistent Hash算法,该算法零内存消耗,分配均匀快速,适用于分布式***中。
该实施例的优点在于,通过使用一致性摘要算法,降低了摘要的冲突率,提高了摘要计算的安全性。
在一实施例中,在对各第一类元素集合的第一向量的组合向量求摘要、以及对各第二类元素集合的第二向量的组合向量求摘要之前,还包括:于各第一类元素集合的第一向量的组合向量中引入第二混淆因子,于各第二类元素集合的第二向量的组合向量中引入第二混淆因子。
第二混淆因子是指本公开实施例中,于组合向量中引入的混淆因子。
具体地,当第一类元素集合、第二类元素集合是按照待识别文件元素矩阵的行或者列进行划分时,所述于各第一类元素集合的第一向量的组合向量中引入第二混淆因子,于各第二类元素集合的第二向量的组合向量中引入第二混淆因子,包括:
于各行的行向量的组合向量中引入第二混淆因子,于各列的列向量的组合向量中引入第二混淆因子。
在一实施例中,于各行的行向量的组合向量中引入第二混淆因子,包括:于所述组合向量中每个行向量后拼接预设比特。其中,该预设比特即为第二混淆因子。
例如,第二混淆因子为比特01。识别***得到待识别文件元素矩阵的各行的行向量的组合向量(01100110,10111100,11011000,00001011),在对该组合向量求摘要得到第一摘要之前,于该组合向量中引入第二混淆因子,从而得到引入第二混淆因子的各行的行向量的组合向量(0110011001,1011110001,1101100001,0000101101)。
该实施例的优点在于,通过引入第二混淆因子,使得组合向量的散列效果更好,从而后续摘要计算的安全性更高。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,于各行的行向量的组合向量中引入第二混淆因子,包括:于所述组合向量中预定位置增加预设的向量。其中,该预设的向量即为第二混淆因子。
例如,第二混淆因子为在组合向量中第2个行向量后增加的向量(11110000)。识别***得到待识别文件元素矩阵的各行的行向量的组合向量(01100110,10111100,11011000,00001011),在对该组合向量求摘要得到第一摘要之前,于该组合向量中引入第二混淆因子,从而得到引入第二混淆因子的各行的行向量的组合向量(01100110,10111100,11110000,11011000,00001011)。
该实施例的优点在于,通过引入第二混淆因子,使得组合向量的散列效果更好,从而后续摘要计算的安全性更高。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
显而易见,于各列的列向量的组合向量中引入第二混淆因子的实施过程与于各行的行向量的组合向量中引入第二混淆因子的实施过程同理,故在此不再赘述。
下面描述得到待识别文件的第一摘要和第二摘要后,得到待识别文件的索引摘要的具体过程。
在步骤350中,对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到所述待识别文件的索引摘要。
在一实施例中,第一摘要和第二摘要的组合向量是指将第一摘要与第二摘要级联后得到的向量。
例如,待识别文件的第一摘要为88y7dF984f40ks20,第二摘要为aj87324sVnkj2j00,则第一摘要和第二摘要的组合向量为(88y7dF984f40ks20,aj87324sVnkj2j00)。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,求索引摘要时使用的摘要算法与求第一摘要时使用的摘要算法可以为同一摘要算法,也可以为不同摘要算法;求索引摘要时使用的摘要算法与求第二摘要时使用的摘要算法可以为同一摘要算法,也可以为不同摘要算法。
该实施例的优点在于,通过自行配置求第一摘要时使用的摘要算法、求第二摘要时使用的摘要算法、与求索引摘要时使用的摘要算法,使得求得的索引摘要难以被攻击,提高了摘要计算的安全性。
在一实施例中,求索引摘要时使用的摘要算法为满足一致性的一致性摘要算法。
该实施例的优点在于,通过使用一致性摘要算法,降低了索引摘要的冲突率,提高了摘要计算的安全性。
在一实施例中,在对待识别文件的第一摘要和第二摘要的组合向量求摘要之前,包括:于第一摘要和第二摘要的组合向量中引入第三混淆因子。
第三混淆因子是指本公开实施例中,于第一摘要和第二摘要的组合向量中引入的混淆因子。
在一实施例中,于第一摘要和第二摘要的组合向量中引入第三混淆因子,包括:于所述级联向量中第一摘要后、第二摘要后拼接预设字节。其中,该预设字节即为第三混淆因子。
例如,第三混淆因子为字节4a。识别***得到待识别文件的第一摘要为88y7dF984f40ks20,第二摘要为aj87324sVnkj2j00,则第一摘要和第二摘要的组合向量为(88y7dF984f40ks20,aj87324sVnkj2j00)。在对该组合向量求摘要得到索引摘要之前,于该组合向量中引入第三混淆因子,从而得到引入第三混淆因子的第一摘要和第二摘要的组合向量(88y7dF984f40ks204a,aj87324sVnkj2j004a)。
该实施例的优点在于,通过引入第三混淆因子,使得第一摘要和第二摘要的组合向量的散列效果更好,从而后续摘要计算的安全性更高。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,于第一摘要和第二摘要的组合向量中引入第三混淆因子,包括:于所述组合向量中预定位置增加预设的字节组。其中,该预设的字节组即为第三混淆因子。
例如,第三混淆因子为在第一摘要前增加的字节组ffvvbbGGKKUUii77。识别***得到第一摘要和第二摘要的组合向量(88y7dF984f40ks20,aj87324sVnkj2j00),在对该组合向量求摘要得到索引摘要之前,于该组合向量中引入第三混淆因子,从而得到引入第三混淆因子的第一摘要和第二摘要的组合向量(ffvvbbGGKKUUii77,88y7dF984f40ks20,aj87324sVnkj2j00)。
该实施例的优点在于,通过引入第三混淆因子,使得第一摘要和第二摘要的组合向量的散列效果更好,从而后续摘要计算的安全性更高。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
下面描述得到待识别文件的索引摘要后,确定该待识别文件是否为恶意文件的具体过程。
在步骤360中,将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件。
本公开实施例中,恶意文件库中预先存储有各种恶意文件的索引摘要,通过将待识别文件的索引摘要与各恶意文件的索引摘要进行对比,从而确定待识别文件是否为恶意文件。安装在客户端的识别***通过上述方法计算得到待识别文件的索引摘要后,将待识别文件的索引摘要上报到识别服务器,由识别服务器将待识别文件的索引摘要与恶意文件库中各恶意文件的索引摘要进行对比,再将对比结果返回给安装在客户端的识别***。
在一实施例中,恶意文件库中与所述索引摘要对应存储恶意文件的全文摘要,所述全文摘要通过将恶意文件的全文施加预定摘要算法得出,用于查找恶意文件的原始文件,
所述将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件,包括:如果所述待识别文件的索引摘要与预设恶意文件库中一个恶意文件的索引摘要匹配,则确定所述待识别文件是否为恶意文件;
在将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件之后,所述方法还包括:
利用与该匹配的索引摘要对应存储的全文摘要,查找恶意文件的原始文件。
该实施例中,恶意文件库中存储着各恶意文件的索引摘要、以及对应的恶意文件的全文摘要(例如,MD5),全文摘要用于查找该恶意文件的原始文件。计算出待识别文件的索引摘要后,将该待识别文件的索引摘要与恶意文件库中存储的各恶意文件的索引摘要进行对比,如果待识别文件的索引摘要与恶意文件库中存储的一恶意文件的索引摘要匹配,则确定待识别文件为恶意文件,且待识别文件为该恶意文件的索引摘要对应的特定恶意文件。这一过程可以称之为待识别文件命中了该恶意文件。
若需要查找该恶意文件的原始文件,可以根据该匹配的索引摘要对应的全文摘要(例如,MD5),来查找到该恶意文件的原始文件。
该实施例的优点在于,通过建立存储着各恶意文件的索引摘要、全文摘要,能够快速地确定待识别文件是否为恶意文件、以及快速查找到对应恶意文件的原始文件。
下面描述恶意文件库中恶意文件的索引摘要的具体获得过程。
在一实施例中,预设恶意文件库中恶意文件的索引摘要预先通过以下方式获得:
根据预定数据分组规则对恶意文件的数据分组,分成的每一组数据作为恶意文件元素矩阵中的一个元素,组成恶意文件元素矩阵;
基于所述恶意文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述恶意文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述恶意文件元素矩阵中的元素进行划分确定的;
对各第一类元素集合的第一向量的组合向量求摘要,得到所述恶意文件的第一摘要;
对各第二类元素集合的第二向量的组合向量求摘要,得到所述恶意文件的第二摘要;
对恶意文件的第一摘要和第二摘要的组合向量求摘要,得到所述恶意文件的索引摘要。
本公开实施例中,为保证待识别文件的索引摘要能够正确命中恶意文件的索引摘要,要求计算恶意文件的索引摘要的过程与计算待识别文件的索引摘要的过程完全一致:对待识别文件的数据分组的过程与对恶意文件的数据分组的过程一致;待识别文件元素矩阵中的元素与恶意文件元素矩阵中的元素包含相同大小的数据;对待识别文件元素矩阵中各第一类元素集合的第一向量的组合向量求摘要的摘要算法与对恶意文件元素矩阵中各第一类元素集合的第一向量的组合向量求摘要的摘要算法相同;对待识别文件的第一摘要和第二摘要的组合向量求摘要的摘要算法与对恶意文件的第一摘要和第二摘要的组合向量求摘要的摘要算法相同。
更进一步地,预设的待识别文件元素矩阵的宽度与预设的恶意文件元素矩阵的宽度相同;若计算恶意文件的索引摘要时引入了第一混淆因子、第二混淆因子、第三混淆因子,计算待识别文件的索引摘要也要相应地引入完全一致的第一混淆因子、第二混淆因子、第三混淆因子。
例如,计算恶意文件的索引摘要时:从恶意文件的二进制数据中按顺序取出1个字节大小的数据作为元素;预设的恶意文件元素矩阵的宽度为3;在恶意文件元素矩阵中每个元素后拼接了比特01;对恶意文件元素矩阵中各行的行向量的组合向量求摘要的摘要算法为Jump Consistent Hash;对恶意文件的第一摘要和第二摘要的组合向量求摘要的摘要算法为Jump Consistent Hash。
则,计算待识别文件的索引摘要时:从待识别文件的二进制数据中按顺序取出1个字节大小的数据作为元素;预设的待识别文件元素矩阵的宽度为3;在待识别文件元素矩阵中每个元素后拼接了比特01;对待识别文件元素矩阵中各行的行向量的组合向量求摘要的摘要算法为Jump Consistent Hash;对待识别文件的第一摘要和第二摘要的组合向量求摘要的摘要算法为Jump Consistent Hash。
总之,在本公开实施例的一次实际实施过程中,计算待识别文件的索引摘要的过程要与计算恶意文件的索引摘要的过程完全保持一致,只有这样在识别待识别文件的过程中,才能使待识别文件正确地命中恶意文件。
下面从技术层面,对本公开实施例中计算文件的索引摘要的主要过程进行描述,以更全面地展示出索引摘要的获取过程。
假设文件的字节长度为L,首先将文件进行分组。假设每个元素占b(如b=4)个字节,一共有L/b个元素,然后按照n个元素为矩阵M中的一行,将元素填充入矩阵M中。为了增强散列效果,可以引入第一混淆因子,然后将未填充的位置填充0,于是一共得到m=ceil(L/(n*b))行的矩阵M,如下所示:
将矩阵M中各行、各列分别异或,得到各行的行向量x1..xm、各列的列向量y1...yn,进而得到各行的行向量的组合向量(x1...xm)、各列的列向量的组合向量(y1...yn)。如下所示:
其中:
选择一种哈希函数(优选为满足一致性的哈希函数)对各行的行向量的组合向量、各列的列向量的组合向量分别计算摘要信息,得到第一摘要dx与第二摘要dy。如下所示:
dx=Hash(x1,x2,…,xm)
dy=Hash(y1,y2,…,yn)
其中,在计算第一摘要与第二摘要之前,可以在各行的行向量的组合向量、各列的列向量的组合向量中引入第二混淆因子。
对第一摘要dx与第二摘要dy进行再散列,必要时可以引入第三混淆因子σ,得到最终需要的索引摘要Digest。如下所示:
Digest=Hash(dx,dy,σ)
下面结合具体应用场景,对本公开实施例的识别恶意文件的过程进行描述。
在一实施例中,用户上报了一文件,要求识别该文件是否为一特定的恶意文件。为了确定该文件是否为该特定的恶意文件,本公开实施例执行如图4所示的过程:计算该文件的索引摘要、计算该恶意文件的索引摘要,将二者进行比较,若二者相同,则说明该文件命中了该恶意文件,即该文件确实为该特定的恶意文件,从而进行打击;若二者不相同,则说明该文件未命中该恶意文件,即该文件不是该恶意文件,结束识别过程。
该实施例的优点在于,针对特定的恶意文件进行识别,提高了识别的速度与准确率。
在一实施例中,处于云查场景,需要判断用户上报的批量文件中是否包含有恶意文件。这时,需要事先在云端建立待比对的恶意文件库,然后将用户上报的所有文件的索引摘要值与恶意文件库进行对比,从而确定用户上报的文件中是否包含有恶意文件。
该实施例的优点在于,对客户端中的文件进行批量识别,提高了识别的覆盖率。
在一实施例中,如图5所示,恶意文件库的建立过程:识别服务器事先对一批待分析文件进行后台分析(例如,对文件的恶意行为特征进行分析),从中确定出恶意文件。计算每个恶意文件的索引摘要,将恶意文件的索引摘要存储在云端数据库中,从而建立恶意文件库。
在一实施例中,可以将已知的恶意文件计算出索引摘要后存储在恶意文件库中;也可以开放恶意文件上报接口给用户,对用户上报的恶意文件进行分析筛选后,将确定出的恶意文件计算出索引摘要后存储在恶意文件库中;也可以基于其它恶意文件的识别方法/模型,对上报的可疑文件进行筛选,将将确定出的恶意文件计算出索引摘要后存储在恶意文件库中。
在一实施例中,恶意文件库中存储的恶意文件的信息主要包含两部分,如图6所示:索引摘要、MD5。其中,索引摘要作为恶意文件库的关键字段(key,即用于搜索的字段),是用来与待识别文件的索引摘要进行对比的;MD5是在待识别文件的索引摘要命中了一恶意文件的索引摘要后,用来找到该恶意文件的原始文件的。
在一实施例中,恶意文件库中的信息是采用key-value结构存储的。采用key-value结构存储的恶意文件库可以满足每秒百万至千万级的查询请求。
该实施例的优点在于,通过采用key-value结构存储恶意文件的信息,使得后续能够快速地对恶意文件库进行搜索对比。
在一实施例中,恶意文件库中还存储着恶意文件的各类备注信息,例如,恶意文件的文件描述、恶意文件的恶意行为特征。
该实施例的优点在于,通过存储恶意文件的备注信息,使得命中恶意文件后,能够更加具有针对性地对恶意文件进行进一步的处理。
在一实施例中,如图7所示:恶意文件库中实际存储着恶意文件的8个字节大小的索引摘要值与16个字节大小的MD5,二者用“|”分隔开。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
在一实施例中,恶意文件库建立后,部署在云端。将作为识别服务器与客户端之间的接口的识别***安装在客户端后,客户端连接到识别服务器,开始枚举客户端指定路径的文件。客户端中的识别***可边枚举文件,并计算其索引摘要,保存在索引摘要列表中,以上报到识别服务器。图8示出了该实施例中索引摘要列表的部分内容。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
本公开实施例的实际执行过程中,由于客户端的文件会随时变化,所以枚举、计算索引摘要的过程是持续的。在这一过程中,文件的数量可能有数千至几十万个,甚至更多,因此可以将索引摘要列表中的内容分批传输,也可以集中传输。
在一实施例中,识别服务器接收到索引摘要列表后,将列表中的每一个索引摘要作为关键字段key,在恶意文件库中进行搜索。如果索引摘要列表中的一个索引摘要命中了恶意文件库中的一个索引摘要,则表示该索引摘要对应的文件是恶意文件,从而向客户端提醒恶意文件的存在,并进行进一步的处理。
在一实施例中,如图9所示,识别恶意文件的总体流程为:对待分析文件进行后台分析,从中确定恶意文件;再计算各恶意文件的索引摘要,建立恶意文件库。当要识别客户端的上报文件中是否有恶意文件时,计算各上报文件的索引摘要,将各上报文件的索引摘要于恶意文件库中进行搜索,每命中一上报文件的索引摘要,即说明该上报文件为恶意文件,对其进行打击;若所有上报文件的索引摘要均未命中,则说明上报文件中无恶意文件,结束恶意文件的识别。
例如,一文件bot.exe,该文件的MD5为45F8D84CB112C8C7A862A773599C8358,经过分析,确定其为恶意文件。计算得到其索引摘要值为14a362fc29fc7483,于是将索引摘要值:14a362fc29fc7483与MD5:45F8D84CB112C8C7A862A773599C8358保存到恶意文件库中。
在逐一对比客户端上报的索引摘要列表时,发现索引摘要列表中的某个文件的索引摘要值恰好为14a362fc29fc7483。虽然它的文件名为system.exe,但因为它的索引摘要值命中了恶意文件库中14a362fc29fc7483这一行,识别服务器会认为客户端中包含有MD5为45F8D84CB112C8C7A862A773599C8358的这个恶意文件,需要进行打击。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能及范围造成限制。
下面参考图10对本公开实施例中识别恶意文件的通信过程进行详细描述。
如图10所示:本公开实施例中涉及的实体有客户端、识别服务器、恶意文件库。进行恶意文件的识别时:客户端安装本公开实施例所述的识别***,然后登录到识别服务器;客户端选择扫描位置对该位置的文件进行扫描,扫描的同时调用识别***计算各文件的索引摘要;客户端将索引摘要结果上传到识别服务器;识别服务器将索引摘要结果与恶意文件库进行对比,确定是否有恶意文件,得到对比结果;若索引摘要不存在恶意文件库中,识别服务器向客户端请求对对应的文件进行分析,计算该文件的索引摘要,判断其是否为恶意文件;对索引摘要结果中所有索引摘要对比结束后,根据识别出的恶意文件的结果,更新恶意文件库,并向客户端发送提醒,以提醒客户端处理恶意文件。
下面对本公开实施例的方法原理进行详细描述,以更全面地展示出本公开实施例的内部细节。
首先,传统技术中识别恶意文件的过程为了保证安全性,使用的是加密摘要算法例如MD5、SHA算法,这些加密摘要算法的安全性高,理论上是无法破解的。但这些摘要算法的缺点在于计算过程复杂,计算量大。而实际的云查应用中,客户端的文件大约在1MB到500MB这一级别,数量更是在数千至几十万不等,使用这些加密摘要算法计算客户端文件的摘要进而对其进行识别的这一过程计算量极大,会对客户端造成极大的负担。
而如果不使用这些安全性高的加密摘要算法,转而使用普通的非加密摘要算法(如CRC32),虽然摘要的计算速度快,但由于没有考虑安全性,极容易被攻击,从而不具有实际的使用意义。
在一实施例中,如图11所示:对一文件,使用普通的非加密摘要算法(如CRC32)计算得到了该文件的摘要——hash;如果该文件被植入恶意片段,该文件的摘要就会改变,变为hash1;但由于该摘要算法不具有安全性,攻击者可以在该文件中另一无关紧要的地方(即,不会破坏文件的地方)进行修改,从而使得修改后计算得到的摘要——hash2与未植入恶意片段的文件的摘要——hash保持一致,从而绕过了识别。
而应用本公开实施例,能够使得攻击者绕过识别变得极为困难。如图12所示:应用本公开实施例,将一文件的数据分组,并得到了该文件的文件元素矩阵,在此文件元素矩阵的基础上得到该文件的第一摘要与第二摘要,最终得到该文件的索引摘要。
如果攻击者修改了该矩阵中的aij,那么对应的xi、xl、yj和yk都会发生改变,进而该文件的索引摘要就会发生改变。如果攻击者要绕过识别,保持该文件的索引摘要不变,就至少要在另外三处,即aik、alj和alk都相应作出修改,从而使得最终计算出的索引摘要不变。这样的话,这个问题就变成了求解异或方程组:
即,已知a、xi、xl、yj、yk,求解aik、alj和alk。
求解该三元异或方程组可通过高斯消元法,消元后可知,此方程组在时有唯一解,否则无解。
因此,若攻击者修改了文件中一块,就需要精心构造至少其它三处来使得索引摘要值不变。但由于PE文件中的大部分字节码是有意义的,对其进行修改往往会对其造成破坏,造成其无法运行。因此,即使攻击者花费大量资源修改了文件中其它数据,使得索引摘要值不变。但很可能破坏了文件,使得文件无法运行,进而在该文件中植入的恶意片段也就其不到任何其原本要达到的恶意意图。
另外,多次修改往往会构建一个更难的方程,同时会引入多重解,因此针对安全性的需求,可以引入相应强度的混淆因子,或进行多维分组,以达到相应的安全性需求。
根据本公开实施例,如图13所示,还提供了一种识别恶意文件的装置,所述装置包括:
分组模块410,配置为根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵;
元素集合向量生成模块420,配置为基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述待识别文件元素矩阵中的元素进行划分确定的;
第一摘要获取模块430,配置为对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要;
第二摘要获取模块440,配置为对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要;
索引摘要获取模块450,配置为对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到所述待识别文件的索引摘要;
对比模块460,配置为将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件。
在一实施例中,预设恶意文件库中恶意文件的索引摘要预先通过以下方式获得:
根据预定数据分组规则对恶意文件的数据分组,分成的每一组数据作为恶意文件元素矩阵中的一个元素,组成恶意文件元素矩阵;
基于所述恶意文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述恶意文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述恶意文件元素矩阵中的元素进行划分确定的;
对各第一类元素集合的第一向量的组合向量求摘要,得到所述恶意文件的第一摘要;
对各第二类元素集合的第二向量的组合向量求摘要,得到所述恶意文件的第二摘要;
对恶意文件的第一摘要和第二摘要的组合向量求摘要,得到所述恶意文件的索引摘要。
在一实施例中,所述待识别文件的数据包括待识别文件的二进制表示中的字节,所述对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,包括:
从所述待识别文件的二进制表示中按顺序将每预定数目个字节,作为一个元素取出,按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中。
在一实施例中,所述待识别文件的数据包括待识别文件的字符,所述对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,包括:
从所述待识别文件中按顺序将预定数目个字符,并转换成比特串作为一个元素取出,按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中。
在一实施例中,在从所述待识别文件中按顺序将预定数目个字符,并转换成比特串作为一个元素取出,按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中之后,所述方法还包括:
如果对于所述待识别文件,所有元素已取出完毕,在所述空白矩阵中未填充的位置填入预定占位符。
在一实施例中,在对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵之后,所述方法还包括:
在待识别文件元素矩阵中引入第一混淆因子,所述第一混淆因子包括以下中的至少一项:
待识别文件元素矩阵中每个元素后拼接的预设比特;
在待识别文件元素矩阵中预定行数位置增加的预设的元素行。
在一实施例中,根据预定的元素划分规则将所述待识别文件元素矩阵中每一行元素确定为对应的第一类元素集合,将所述待识别文件元素矩阵中每一列元素确定为对应的第二类元素集合,所述基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,包括:
基于所述待识别文件元素矩阵中行的元素,生成该行的行向量,并基于所述待识别文件元素矩阵中列的元素,生成该列的列向量;
所述对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要,包括:
对各行的行向量的组合向量求摘要,得到所述待识别文件的第一摘要;
所述对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要,包括:
对各列的列向量的组合向量求摘要,得到所述待识别文件的第二摘要。
在一实施例中,所述基于所述待识别文件元素矩阵中行的元素,生成该行的行向量,并基于所述待识别文件元素矩阵中列的元素,生成该列的列向量,包括:
求所述待识别文件元素矩阵中行的各元素的异或,得到该行的行向量;
求所述待识别文件元素矩阵中列的各元素的异或,得到该列的行向量。
在一实施例中,所述各行的行向量的组合向量是各行的行向量级联而成的向量,所述各列的列向量的组合向量是各列的列向量级联而成的向量。
在一实施例中,所述第一摘要和第二摘要的组合向量是第一摘要和第二摘要顺序级联而成的向量。
在一实施例中,所述恶意文件库中与所述索引摘要对应存储恶意文件的全文摘要,所述全文摘要通过将恶意文件的全文施加预定摘要算法得出,用于查找恶意文件的原始文件,
所述将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件,包括:如果所述待识别文件的索引摘要与预设恶意文件库中一个恶意文件的索引摘要匹配,则确定所述待识别文件是否为恶意文件;
在将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件之后,所述方法还包括:
利用与该匹配的索引摘要对应存储的全文摘要,查找恶意文件的原始文件。
在一实施例中,所述待识别文件元素矩阵中的元素与恶意文件元素矩阵中的元素包含相同大小的数据;对待识别文件元素矩阵中各第一类元素集合的第一向量的组合向量求摘要的摘要算法与对恶意文件元素矩阵中各第一类元素集合的第一向量的组合向量求摘要的摘要算法相同;对待识别文件的第一摘要和第二摘要的组合向量求摘要的摘要算法与对恶意文件的第一摘要和第二摘要的组合向量求摘要的摘要算法相同。
本公开实施例的识别恶意文件的方法可以由图1所示的客户端300与识别服务器200共同实现。下面参考图14来描述根据本公开实施例的识别恶意文件的终端500。图14显示的识别恶意文件的终端仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图14所示,识别恶意文件的终端以通用计算设备的形式表现。识别恶意文件的终端的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同***组件(包括存储单元520和处理单元510)的总线530。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图3中所示的各个步骤。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。
存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
识别恶意文件的终端也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该识别恶意文件的终端交互的设备通信,和/或与使得该识别恶意文件的终端能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。并且,识别恶意文件的终端还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与识别恶意文件的终端的其它模块通信。应当明白,尽管图中未示出,可以结合识别恶意文件的终端使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RGM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JGvG、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(KGN)或广域网(WGN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (15)
1.一种识别恶意文件的方法,其特征在于,所述方法包括:
根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵;
基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述待识别文件元素矩阵中的元素进行划分确定的;
对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要;
对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要;
对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到所述待识别文件的索引摘要;
将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件;其中,预设恶意文件库中恶意文件的索引摘要的计算方式与所述待识别文件的索引摘要的计算方式相同。
2.根据权利要求1所述的方法,其特征在于,预设恶意文件库中恶意文件的索引摘要预先通过以下方式获得:
根据预定数据分组规则对恶意文件的数据分组,分成的每一组数据作为恶意文件元素矩阵中的一个元素,组成恶意文件元素矩阵;
基于所述恶意文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述恶意文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述恶意文件元素矩阵中的元素进行划分确定的;
对各第一类元素集合的第一向量的组合向量求摘要,得到所述恶意文件的第一摘要;
对各第二类元素集合的第二向量的组合向量求摘要,得到所述恶意文件的第二摘要;
对恶意文件的第一摘要和第二摘要的组合向量求摘要,得到所述恶意文件的索引摘要。
3.根据权利要求1所述的方法,其特征在于,所述待识别文件的数据包括待识别文件的二进制表示中的字节,所述根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵,包括:
从所述待识别文件的二进制表示中按顺序将每预定数目个字节,作为一个元素取出,按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中。
4.根据权利要求1所述的方法,其特征在于,所述待识别文件的数据包括待识别文件的字符,所述根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵,包括:
从所述待识别文件中按顺序将预定数目个字符,并转换成比特串作为一个元素取出,按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中。
5.根据权利要求3或4所述的方法,其特征在于,在按自上而下、从左到右的顺序填入预设矩阵宽度的空白矩阵中之后,所述方法还包括:
如果对于所述待识别文件,所有元素已取出完毕,在所述空白矩阵中未填充的位置填入预定占位符。
6.根据权利要求1所述的方法,其特征在于,在根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵之后,所述方法还包括:
在待识别文件元素矩阵中引入第一混淆因子,所述第一混淆因子包括以下中的至少一项:
待识别文件元素矩阵中每个元素后拼接的预设比特;
在待识别文件元素矩阵中预定行数位置增加的预设的元素行。
7.根据权利要求1所述的方法,其特征在于,根据预定的元素划分规则将所述待识别文件元素矩阵中每一行元素确定为对应的第一类元素集合,将所述待识别文件元素矩阵中每一列元素确定为对应的第二类元素集合,所述基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,包括:
基于所述待识别文件元素矩阵中行的元素,生成该行的行向量,并基于所述待识别文件元素矩阵中列的元素,生成该列的列向量;
所述对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要,包括:
对各行的行向量的组合向量求摘要,得到所述待识别文件的第一摘要;
所述对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要,包括:
对各列的列向量的组合向量求摘要,得到所述待识别文件的第二摘要。
8.根据权利要求7所述的方法,其特征在于,所述基于所述待识别文件元素矩阵中行的元素,生成该行的行向量,并基于所述待识别文件元素矩阵中列的元素,生成该列的列向量,包括:
求所述待识别文件元素矩阵中行的各元素的异或,得到该行的行向量;
求所述待识别文件元素矩阵中列的各元素的异或,得到该列的行向量。
9.根据权利要求7所述的方法,其特征在于,所述各行的行向量的组合向量是各行的行向量级联而成的向量,所述各列的列向量的组合向量是各列的列向量级联而成的向量。
10.根据权利要求1所述的方法,其特征在于,所述第一摘要和第二摘要的组合向量是第一摘要和第二摘要顺序级联而成的向量。
11.根据权利要求1所述的方法,其特征在于,所述恶意文件库中与所述索引摘要对应存储恶意文件的全文摘要,所述全文摘要通过将恶意文件的全文施加预定摘要算法得出,用于查找恶意文件的原始文件,
所述将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件,包括:如果所述待识别文件的索引摘要与预设恶意文件库中一个恶意文件的索引摘要匹配,则确定所述待识别文件是否为恶意文件;
在将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件之后,所述方法还包括:
利用与该匹配的索引摘要对应存储的全文摘要,查找恶意文件的原始文件。
12.根据权利要求2所述的方法,其特征在于,所述待识别文件元素矩阵中的元素与恶意文件元素矩阵中的元素包含相同大小的数据;对待识别文件元素矩阵中各第一类元素集合的第一向量的组合向量求摘要的摘要算法与对恶意文件元素矩阵中各第一类元素集合的第一向量的组合向量求摘要的摘要算法相同;对待识别文件的第一摘要和第二摘要的组合向量求摘要的摘要算法与对恶意文件的第一摘要和第二摘要的组合向量求摘要的摘要算法相同。
13.一种识别恶意文件的装置,其特征在于,所述装置包括:
分组模块,配置为根据预定数据分组规则对待识别文件的数据分组,分成的每一组数据作为待识别文件元素矩阵中的一个元素,组成待识别文件元素矩阵;
元素集合向量生成模块,配置为基于所述待识别文件元素矩阵中每一第一类元素集合,生成该第一类元素集合的第一向量,并基于所述待识别文件元素矩阵中每一第二类元素集合,生成该第二类元素集合的第二向量,其中,第一类元素集合、第二类元素集合是根据预定元素划分规则对所述待识别文件元素矩阵中的元素进行划分确定的;
第一摘要生成模块,配置为对各第一类元素集合的第一向量的组合向量求摘要,得到所述待识别文件的第一摘要;
第二摘要生成模块,配置为对各第二类元素集合的第二向量的组合向量求摘要,得到所述待识别文件的第二摘要;
索引摘要生成模块,配置为对待识别文件的第一摘要和第二摘要的组合向量求摘要,得到所述待识别文件的索引摘要;
对比模块,配置为将所述待识别文件的索引摘要与预设恶意文件库中恶意文件的索引摘要对比,从而确定所述待识别文件是否为恶意文件;其中,预设恶意文件库中恶意文件的索引摘要的计算方式与所述待识别文件的索引摘要的计算方式相同。
14.一种识别恶意文件的电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-12中的任一个所述的方法。
15.一种计算机程序介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-12中的任一个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910619922.3A CN110363000B (zh) | 2019-07-10 | 2019-07-10 | 识别恶意文件的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910619922.3A CN110363000B (zh) | 2019-07-10 | 2019-07-10 | 识别恶意文件的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110363000A CN110363000A (zh) | 2019-10-22 |
CN110363000B true CN110363000B (zh) | 2023-11-17 |
Family
ID=68218805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910619922.3A Active CN110363000B (zh) | 2019-07-10 | 2019-07-10 | 识别恶意文件的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110363000B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112818348B (zh) * | 2021-02-24 | 2023-09-08 | 北京安信天行科技有限公司 | 一种勒索病毒文件识别与检测方法及*** |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969374A (zh) * | 2010-10-27 | 2011-02-09 | 北京航空航天大学 | 分组密码算法中混淆层的实现方法 |
CN103177022A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种恶意文件搜索方法及装置 |
JP2014150410A (ja) * | 2013-02-01 | 2014-08-21 | Konica Minolta Inc | 画像形成装置及び暗号強度の切り替え方法 |
CN104217159A (zh) * | 2013-05-31 | 2014-12-17 | 马子熙 | 一种不依赖查杀引擎的互助式移动终端反病毒方法和*** |
CN105144625A (zh) * | 2013-08-09 | 2015-12-09 | 汤姆逊许可公司 | 隐私保护矩阵因子分解的方法和*** |
CN106407400A (zh) * | 2016-09-21 | 2017-02-15 | 中国科学院信息工程研究所 | 一种面向流式数据的实时摘要生成方法 |
CN107615273A (zh) * | 2015-12-04 | 2018-01-19 | 慧与发展有限责任合伙企业 | 组合数据块的散列 |
CN108959312A (zh) * | 2017-05-23 | 2018-12-07 | 华为技术有限公司 | 一种多文档摘要生成的方法、装置和终端 |
CN108990061A (zh) * | 2018-07-09 | 2018-12-11 | 中国联合网络通信集团有限公司 | 一种身份证号防盗用的方法、装置及*** |
CN108984475A (zh) * | 2018-07-06 | 2018-12-11 | 北京慧闻科技发展有限公司 | 基于全息神经网络的答案选择方法、装置和电子设备 |
CN109101817A (zh) * | 2018-08-13 | 2018-12-28 | 亚信科技(成都)有限公司 | 一种识别恶意文件类别的方法及计算设备 |
CN109460386A (zh) * | 2018-10-29 | 2019-03-12 | 杭州安恒信息技术股份有限公司 | 基于多维度模糊哈希匹配的恶意文件同源性分析方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9398034B2 (en) * | 2013-12-19 | 2016-07-19 | Microsoft Technology Licensing, Llc | Matrix factorization for automated malware detection |
-
2019
- 2019-07-10 CN CN201910619922.3A patent/CN110363000B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969374A (zh) * | 2010-10-27 | 2011-02-09 | 北京航空航天大学 | 分组密码算法中混淆层的实现方法 |
CN103177022A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种恶意文件搜索方法及装置 |
JP2014150410A (ja) * | 2013-02-01 | 2014-08-21 | Konica Minolta Inc | 画像形成装置及び暗号強度の切り替え方法 |
CN104217159A (zh) * | 2013-05-31 | 2014-12-17 | 马子熙 | 一种不依赖查杀引擎的互助式移动终端反病毒方法和*** |
CN105144625A (zh) * | 2013-08-09 | 2015-12-09 | 汤姆逊许可公司 | 隐私保护矩阵因子分解的方法和*** |
CN107615273A (zh) * | 2015-12-04 | 2018-01-19 | 慧与发展有限责任合伙企业 | 组合数据块的散列 |
CN106407400A (zh) * | 2016-09-21 | 2017-02-15 | 中国科学院信息工程研究所 | 一种面向流式数据的实时摘要生成方法 |
CN108959312A (zh) * | 2017-05-23 | 2018-12-07 | 华为技术有限公司 | 一种多文档摘要生成的方法、装置和终端 |
CN108984475A (zh) * | 2018-07-06 | 2018-12-11 | 北京慧闻科技发展有限公司 | 基于全息神经网络的答案选择方法、装置和电子设备 |
CN108990061A (zh) * | 2018-07-09 | 2018-12-11 | 中国联合网络通信集团有限公司 | 一种身份证号防盗用的方法、装置及*** |
CN109101817A (zh) * | 2018-08-13 | 2018-12-28 | 亚信科技(成都)有限公司 | 一种识别恶意文件类别的方法及计算设备 |
CN109460386A (zh) * | 2018-10-29 | 2019-03-12 | 杭州安恒信息技术股份有限公司 | 基于多维度模糊哈希匹配的恶意文件同源性分析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110363000A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11212307B2 (en) | Server-supported malware detection and protection | |
US11863674B2 (en) | DLP appliance and method for protecting data sources used in data matching | |
US10374789B2 (en) | Encrypting and decrypting information | |
US10062038B1 (en) | Generation and use of trained file classifiers for malware detection | |
CA2697632C (en) | System and method for authentication, data transfer, and protection against phishing | |
US20200012792A1 (en) | System and method for statistical analysis of comparative entropy | |
US8205242B2 (en) | System and method for data mining and security policy management | |
US9047293B2 (en) | Computer file format conversion for neutralization of attacks | |
TW202134919A (zh) | 用於藉由分析已知及/或未知網路安全威脅的形態來偵測資料異常的系統和方法 | |
CN108400979A (zh) | 应用于客户端和服务器的通信方法及电子设备 | |
US11288368B1 (en) | Signature generation | |
US10904264B2 (en) | Verifiable record storage service | |
US20160019211A1 (en) | A process for obtaining candidate data from a remote storage server for comparison to a data to be identified | |
CN115248919A (zh) | 一种函数接口的调用方法、装置、电子设备及存储介质 | |
CN110363000B (zh) | 识别恶意文件的方法、装置、电子设备及存储介质 | |
CN109190358B (zh) | 站点密码生成方法、***及密码管理器 | |
AU2014200698A1 (en) | A computer-implemented method for detecting domain injection or evasion | |
US20240111875A1 (en) | Transparent web content validation tree | |
US20220414266A1 (en) | Signing files based on file security credentials | |
CN114268431B (zh) | 浏览器证书转码方法及装置、计算设备、可读存储介质 | |
CN114253597A (zh) | 固件校验方法、装置和电子设备 | |
CN115329291A (zh) | 反爬虫方法、***、计算机设备及存储介质 | |
CN111177784A (zh) | 一种文件***的安全保护方法、装置及存储介质 | |
CN114077490A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
TW202145033A (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 |