本发明涉及互联网技术领域,特别是涉及一种流量检测规则的生成方法及装置。
背景技术:
随着互联网技术的普及,各种网络应用层出不穷,安全威胁和网络滥用也随之与日俱增,这对快速、可靠地识别出各种流量提出了要求。
目前,一般采用DPI(Deep Packet Inspection,深层数据包检测技术)对流量进行检测,深层数据包检测技术检测流量的规则由以下方式生成:人工对攻击流量的负载进行特征提取,将提取到的特征输入检测引擎中,检测引擎依据自身规则语法,由提取的特征生成流量检测规则。
根据上述方法生成流量检测规则时,提取到的特征越多,流量检测结果越准确,为了提高检测结果的准确度,需要人工提取大量的特征,这使得流量检测规则的生成耗费大量的时间。
技术实现要素:
本发明实施例的目的在于提供一种流量检测规则的生成方法及装置,以减少流量检测规则生成耗费的时间。具体技术方案如下:
一方面,本发明实施例公开了一种流量检测规则的生成方法,应用于电子设备,所述方法包括:
获取针对预设漏洞的至少两条攻击流量的流量文件;所述流量文件至少包括攻击流量中的负载数据;
根据所述攻击流量的协议类型,确定每一攻击流量的请求方和应答方;
将所述预设漏洞的漏洞信息确定为情报指引项;
从所有所述流量文件中提取所有请求方的第一负载数据;
将所有所述第一负载数据和所述情报指引项作为第一输入源,计算得到所有所述第一负载数据的第一最长公共子串;
将所述第一最长公共子串确定为第一特征;
根据所述第一特征,生成第一流量检测规则。
另一方面,本发明实施例公开了一种流量检测规则的生成装置,应用于电子设备,所述装置包括:
获取单元,用于获取针对预设漏洞的至少两条攻击流量的流量文件;所述流量文件至少包括攻击流量中的负载数据;
第一确定单元,用于根据所述攻击流量的协议类型,确定每一攻击流量的请求方和应答方;
第二确定单元,用于将所述预设漏洞的漏洞信息确定为情报指引项;
提取单元,用于从所有所述流量文件中提取所有请求方的第一负载数据;
计算单元,用于将所有所述第一负载数据和所述情报指引项作为第一输入源,计算得到所有所述第一负载数据的第一最长公共子串;
第三确定单元,用于将所述第一最长公共子串确定为第一特征;
第一生成单元,用于根据所述第一特征,生成第一流量检测规则。
本发明实施例提供了一种流量检测规则的生成方法及装置,电子设备获取针对预设漏洞的至少两条攻击流量的流量文件,其中,该流量文件至少包括攻击流量中的负载数据;根据攻击流量的协议类型,确定每一攻击流量的请求方和应答方;将预设漏洞的漏洞信息确定为情报指引项;从所有流量文件中提取所有请求方的第一负载数据;将所有第一负载数据和情报指引项作为第一输入源,计算得到所有第一负载数据的第一最长公共子串;将第一最长公共子串确定为第一特征;根据该第一特征,生成第一流量检测规则。可见,本发明实施例中,生成流量检测规则时,特征的提取无需人工参与,而是由电子设备提取特征,减少了流量检测规则生成耗费的时间。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种流量检测规则的生成方法的一种流程示意图;
图2为本发明实施例提供的一种流量检测规则的生成方法的另一种流程示意图;
图3为本发明实施例提供的一种流量检测规则的生成方法的另一种流程示意图;
图4为本发明实施例提供的一种流量检测规则的生成装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都本发明保护的范围。
下面通过具体实施例,对本发明进行详细说明。
参考图1,图1本发明实施例提供的一种流量检测规则的生成方法的一种流程示意图,应用于电子设备,该方法包括:
S101:获取针对预设漏洞的至少两条攻击流量的流量文件;所述流量文件至少包括攻击流量中的负载数据;
上述预设漏洞为已知漏洞,流量文件可以为pcap文件。当需要生成针对某一已知漏洞的攻击流量的流量检测规则时,可以将该已知漏洞确定为预设漏洞,多次运行该预设漏洞的利用程序,获得至少两条攻击流量,进而生成pcap文件。现有技术中,在获取到攻击流量后,可以默认的生成pcap文件,此处不再赘述。
当然,针对预设漏洞的攻击流量可能已经事先获得了,也就是,已经事先生成了针对预设漏洞的至少两条攻击流量的pcap文件,此时,用户可以直接对已获得的攻击流量进行分类,获得至少两条攻击流量的pcap文件就可以了。
另外,为了保证生成的流量检测规则合理可靠,获得的至少两条攻击流量可以为不同时间的攻击流量。
S102:根据所述攻击流量的协议类型,确定每一攻击流量的请求方和应答方;
为了便于分析攻击流量中的负载数据,需要确定每一攻击流量的请求方和应答方。
一般的,对于每一攻击流量,当该攻击流量对应的协议为TCP(Transmission Control Protocol,传输控制协议)时,可以确定该攻击流量中发送第一个握手报文的一方为请求方,另一方为应答方;当该攻击流量对应的协议为UDP(User Datagram Protocol,用户数据报协议)时,确定该攻击流量中发送第一个报文的一方为请求方,另一方为应答方。
S103:将所述预设漏洞的漏洞信息确定为情报指引项;
这里,漏洞信息可以包括漏洞名称和漏洞详情等信息。漏洞名称可以包括:漏洞的生产商、产品名、模块名\函数名\参数名等。在本发明的一个实施例中,漏洞名称可以作为流量文件的文件名称,例如,漏洞名称.1.pacp。
漏洞详情为针对预设漏洞的信息,可以包括:漏洞类型、漏洞协议和漏洞位置等信息。
S104:从所有所述流量文件中提取所有请求方的第一负载数据;
S105:将所有所述第一负载数据和所述情报指引项作为第一输入源,计算得到所有所述第一负载数据的第一最长公共子串;
这里,最长公共子串(LCS,Longest Common Substring)为:一个字节串,如果字节串分别是两个或多个已知序列的连续子串,且是所有符合此条件子串中最长的,称为已知序列的最长公共子串。例如,当前有3个已知序列,分别为:ABCED、ABFCDH、ABGCFD;其中,这3个已知序列的连续公共部分为AB、C、D,则可以确定这3个已知序列的最长公共子串为AB。
需要说明的是,最长公共子串的求解过程与现有技术相同,此处不再赘述。另外,第一最长公共子串为请求方的负载数据的共同特征。
例如,当前有3个流量文件,分别为1.pcap、2.pcap和3.pcap,从这3个流量文件提取出请求方的第一负载数据有:req_data.1、req_data.2和req_data.3,若情报指引项为intelligence,可以将req_data.1、req_data.2、req_data.3和intelligence合成为一个集合,例如req_set1={req_data.1,req_data.2,req_data.3,intelligence},将req_set1作为第一输入源,计算得到第一负载数据的第一最长公共子串。
S106:将所述第一最长公共子串确定为第一特征;
S107:根据所述第一特征,生成第一流量检测规则。
在确定了第一特征后,可以将第一特征输入到检测引擎中,检测引擎依据自身的规则语法,由第一特征生成针对预设漏洞的第一流量检测规则。该第一流量检测规则为针对请求方的负载数据的流量检测规则,可以对一条流量中的负载数据进行检测,以确定该流量是否为攻击流量。
为了准确的检测流量是否为攻击流量,还可以生成针对应答方的负载数据的流量检测规则。在本发明的其他实施例中还提供了针对应答方的负载数据的流量检测规则的生成方法,可参考图2,在图1的基础上,在将所述预设漏洞的漏洞信息确定为情报指引项之后,上述流量检测规则的生成方法还可以包括:
S201:从所有所述流量文件中提取所有应答方的第二负载数据;
S202:将所有所述第二负载数据和所述情报指引项作为第二输入源,计算得到所有所述第二负载数据的第二最长公共子串;
这里,第二最长公共子串为应答方的负载数据的共同特征。
仍以S105中的例子进行说明,从3个流量文件提取出应答方的第二负载数据有:res_data.1、res_data.2和res_data.3,将res_data.1、res_data.2、res_data.3和intelligence合成为一个集合,例如res_set1={res_data.1,res_data.2,res_data.3,intelligence},将res_set1作为第二输入源,计算得到第二负载数据的第二最长公共子串。
S203:将所述第二最长公共子串确定为第二特征;
这种情况下,S107可以为:
根据所述第一特征生成第一流量检测规则,并根据所述第二特征生成第二流量检测规则。
一般地,可以分别将第一特征和第二特征输入到检测引擎中,检测引擎依据自身的规则语法,由第一特征生成针对预设漏洞的第一流量检测规则,由第二特征生成针对预设漏洞的第二流量检测规则。
需要说明的是,在生成第一流量检测规则和第二流量检测规则后,可以同时采用这两个流量检测规则对流量进行检测,以保证准确地检测出攻击流量;另外,也可以从这两个流量检测规则选择一个较为准确的流量检测规则,对流量进行检测,以提高检测的速度。这里,可以根据生成流量检测规则的特征,确定出较为准确地流量检测规则,例如:第一流量检测规则根据3个特征生成,第二流量检测规则根据2个特征生成,3>2,则可以确定第一流量检测规则较为准确;再如,生成第一流量检测规则的第一特征长度为10,生成第二流量检测规则的第二特征长度为8,10>8,则可以确定第一流量检测规则较为准确。当然,也可以采用其他方式确定较为准确地流量检测规则,本发明实施例对此不进行限定。
为了提高根据流量检测规则检测流量的准确性,可以提取更多的特征,在本发明的其他实施例中,可以在从所有流量文件中提取出所有请求方的第一负载数据之后,将所有第一负载数据作为第三输入源,计算得到所有第一负载数据的第三最长公共子串,将第三最长公共子串确定为第三特征;
在从所有流量文件中提取出所有应答方的第二负载数据之后,将所有第二负载数据作为第四输入源,计算得到所有第二负载数据的第四最长公共子串,将第四最长公共子串确定为第四特征;
这种情况下,根据第一特征和第三特征生成第一流量检测规则,并根据第二特征和第四特征生成第二流量检测规则。
仍以S105中的例子进行说明,可以将req_data.1、req_data.2和req_data.3合成为一个集合,例如req_set2={req_data.1,req_data.2,req_data.3},将req_set2作为第三输入源,计算得到第一负载数据的第三最长公共子串,将该第三最长公共子串确定为第三特征,此时可以根据第一特征和第三特征生成第一流量检测规则;
另外,将res_data.1、res_data.2和res_data.3合成为一个集合,例如res_set2={res_data.1,res_data.2,res_data.3},将res_set2作为第四输入源,计算得到第二负载数据的第四最长公共子串,将该第四最长公共子串确定为第四特征,此时可以根据第二特征和第四特征生成第二流量检测规则。
为了进一步提高根据流量检测规则检测流量的准确性,还可以提取对应限定字节集合的特征,这里,限定字节集合为攻击流量区别与非攻击流量的字节集合。在本发明的其他实施例中,在将预设漏洞的漏洞信息确定为情报指引项之后,可以根据预先存储的限定字节集合和漏洞信息的对应关系,确定情报指引项中的漏洞信息对应的目的限定字节集合。
例如,当预设漏洞的漏洞类型为溢出类型(也就是overflow类型)时,攻击流量中不包括\x00和\x00\x00字节,而非攻击流量中包括\x00和\x00\x00字节,因此可以预先设置溢出类型对应的限定字节集合为:不包括\x00和\x00\x00的字节集合;当预设漏洞的漏洞协议为http(HyperText Transfer Protocol,超文本传输协议)时,攻击流量中http头部包括\x0D\x0A和\x0A,而非攻击流量中http头部不包括\x0D\x0A和\x0A字节,因此可以预先设置http协议对应的限定字节集合为:http头部包括\x0D\x0A和\x0A的字节集合;当预设漏洞的漏洞位置包括URI(Uniform Resource Identifier,统一资源定位标识)时,攻击流量中URI位置包括\x26字节,而非攻击流量中URI位置不包括\x26字节,因此可以预先设置URI位置对应的限定字节集合为:URI位置包括\x26的字节集合;
这种情况下,当确定预设漏洞的漏洞类型为overflow类型时,可以确定目的限定字节集合为:不包括\x00和\x00\x00的字节集合;当确定预设漏洞的漏洞协议为http时,可以确定目的限定字节集合为:http头部包括\x0D\x0A和\x0A的字节集合;当确定预设漏洞的漏洞位置包括URI时,可以确定目的限定字节集合为:URI位置包括\x26的字节集合。当然,预设漏洞也可以满足多个条件,同理,目的限定字节集合可以为满足多个条件的字节集合,例如,当确定预设漏洞的漏洞类型为overflow类型、漏洞协议为http、漏洞位置包括URI时,可以确定目的限定字节集合为:不包括\x00和\x00\x00、http头部包括\x0D\x0A和\x0A、URI位置包括\x26的字节集合。
这种情况下,S107可以包括:
S1071:若所有所述第一负载数据在预设位置处的负载数据都与所述目的限定字节集合匹配,将所述目的限定字节集合确定为请求方的第五特征,根据所述第一特征、所述第三特征和请求方的第五特征,生成第一流量检测规则;否则,根据所述第一特征和所述第三特征生成第一流量检测规则;
S1072:若所有所述第二负载数据在所述预设位置处的负载数据都与所述目的限定字节集合匹配,将所述目的限定字节集合确定为应答方的第五特征,根据所所述第二特征、所述第四特征和应答方的第五特征,生成第二流量检测规则;否则,根据所述第二特征和所述第四特征生成第二流量检测规则。
需要说明的是,为了能够快速确定出所有流量文件中的第一负载数据和所有流量文件中的第二负载数据是否都与目的限定字节集合匹配,上述预设位置的形式可以为进行匹配的负载数据区域的起始位置和结束位置。
为了提高根据流量检测规则检测流量的准确性,可以提取更多的特征,在本发明的其他实施例中,参考图3,在图2的基础上,确定每一攻击流量的请求方和应答方之后,上述流量检测规则的生成方法还可以包括:
S301:从所有所述流量文件中提取请求方和应答方发送的报文的源端口、目的端口和应用层协议,分别生成请求方和应答方的源端口集合、目的端口集合和应用层协议集合;
一般的,可以从所有流量文件中提取请求方发送的报文的源端口、目的端口和应用层协议,确定请求方的源端口集合、目的端口集合和应用层协议集合;从所有流量文件中提取应答方发送的报文的源端口、目的端口和应用层协议,确定应答方的源端口集合、目的端口集合和应用层协议集合。
仍以S105中的例子进行说明,从3个流量文件中提取请求方发送的报文的源端口:req_src_port1、req_src_port2、req_src_port3;从3个流量文件中提取请求方发送的报文的目的端口:req_dst_port1、req_dst_port2、req_dst_port3;从3个流量文件中提取请求方发送的报文的应用层协议:req_proto1、req_proto2、req_proto3;此时可以确定请求方的源端口集合为req_src_port_set={req_src_port1,req_src_port2,req_src_port3},请求方的目的端口集合为req_dst_port_set={req_dst_port1,req_dst_port2,req_dst_port3},请求方的应用层协议集合为req_proto_set={req_proto1,req_proto2,req_proto3};
从3个流量文件中提取应答方发送的报文的源端口:res_src_port1、res_src_port2、res_src_port3;从3个流量文件中提取应答方发送的报文的目的端口:res_dst_port1、res_dst_port2、res_dst_port3;从3个流量文件中提取应答方发送的报文的应用层协议:res_proto1、res_proto2、res_proto3;此时可以确定应答方的源端口集合为res_src_port_set={res_src_port1,res_src_port2,res_src_port3},应答方的目的端口集合为res_dst_port_set={res_dst_port1,res_dst_port2,res_dst_port3},应答方的应用层协议集合为res_proto_set={res_proto1,res_proto2,res_proto3}。
S302:分别判断请求方的源端口集合中所有的源端口、目的端口集合中所有的目的端口和应用层协议集合中所有的应用层协议是否相同;如果有集合中的所有信息都相同的,将所有信息都相同的集合中的信息添加至请求方的报文信息中;如果有集合中的所有信息不都相同的,将所有信息不都相同的集合删除;
若一个集合中所有的信息都相同,则可以确定该集合中的信息可以作为生成流量检测规则的一个特征。
以S301中的例子进行说明,若req_src_port_set={req_src_port1,req_src_port2,req_src_port3}中req_src_port1、req_src_port2、req_src_port3都相同,则可以将req_src_port1、req_src_port2、req_src_port3中任一值添加至请求方的报文信息中;若req_src_port1、req_src_port2、req_src_port3不都相同,可以删除req_src_port_set;
若req_dst_port_set={req_dst_port1,req_dst_port2,req_dst_port3}中req_dst_port1、req_dst_port2、req_dst_port3都相同,则可以将req_dst_port1、req_dst_port2、req_dst_port3中任一值添加至请求方的报文信息中;若req_dst_port1、req_dst_port2、req_dst_port3不都相同,可以删除req_dst_port_set;
若req_proto_set={req_proto1,req_proto2,req_proto3}中req_proto1、req_proto2、req_proto3都相同,则可以将req_proto1、req_proto2、req_proto3中任一值添加至请求方的报文信息中;若req_proto1,req_proto2,req_proto3不都相同,可以删除req_proto_set。
S303:分别判断应答方的源端口集合中所有的源端口、目的端口集合中所有的目的端口和应用层协议集合中所有的应用层协议是否相同;如果有集合中的所有信息都相同的,将所有信息都相同的集合中的信息添加至应答方的报文信息中;如果有集合中的所有信息不都相同的,将所有信息不都相同的集合删除;
以S301中的例子进行说明,若res_src_port_set={res_src_port1,res_src_port2,res_src_port3}中res_src_port1、res_src_port2、res_src_port3都相同,则可以将res_src_port1、res_src_port2、res_src_port3中任一值添加至应答方的报文信息中;若res_src_port1、res_src_port2、res_src_port3不都相同,可以删除res_src_port_set;
若res_dst_port_set={res_dst_port1,res_dst_port2,res_dst_port3}中res_dst_port1、res_dst_port2、res_dst_port3都相同,则可以将res_dst_port1、res_dst_port2、res_dst_port3中任一值添加至应答方的报文信息中;若res_dst_port1、res_dst_port2、res_dst_port3不都相同,可以删除res_dst_port_set;
若res_proto_set={res_proto1,res_proto2,res_proto3}中res_proto1、res_proto2、res_proto3都相同,则可以将res_proto1、res_proto2、res_proto3中任一值添加至应答方的报文信息中;若res_proto1,res_proto2,res_proto3不都相同,可以删除res_proto_set。
需要说明的是,S304可以在S303之前的执行,也可以在S303之后执行,也可以与S303同时执行,本发明实施例对此不进行限定。
S304:将请求方的报文信息确定为第六特征,将应答方的报文信息确定为第七特征;
例如,应答方的报文信息中包括:res_src_port1、res_dst_port1、res_proto1,则将res_src_port1、res_dst_port1、res_proto1确定为第七特征。
这种情况下,S107可以为:
根据所述第一特征和所述第六特征生成第一流量检测规则,并根据所述第二特征和所述第七特征生成第二流量检测规则。
需要说明的是,为了提高根据流量检测规则检测流量的准确性。上述各个实施例可以结合,来生成流量检测规则,也就是,可以根据第一特征、第三特征、请求方的第五特征和第六特征,生成第一流量检测规则;可以根据第二特征、第四特征、应答方的第五特征和第七特征,生成第二流量检测规则。
应用上述实施例,电子设备获取针对预设漏洞的至少两条攻击流量的流量文件,其中,该流量文件包括攻击流量中的负载数据;根据攻击流量的协议类型,确定每一攻击流量的请求方和应答方;将预设漏洞的漏洞信息确定为情报指引项;从所有流量文件中提取所有请求方的第一负载数据;将所有第一负载数据和情报指引项作为第一输入源,计算得到所有第一负载数据的第一最长公共子串;将第一最长公共子串确定为第一特征;根据该第一特征,生成第一流量检测规则。可见,本发明实施例中,生成流量检测规则时,特征的提取无需人工参与,而是由电子设备提取特征,减少了流量检测规则生成耗费的时间。
参考图4,图4为本发明的实施例提供的一种流量检测规则的生成装置的结构示意图,应用于电子设备,所述装置包括:
获取单元401,用于获取针对预设漏洞的至少两条攻击流量的流量文件;所述流量文件至少包括攻击流量中的负载数据;
第一确定单元402,用于根据所述攻击流量的协议类型,确定每一攻击流量的请求方和应答方;
第二确定单元403,用于将所述预设漏洞的漏洞信息确定为情报指引项;
提取单元404,用于从所有所述流量文件中提取所有请求方的第一负载数据;
计算单元405,用于将所有所述第一负载数据和所述情报指引项作为第一输入源,计算得到所有所述第一负载数据的第一最长公共子串;
第三确定单元406,用于将所述第一最长公共子串确定为第一特征;
第一生成单元407,用于根据所述第一特征,生成第一流量检测规则。
在本发明的一个实施例中,所述获取单元401,具体可以用于:
运行预设漏洞的利用程序,获取至少两条攻击流量;生成针对每一攻击流量的流量文件。
在本发明的一个实施例中,所述第一确定单元402,具体可以用于:
对于每一攻击流量,当该攻击流量对应的协议为传输控制协议TCP时,确定发送第一个握手报文的一方为请求方,另一方为应答方;当该攻击流量对应的协议为用户数据报协议UDP时,确定发送第一个报文的一方为请求方,另一方为应答方。
在本发明的一个实施例中,所述提取单元404,还可以用于从所有所述流量文件中提取所有应答方的第二负载数据;
所述计算单元405,还可以用于将所有所述第二负载数据和所述情报指引项作为第二输入源,计算得到所有所述第二负载数据的第二最长公共子串;
所述第三确定单元406,还可以用于将所述第二最长公共子串确定为第二特征;
所述第一生成单元407,具有可以用于:
根据所述第一特征生成第一流量检测规则,并根据所述第二特征生成第二流量检测规则。
在本发明的一个实施例中,所述计算单元405,还可以用于将所有所述第一负载数据作为第三输入源,将所有所述第二负载数据作为第四输入源,分别计算得到所有所述第一负载数据的第三最长公共子串和所有所述第二负载数据的第四最长公共子串;
所述第三确定单元406,还可以用于将所述第三最长公共子串确定为第三特征,将所述第四最长公共子串确定为第四特征;
所述第一生成单元407,具有可以用于:
根据所述第一特征和所述第三特征生成第一流量检测规则,并根据所述第二特征和所述第四特征生成第二流量检测规则。
在本发明的一个实施例中,所述第二确定单元403,还可以用于在将所述预设漏洞的漏洞信息确定为情报指引项之后,根据预先存储的限定字节集合和漏洞信息的对应关系,确定所述情报指引项中的漏洞信息对应的目的限定字节集合;
所述第一生成单元407,具体可以用于:
若所有所述第一负载数据在预设位置处的负载数据都与所述目的限定字节集合匹配,将所述目的限定字节集合确定为请求方的第五特征,根据所述第一特征、所述第三特征和请求方的第五特征,生成第一流量检测规则;否则,根据所述第一特征和所述第三特征生成第一流量检测规则;
若所有所述第二负载数据在所述预设位置处的负载数据都与所述目的限定字节集合匹配,将所述目的限定字节集合确定为应答方的第五特征,根据所所述第二特征、所述第四特征和应答方的第五特征,生成第二流量检测规则;否则,根据所述第二特征和所述第四特征生成第二流量检测规则。
在本发明的一个实施例中,所述漏洞信息可以包括:漏洞类型、漏洞协议和漏洞位置;
所述第二确定单元403,具体可以用于:
当所述预设漏洞的漏洞类型为溢出overflow类型时,确定所述目的限定字节集合为:不包括\x00和\x00\x00的字节集合;
当所述预设漏洞的漏洞协议为超文本传输协议http时,确定所述目的限定字节集合为:http头部包括\x0D\x0A和\x0A的字节集合;
当所述预设漏洞的漏洞位置包括统一资源定位标识URI时,确定所述目的限定字节集合为:URI位置包括\x26的字节集合。
在本发明的一个实施例中,所述流量文件中还可以包括:攻击流量中的请求方和应答方发送的报文的源端口、目的端口、应用层协议;
这种情况下,所述装置还可以包括:
第二生成单元(图4中未示出),用于在根据所述攻击流量的协议类型,确定每一攻击流量的请求方和应答方之后,从所有所述流量文件中提取请求方和应答方发送的报文的源端口、目的端口和应用层协议,分别生成请求方和应答方的源端口集合、目的端口集合和应用层协议集合;
第四确定单元(图4中未示出),用于分别判断请求方的源端口集合中所有的源端口、目的端口集合中所有的目的端口和应用层协议集合中所有的应用层协议是否相同;如果有集合中的所有信息都相同的,将所有信息都相同的集合中的信息添加至请求方的报文信息中;如果有集合中的所有信息不都相同的,将所有信息不都相同的集合删除;
第五确定单元(图4中未示出),用于分别判断应答方的源端口集合中所有的源端口、目的端口集合中所有的目的端口和应用层协议集合中所有的应用层协议是否相同;如果有集合中的所有信息都相同的,将所有信息都相同的集合中的信息添加至应答方的报文信息中;如果有集合中的所有信息不都相同的,将所有信息不都相同的集合删除;
所述第三确定单元406,还可以用于将请求方的报文信息确定为第六特征,将应答方的报文信息确定为第七特征;
所述第一生成单元407,具体可以用于:
根据所述第一特征和所述第六特征生成第一流量检测规则,并根据所述第二特征和所述第七特征生成第二流量检测规则。
应用上述实施例,电子设备获取针对预设漏洞的至少两条攻击流量的流量文件,其中,该流量文件包括攻击流量中的负载数据;根据攻击流量的协议类型,确定每一攻击流量的请求方和应答方;将预设漏洞的漏洞信息确定为情报指引项;从所有流量文件中提取所有请求方的第一负载数据;将所有第一负载数据和情报指引项作为第一输入源,计算得到所有第一负载数据的第一最长公共子串;将第一最长公共子串确定为第一特征;根据该第一特征,生成第一流量检测规则。可见,本发明实施例中,生成流量检测规则时,特征的提取无需人工参与,而是由电子设备提取特征,减少了流量检测规则生成耗费的时间。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。