CN113051567A - 一种病毒检测方法、装置、电子设备及存储介质 - Google Patents

一种病毒检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113051567A
CN113051567A CN202110336653.7A CN202110336653A CN113051567A CN 113051567 A CN113051567 A CN 113051567A CN 202110336653 A CN202110336653 A CN 202110336653A CN 113051567 A CN113051567 A CN 113051567A
Authority
CN
China
Prior art keywords
file
detected
virus
instruction
parallelization
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
CN202110336653.7A
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202110336653.7A priority Critical patent/CN113051567A/zh
Publication of CN113051567A publication Critical patent/CN113051567A/zh
Pending legal-status Critical Current

Links

Images

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

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

一种病毒检测方法、装置、电子设备及存储介质
技术领域
本申请涉及网络技术领域,尤其涉及一种病毒检测方法、装置、电子设备及存储介质。
背景技术
相关技术中,通过将待测文件与表征病毒的病毒规则片段进行匹配,当待测文件的文件片段与病毒规则片段不匹配时,判定该待测文件为正常文件。然而,上述文件片段与病毒规则片段的匹配过程耗时较长,导致检测效率不高。
发明内容
有鉴于此,本申请实施例提供一种病毒检测方法、装置、电子设备及存储介质,以至少解决相关技术中待测文件的病毒检测效率不理想的问题。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种病毒检测方法,所述方法包括:
通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果;
根据所述匹配结果判断所述待测文件是否为正常文件;
其中,所述布隆过滤器包括多个哈希函数,所述指令并行化调用的方式包括将所述多个哈希函数中同类型的运算操作进行并行化调用。
其中,上述方案中,所述布隆过滤器包括第一数量的哈希函数,所述第一数量为4的正整数倍。
上述方案中,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果之前,所述方法还包括:基于所述指令并行化调用的方式支持的并行数据量,确定所述第一数量。
上述方案中,所述多个哈希函数为相同类型的哈希函数。
上述方案中,所述通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段时,所述方法包括:
通过调用单指令多数据流(SIMD,Single Instruction Multiple Data)指令,对待测文件的文件片段并行执行所述多个哈希函数中对应类型的运算操作;其中,每条SIMD指令用于并行执行一种类型的运算操作。
上述方案中,在所述根据所述匹配结果判断所述待测文件是否为正常文件之后,所述方法还包括:
在所述匹配结果不能表征所述待测文件为正常文件的情况下,基于设定的病毒规则库检测所述待测文件是否为病毒文件。
上述方案中,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段之前,所述方法还包括:
基于所述设定的病毒规则库的规则片段确定所述布隆过滤器。
上述方案中,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段之前,所述方法还包括:
通过设定长度的滑动窗口(Sliding Windows)处理待测文件,获得文件片段;
所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,包括:
根据指令并行化调用的方式检测所述文件片段是否匹配所述规则片段。本申请实施例还提供了一种病毒检测方法,所述方法包括:
通过设定长度的滑动窗口处理待测文件,得到用于与设定的规则片段进行匹配的文件片段;
通过布隆过滤器,调用SIMD指令,对待测文件的文件片段并行执行多个哈希函数中对应类型的运算操作,检测待测文件是否匹配设定的规则片段,得到匹配结果;
根据所述匹配结果判断所述待测文件是否为正常文件;
在所述匹配结果不能表征所述待测文件为正常文件的情况下,基于设定的病毒规则库检测所述待测文件是否为病毒文件;
其中,所述布隆过滤器包括第一数量的哈希函数,所述第一数量的哈希函数为相同类型的哈希函数;所述第一数量为4的正整数倍,基于SIMD指令调用的方式支持的并行数据量确定;每条SIMD指令用于并行执行一种类型的运算操作。
本申请实施例还提供了一种病毒检测装置,包括:
第一检测单元,用于通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果;
判断单元,用于根据所述匹配结果判断所述待测文件是否为正常文件;
其中,所述布隆过滤器包括多个哈希函数,所述指令并行化调用的方式包括将所述多个哈希函数中同类型的运算操作进行并行化调用。
本申请实施例还提供了一种电子装置,包括:
处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行上述病毒检测方法的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述病毒检测方法的步骤。
本申请实施例提供的病毒检测方法、装置、电子设备及存储介质,通过布隆过滤器,根据指令并行化调用的方式,将布隆过滤器的多个哈希函数中同类型的运算操作并行执行,检测待测文件是否匹配设定的规则片段,这样,待测文件与规则片段的匹配过程中,由于指令并行化调用,需要调用的指令数量减少,提升了布隆过滤器的规则片段匹配效率,从而提高了待测文件的病毒检测效率。
附图说明
图1为相关技术的一种反病毒规则引擎的架构示意图;
图2为本申请实施例提供的一种反病毒规则引擎的架构示意图;
图3为本申请实施例提供的一种病毒检测方法的流程示意图;
图4为本申请应用实施例提供的一种确定文件片段哈希值的示意图;
图5为本申请实施例提供的一种确定文件片段方法的示意图;
图6为本申请实施例提供的另一种病毒检测方法的流程示意图;
图7为本申请实施例提供的一种病毒检测装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
反病毒规则引擎(Rule-based Anti-Virus Engine),又被称为反病毒系统,一般通过病毒规则库描述已知病毒的特征,如图1所示出的。在对待测文件进行病毒检测时,反病毒规则引擎对文件内容进行检索,匹配其中符合病毒规则的文件片段。若查找成功,则认为待测文件为病毒文件;否则,认为待测文件为正常文件。
相关技术中,通过将待测文件与表征病毒的病毒规则片段进行匹配,当待测文件中存在与规则片段匹配的文件片段时,判定该待测文件为病毒文件。然而,上述文件片段匹配过程耗时较长,导致检测效率不高。
基于此,在本申请的各种实施例中,通过布隆过滤器,根据指令并行化调用的方式,将布隆过滤器的多个哈希函数中同类型的运算操作并行执行,检测待测文件是否匹配设定的规则片段,这样,待测文件与规则片段的匹配过程中,由于指令并行化调用,需要调用的指令数量减少,提升了布隆过滤器的规则片段匹配效率,从而提高了待测文件的病毒检测效率。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了提升反病毒规则引擎的效率,在访问病毒规则库前,通过设置一个布隆过滤器进行过滤操作。布隆过滤器可以先对待测文件进行判断,确认是否为正常文件,若判断待测文件为正常文件,则提前终止检测流程,无需进一步访问病毒规则库;若不能判断待测文件为正常文件,则继续访问病毒规则库,检测待测文件是否为病毒文件。基于图2所示出的一种反病毒规则引擎的架构示意图。
图3示出了本申请实施例提供的一种病毒检测方法的流程示意图,包括:
步骤301:通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果。
步骤302:根据所述匹配结果判断所述待测文件是否为正常文件。
其中,所述布隆过滤器包括多个哈希函数,所述指令并行化调用的方式包括将所述多个哈希函数中同类型的运算操作进行并行化调用。
在本实施例中,确定待测文件对应的文件片段,根据指令并行化调用的方式,将布隆过滤器包括的多个哈希函数中同类型的运算操作进行并行化调用,得到每个文件片段对应的多个哈希值,通过布隆过滤器检测待测文件是否匹配设定的规则片段,判断待测文件是否为正常文件。这里,复用布隆过滤器的多个哈希函数,构建多个哈希值到病毒规则位置的索引表,用于与得到的每个文件片段对应的多个哈希值进行匹配,从而检测待测文件是否匹配设定的规则片段;当待测文件的每个文件片段对应的多个哈希值在布隆过滤器中不存在,说明与规则片段不匹配,则判断待测文件为正常文件。而发生hash碰撞或待测文件中包括设定规则片段的情况下,文件片段对应的多个哈希值都会在布隆过滤器中存在,因而不能判断待测文件是否为病毒文件。这样,待测文件与规则片段的匹配过程中,由于指令并行化调用,需要调用的指令数量减少,提升了布隆过滤器的规则片段匹配效率,从而快速判断正常文件,提高了待测文件的病毒检测效率。
其中,在一实施例中,所述布隆过滤器包括第一数量的哈希函数,所述第一数量为4的正整数倍。
布隆过滤器包括的哈希函数为4的正整数倍,以4的正整数倍的哈希函数对文件片段进行处理,得到对应的4的正整数倍个哈希值。由于多个哈希函数组合的碰撞概率是各个哈希函数碰撞概率的乘积,远小于单个哈希的碰撞概率,可以获得更好的病毒检测效果。
在一实施例中,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果之前,所述方法还包括:
基于所述指令并行化调用的方式支持的并行数据量,确定所述第一数量。
在根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段之前,基于指令并行化调用的方式支持的并行数据量,确定布隆过滤器包括的哈希函数的数量。这里,指令并行化调用可以通过SIMD指令的方式,一次运算指令执行多个数据流,而SIMD指令通常支持4的正整数倍的数据流,这样,将哈希函数确定为4的正整数倍,对每个文件片段进行处理时,通过一次或多次调用指令,恰好能够并行化处理所有的哈希函数运算操作,而不需要通过额外的指令处理未对齐的运算操作,提高调用指令进行计算的效率。实际应用中,使用支持4个数据流的SIMD指令,设置4个哈希函数,可以通过1个指令执行4个哈希函数中同类型的运算操作。使用支持4个数据流的SIMD指令,而如果设置为5个哈希函数,需要通过2个指令执行5个哈希函数中同类型的运算操作,即多出的1个哈希函数导致运算操作未对齐,需要一个额外的指令执行运算操作,影响到计算效率。
在一实施例中,所述多个哈希函数为相同类型的哈希函数。
选取相同类型的多个哈希函数。这里,相同类型的哈希函数指的是选取的多个哈希函数均为加法哈希函数、乘法哈希函数、位运算哈希函数或其它类型的哈希函数,且在多个哈希函数中的每个哈希函数中,按照运算操作的类型对至少一个运算操作进行排序,相同类型的运算操作对应相同的运算顺序,也就是说,相同类型的哈希函数是指运算操作的类型和对应的运算顺序都相同的哈希函数。这样,对每个文件片段进行处理时,通过至少一次指令并行化调用,能够并行化处理多个哈希函数运算操作,而不需要通过额外的运算指令处理未对齐的运算操作,减少了获得每个文件片段对应的至少两个哈希值时的计算消耗,提高调用指令进行计算的效率。实际应用中,如图4所示出的一种确定文件片段哈希值的示意图,选取4个乘法哈希函数Hash1、Hash2、Hash3和Hash4,4个乘法哈希种子选取为13、173、1171和17137,设定每个乘法哈希函数获取对应哈希值时所采取运算操作均为3步操作,减法操作、移位操作和加法操作。如下表所示,相关技术中需要调用12次运算指令才可以得到对应的4个哈希值,而在本实施例中,对于这4个乘法哈希函数,相同类型的运算操作对应相同的运算顺序,如运算顺序的第一位为减法操作,运算顺序的第二位为移位操作,运算顺序的第三位为加法操作。这样,基于选取的4个乘法哈希函数对滑动窗口进行处理时,通过调用减法运算指令、移位运算指令和加法运算指令3次运算指令,能够并行化处理多个哈希函数运算操作。在规则片段匹配过程中,只需要调用3次运算指令就可以得到每个文件片段对应的4个哈希值,而相关技术中需要调用12次运算指令才能得到每个文件片段对应的4个哈希值,这样,计算每个文件片段对应的哈希值,需要调用的指令数量减少,提升了布隆过滤器的规则片段匹配效率,从而提高了待测文件的病毒检测效率。
Figure BDA0002997957660000071
在得到每个文件片段对应的多个哈希值时,可以采用滚动哈希(Rolling Hash)法计算滑动窗口提取的多个文件片段的哈希值。输入的待测文件在设定长度的滑动窗口中滑动,滚动哈希法通过前一滑动窗口的哈希值以及当前滑动窗口与前一滑动窗口的差异,计算当前滑动窗口的哈希值。这种滚动的计算方式比直接根据当前滑动窗口内容计算的方式更快速。
在一实施例中,所述通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段时,所述方法包括:
通过调用SIMD指令,对待测文件的文件片段并行执行所述多个哈希函数中对应类型的运算操作;其中,每条SIMD指令用于并行执行一种类型的运算操作。
这里,通过调用SIMD指令,对待测文件的文件片段并行执行多个哈希函数中对应类型的运算操作,一个SIMD指令用于对多个哈希函数中的一种类型的运算操作进行并行运算。SIMD是一种采用一个控制器来控制多个处理器,可以同时对一组数据中的每一个分别执行相同的操作,从而实现空间上的并行性的技术。对于不同数据,SIMD将数据放置于一个大寄存器中,用一条指令完成多次相同操作。
这样,通过一次调用SIMD指令,可以将多个哈希函数中相同类型的运算操作进行并行处理,需要调用的指令数量减少,提升了布隆过滤器的规则片段匹配效率,从而提高了待测文件的病毒检测效率。
在一实施例中,在所述根据所述匹配结果判断所述待测文件是否为正常文件之后,所述方法还包括:
在所述匹配结果不能表征所述待测文件为正常文件的情况下,基于设定的病毒规则库检测所述待测文件是否为病毒文件。
通过布隆过滤器对待测文件进行过滤操作,检测待测文件是否匹配设定的规则片段,布隆过滤器可以先对待测文件进行判断,确定待测文件中的大部分正常文件的文件片段。由于至少一个文件片段对应的多个哈希值在布隆过滤器中存在,可能是发生hash碰撞,也有可能是待测文件中包括病毒文件的片段,因而不能判断待测文件为正常文件或是病毒文件。而待测文件的文件片段对应的多个哈希值在布隆过滤器中不存在,可以确定待测文件为正常文件,无需进一步访问病毒规则库。
在匹配结果不能表征待测文件为正常文件的情况下,也就是至少一个文件片段对应的多个哈希值在布隆过滤器中存在,使用设定的病毒规则库检测待测文件,确定待测文件是否为病毒文件。这里,多个哈希值在布隆过滤器中存在,使用存在的值在索引表中索引病毒规则的位置,进一步地根据病毒规则的位置确定病毒规则文件,在设定的病毒规则引擎中使用索引到的病毒规则文件,检测待测文件是否为病毒文件,得到对应的判断结果。设定的病毒规则库中存储了描述病毒特征的病毒规则。在布隆过滤器将已经过滤掉了大部分正常文件的文件片段的情况下,将可能为病毒文件的文件片段基于设定的病毒规则库进行检测,可以准确地确认待测文件是否可能为病毒文件,这样,基于不同的匹配结果进行后续操作,提高了待测文件的病毒检测效率。
实际应用中,根据各个病毒规则文件预先构建一个布隆过滤器;复用布隆过滤器的多个哈希函数,构建多个哈希值到病毒规则位置的索引表。对待测文件对应的每个文件片段进行多个哈希函数运算,在任意一个文件片段对应的多个哈希值在布隆过滤器中存在的情况下,以存在的哈希值在索引表中进行索引,根据病毒规则的位置确定病毒规则文件,用索引到的病毒规则文件继续判断待测文件是否为病毒文件。
在一实施例中,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段之前,所述方法还包括:
基于所述设定的病毒规则库的规则片段确定所述布隆过滤器。
在通过布隆过滤器对待测文件进行过滤操作,检测待测文件是否匹配设定的规则片段之前,先根据设定的病毒规则库中的规则片段确定用于过滤的布隆过滤器。这里,对病毒规则库中的每个规则片段执行多个哈希函数的运算操作,获得每个规则片段的多个哈希值,基于获得的每个规则片段的多个哈希值确定布隆过滤器,根据待测文件中的文件片段对应的多个哈希值是否存在于布隆过滤器,确定待测文件中的文件片段是否为正常文件的文件片段。
实际应用中,采用多个不同的哈希函数对应的多个哈希值来进行bit位数据组的映射:当发现该文件片段的至少一个哈希值的所有映射位不全是1时,根据布隆过滤器的特点,可以判断该文件片段不存在于布隆过滤器,即文件片段为正常文件的文件片段。
这样,起到初步过滤作用的布隆过滤器所使用的检测比对对象,和最终确定是否为病毒文件的病毒数据库所使用的检测比对对象相同。基于通过布隆过滤器的bit位数据组的映射方法过滤掉了大部分正常文件的文件片段,将可能为病毒文件的文件片段再基于相同的多个规则片段进行检测,提高了待测文件的病毒检测效率。进一步地,在任意一个文件片段对应的多个哈希值在布隆过滤器中存在的情况下,以存在的哈希值在索引表中进行索引,根据病毒规则的位置确定病毒规则文件,用索引到的病毒规则文件继续判断待测文件是否为病毒文件。
在一实施例中,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段之前,所述方法还包括:
通过设定长度的滑动窗口处理待测文件,获得文件片段;
所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,包括:
根据指令并行化调用的方式检测所述文件片段是否匹配所述规则片段。
如图5所示出的一种确定文件片段的方法,通过设定长度的滑动窗口对待测文件提取设定长度的文件片段,根据指令并行化调用的方式执行多个哈希函数的运算操作,从而得到文件片段对应的多个哈希值,检测所述文件片段是否匹配规则片段。这里,可以根据多个哈希值与布隆过滤器进行bit位数据组的映射,确定文件片段对应的多个哈希值判断该文件片段是否存在于布隆过滤器,从而判断文件片段与规则片段是否匹配。可以根据病毒检测方法中使用的规则片段确定设定长度,提高文件片段与病毒规则片段的匹配效率。这样,在进行匹配之前,可以高效地确定待测文件的文件片段,从而高效地进行病毒规则片段的匹配。
实际应用中,当待测文件的部分文件片段为“deafebddskd”,设定滑动窗口的固定长度为4个字符,滑动步长为1个字符时,提取出8个文件片段,为“deaf”、“eafe”、“afeb”、“febd”、“ebdd”、“bdds”、“ddsk”、“dskd”。
本申请实施例提供了一种病毒检测方法,如图6所示,所述方法包括
通过设定长度的滑动窗口处理待测文件,得到用于与设定的规则片段进行匹配的文件片段;
通过布隆过滤器,调用SIMD指令,对待测文件的文件片段并行执行多个哈希函数中对应类型的运算操作,检测待测文件是否匹配设定的规则片段,得到匹配结果;
根据所述匹配结果判断所述待测文件是否为正常文件;
在所述匹配结果不能表征所述待测文件为正常文件的情况下,基于设定的病毒规则库检测所述待测文件是否为病毒文件;
其中,所述布隆过滤器包括第一数量的哈希函数,所述第一数量的哈希函数为相同类型的哈希函数;所述第一数量为4的正整数倍,基于SIMD指令调用的方式支持的并行数据量确定;每条SIMD指令用于并行执行一种类型的运算操作。
通过设定长度的滑动窗口对待测文件提取设定长度的文件片段,通过调用SIMD指令,对待测文件的文件片段并行执行第一数量的哈希函数中对应类型的运算操作,得到每个文件片段对应的第一数量的哈希值,通过布隆过滤器检测待测文件是否匹配设定的规则片段,得到匹配结果,基于匹配结果判断待测文件是否为正常文件。在匹配结果不能表征待测文件为正常文件的情况下,也就是至少一个文件片段对应的第一数量的哈希值在布隆过滤器中存在,使用设定的病毒规则库检测待测文件,确定待测文件是否为病毒文件。其中,第一数量是4的正整数倍,第一数量的哈希函数为相同类型的哈希函数,根据SIMD指令调用的方式支持的并行数据量确定,每条SIMD指令用于并行执行一种类型的运算操作。
在本申请实施例中,确定哈希函数数量和类型,通过调用SIMD指令,将多个哈希函数中相同类型的运算操作进行并行处理,这样,在获取待测文件对应的每个文件片段对应的哈希值时,需要调用的运算指令数量减少,获取哈希值的速率提升,提升布隆过滤器性能,从而提高了待测文件的病毒检测效率。并且,通过对布隆过滤器的多个哈希函数的选取做特殊限制,适配SIMD技术,支持反病毒规则引擎扫描这种特殊场景。
为实现本申请实施例的方法,本申请实施例还提供了一种病毒检测装置,如图7所示,该装置包括:
第一检测单元701,用于通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果;
判断单元702,用于根据所述匹配结果判断所述待测文件是否为正常文件;
其中,所述布隆过滤器包括多个哈希函数,所述指令并行化调用的方式包括将所述多个哈希函数中同类型的运算操作进行并行化调用。
在一个实施例中,所述布隆过滤器包括第一数量的哈希函数,所述第一数量为4的正整数倍。
在一个实施例中,所述装置还包括:
调用单元,用于基于所述指令并行化调用的方式支持的并行数据量,确定所述第一数量。
在一个实施例中,所述多个哈希函数为相同类型的哈希函数。
在一个实施例中,所述第一检测单元701,用于:
通过调用SIMD指令,对待测文件的文件片段并行执行所述多个哈希函数中对应类型的运算操作;其中,每条SIMD指令用于并行执行一种类型的运算操作。
在一个实施例中,所述装置还包括:
第二检测单元,用于在所述匹配结果不能表征所述待测文件为正常文件的情况下,基于设定的病毒规则库检测所述待测文件是否为病毒文件。
在一个实施例中,所述装置还包括:
确定单元,用于基于所述设定的病毒规则库的规则片段确定所述布隆过滤器。
在一个实施例中,所述装置还包括:
处理单元,用于通过设定长度的滑动窗口处理待测文件,获得文件片段;
所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,包括:
根据指令并行化调用的方式检测所述文件片段是否匹配所述规则片段。
实际应用时,所述第一检测单元701、判断单元702、调用单元、第二检测单元、确定单元、处理单元可由基于病毒检测装置中的处理器,比如中央处理器(CPU,CentralProcessing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)等实现。
需要说明的是:上述实施例提供的病毒检测装置在进行病毒检测时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的病毒检测装置与病毒检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例病毒检测方法,本申请实施例还提供了一种电子设备,如图8所示,该电子设备800包括:
通信接口810,能够与其它设备比如网络设备等进行信息交互;
处理器820,与所述通信接口810连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法。而所述计算机程序存储在存储器830上。
具体地,所述处理器820,用于:
通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果;
根据所述匹配结果判断所述待测文件是否为正常文件;
其中,所述布隆过滤器包括多个哈希函数,所述指令并行化调用的方式包括将所述多个哈希函数中同类型的运算操作进行并行化调用。
在一个实施例中,所述布隆过滤器包括第一数量的哈希函数,所述第一数量为4的正整数倍。
在一个实施例中,所述处理器820,用于:
基于所述指令并行化调用的方式支持的并行数据量,确定所述第一数量。
在一个实施例中,所述多个哈希函数为相同类型的哈希函数。
在一个实施例中,所述处理器820,用于:
通过调用SIMD指令,对待测文件的文件片段并行执行所述多个哈希函数中对应类型的运算操作;其中,每条SIMD指令用于并行执行一种类型的运算操作。
在一个实施例中,所述处理器820,用于:
在所述匹配结果不能表征所述待测文件为正常文件的情况下,基于设定的病毒规则库检测所述待测文件是否为病毒文件。
在一个实施例中,所述处理器820,用于:
基于所述设定的病毒规则库的规则片段确定所述布隆过滤器。
在一个实施例中,所述处理器820,用于:
通过设定长度的滑动窗口处理待测文件,获得文件片段;
所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,包括:
根据指令并行化调用的方式检测所述文件片段是否匹配所述规则片段。
当然,实际应用时,电子设备800中的各个组件通过总线系统840耦合在一起。可理解,总线系统840用于实现这些组件之间的连接通信。总线系统840除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统840。
本申请实施例中的存储器830用于存储各种类型的数据以支持电子设备800的操作。这些数据的示例包括:用于在电子设备800上操作的任何计算机程序。
可以理解,存储器830可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器830旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器820中,或者由处理器820实现。处理器820可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器820可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器820可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器830,处理器820读取存储器830中的程序,结合其硬件完成前述方法的步骤。
可选地,所述处理器820执行所述程序时实现本申请实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器830,上述计算机程序可由电子设备的处理器820执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、电子设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。除非另有说明和限定,术语“连接”应做广义理解,例如,可以是电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
另外,在本申请实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解“第一\第二\第三”区分的对象在适当情况下可以互换,以使这里描述的本申请的实施例可以除了在这里图示或描述的那些以外的顺序实施。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
在具体实施方式中所描述的各个实施例中的各个具体技术特征,在不矛盾的情况下,可以进行各种组合,例如通过不同的具体技术特征的组合可以形成不同的实施方式,为了避免不必要的重复,本申请中各个具体技术特征的各种可能的组合方式不再另行说明。

Claims (11)

1.一种病毒检测方法,其特征在于,所述方法包括:
通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果;
根据所述匹配结果判断所述待测文件是否为正常文件;
其中,所述布隆过滤器包括多个哈希函数,所述指令并行化调用的方式包括将所述多个哈希函数中同类型的运算操作进行并行化调用。
2.根据权利要求1所述的病毒检测方法,其特征在于,所述布隆过滤器包括第一数量的哈希函数,所述第一数量为4的正整数倍。
3.根据权利要求2所述的病毒检测方法,其特征在于,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果之前,所述方法还包括:
基于所述指令并行化调用的方式支持的并行数据量,确定所述第一数量。
4.根据权利要求1所述的病毒检测方法,其特征在于,所述多个哈希函数为相同类型的哈希函数。
5.根据权利要求1所述的病毒检测方法,其特征在于,所述通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段时,所述方法包括:
通过调用单指令多数据流SIMD指令,对待测文件的文件片段并行执行所述多个哈希函数中对应类型的运算操作;其中,每条SIMD指令用于并行执行一种类型的运算操作。
6.根据权利要求1至5任一项所述的病毒检测方法,其特征在于,在所述根据所述匹配结果判断所述待测文件是否为正常文件之后,所述方法还包括:
在所述匹配结果不能表征所述待测文件为正常文件的情况下,基于设定的病毒规则库检测所述待测文件是否为病毒文件。
7.根据权利要求6所述的病毒检测方法,其特征在于,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段之前,所述方法还包括:
基于所述设定的病毒规则库的规则片段确定所述布隆过滤器。
8.根据权利要求1至5任一项所述的病毒检测方法,其特征在于,在所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段之前,所述方法还包括:
通过设定长度的滑动窗口处理待测文件,获得文件片段;
所述根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,包括:
根据指令并行化调用的方式检测所述文件片段是否匹配所述规则片段。
9.一种病毒检测装置,其特征在于,包括:
第一检测单元,用于通过布隆过滤器,根据指令并行化调用的方式检测待测文件是否匹配设定的规则片段,得到匹配结果;
判断单元,用于根据所述匹配结果判断所述待测文件是否为正常文件;
其中,所述布隆过滤器包括多个哈希函数,所述指令并行化调用的方式包括将所述多个哈希函数中同类型的运算操作进行并行化调用。
10.一种电子设备,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至8任一项所述病毒检测方法的步骤。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的病毒检测方法的步骤。
CN202110336653.7A 2021-03-29 2021-03-29 一种病毒检测方法、装置、电子设备及存储介质 Pending CN113051567A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110336653.7A CN113051567A (zh) 2021-03-29 2021-03-29 一种病毒检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110336653.7A CN113051567A (zh) 2021-03-29 2021-03-29 一种病毒检测方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113051567A true CN113051567A (zh) 2021-06-29

Family

ID=76516242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110336653.7A Pending CN113051567A (zh) 2021-03-29 2021-03-29 一种病毒检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113051567A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086520A1 (en) * 2003-08-14 2005-04-21 Sarang Dharmapurikar Method and apparatus for detecting predefined signatures in packet payload using bloom filters
CN101398820A (zh) * 2007-09-24 2009-04-01 北京启明星辰信息技术有限公司 一种大规模关键词匹配方法
CN102037471A (zh) * 2008-05-21 2011-04-27 赛门铁克公司 具有使用网络询问的最优定义分发的集中式扫描器数据库
CN109145158A (zh) * 2017-06-13 2019-01-04 华为技术有限公司 一种布隆过滤器中数据的处理方法以及布隆过滤器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086520A1 (en) * 2003-08-14 2005-04-21 Sarang Dharmapurikar Method and apparatus for detecting predefined signatures in packet payload using bloom filters
CN101398820A (zh) * 2007-09-24 2009-04-01 北京启明星辰信息技术有限公司 一种大规模关键词匹配方法
CN102037471A (zh) * 2008-05-21 2011-04-27 赛门铁克公司 具有使用网络询问的最优定义分发的集中式扫描器数据库
CN109145158A (zh) * 2017-06-13 2019-01-04 华为技术有限公司 一种布隆过滤器中数据的处理方法以及布隆过滤器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张丽果;: "基于布隆过滤器的字符串模糊匹配算法的FPGA实现", 电子设计工程, no. 09, 5 May 2013 (2013-05-05) *

Similar Documents

Publication Publication Date Title
CN109145158B (zh) 一种布隆过滤器中数据的处理方法以及布隆过滤器
US8943091B2 (en) System, method, and computer program product for performing a string search
CN111869176B (zh) 用于恶意软件签名生成的系统和方法
CN106649538A (zh) 人脸搜索的方法及装置
CN113051568A (zh) 一种病毒检测方法、装置、电子设备及存储介质
CN110516793B (zh) 一种池化处理方法及装置、存储介质
CN113051569B (zh) 一种病毒检测方法、装置、电子设备及存储介质
EP3108400B1 (en) Virus signature matching method and apparatus
CN113051567A (zh) 一种病毒检测方法、装置、电子设备及存储介质
CN110737678A (zh) 一种数据查找方法、装置、设备和存储介质
US9697899B1 (en) Parallel deflate decoding method and apparatus
CN114611039A (zh) 异步加载规则的解析方法、装置、存储介质和电子设备
CN111371818B (zh) 一种数据请求的验证方法、装置及设备
CN113051566B (zh) 一种病毒检测方法、装置、电子设备及存储介质
CN113495901A (zh) 一种面向可变长数据块的快速检索方法
CN113051498A (zh) 一种基于多重布隆过滤的url去重方法及系统
CN112818347A (zh) 一种文件标签确定方法、装置、设备及存储介质
CN115454983B (zh) 一种基于布隆过滤器的海量Hbase数据去重方法
JP4865449B2 (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム及び差分生成適用システム及び差分生成適用方法
CN113741821B (zh) 基于分类的数据存取方法、系统、介质及程序
WO2024017100A1 (zh) 获取代码片段的方法、装置及存储介质
CN111723229B (zh) 数据比对方法、装置、计算机可读存储介质和电子设备
CN111796975B (zh) 芯片的随机化验证方法及装置
CN111026554B (zh) 一种XenServer系统物理内存分析方法及系统
CN110991296B (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