本发明涉及通信网络安全技术,尤指一种实现文件送检的方法和装置。
背景技术:
随着信息技术的发展,网络信息安全的重要性日益增强,近年来,网络漏洞引发的安全事件无论是范围、影响面、损失都有逐年上升的趋势,网络黑客也逐渐由单一入侵向组织配合入侵演进,网络漏洞入侵也从单纯的破坏向有预谋的窃取情报演进,各种基于0day(即时性)漏洞而进行的网络攻击,使网络使用者蒙受巨大损失。
针对这些现象,近年来各安全厂商、互联网厂商都有推出一些安全防护解决方案,其中对于未知漏洞的防护主流技术是样本行为分析技术,即通过将接收到的文件发送到分析设备对文件行为进行分析,结合一些规则匹配,来判断文件是否含有恶意行为,最终对文件进行定性。
由于分析设备的分析能力有限,随着网络带宽不断增长,通过网络传输的文件也越来越多,因此,实现文件的送检过程尤为重要。现有的实现文件送检的方法大致包括:
按照接收到文件的时间的先后顺序,采用多线程并发的方式将接收到的文件发送给分析设备,以实现对文件行为进行分析。
现有的实现文件送检的方法中,由于分析设备同样按照接收到文件的时间的先后顺序对文件进行分析,当文件数量较多时,可能无法满足用户对部分重点文件优先进行分析的需求,因此,送检效率较低。
技术实现要素:
为了解决上述问题,本发明提出了一种实现文件送检的方法和装置,能 够提高送检效率。
为了达到上述目的,本发明提出了一种实现文件送检的方法,包括:
接收到来自上游设备的文件,确定文件的优先级别;
按照优先级别的先后顺序将文件发送给下游设备。
可选的,所述接收到来自上游设备的文件包括:
通过北向接口接收到来自所述上游设备的文件;
所述按照优先级别的先后顺序将文件发送给下游设备包括:
按照优先级别的先后顺序通过南向接口将文件发送给所述下游设备。
可选的,所述确定文件的优先级别包括:
获取所述文件的预设参数,确定获得的预设参数中用于计算优先级别的参数,根据所述用于计算优先级别的参数计算所述文件的优先级别。
可选的,所述确定获得的预设参数中用于计算优先级别的参数包括:
根据预先保存的文件的各预设参数之间的第一对应关系确定第一算法;
根据所述第一对应关系采用所述第一算法计算用于确定获取所述计算优先级别的参数的方法的值;
在预先设置的值和获取所述计算优先级别的参数的方法之间的第二对应关系中,查找计算得到的用于确定获取计算优先级别的参数的方法的值对应的获取所述计算优先级别的参数的方法;
根据查找到的所述获取计算优先级别的参数的方法获取所述计算优先级别的参数。
可选的,所述第二对应关系中还包括:用于计算优先级别的算法;
所述根据用于计算优先级别的参数计算文件的优先级别包括:
在所述第二对应关系中查找所述计算得到的值对应的计算优先级别的第二算法,根据所述第一对应关系和所述用于计算优先级别的参数采用查找到的计算优先级别的第二算法计算所述文件的优先级别。
可选的,所述确定文件的优先级别后,在所述按照优先级别的先后顺序将文件发送给下游设备之前还包括:
在已创建的子队列中查找序号为确定出的优先级别的子队列,将所述文件保存到查找到的子队列的队尾中;
所述按照优先级别的先后顺序将文件发送给下游设备包括:
按照序号由大到小或由小到大的顺序将各子队列中的文件发送给所述下游设备。
可选的,当在已创建的子队列中查找不到序号为所述确定出的优先级别的子队列,或未创建任何子队列时,在所述按照优先级别的先后顺序将文件发送给下游设备之前还包括:
创建序号为所述确定出的优先级别的子队列,将所述文件保存到创建的子队列中。
可选的,所述按照优先级别的先后顺序将文件发送给下游设备包括:
按照优先级别的先后顺序将所述文件以单线程的方式或多线程并发的方式发送给所述下游设备。
本发明还提出了一种实现文件送检的装置,至少包括:
接收模块,用于接收到来自上游设备的文件;
信息存储模块,用于保存接收到的文件;
自学习算法模块,用于确定文件的优先级别;
送检序列模块,用于按照优先级别的先后顺序将文件发送给下游设备。
可选的,所述接收模块具体用于:
通过北向接口接收到来自所述上游设备的文件;
所述送检序列模块具体用于:
按照优先级别的先后顺序通过南向接口将文件发送给所述下游设备。
可选的,所述自学习算法模块具体用于:
获取所述文件的预设参数,确定获得的预设参数中用于计算优先级别的参数,根据所述用于计算优先级别的参数计算所述文件的优先级别。
可选的,所述自学习算法模块具体用于:
获取所述文件的预设参数,根据预先保存的文件的各预设参数之间的第一对应关系确定第一算法;根据所述第一对应关系采用所述第一算法计算用于确定获取所述计算优先级别的参数的方法的值;在预先设置的值和获取所述计算优先级别的参数的方法之间的第二对应关系中,查找计算得到的用于确定获取计算优先级别的参数的方法的值对应的获取所述计算优先级别的参数的方法;根据查找到的所述获取计算优先级别的参数的方法获取所述计算优先级别的参数,根据所述用于计算优先级别的参数计算所述文件的优先级别;
所述信息存储模块还用于:
保存所述第一对应关系和所述第二对应关系。
可选的,所述第二对应关系中还包括:用于计算优先级别的算法;所述自学习算法模块具体用于:
获取所述文件的预设参数,根据预先保存的文件的各预设参数之间的第一对应关系确定第一算法;根据所述第一对应关系采用所述第一算法计算用于确定获取所述计算优先级别的参数的方法的值;在值和获取所述计算优先级别的参数的方法之间的第二对应关系中,查找计算得到的值对应的获取所述计算优先级别的参数的方法;根据查找到的所述获取计算优先级别的参数的方法获取所述计算优先级别的参数,在所述第二对应关系中查找所述计算得到的值对应的计算优先级别的第二算法,根据所述第一对应关系和所述用于计算优先级别的参数采用查找到的计算优先级别的第二算法计算所述文件的优先级别。
可选的,所述送检序列模块具体用于:
在已创建的子队列中查找序号为确定出的优先级别的子队列,将所述文件保存到查找到的子队列的队尾中;按照序号由大到小或由小到大的顺序将各子队列中的文件发送给所述下游设备。
可选的,所述送检序列模块具体用于:
当在已创建的子队列中查找不到序号为所述确定出的优先级别的子队列,或未创建任何子队列时,创建序号为所述确定出的优先级别的子队列,将所述文件保存到创建的子队列中,按照序号由大到小或由小到大的顺序将各子队列中的文件发送给所述下游设备。
可选的,所述送检序列模块具体用于:
按照优先级别的先后顺序将所述文件以单线程的方式或多线程并发的方式发送给所述下游设备。
与现有技术相比,本发明的技术方案包括:接收到来自上游设备的文件,确定文件的优先级别;按照优先级别的先后顺序将文件发送给下游设备。通过本发明的方案,按照优先级别的先后顺序将文件发送给下游设备,以实现对文件行为进行分析,从而对重要的文件(即优先级高的文件)优先进行分析,提高了送检效率。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为本发明实现文件送检的方法的流程图;
图2为本发明具体实施例实现文件送检的方法的流程图;
图3为本发明实现文件送检的装置的结构组成示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。
参见图1,本发明提出了一种实现文件送检的方法,包括:
步骤100、接收到来自上游设备的文件,确定文件的优先级别。
本步骤中,上游设备可以是有文件需要进行分析或处理的设备。
本步骤中,可以将接收到的文件保存到内存或硬盘内。具体可以以单线程或多线程并发的方式将接收到的文件保存到内存或硬盘内。
本步骤中,可以通过北向接口接收到来自上游设备的文件。
本步骤中,接收到的文件可以是一个或多个,当接收到多个文件时,逐个确定文件的优先级别。
本步骤中,确定文件的优先级别包括:
获取文件的预设参数,确定获得的预设参数中用于计算优先级别的参数,根据用于计算优先级别的参数计算文件的优先级别。
其中,文件的预设参数可以是表征文件特征的任意参数,例如,可以是以下的任意一种或多种:
文件类型、哈希值(如新鲜摘要算法5(md5,messagedigestalgorithm5)值)、文件大小等。
具体如何获取文件的预设参数可以采用本领域技术人员的公知技术实现,并不用于限定本发明的保护范围,这里不再赘述。
例如,可以根据文件的后缀名、或文件头信息、或接收到文件的时间确定文件类型。也就是说,将后缀名、或文件头信息中的文件类型相同的文件归为一类。
或者,将文件头信息相同的文件归为一类;或者,将接收到文件的时间在同一时间范围内的文件归为一类。
其中,确定获得的预设参数中用于计算优先级别的参数包括:
根据预先保存的文件的各预设参数之间的第一对应关系确定第一算法;根据第一对应关系采用所述第一算法计算用于确定获取计算优先级别的参数的方法的值;在预先设置的值和获取计算优先级别的参数的方法之间的第二对应关系中,查找计算得到的用于确定获取计算优先级别的参数的方法的值 对应的获取计算优先级别的参数的方法;根据查找到的获取计算优先级别的参数的方法获取计算优先级别的参数。
其中,当第一对应关系中没有数据时,用于确定获取计算优先级别的参数的方法的值可以取值为默认值(例如0)。
其中,第二对应关系中还包括:用于计算优先级别的算法;相应地,
根据用于计算优先级别的参数计算文件的优先级别包括:
在第二对应关系中查找计算得到的值对应的计算优先级别的第二算法,根据第一对应关系和用于计算优先级别的参数采用查找到的计算优先级别的第二算法计算文件的优先级别。
其中,第一算法和第二算法可以采用本领域技术人员的公知技术实现,并不用于限定本发明的保护范围,这里不再赘述。
例如,第二算法可以是:
在第一对应关系中,查找并统计文件类型与确定出的文件类型相同的条目的第一数量,md5值与确定出的md5值相同的条目的第二数量,计算第一数量和第二数量之间的和值;计算第一数量除以计算得到的和值所得的第一余数,计算第二数量除以计算得到的和值所得的第二余数;计算第一余数和第二余数之间的和值作为文件的优先级别;或者,计算第一余数和第二余数之间的和值作为文件的初始优先级别,对文件的初始优先级别和已经发送给下游设备的文件的初始优先级别进行排序,将排序后文件的初始优先级别对应的下标作为所述文件的优先级别。
其中,排序后文件的初始优先级别对应的下标是指文件的初始优先级别和已经发送给下游设备的文件的初始优先级别所在的数组的下标。
其中,可以采用冒泡排序等排序算法对文件的初始优先级别和已经发送给下游设备的文件的初始优先级别进行排序。
步骤101、按照优先级别的先后顺序将文件发送给下游设备。
本步骤中,下游设备可以是分析设备或处理设备等。
本步骤中,可以通过南向接口将文件发送给下游设备。
本步骤中,可以以单线程的方式或多线程并发的方式将文件发送给下游设备。
通过本发明的方案,按照优先级别的先后顺序将文件发送给下游设备,以实现对文件行为进行分析,从而对重要的文件(即优先级高的文件)优先进行分析,提高了送检效率。
进一步地,步骤100和步骤101之间还包括:
在已创建的子队列中查找序号为确定出的优先级别的子队列,将文件保存到查找到的子队列的队尾中;相应地,
按照优先级别的先后顺序将文件发送给下游设备包括:
按照序号由大到小或由小到大的顺序将各子队列中的文件发送给下游设备。
进一步地,当在已创建的子队列中查找不到序号为确定出的优先级别的子队列,或未创建任何子队列时,在按照优先级别的先后顺序将文件发送给下游设备之前还包括:
创建序号为确定出的优先级别的子队列,将文件保存到创建的子队列中。
下面通过具体实施例详细说明本发明的方法。
参见图2,该方法包括:
步骤200、接收到来自上游设备的文件。
步骤201、将接收到的文件采用多线程并发的方式保存到内存和硬盘内。
步骤202、确定文件的文件类型和信息摘要算法5(md5,messagedigestalgorithm5)值。
步骤203、在预先保存的文件类型和md5值之间的对应关系中,查找文件类型与确定出的文件类型相同的条目,md5值与确定出的md5值相同的条目,如果查找到,则执行步骤204,如果查找不到,则执行步骤205。
步骤204、统计文件类型与确定出的文件类型相同的条目的第一数量,md5值与确定出的md5值相同的条目的第二数量,计算第一数量和第二数量之间的和值,计算第一数量除以计算得到的和值所得的第一余数,计算第二数量除以计算得到的和值所得的第二余数,计算第一余数和第二余数之间的和值作为文件的优先级别;或者,计算第一余数和第二余数之间的和值作为文件的初始优先级别,对文件的初始优先级别和已经发送给下游设备的文件的初始优先级别进行排序,将排序后文件的初始优先级别对应的下标作为文件的优先级别,继续执行步骤206。
步骤205、确定出文件的优先级别为默认优先级别,继续执行步骤206。
步骤206、在已创建的子队列中查找序号为确定出的优先级别的子队列,如果查找到,则执行步骤207,如果查找不到或未创建任何子队列,则执行步骤208。
步骤207、将文件保存到查找到的子队列的队尾中,并继续执行步骤209。
步骤208、创建序号为确定出的优先级别的子队列,将文件保存到创建的子队列中,并继续执行步骤209。
步骤209、按照序号由小到大的顺序将各子队列中的文件以多线程并发的方式发送给下游设备。
参见图3,本发明还提出了一种实现文件送检的装置,至少包括:
接收模块,用于接收到来自上游设备的文件;
信息存储模块,用于保存接收到的文件;
自学习算法模块,用于确定文件的优先级别;
送检序列模块,用于按照优先级别的先后顺序将文件发送给下游设备。
其中,信息存储模块可以是内存或硬盘等。
本发明的装置中,接收模块具体用于:
通过北向接口接收到来自上游设备的文件;
送检序列模块具体用于:
按照优先级别的先后顺序通过南向接口将文件发送给下游设备。
本发明的装置中,自学习算法模块具体用于:
获取所述文件的预设参数,确定获得的预设参数中用于计算优先级别的参数,根据所述用于计算优先级别的参数计算所述文件的优先级别。
本发明的装置中,自学习算法模块具体用于:
获取所述文件的预设参数,根据预先保存的文件的各预设参数之间的第一对应关系确定第一算法;根据所述第一对应关系采用所述第一算法计算用于确定获取所述计算优先级别的参数的方法的值;在预先设置的值和获取所述计算优先级别的参数的方法之间的第二对应关系中,查找计算得到的用于确定获取计算优先级别的参数的方法的值对应的获取所述计算优先级别的参数的方法;根据查找到的所述获取计算优先级别的参数的方法获取所述计算优先级别的参数,根据所述用于计算优先级别的参数计算所述文件的优先级别;
信息存储模块还用于:
保存第一对应关系和第二对应关系。
本发明的装置中,第二对应关系中还包括:用于计算优先级别的算法;自学习算法模块具体用于:
获取所述文件的预设参数,根据预先保存的文件的各预设参数之间的第一对应关系确定第一算法;根据所述第一对应关系采用所述第一算法计算用于确定获取所述计算优先级别的参数的方法的值;在值和获取所述计算优先级别的参数的方法之间的第二对应关系中,查找计算得到的值对应的获取所述计算优先级别的参数的方法;根据查找到的所述获取计算优先级别的参数的方法获取所述计算优先级别的参数,在所述第二对应关系中查找所述计算得到的值对应的计算优先级别的第二算法,根据所述第一对应关系和所述用于计算优先级别的参数采用查找到的计算优先级别的第二算法计算所述文件的优先级别。
本发明的装置中,送检序列模块具体用于:
在已创建的子队列中查找序号为确定出的优先级别的子队列,将文件保存到查找到的子队列的队尾中;按照序号由大到小或由小到大的顺序将各子队列中的文件发送给下游设备。
本发明的装置中,送检序列模块具体用于:
当在已创建的子队列中查找不到序号为确定出的优先级别的子队列,或未创建任何子队列时,创建序号为确定出的优先级别的子队列,将文件保存到创建的子队列中,按照序号由大到小或由小到大的顺序将各子队列中的文件发送给下游设备。
本发明的装置中,送检序列模块具体用于:
按照优先级别的先后顺序将文件以单线程的方式或多线程并发的方式发送给下游设备。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。