CN117201193A - 病毒检测方法、装置、存储介质及电子设备 - Google Patents
病毒检测方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117201193A CN117201193A CN202311461378.7A CN202311461378A CN117201193A CN 117201193 A CN117201193 A CN 117201193A CN 202311461378 A CN202311461378 A CN 202311461378A CN 117201193 A CN117201193 A CN 117201193A
- Authority
- CN
- China
- Prior art keywords
- file
- preset
- detected
- virus
- hash value
- 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
- 241000700605 Viruses Species 0.000 title claims abstract description 269
- 238000001514 detection method Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 67
- 230000006870 function Effects 0.000 claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 35
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004321 preservation Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种病毒检测方法、装置、存储介质及电子设备,方法包括:计算待检测文件的目标散列值,基于预设布隆过滤器的哈希函数和目标散列值,计算待检测文件在预设布隆过滤器中的位下标;各已知病毒文件在预设布隆过滤器中的位下标是根据各已知病毒文件的散列值确定的,各已知病毒文件在预设布隆过滤器中的位下标对应的参数值均为预设值;基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件。由于本申请预设布隆过滤器存储了已知病毒文件的位下标对应的参数值,已知病毒文件的位下标对应的参数值占用内存资源小,能表征已知病毒文件的信息,因此可准确判定出文件是否为非病毒文件,从而提升了病毒文件识别的准确率。
Description
技术领域
本申请涉及网络安全技术领域,特别涉及一种病毒检测方法、装置、存储介质及电子设备。
背景技术
随着互联网技术的发展,病毒攻击已经成为网络犯罪的重要方式,因此对带有病毒的传输文件进行及时处理非常重要。目前处理方式主要通过消息摘要算法计算病毒库中的每个病毒文件的散列值存储在内存中,当需要检查文件是否含有病毒时,可基于内存中全部病毒文件的散列值进行判断,但是病毒库的病毒数量数以亿计,使得生成的散列值集合占用内存资源巨大。
相关技术中,为了解决生成的散列值集合占用设备内存资源大的问题,通过病毒的活跃度,在病毒库中挑选出一批活跃度高的病毒文件构建目标散列值集合应用于实际病毒检测中;由于目标散列值集合中未包括活跃度低的病毒文件,当需要检测的文件为活跃度低的病毒文件时会出现无法及时处理的问题,从而降低了病毒文件识别的准确率。
发明内容
本申请实施例提供了一种病毒检测方法、装置、存储介质及电子设备。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本申请实施例提供了一种病毒检测方法,方法包括:
计算待检测文件的目标散列值;
基于预设布隆过滤器的哈希函数以及目标散列值,计算待检测文件在预设布隆过滤器中的位下标;其中,各已知病毒文件在预设布隆过滤器中的位下标是根据各已知病毒文件的散列值确定的;各已知病毒文件在预设布隆过滤器中的位下标对应的参数值均为预设值;
基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件。
可选的,基于预设布隆过滤器的哈希函数以及目标散列值,计算待检测文件在预设布隆过滤器中的位下标,包括:
根据预设布隆过滤器的哈希函数,分别计算目标散列值的哈希值;
将计算出的各哈希值确定为待检测文件在预设布隆过滤器中对应的位下标。
可选的,基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件,包括:
在预设布隆过滤器中,查询待检测文件对应的位下标的目标参数值;
在位下标的目标参数值中存在不为预设值的参数值的情况下,确定待检测文件不为病毒文件;
在位下标的目标参数值全部为预设值的情况下,基于预设白名单、预设黑名单及外部存储设备中的至少之一,对待检测文件进行病毒检测,以识别待检测文件是否为病毒文件;
其中,预设白名单中存储多个不为病毒文件的散列值,预设黑名单中存储多个为病毒文件的散列值,外部存储设备中存储了各已知病毒文件的散列值。
可选的,基于预设白名单和预设黑名单,对待检测文件进行病毒检测,包括:
在待检测文件的目标散列值存在于预设白名单的情况下,确定待检测文件不为病毒文件;或者,
在待检测文件的目标散列值不存在于预设白名单但存在于预设黑名单的情况下,确定待检测文件为病毒文件。
可选的,基于预设白名单、预设黑名单及外部存储设备,对待检测文件进行病毒检测,包括:
在预设白名单和预设黑名单全都不存在待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中存在待检测文件的目标散列值的情况下,确定待检测文件为病毒文件;存储待检测文件的目标散列值至预设黑名单;
在预设白名单和预设黑名单全都不存在待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中不存在待检测文件的目标散列值的情况下,确定待检测文件不为病毒文件;存储待检测文件的目标散列值至预设白名单。
可选的,方法还包括:
在待检测文件的目标散列值存在于预设白名单或者预设黑名单的情况下,获取存在的与待检测文件的目标散列值相同的散列值的历史存储时间;
更新历史存储时间为当前时刻。
可选的,存储待检测文件的目标散列值至预设黑名单,包括:
在预设黑名单中数据量到达预设数量的情况下,获取预设黑名单中存储时间最早的散列值;删除存储时间最早的散列值;将待检测文件的目标散列值保存到预设黑名单;或者在预设黑名单中数据量未到达预设数量的情况下,将待检测文件的目标散列值直接保存到预设黑名单;
设置目标散列值的保存时间为当前时刻。
可选的,各已知病毒文件在预设布隆过滤器中的位下标根据各已知病毒文件的散列值进行确定的方法为:
根据预设散列函数,计算各已知病毒文件的散列值;
根据预设布隆过滤器的哈希函数,分别计算各已知病毒文件的散列值的哈希值;
将各已知病毒文件对应的哈希值确定为各已知病毒文件在预设布隆过滤器中对应的位下标;
将各已知病毒文件在预设布隆过滤器中对应的位下标对应的参数值置为预设值。
第二方面,本申请实施例提供了一种病毒检测装置,装置包括:
第一计算模块,用于计算待检测文件的目标散列值;
第二计算模块,用于基于预设布隆过滤器的哈希函数以及目标散列值,计算待检测文件在预设布隆过滤器中的位下标;其中,各已知病毒文件在预设布隆过滤器中的位下标是根据各已知病毒文件的散列值确定的;各已知病毒文件在预设布隆过滤器中的位下标对应的参数值均为预设值;
确定模块,用于基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件。
第三方面,本申请实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,预设布隆过滤器存储了已知病毒文件的散列值的位下标对应的参数值,已知病毒文件的散列值的位下标对应的参数值占用内存资源小,同时能表征所有已知病毒文件的信息,因此通过计算待检测文件的散列值,可结合预设布隆过滤器准确判定出待检测文件是否为非病毒文件,从而提升了病毒文件识别的准确率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例提供的一种病毒检测方法的流程示意图;
图2是本申请提供的一种根据已知病毒文件配置布隆过滤器示意图;
图3是本申请提供的一种根据布隆过滤器判断待检测文件的示意图;
图4是本申请提供的一种活跃时间更新过程的过程示意框图;
图5是本申请实施例提供的一种预设黑名单、白名单存储数据过程的过程示意框图;
图6是本申请实施例提供的一种病毒检测过程的过程示意框图;
图7是本申请实施例提供的一种病毒检测装置的结构示意图;
图8是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下描述和附图充分地示出本申请的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
目前,为了解决生成的散列值集合占用设备内存资源大的问题,通过病毒的活跃度,在病毒库中挑选出一批活跃度高的病毒文件构建目标散列值集合应用于实际病毒检测中。
本申请的发明人注意到,由于目标散列值集合中未包括活跃度低的病毒文件,当需要检测的文件为活跃度低的病毒文件时会出现无法及时处理的问题,从而降低了病毒文件识别的准确率。
为了能够解决病毒文件识别的准确率低的问题,本申请发明人研究发现,基于预设布隆过滤器的哈希函数,计算待检测文件在预设布隆过滤器中的位下标;已知病毒文件在预设布隆过滤器中的位下标对应的参数值均为1;基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件。由于本申请提供的预设布隆过滤器存储了已知病毒文件的散列值的位下标对应的参数值,已知病毒文件的散列值的位下标对应的参数值占用内存资源小,同时能表征所有已知病毒文件的信息,因此通过计算待检测文件的散列值,可结合预设布隆过滤器准确判定出待检测文件是否为非病毒文件,从而提升了病毒文件识别的准确率。
本申请提供了一种病毒检测方法、装置、存储介质及电子设备,以解决上述相关技术问题中存在的问题。下面将结合附图1-附图6,对本申请实施例提供的病毒检测方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的病毒检测装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图1,为本申请实施例提供了一种病毒检测方法的流程示意图。如图1所示,本申请实施例的方法可以包括以下步骤:
S101,计算待检测文件的目标散列值;
其中,待检测文件是需要进行病毒检测的文件,该文件可以是线上流量中被防火墙拦截的文件,也可以是来自第三方设备的文件,例如来自U盘的文件,还可以是其它来源的文件。
在本申请实施例中,待检测文件的目标散列值是基于MD5信息摘要算法计算的,具体可基于MD5信息摘要算法的预设散列函数进行计算。
S102,基于预设布隆过滤器的哈希函数以及目标散列值,计算待检测文件在预设布隆过滤器中的位下标;其中,各已知病毒文件在预设布隆过滤器中的位下标是根据各已知病毒文件的散列值确定的;各已知病毒文件在预设布隆过滤器中的位下标对应的参数值均为预设值;
其中,布隆过滤器(Bloom Filter)是一种空间效率极高的数据结构,用于检测一个元素是否不存在于一个集合中,布隆过滤器自身具备多个哈希函数,该哈希函数可对任意元素计算其哈希值,在布隆过滤器中能够找到与计算的哈希值相同的位下标。预设值为1。
具体的,布隆过滤器的基本操作有两个:添加元素和查询元素。
添加元素:将元素通过哈希函数进行映射,得到位数组中的一些位置,然后将这些位置的值设置为1。
查询元素:将元素通过哈希函数进行映射,得到位数组中的一些位置,然后检查这些位置的值。如果所有位置的值都为1,那么认为元素可能在集合中;如果有任何一个位置的值为0,那么元素一定不在集合中。
在本申请实施例中,在根据各已知病毒文件对布隆过滤器执行添加元素操作时,首先根据预设散列函数,计算各已知病毒文件的散列值;再根据预设布隆过滤器的所有哈希函数,分别计算各已知病毒文件的散列值的哈希值;然后将各已知病毒文件对应的哈希值确定为各已知病毒文件在预设布隆过滤器中对应的所有位下标;最后将各已知病毒文件在预设布隆过滤器中对应的所有位下标对应的参数值置为预设值。由于本申请将各已知病毒文件的位下标对应的参数值全部配置到布隆过滤器,可以解决大量内存占用以及病毒检测准确率低的问题。本申请中的各已知病毒文件可随时进行更新,包括但不限于增加已知病毒文件和删除已知病毒文件。
例如图2所示,假设已知病毒文件的数量为n=100,布隆过滤器位数组大小为m=1000,布隆过滤器Hash函数个数为k=2。简单举例其生成过程如下:
先取一个已知病毒文件的散列值对应的哈希值MD5-1,通过上述2个Hash函数映射后,计算得到两个小于1000的位数组下标,假定为3、994,如图2中的部分;然后在布隆过滤器位数组中找到与3、994对应的相同的位下标,如图2中的/>部分;最后将与3、994对应的相同的位下标对应的参数值设置为1,如图2中的/>部分,这样就完成了一个已知病毒文件MD5值的转换存储。然后依次将剩余的所有已知病毒文件按照上述方法进行置位,最后可完成对所有布隆过滤器中位数组的配置。
在本申请实施例中,执行查询元素中,在基于预设布隆过滤器的所有哈希函数以及目标散列值,计算待检测文件在预设布隆过滤器中的所有位下标时,首先根据预设布隆过滤器的所有哈希函数,分别计算目标散列值的哈希值;然后将计算出的各哈希值确定为待检测文件在预设布隆过滤器中对应的位下标。本申请通过计算待检测文件在预设布隆过滤器中对应的位下标,可方便在预设布隆过滤器中查询出其对应的参数值。
进一步地,每个已知病毒文件的散列值计算后,单个散列值为32字符,以十亿病毒样本计算,最少将使用32GByte的设备资源,占用设备内存资源巨大。因此,本申请在计算出各已知病毒文件的散列值后,可将该各已知病毒文件的散列值存储到外部存储设备中,从而避免了占用设备内存资源巨大的缺陷。外部存储设备例如为硬盘、磁盘等存储介质。
S103,基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件。
在本申请实施例中,执行查询元素过程中,在基于预设布隆过滤器及待检测文件对应的所有位下标,确定待检测文件是否为病毒文件时,首先在预设布隆过滤器中,查询待检测文件对应的所有位下标的目标参数值;然后在所有位下标的目标参数值全部为预设值的情况下,基于预设白名单、预设黑名单及外部存储设备中的至少之一,对待检测文件进行病毒检测,以识别待检测文件是否为病毒文件;其中,预设白名单中存储多个不为病毒文件的散列值,预设黑名单中存储多个为病毒文件的散列值,外部存储设备中存储了各已知病毒文件的散列值;或者,在所有位下标的目标参数值中存在不为预设值的参数值的情况下,确定待检测文件不为病毒文件。通过本申请实施例,可以准确判断出一定不为病毒文件的待检测文件。
例如图3所示,假定计算出两个待检测文件的散列值为MD5-1,MD5-4。简单举例其匹配过程如下:
MD5-4可根据预设布隆过滤器的所有哈希函数处理,得到哈希值2、997,如图3的过程;然后在预设布隆过滤器的位下标中找到与哈希值2、997相同的位下标,如图3的过程;检查这两个位下标对应的参数值是否全部为1,如图3中的过程/>;可见由于参数值不全为1,则输出匹配失败结果,如图3中的过程/>;因此MD5-4对应的待检测文件不为病毒文件。
MD5-1可根据预设布隆过滤器的所有哈希函数处理,得到哈希值3、994,如图3的过程;然后在预设布隆过滤器的位下标中找到与哈希值3、994相同的位下标,如图3的过程;检查这两个位下标对应的参数值是否全部为1,如图3中的过程/>;可见由于参数值全为1,则输出匹配成功结果,如图3中的过程/>;因此MD5-1对应的待检测文件为病毒文件。
进一步地,布隆过滤器可以判断出一定不是病毒文件的待检测文件,但是对于检测出的病毒文件,可能存在误报率,因此需要对结果进行二次校验。例如以n=10亿病毒样本数量计算,与MD5同样内存资源占用,位数组大小m=32GByte=256Gbit=2560亿大小,布隆过滤器Hash函数个数k取6时,误报率约为0.000000000154323239159408726016,即百亿次布隆匹配情况下,误报1.54个左右。
在本申请实施例中,为了解决预设布隆过滤器可能出现的误报率,本申请可基于预设白名单、预设黑名单及外部存储设备中的至少之一,对待检测文件为病毒文件进行病毒检测。
在一种可能的实现方式中,可基于预设白名单和预设黑名单,对待检测文件为病毒文件进行病毒检测;首先在待检测文件的目标散列值存在于预设白名单的情况下,确定待检测文件不为病毒文件;或者,在待检测文件的目标散列值不存在于预设白名单但存在于预设黑名单的情况下,确定待检测文件为病毒文件。
在另一种可能的实现方式中,可基于预设白名单、预设黑名单及外部存储设备,对待检测文件进行病毒检测;首先在预设白名单和预设黑名单全都不存在待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中存在待检测文件的目标散列值的情况下,确定待检测文件为病毒文件;存储待检测文件的目标散列值至预设黑名单;然后在预设白名单和预设黑名单全都不存在待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中不存在待检测文件的目标散列值的情况下,确定待检测文件不为病毒文件;存储待检测文件的目标散列值至预设白名单。
在另一种可能的实现方式中,也可单独基于预设白名单进行校验,在待检测文件的目标散列值存在于预设白名单的情况下,确定待检测文件不为病毒文件。
在另一种可能的实现方式中,也可单独基于预设黑名单进行校验,在待检测文件的目标散列值存在于预设黑名单的情况下,确定待检测文件为病毒文件。
需要说明的是,利用预设白名单可以解决布隆过滤器误报问题,利用预设黑名单可以减少病毒文件二次检测操作。
在本申请实施例中,病毒文件在同一段时间内的活跃性比较高,病毒再次发生的概率也越高;间隔时间越久活跃性越低,病毒再次发生的概率也越低。因此在预设白名单或者预设黑名单的数据量达到上限时,可以根据检测病毒发生的时间,将最老发生时间的病毒名单删除,以增加活跃度更高的病毒名单。从而保证在一定规格上限情况下,存在活跃度相对较高的病毒黑名单和白名单。用以解决布隆过滤器存在的误报问题,以及减少通过外设存储设备进行二次校验的操作。
具体的,在待检测文件的目标散列值存在于预设白名单或者预设黑名单的情况下,获取存在的与待检测文件的目标散列值相同的散列值的历史存储时间;更新历史存储时间为当前时刻。
例如图4所示,图4是活跃时间更新过程的过程示意框图,首先与预设布隆过滤器匹配成功后,再匹配预设黑名单、白名单,与预设黑名单、白名单匹配成功后,更新匹配成功的病毒散列值的活跃时间;或者,与预设黑名单、白名单匹配失败后,结束。
具体的,在预设黑名单中数据量到达预设数量的情况下,获取预设黑名单中存储时间最早的散列值;删除存储时间最早的散列值;将待检测文件的目标散列值保存到预设黑名单;或者在预设黑名单中数据量未到达预设数量的情况下,将待检测文件的目标散列值直接保存到预设黑名单;设置目标散列值的保存时间为当前时刻。
具体的,在预设白名单中数据量到达预设数量的情况下,获取预设白名单中存储时间最早的散列值;删除存储时间最早的散列值;将待检测文件的目标散列值保存到预设白名单;或者在预设白名单中数据量未到达预设数量的情况下,将待检测文件的目标散列值直接保存到预设白名单;设置目标散列值的保存时间为当前时刻。
例如图5所示,图5是预设黑名单、白名单存储数据过程的过程示意框图,首先二次校验时触发添加数据至预设黑名单、白名单过程,判断名单中数据量是否达到上限,若是,删除存储时间最早的历史病毒的散列值,将待检测病毒的散列值加入并设置当前时间为存储时间;若否,将待检测病毒的散列值加入并设置当前时间为存储时间。
通过更新历史存储时间可以对活跃程度低的病毒散列值进行删除,在减少病毒文件二次检测操作以及非病毒文件误报的同时,又能防止数量过大消耗大量设备内存。
进一步地,在确定出待检测文件不为病毒文件的情况下,可允许该病毒文件进行传输到目的设备;或者在确定出待检测文件为病毒文件的情况下,可禁止该病毒文件传输到目的设备,以及执行阻断告警动作。
例如图6所示,图6是本申请提供的一种病毒检测过程的过程示意框图,首先获取所有已知病毒文件并计算其散列值,得到散列值病毒样本库,采用全量库解决因抽样病毒活跃度导致的识别率低问题;再将散列值病毒样本库保存到外部存储设备中,采用外设存储全量库二次校验,解决布隆过滤器误报及全量库占用大量内存问题;然后将散列值病毒样本库配置到预设布隆过滤器中,采用全量布隆过滤器解决大量内存占用及识别率问题;再计算待检测文件的散列值,与预设布隆过滤器匹配,此流程可直接过滤现网中大量非病毒文件;如果匹配成功,则确定待检测文件为非病毒文件,可直接放通,如果匹配失败,则将待检测文件的散列值与预设白名单匹配,此流程快速筛选减少误报检测;如果匹配成功,确定待检测文件为非病毒文件并更新预设白名单中待检测文件的活跃时间;其次,将待检测文件的散列值与预设黑名单匹配,此流程快速筛选减少二次校验;如果匹配成功,则确定待检测文件为病毒文件并更新预设黑名单中待检测文件的活跃时间;如果匹配失败,则与外部存储设备的样本库匹配,此流程可二次确认并加白,解决误报问题;如果匹配失败,则确定待检测文件为非病毒文件并将待检测文件添加到预设白名单,如果匹配成功,则确定待检测文件为病毒文件并将待检测文件添加到预设黑名单;最后将病毒文件执行阻断告警动作,非病毒文件执行放通动作。
在本申请实施例中,本申请提供的预设布隆过滤器存储了已知病毒文件的散列值的位下标对应的参数值,已知病毒文件的散列值的位下标对应的参数值占用内存资源小,同时能表征所有已知病毒文件的信息,因此通过计算待检测文件的散列值,可结合预设布隆过滤器准确判定出待检测文件是否为非病毒文件,从而提升了病毒文件识别的准确率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图7,其示出了本申请一个示例性实施例提供的病毒检测装置的结构示意图。该病毒检测装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分。该装置1包括第一计算模块10、第二计算模块20、确定模块30。
第一计算模块10,用于计算待检测文件的目标散列值;
第二计算模块20,用于基于预设布隆过滤器的哈希函数,计算待检测文件在预设布隆过滤器中的位下标;其中,已知病毒文件在预设布隆过滤器中的位下标对应的参数值均为1;
确定模块30,用于基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件。
可选的,第二计算模块,包括:
哈希值计算单元,用于根据预设布隆过滤器的哈希函数,分别计算目标散列值的哈希值;
位下标确定单元,用于将计算出的各哈希值确定为待检测文件在预设布隆过滤器中对应的位下标。
可选的,确定模块,包括:
参数值查询单元,用于在预设布隆过滤器中,查询待检测文件对应的位下标的目标参数值;
病毒文件确定单元,用于在位下标的目标参数值中存在不为预设值的参数值的情况下,确定待检测文件不为病毒文件;在位下标的目标参数值全部为预设值的情况下,基于预设白名单、预设黑名单及外部存储设备中的至少之一,对待检测文件进行病毒检测,以识别待检测文件是否为病毒文件;其中,预设白名单中存储多个不为病毒文件的散列值,预设黑名单中存储多个为病毒文件的散列值,外部存储设备中存储了各已知病毒文件的散列值。
可选的,该装置还包括:
散列值计算模块,用于根据预设散列函数,计算各已知病毒文件的散列值;
哈希值计算模块,用于根据预设布隆过滤器的哈希函数,分别计算各已知病毒文件的散列值的哈希值;
位下标确定模块,用于将各已知病毒文件对应的哈希值确定为各已知病毒文件在预设布隆过滤器中对应的位下标;
参数值设置模块,用于将各已知病毒文件在预设布隆过滤器中对应的位下标对应的参数值置为预设值。
需要说明的是,上述实施例提供的病毒检测装置在执行病毒检测方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的病毒检测装置与病毒检测方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,本申请提供的预设布隆过滤器存储了已知病毒文件的散列值的位下标对应的参数值,已知病毒文件的散列值的位下标对应的参数值占用内存资源小,同时能表征所有已知病毒文件的信息,因此通过计算待检测文件的散列值,可结合预设布隆过滤器准确判定出待检测文件是否为非病毒文件,从而提升了病毒文件识别的准确率。
本申请还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的病毒检测方法。
本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的病毒检测方法。
请参见图8,为本申请实施例提供了一种电子设备的结构示意图。该电子设备可以但不限于为防火墙等网络安全设备。如图8所示,电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示组件,可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储系统。如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及病毒检测应用程序。
在图8所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的病毒检测应用程序,并具体执行以下操作:
计算待检测文件的目标散列值;
基于预设布隆过滤器的哈希函数以及目标散列值,计算待检测文件在预设布隆过滤器中的位下标;其中,各已知病毒文件在预设布隆过滤器中的位下标是根据各已知病毒文件的散列值确定的;各已知病毒文件在预设布隆过滤器中的位下标对应的参数值均为预设值;
基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件。
在一个实施例中,处理器1001在执行基于预设布隆过滤器的哈希函数以及目标散列值,计算待检测文件在预设布隆过滤器中的位下标时,具体执行以下操作:
根据预设布隆过滤器的哈希函数,分别计算目标散列值的哈希值;
将计算出的各哈希值确定为待检测文件在预设布隆过滤器中对应的位下标。
在一个实施例中,处理器1001在执行基于预设布隆过滤器及待检测文件对应的位下标,确定待检测文件是否为病毒文件时,具体执行以下操作:
在预设布隆过滤器中,查询待检测文件对应的位下标的目标参数值;
在位下标的目标参数值中存在不为预设值的参数值的情况下,确定待检测文件不为病毒文件;
在位下标的目标参数值全部为预设值的情况下,基于预设白名单、预设黑名单及外部存储设备中的至少之一,对待检测文件进行病毒检测,以识别待检测文件是否为病毒文件;
其中,预设白名单中存储多个不为病毒文件的散列值,预设黑名单中存储多个为病毒文件的散列值,外部存储设备中存储了各已知病毒文件的散列值。
在一个实施例中,处理器1001在执行基于预设白名单和预设黑名单,对待检测文件进行病毒检测时,具体执行以下操作:
在待检测文件的目标散列值存在于预设白名单的情况下,确定待检测文件不为病毒文件;或者,
在待检测文件的目标散列值不存在于预设白名单但存在于预设黑名单的情况下,确定待检测文件为病毒文件。
在一个实施例中,处理器1001在执行在基于预设白名单、预设黑名单及外部存储设备,对待检测文件进行病毒检测时,具体执行以下操作:
在预设白名单和预设黑名单全都不存在待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中存在待检测文件的目标散列值的情况下,确定待检测文件为病毒文件;存储待检测文件的目标散列值至预设黑名单;
在预设白名单和预设黑名单全都不存在待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中不存在待检测文件的目标散列值的情况下,确定待检测文件不为病毒文件;存储待检测文件的目标散列值至预设白名单。
在一个实施例中,处理器1001还执行以下操作:
在待检测文件的目标散列值存在于预设白名单或者预设黑名单的情况下,获取存在的与待检测文件的目标散列值相同的散列值的历史存储时间;
更新历史存储时间为当前时刻。
在一个实施例中,处理器1001在执行存储待检测文件的目标散列值至预设黑名单时,具体执行以下操作:
在预设黑名单中数据量到达预设数量的情况下,获取预设黑名单中存储时间最早的散列值;删除存储时间最早的散列值;将待检测文件的目标散列值保存到预设黑名单;或者在预设黑名单中数据量未到达预设数量的情况下,将待检测文件的目标散列值直接保存到预设黑名单;
设置目标散列值的保存时间为当前时刻。
在一个实施例中,处理器1001还执行以下操作:
根据预设散列函数,计算各已知病毒文件的散列值;
根据预设布隆过滤器的哈希函数,分别计算各已知病毒文件的散列值的哈希值;
将各已知病毒文件对应的哈希值确定为各已知病毒文件在预设布隆过滤器中对应的位下标;
将各已知病毒文件在预设布隆过滤器中对应的位下标对应的参数值置为预设值。
在本申请实施例中,本申请提供的预设布隆过滤器存储了已知病毒文件的散列值的位下标对应的参数值,已知病毒文件的散列值的位下标对应的参数值占用内存资源小,同时能表征所有已知病毒文件的信息,因此通过计算待检测文件的散列值,可结合预设布隆过滤器准确判定出待检测文件是否为非病毒文件,从而提升了病毒文件识别的准确率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,病毒检测的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (11)
1.一种病毒检测方法,其特征在于,所述方法包括:
计算待检测文件的目标散列值;
基于预设布隆过滤器的哈希函数以及所述目标散列值,计算待检测文件在所述预设布隆过滤器中的位下标;其中,各已知病毒文件在所述预设布隆过滤器中的位下标是根据各已知病毒文件的散列值确定的;各已知病毒文件在所述预设布隆过滤器中的位下标对应的参数值均为预设值;
基于所述预设布隆过滤器及所述待检测文件对应的位下标,确定所述待检测文件是否为病毒文件。
2.根据权利要求1所述的方法,其特征在于,所述基于预设布隆过滤器的哈希函数以及所述目标散列值,计算待检测文件在所述预设布隆过滤器中的位下标,包括:
根据预设布隆过滤器的哈希函数,分别计算所述目标散列值的哈希值;
将计算出的各哈希值确定为所述待检测文件在所述预设布隆过滤器中对应的位下标。
3.根据权利要求1所述的方法,其特征在于,所述基于所述预设布隆过滤器及所述待检测文件对应的位下标,确定所述待检测文件是否为病毒文件,包括:
在所述预设布隆过滤器中,查询所述待检测文件对应的位下标的目标参数值;
在位下标的目标参数值中存在不为所述预设值的参数值的情况下,确定所述待检测文件不为病毒文件;
在位下标的目标参数值全部为预设值的情况下,基于预设白名单、预设黑名单及外部存储设备中的至少之一,对所述待检测文件进行病毒检测,以识别所述待检测文件是否为病毒文件;
其中,所述预设白名单中存储多个不为病毒文件的散列值,所述预设黑名单中存储多个为病毒文件的散列值,所述外部存储设备中存储了各已知病毒文件的散列值。
4.根据权利要求3所述的方法,其特征在于,基于预设白名单和预设黑名单,对所述待检测文件进行病毒检测,包括:
在所述待检测文件的目标散列值存在于预设白名单的情况下,确定所述待检测文件不为病毒文件;或者,
在所述待检测文件的目标散列值不存在于预设白名单但存在于预设黑名单的情况下,确定所述待检测文件为病毒文件。
5.根据权利要求3所述的方法,其特征在于,基于预设白名单、预设黑名单及外部存储设备,对所述待检测文件进行病毒检测,包括:
在预设白名单和预设黑名单全都不存在所述待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中存在所述待检测文件的目标散列值的情况下,确定所述待检测文件为病毒文件;存储所述待检测文件的目标散列值至预设黑名单;
在预设白名单和预设黑名单全都不存在所述待检测文件的目标散列值且外部存储设备存储的各已知病毒文件的散列值中不存在所述待检测文件的目标散列值的情况下,确定所述待检测文件不为病毒文件;存储所述待检测文件的目标散列值至预设白名单。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述待检测文件的目标散列值存在于预设白名单或者预设黑名单的情况下,获取存在的与所述待检测文件的目标散列值相同的散列值的历史存储时间;
更新所述历史存储时间为当前时刻。
7.根据权利要求5所述的方法,其特征在于,所述存储所述待检测文件的目标散列值至预设黑名单,包括:
在预设黑名单中数据量到达预设数量的情况下,获取预设黑名单中存储时间最早的散列值;删除存储时间最早的散列值;将所述待检测文件的目标散列值保存到预设黑名单;或者在预设黑名单中数据量未到达预设数量的情况下,将所述待检测文件的目标散列值直接保存到预设黑名单;
设置所述目标散列值的保存时间为当前时刻。
8.根据权利要求1所述的方法,其特征在于,各已知病毒文件在所述预设布隆过滤器中的位下标根据各已知病毒文件的散列值进行确定的方法为:
根据预设散列函数,计算各已知病毒文件的散列值;
根据预设布隆过滤器的哈希函数,分别计算各已知病毒文件的散列值的哈希值;
将所述各已知病毒文件对应的所述哈希值确定为所述各已知病毒文件在所述预设布隆过滤器中对应的位下标;
将所述各已知病毒文件在所述预设布隆过滤器中对应的位下标对应的参数值置为预设值。
9.一种病毒检测装置,其特征在于,所述装置包括:
第一计算模块,用于计算待检测文件的目标散列值;
第二计算模块,用于基于预设布隆过滤器的哈希函数以及所述目标散列值,计算待检测文件在所述预设布隆过滤器中的位下标;其中,各已知病毒文件在所述预设布隆过滤器中的位下标是根据各已知病毒文件的散列值确定的;各已知病毒文件在所述预设布隆过滤器中的位下标对应的参数值均为预设值;
确定模块,用于基于所述预设布隆过滤器及所述待检测文件对应的位下标,确定所述待检测文件是否为病毒文件。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-8任意一项所述的方法。
11.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311461378.7A CN117201193B (zh) | 2023-11-06 | 2023-11-06 | 病毒检测方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311461378.7A CN117201193B (zh) | 2023-11-06 | 2023-11-06 | 病毒检测方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117201193A true CN117201193A (zh) | 2023-12-08 |
CN117201193B CN117201193B (zh) | 2024-01-26 |
Family
ID=88992758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311461378.7A Active CN117201193B (zh) | 2023-11-06 | 2023-11-06 | 病毒检测方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117201193B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160162506A1 (en) * | 2013-08-28 | 2016-06-09 | Huawei Technologies Co., Ltd. | Bloom Filter Generation Method and Apparatus |
KR20180084502A (ko) * | 2017-01-17 | 2018-07-25 | 한국항공대학교산학협력단 | Isp를 사용한 바이러스 사전 탐지 장치 및 방법 |
US20180293380A1 (en) * | 2016-05-06 | 2018-10-11 | Tencent Technology (Shenzhen) Company Limited | Virus program detection method, terminal, and computer readable storage medium |
WO2019083440A2 (zh) * | 2017-10-24 | 2019-05-02 | 华为国际有限公司 | 一种车载设备升级方法及相关设备 |
CN113051568A (zh) * | 2021-03-29 | 2021-06-29 | 深信服科技股份有限公司 | 一种病毒检测方法、装置、电子设备及存储介质 |
CN113973019A (zh) * | 2021-12-27 | 2022-01-25 | 北京安博通科技股份有限公司 | 一种网络病毒检测方法及网络设备 |
CN115688099A (zh) * | 2022-11-01 | 2023-02-03 | 安天科技集团股份有限公司 | 计算机病毒检索方法、装置、计算机设备及存储介质 |
-
2023
- 2023-11-06 CN CN202311461378.7A patent/CN117201193B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160162506A1 (en) * | 2013-08-28 | 2016-06-09 | Huawei Technologies Co., Ltd. | Bloom Filter Generation Method and Apparatus |
US20180293380A1 (en) * | 2016-05-06 | 2018-10-11 | Tencent Technology (Shenzhen) Company Limited | Virus program detection method, terminal, and computer readable storage medium |
KR20180084502A (ko) * | 2017-01-17 | 2018-07-25 | 한국항공대학교산학협력단 | Isp를 사용한 바이러스 사전 탐지 장치 및 방법 |
WO2019083440A2 (zh) * | 2017-10-24 | 2019-05-02 | 华为国际有限公司 | 一种车载设备升级方法及相关设备 |
CN113051568A (zh) * | 2021-03-29 | 2021-06-29 | 深信服科技股份有限公司 | 一种病毒检测方法、装置、电子设备及存储介质 |
CN113973019A (zh) * | 2021-12-27 | 2022-01-25 | 北京安博通科技股份有限公司 | 一种网络病毒检测方法及网络设备 |
CN115688099A (zh) * | 2022-11-01 | 2023-02-03 | 安天科技集团股份有限公司 | 计算机病毒检索方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王尚广;孙其博;杨放春;: "IMS网络中的SIP洪泛攻击检测", 软件学报, no. 04 * |
Also Published As
Publication number | Publication date |
---|---|
CN117201193B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2536664C2 (ru) | Система и способ автоматической модификации антивирусной базы данных | |
KR20190109427A (ko) | 침입 탐지를 위한 지속적인 학습 | |
CN107786564B (zh) | 基于威胁情报的攻击检测方法、系统及电子设备 | |
CN110290522B (zh) | 用于移动设备的风险识别方法、装置和计算机系统 | |
CN102483780A (zh) | 防病毒扫描 | |
KR101582601B1 (ko) | 액티비티 문자열 분석에 의한 안드로이드 악성코드 검출 방법 | |
CN108460346B (zh) | 指纹识别方法及装置 | |
CN111368289B (zh) | 一种恶意软件检测方法和装置 | |
CN113114680B (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
CN114598504B (zh) | 一种风险评估方法、装置、电子设备及可读存储介质 | |
CN112016078A (zh) | 一种登录设备的封禁检测方法、装置、服务器和存储介质 | |
CN113098852B (zh) | 一种日志处理方法及装置 | |
KR102393913B1 (ko) | 이상행위 탐지 장치, 방법 및 이를 포함하는 시스템 | |
CN111680303B (zh) | 漏洞扫描方法、装置、存储介质及电子设备 | |
CN113378161A (zh) | 一种安全检测方法、装置、设备及存储介质 | |
CN117201193B (zh) | 病毒检测方法、装置、存储介质及电子设备 | |
CN109976828B (zh) | 一种配置文件的方法及装置 | |
CN112583827A (zh) | 一种数据泄露检测方法及装置 | |
CN109871294B (zh) | 用于校验数据、处理请求的方法和装置 | |
CN116595523A (zh) | 基于动态编排的多引擎文件检测方法、系统、设备及介质 | |
CN107844702B (zh) | 基于云防护环境下网站木马后门检测方法及装置 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 | |
US20220182260A1 (en) | Detecting anomalies on a controller area network bus | |
CN113595797A (zh) | 告警信息的处理方法、装置、电子设备及存储介质 | |
CN109379640B (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 |