发明内容
本发明实施例提供一种网络数据流分类方法和装置,以提高对网络上数据业务流进行分类时的准确性。
本发明实施例提供一种网络数据流分类方法,所述方法包括:将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配;若匹配失败,则结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别,所述数据流拓扑特征信息根据类型已识别数据流和/或类型未识别数据流生成。
可选地,在所述将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配之后,所述方法还包括:若匹配成功,则对所述匹配成功的当前数据流的类型进行标记;或者,若将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则所述方法进一步包括:对所述匹配失败的当前数据流维持待分类状态。
可选地,所述方法进一步包括:根据所述匹配失败或匹配成功的当前数据流更新所述数据流拓扑特征信息。
可选地,所述数据流拓扑特征信息包括类型已识别数据流的目的IP地址和目的端口地址;所述结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别包括:将所述当前数据流的目的IP地址和目的端口地址分别与所述数据流拓扑特征信息中类型已识别数据流的目的IP地址和目的端口地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述数据流拓扑特征信息包括类型已识别数据流的源IP地址和目的IP地址;所述结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别包括:将所述当前数据流的源IP地址和目的IP地址分别与所述数据流拓扑特征信息中类型已识别数据流的源IP地址和目的IP地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述数据流拓扑特征信息包括类型已识别数据流的高层协议字段和主机名信息;所述结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别包括:将所述当前数据流的高层协议字段和主机名信息分别与所述数据流拓扑特征信息中类型已识别数据流的高层协议字段和主机名信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述数据流拓扑特征信息包括类型已识别数据流拓扑子图的图论特征信息;所述结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别包括:将所述当前数据流拓扑子图的图论特征信息与所述类型已识别数据流拓扑子图的图论特征信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述方法进一步包括:根据所述匹配成功的当前数据流更新所述数据流特征库。
本发明实施例提供一种网络数据流分类装置,所述装置包括:匹配模块,用于将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配;再识别模块,用于若所述匹配模块将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别,所述数据流拓扑特征信息根据类型已识别数据流和/或类型未识别数据流生成。
可选地,所述装置还包括标记模块和状态维持模块;所述标记模块,用于若所述匹配模块将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配成功,则对所述匹配成功的当前数据流的类型进行标记;所述状态维持模块,用于若所述匹配模块将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则对所述匹配失败的当前数据流维持待分类状态。
可选地,所述装置进一步包括:第一更新模块,用于根据所述匹配失败或匹配成功的当前数据流更新所述数据流拓扑特征信息。
可选地,所述数据流拓扑特征信息包括类型已识别数据流的目的IP地址和目的端口地址;所述再识别模块包括:第一识别单元,用于将所述当前数据流的目的IP地址和目的端口地址分别与所述数据流拓扑特征信息中类型已识别数据流的目的IP地址和目的端口地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述数据流拓扑特征信息包括类型已识别数据流的源IP地址和目的IP地址;所述再识别模块包括:第二识别单元,用于将所述当前数据流的源IP地址和目的IP地址分别与所述数据流拓扑特征信息中类型已识别数据流的源IP地址和目的IP地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述数据流拓扑特征信息包括类型已识别数据流的高层协议字段和主机名信息;所述再识别模块包括:第三识别单元,用于将所述当前数据流的高层协议字段和主机名信息分别与所述数据流拓扑特征信息中类型已识别数据流的高层协议字段和主机名信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述数据流拓扑特征信息包括类型已识别数据流拓扑子图的图论特征信息;所述再识别模块包括:第四识别单元,用于将所述当前数据流拓扑子图的图论特征信息与所述类型已识别数据流拓扑子图的图论特征信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
可选地,所述装置进一步包括:第二更新模块,用于根据所述匹配成功的当前数据流更新所述数据流特征库。
从上述本发明实施例可知,由于将一条数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配,从而初步识别该数据流的类型。在初步识别出该数据流的类型后,可以结合数据流拓扑特征信息,采用启发式规则对所述数据流的类型再次识别。与现有技术基于知名端口的网络数据流分类方法相比,本发明实施例提供的方法在初次识别时保留了业务分类精确的优点,并凭借初次识别得到的业务分类可靠的分类结果实现了高效的启发式数据流识别,即使对那些负载加密的数据流也能够进行业务类型的识别,同时拥有反馈迭代学习能力,较之现有技术实现了数据流识别更高的准确率和分类覆盖率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图1,是本发明实施例提供的网络数据流分类方法流程示意图,主要包括步骤S101和步骤S102:
S101,将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配。
对于Internet应用的数据流,一种类型的数据流一般具有区别于另一种类型的数据流的特征,有的是以协议特征字加以区别,有的是以特殊值开头,有的是以特殊值结尾等等。在本发明实施例中,可以根据各种类型已经识别出来的数据流的特征,事先制作一个数据流特征库。例如,可按照数据流的业务流行度(即该数据流在网络中的比重),在数据流特征库中存放事先已经准确识别的业务的应用层特征字段,从而构成数据流特征库。每当接收完一个数据流时,则将当前接收到的数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配。
在数据流分类领域,由于深度包检测(Deep Packet Inspection,DPI)技术的误判率和错判率比较低,因此,在本发明实施例中,可以使用DPI,提取当前数据流的特征,遍历数据流特征库,将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配,并通过正则匹配等方法识别当前数据流的类型。例如,若当前数据流的握手(Handshake)协议特征字为“BitTorrent Protocol”,则使用DPI提取到该特征字,并遍历数据流特征库。若数据流特征库存放有已识别出来的BitTorrent业务的特征字段,则当前数据流与BitTorrent业务匹配,识别出当前数据流是BitTorrent业务数据流。再如,若当前数据流以“0x02”开始、以“0x03”结尾,则使用DPI提取到当前数据流的开始字段和结尾字段,并遍历数据流特征库。若数据流特征库存放有已识别出来的即时通信(Instant Messenger,IM)中的QQ业务的特征字段,则当前数据流与QQ业务匹配,识别出当前数据流是QQ业务数据流。
在前述实施例中,若将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配成功,则对所述匹配成功的当前数据流的类型进行标记,即,标记出该当前数据流是什么类型的业务数据流。与此同时,也可以根据所述匹配成功的当前数据流更新所述数据流特征库。其他任何类型已识别的数据流可以做同样的用处,例如,若经过成功匹配,某协议应用层数据负载始终包含某个字段,则经验证后,可将该字段加入数据流特征库以更新数据流特征库,从而方便之后的数据流的识别。
若将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则对所述匹配失败的当前数据流维持在“待分类”状态,以便后续采用其他方法进行再识别。
作为本发明一个实施例,在对匹配失败的当前数据流维持在“待分类”状态时,可以通过数据流表实现。如下表1所示,是本发明实施例提供的一个数据流表。
表1
在上述表1中,表项“序号”主要起索引的作用;表项“五元组信息”记录了数据包的源IP、目的IP、源端口号、目的端口号和协议类型,由数据流的“五元组信息”可以生成“流哈希”;表项“流哈希”用以标示不同的数据流(数据流有方向性,但本发明对流哈希的选择不做限制);表项“最后到达的数据包时间戳”记录一个数据流中最后一个到达的数据包的时间戳,用以设计超时重建新数据流之用,即在接收一个数据流的数据包时定时作检查,若发现最后到达的数据包时间戳距离当前时间超过一定阈值,则标记该数据流为超时,在此数据包之后到达的数据包,即使其五元组信息与之前到达的数据包的五元组信息相同,也视为是新的数据流的数据包,需要为其创建一个新的数据流记录,即,在数据流表中重新记录一个数据流的“序号”、“流哈希”、“五元组信息”、“最后到达的数据包时间戳”和“分类状态”等表项;表项“分类状态”包括一个数据流的两种状态,即“待分类”状态和“既定的流量业务类型”状态,其中,“待分类”状态使用c(0)标记,“既定的流量业务类型”状态使用c(1~n)分别标识各种既定的流量业务类型。例如,前述实施例中,若将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则对所述匹配失败的当前数据流维持待分类状态,可通过在表1示例的数据流表中将当前数据流的“分类状态”表项标记为c(0)来实现。
为方便在系统的内部调用,可以根据分类状态的不同设计为多个或者不同的数据结构来实现表1示例的数据流表。
S102,若匹配失败,则结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别,所述数据流拓扑特征信息根据类型已识别数据流和/或类型未识别数据流生成。
步骤S101是对数据流的初步识别或分类,这种方法有可能无法识别出某些特殊类型的数据流。例如,随着人们对网络安全性意识的提高,网络加密和/或隐私保护越来越受到人们的关注,网络上的数据流其数据包负载很多经过了加密,因此,步骤S101示例的数据流的初步识别或分类方法不一定能够发挥作用。
在本发明实施例中,若将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则可以结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别,所用到的数据流拓扑特征信息根据类型已识别数据流和/或类型未识别数据流生成。
数据流拓扑特征信息可以是数据流拓扑特征表的形式存在,其中记录的信息可以是结合图论只是后得出的一些数据,例如,出入度和团节点比例等,也可以是数据流五元组信息的子集,例如,仅仅记录数据包的目的IP地址和目的端口号,或者仅仅记录数据包的源IP地址和目的IP地址等等。
若数据流拓扑特征表记录了类型已识别数据流的目的IP地址和目的端口地址,则作为结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别的一个实施例,可以将所述当前数据流的目的IP地址和目的端口地址分别与所述数据流拓扑特征信息中类型已识别数据流的目的IP地址和目的端口地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
若数据流拓扑特征表记录了类型已识别数据流的源IP地址和目的IP地址,则作为结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别的另一个实施例,可以将所述当前数据流的源IP地址和目的IP地址分别与所述数据流拓扑特征信息中类型已识别数据流的源IP地址和目的IP地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
上述根据数据流拓扑特征表中记录的数据包的目的IP地址和目的端口号或者数据包的源IP地址和目的IP地址识别当前数据流的类型,其依据是一个服务器地址一般只会提供一种业务,例如,WEB服务器上一般只会提供HTTP数据流HTTPS数据流,而VoIP服务器上一般只会提供基于TCP的RTSP数据流和用于传输数据的UDP数据流。
若数据流拓扑特征信息包括类型已识别数据流的高层协议字段和主机名(Hostname)信息,则作为结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别的另一个实施例,可以将所述当前数据流的高层协议字段和主机名信息分别与所述数据流拓扑特征信息中类型已识别数据流的高层协议字段和主机名信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。例如,以数据流为单位,通过对该数据流的Hostname字段分析得知该数据流是一次与MSN服务器交互的信息。若结合数据流拓扑特征信息识别出该数据流为HTTPS协议流,即MSN服务器提供的MSN Message(MSN聊天信息)。由于MSN服务器向外界提供的服务有限,包括邮件服务、网站服务和MSN Message服务等,其中,邮件服务需采用HTTP协议而非HTTPS协议,而MSN Message服务采用的是HTTPS协议。因此,若当前数据流的高层协议字段与上述类型已识别出数据流(HTTPS协议流)匹配,则判断当前数据流也是HTTPS协议流,属于MSN Message应用。
在本发明实施例中,数据流拓扑特征信息还可以是包括类型已识别数据流拓扑子图的图论特征信息,例如,拓扑子图的平均节点度、最大节点度、出入边比例、最大团结点数比例和平均路的长度等等,其中,平均节点度是表征主机活跃程度的参数,而最大节点度对应的节点通常是DNS或者异常攻击的目标节点。
若数据流拓扑特征信息包括类型已识别数据流拓扑子图的图论特征信息,则作为结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别的另一个实施例,可以将所述当前数据流拓扑子图的图论特征信息与所述类型已识别数据流拓扑子图的图论特征信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
上述根据数据流拓扑子图的图论特征信息识别未知的数据流,适用对象将不再是单条数据流,而是由一定数量的数据流所组成的拓扑结构。如果将所有的数据流组成拓扑图,那么其中有通信或者通信关联较集中的拓扑子图将是分类的对象。这个拓扑子图的一些图论特征信息,例如,平均节点度和最大团包含的节点数比例等等才是真正的分类依据。
举例而言,需要设计启发式规则识别未知的P2P应用。假设BitTorrent应用在某个DPI系统下,通过将当前BitTorrent数据流(匹配前不知道是BitTorrent数据流)的至少一个特征与数据流特征库保存的BitTorrent数据流的特征进行匹配,可以完成识别,然而,其他P2P应用则暂时不能识别。若将BitTorrent数据流组成拓扑图并分析其中的拓扑子图,得到类似平均节点度占子图节点数比例和最大团节点数比例等数值,或者,事先通过大量实验获取这些平均节点度占子图节点数比例和最大团节点数比例等的经验值。然后,将未知数据流组成拓扑图,并分析其中关联性大的拓扑子图的各项特征,通过诸如机器学习的方法将未知数据流的拓扑子图的各项特征与BitTorrent数据流组成的拓扑子图的各项特征进行匹配,如果匹配成功,则认为该未知数据流的拓扑子图的节点运行有P2P应用,即,识别该未知数据流是P2P类型的数据流。
在本发明实施例中,无论当前数据流匹配成功还是失败,即,无论当前数据流是否通过将其至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配而识别出类型,都可以根据所述匹配失败或匹配成功的当前数据流更新所述数据流拓扑特征信息。也就是说,数据流拓扑特征信息是根据所有数据流并按照启发式策略来维护,当接收到新的数据流时,可以根据这些新的数据流来更新数据流拓扑特征信息以及改进启发式规则等等。
从上述本发明实施例提供的网络数据流分类方法可知,由于将一条数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配,从而初步识别该数据流的类型。在初步识别出该数据流的类型后,,可以结合数据流拓扑特征信息,采用启发式规则对所述数据流的类型再次识别。与现有技术基于知名端口的网络数据流分类方法相比,本发明实施例提供的方法在初次识别时保留了业务分类精确的优点,并凭借初次识别得到的业务分类可靠的分类结果实现了高效的启发式数据流识别,即使对那些负载加密的数据流也能够进行业务类型的识别,同时拥有反馈迭代学习能力,较之现有技术实现了数据流识别更高的准确率和分类覆盖率。
请参阅附图2,是本发明实施例提供的网络数据流分类装置结构示意图。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图2示例的网络数据流分类装置包括匹配模块201和再识别模块202,其中:
匹配模块201,用于将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配。
再识别模块202,用于若所述匹配模块201将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别,所述数据流拓扑特征信息根据类型已识别数据流和/或类型未识别数据流生成。
从上述本发明实施例提供的网络数据流分类装置可知,由于匹配模块将一条数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配,从而初步识别该数据流的类型。在初步识别出该数据流的类型后,再识别模块可以结合数据流拓扑特征信息,采用启发式规则对所述数据流的类型再次识别。与现有技术基于知名端口的网络数据流分类方法相比,本发明实施例提供的方法在初次识别时保留了业务分类精确的优点,并凭借初次识别得到的业务分类可靠的分类结果实现了高效的启发式数据流识别,即使对那些负载加密的数据流也能够进行业务类型的识别,同时拥有反馈迭代学习能力,较之现有技术实现了数据流识别更高的准确率和分类覆盖率。
需要说明的是,以上网络数据流分类装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述网络数据流分类装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的匹配模块,可以是具有执行前述将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配的硬件,例如匹配器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的再识别模块,可以是具有执行前述若所述匹配模块(匹配器)将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别功能的硬件,例如再识别器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
对于Internet应用的数据流,一种类型的数据流一般具有区别于另一种类型的数据流的特征,有的是以协议特征字加以区别,有的是以特殊值开头,有的是以特殊值结尾等等。可以根据各种类型已经识别出来的数据流的特征,事先制作一个数据流特征库。例如,可按照数据流的业务流行度(即该数据流在网络中的比重),在数据流特征库中存放事先已经准确识别的业务的应用层特征字段,从而构成数据流特征库。每当接收完一个数据流时,匹配模块201将当前接收到的数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配。
在数据流分类领域,由于深度包检测(Deep Packet Inspection,DPI)技术的误判率和错判率比较低,因此,在本发明实施例中,匹配模块201可以使用DPI,提取当前数据流的特征,遍历数据流特征库,将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配,并通过正则匹配等方法识别当前数据流的类型。例如,若当前数据流的握手(Handshake)协议特征字为“BitTorrent Protocol”,则匹配模块201使用DPI提取到该特征字,并遍历数据流特征库。若数据流特征库存放有已识别出来的BitTorrent业务的特征字段,则当前数据流与BitTorrent业务匹配,匹配模块201识别出当前数据流是BitTorrent业务数据流。再如,若当前数据流以“0x02”开始、以“0x03”结尾,则匹配模块201使用DPI提取到当前数据流的开始字段和结尾字段,并遍历数据流特征库。若数据流特征库存放有已识别出来的即时通信(InstantMessenger,IM)中的QQ业务的特征字段,则当前数据流与QQ业务匹配,匹配模块201识别出当前数据流是QQ业务数据流。
附图2示例的网络数据流分类装置还可以包括标记模块301和状态维持模块302,如附图3所示本发明另一实施例提供的网络数据流分类装置,其中:
标记模块301,用于若所述匹配模块201将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配成功,则对所述匹配成功的当前数据流的类型进行标记,即,标记出该当前数据流是什么类型的业务数据流。
状态维持模块302,用于若所述匹配模块201将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则对所述匹配失败的当前数据流维持待分类状态,以便后续采用其他方法进行再识别。
状态维持模块302在对匹配失败的当前数据流维持在“待分类”状态时,可以通过表1示例的数据流表实现,例如,若匹配模块201将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则状态维持模块302对所述匹配失败的当前数据流维持待分类状态,可通过在表1示例的数据流表中将当前数据流的“分类状态”表项标记为c(0)来实现。
附图2示例的网络数据流分类装置还可以包括标记模块301和状态维持模块302,如附图3所示本发明另一实施例提供的网络数据流分类装置,其中:
标记模块301,用于若所述匹配模块201将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配成功,则对所述匹配成功的当前数据流的类型进行标记,即,标记出该当前数据流是什么类型的业务数据流。
状态维持模块302,用于若所述匹配模块201将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则对所述匹配失败的当前数据流维持待分类状态,以便后续采用其他方法进行再识别。
状态维持模块302在对匹配失败的当前数据流维持在“待分类”状态时,可以通过表1示例的数据流表实现,例如,若匹配模块201将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配失败,则状态维持模块302对所述匹配失败的当前数据流维持待分类状态,可通过在表1示例的数据流表中将当前数据流的“分类状态”表项标记为c(0)来实现。
附图3示例的网络数据流分类装置还可以包括第一更新模块401,如附图4所示本发明另一实施例提供的网络数据流分类装置。第一更新模块401用于根据所述匹配失败或匹配成功的当前数据流更新所述数据流拓扑特征信息。无论当前数据流是否通过将其至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配而识别出类型,第一更新模块401都可以根据所述匹配失败或匹配成功的当前数据流更新所述数据流拓扑特征信息。也就是说,数据流拓扑特征信息是根据所有数据流并按照启发式策略来维护,当接收到新的数据流时,第一更新模块401可以根据这些新的数据流来更新数据流拓扑特征信息以及改进启发式规则等等。
对于附图2示例的网络数据流分类装置,数据流拓扑特征信息可以是数据流拓扑特征表的形式存在,其中记录的信息可以是结合图论只是后得出的一些数据,例如,出入度和团节点比例等,也可以是数据流五元组信息的子集,例如,仅仅记录数据包的目的IP地址和目的端口号,或者仅仅记录数据包的源IP地址和目的IP地址等等。
若数据流拓扑特征表记录了类型已识别数据流的目的IP地址和目的端口地址,则附图2示例的再识别模块202可以包括第一识别单元501,如附图5所示本发明另一实施例提供的网络数据流分类装置。第一识别单元501用于将所述当前数据流的目的IP地址和目的端口地址分别与所述数据流拓扑特征信息中类型已识别数据流的目的IP地址和目的端口地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
若数据流拓扑特征表记录了类型已识别数据流的源IP地址和目的IP地址,则附图2示例的再识别模块202可以包括第二识别单元601,如附图6所示本发明另一实施例提供的网络数据流分类装置。第二识别单元601用于将所述当前数据流的源IP地址和目的IP地址分别与所述数据流拓扑特征信息中类型已识别数据流的源IP地址和目的IP地址匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
若数据流拓扑特征表记录了类型已识别数据流的高层协议字段和主机名信息,则附图2示例的再识别模块202可以包括第三识别单元701,如附图7所示本发明另一实施例提供的网络数据流分类装置。第三识别单元701用于将所述当前数据流的高层协议字段和主机名(Hostname)信息分别与所述数据流拓扑特征信息中类型已识别数据流的高层协议字段和主机名信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。例如,以数据流为单位,第三识别单元701通过对该数据流的Hostname字段分析得知该数据流是一次与MSN服务器交互的信息。若第三识别单元701结合数据流拓扑特征信息识别出该数据流为HTTPS协议流,即MSN服务器提供的MSNMessage(MSN聊天信息)。由于MSN服务器向外界提供的服务有限,包括邮件服务、网站服务和MSN Message服务等,其中,邮件服务需采用HTTP协议而非HTTPS协议,而MSN Message服务采用的是HTTPS协议。因此,若当前数据流的高层协议字段与上述类型已识别出数据流(HTTPS协议流)匹配,则第三识别单元701判断当前数据流也是HTTPS协议流,属于MSN Message应用。
对于附图2示例的网络数据流分类装置,数据流拓扑特征信息还可以是包括类型已识别数据流拓扑子图的图论特征信息,例如,拓扑子图的平均节点度、最大节点度、出入边比例、最大团结点数比例和平均路的长度等等,其中,平均节点度是表征主机活跃程度的参数,而最大节点度对应的节点通常是DNS或者异常攻击的目标节点。
若数据流拓扑特征信息包括类型已识别数据流拓扑子图的图论特征信息,则附图2示例的再识别模块202可以包括第四识别单元801,如附图8所示本发明另一实施例提供的网络数据流分类装置。第四识别单元801用于将所述当前数据流拓扑子图的图论特征信息与所述类型已识别数据流拓扑子图的图论特征信息匹配,若匹配成功,则判断所述当前数据流与所述类型已识别数据流为同种类型的数据流。
上述第四识别单元801根据数据流拓扑子图的图论特征信息识别未知的数据流,适用对象将不再是单条数据流,而是由一定数量的数据流所组成的拓扑结构。如果将所有的数据流组成拓扑图,那么其中有通信或者通信关联较集中的拓扑子图将是分类的对象。这个拓扑子图的一些图论特征信息,例如,平均节点度和最大团包含的节点数比例等等才是真正的分类依据。举例而言,需要设计启发式规则识别未知的P2P应用。假设BitTorrent应用在某个DPI系统下,匹配模块201通过将当前BitTorrent数据流(匹配前不知道是BitTorrent数据流)的至少一个特征与数据流特征库保存的BitTorrent数据流的特征进行匹配,可以完成识别,然而,其他P2P应用则暂时不能识别。若将BitTorrent数据流组成拓扑图并分析其中的拓扑子图,得到类似平均节点度占子图节点数比例和最大团节点数比例等数值,或者,事先通过大量实验获取这些平均节点度占子图节点数比例和最大团节点数比例等的经验值。然后,将未知数据流组成拓扑图,并分析其中关联性大的拓扑子图的各项特征,通过诸如机器学习的方法,第四识别单元801将未知数据流的拓扑子图的各项特征与BitTorrent数据流组成的拓扑子图的各项特征进行匹配,如果匹配成功,则认为该未知数据流的拓扑子图的节点运行有P2P应用,即,识别该未知数据流是P2P类型的数据流。
附图3示例的网络数据流分类装置还可以包括第二更新模块901,如附图9所示本发明另一实施例提供的网络数据流分类装置。第二更新模块901用于根据所述匹配成功的当前数据流更新所述数据流特征库。其他任何类型已识别的数据流可以被第二更新模块901作同样的用处,例如,若经过成功匹配,某协议应用层数据负载始终包含某个字段,则经验证后,第二更新模块901可将该字段加入数据流特征库以更新数据流特征库,从而方便之后的数据流的识别。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,比如以下各种方法的一种或多种或全部:
将当前数据流的至少一个特征与数据流特征库保存的类型已识别数据流的特征进行匹配;
若匹配失败,则结合数据流拓扑特征信息,采用启发式规则对所述当前数据流的类型再次识别,所述数据流拓扑特征信息根据类型已识别数据流和/或类型未识别数据流生成。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例提供的一种网络数据流分类方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。