CN112564991A - 应用识别方法、装置及存储介质 - Google Patents
应用识别方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112564991A CN112564991A CN201910853338.4A CN201910853338A CN112564991A CN 112564991 A CN112564991 A CN 112564991A CN 201910853338 A CN201910853338 A CN 201910853338A CN 112564991 A CN112564991 A CN 112564991A
- Authority
- CN
- China
- Prior art keywords
- service
- port
- services
- address
- determining
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000001914 filtration Methods 0.000 claims description 14
- 230000000737 periodic effect Effects 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000004927 fusion Effects 0.000 claims description 2
- 230000003447 ipsilateral effect Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 23
- 230000008569 process Effects 0.000 description 30
- 230000003595 spectral effect Effects 0.000 description 22
- 239000011159 matrix material Substances 0.000 description 21
- 230000006399 behavior Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 101100094867 Mus musculus Scgb2b20 gene Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
- H04L41/5025—Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种应用识别方法、装置及存储介质,属于通信技术领域。网络设备对流表进行流行为特征的分析,得到多个服务。由于每个服务由一个IP地址和一个端口标识构成,且一个应用通常可以由一组服务构成,因此,网络设备根据流表和域名表,对该多个服务进行聚类,得到多个应用类型,每个应用类型包括多个服务,且每个应用类型对应一个应用。进一步地,网络设备可以确定该多个应用类型中每个应用类型的标签,通过该标签可以识别数据流所属的应用。本申请提供的方法根据流行为特征即可识别数据流所属的应用,不需要流量特征数据库。当有新应用出现时,网络设备根据新应用访问的服务端的IP地址和端口,对新应用进行识别,提高了应用的识别率。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种应用识别方法、装置及存储介质。
背景技术
目前,企业园区等私有网络可能会因突发流量的出现而带来拥塞丢包等问题。同时,一些新增未知应用的上线,可能会进一步加剧上述问题。其中,新增未知应用通常为企业的私有应用,因此,如何对企业的私有应用进行识别已经成为企业用户关注的重要问题之一。
当前,可以采用深度报文解析(deep packet inspection,DPI)技术对应用进行识别。其中,DPI技术主要是对数据流进行深度拆包解析,以提取流量特征,然后将提取的流量特征与存储的流量特征数据库中的数据进行匹配,以识别该数据流对应的应用。
由于DPI技术需要维护一个流量特征数据库,当有新的应用出现时,流量特征数据库也要人为更新才能具有新应用的识别能力,导致应用的识别率较低。
发明内容
本申请提供了一种应用识别方法、装置及存储介质,可以解决相关技术的DPI技术识别应用效率较低问题。所述技术方案如下:
第一方面,提供了一种应用识别方法,所述方法包括:
对多条数据流分别提取特征,得到流表和域名表,所述流表包括多个流表项,所述多个流表中的每个流表项包括五元组和流起始时间,所述域名表包括多个域名表项,所述多个域名表项中的每个域名表项包括源互联网协议IP地址、目的域名、目的IP地址和域名类型;
根据所述流表进行流行为特征的分析,得到多个服务,每个服务由一个IP地址和一个端口标识构成;
根据所述流表和所述域名表,对所述多个服务进行聚类,得到多个应用类型;
确定所述多个应用类型中每个应用类型对应的标签,所述标签用于识别数据流所属的应用。
一条数据流可以包括一个或多个报文,且该一个或多个报文的五元组相同。换句话说,五元组相同的一个或多个报文可以构成一条数据流。
其中,流表中的五元组包括源IP地址、源端口、目的IP地址、目的端口和协议号。示例性地,假设客户端当前需要向服务端发送报文,那么,源IP地址和源端口为客户端的IP地址和端口,目的IP地址和目的端口为服务端的IP地址和端口,协议号为客户端和服务端通信时所采用的传输协议的编号。
每条数据流的流起始时间是每条数据流中的第一个报文的接收时间。但是,每条数据流的第一个报文并不一定是整个数据流的首报文,而是当前提取特征时接收到的报文中的第一个报文。
域名表中的域名类型有两种形式:A.name和C.name,A.name是将主机名或者域名解析到一个IP地址,C.name是将多个主机名或者域名都可以解析到另一个域名,再由另一个域名解析到一个IP地址,这个IP地址与A.name解析到的IP地址相同。也就是说,多个C.name相当于一个A.name的分支。
通过对流表进行流行为特征的分析,得到多个服务。由于每个服务由一个IP地址和一个端口标识构成,且一个应用通常可以由一组服务构成,因此,根据流表和域名表,对该多个服务进行聚类之后,可以得到多个应用类型,每个应用类型包括多个服务,且每个应用类型对应一个应用。此时,可以确定该多个应用类型中每个应用类型的标签,从而通过该标签可以识别数据流所属的应用。可以看出,在识别应用的过程并不需要流量特征数据库,而是根据流行为特征即可识别,这样,当有新应用出现时,可以直接根据这个新应用访问的服务端的IP地址和端口,对该新应用进行识别,从而提高了应用的识别率。
可选地,所述根据所述流表进行流行为特征的分析,得到多个服务,包括:
根据所述流表确定具有环路的端口,得到环路端口集;
基于所述环路端口集,根据所述流表确定单客户端访问服务集和第一多客户端访问服务集,所述单客户端访问服务集中的每个服务被单客户端访问、服务的IP地址和端口属于同一端、且端口不属于所述环路端口集,所述第一多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于同一端、且端口不属于所述环路端口集;
基于所述环路端口集和所述第一多客户端访问服务集,根据所述流表确定第二多客户端访问服务集,所述第二多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于不同端、且端口不属于所述环路端口集;
将所述第一多客户端访问服务集、所述第二多客户端访问服务集和所述单客户端访问服务集进行合并,得到所述多个服务。
可选地,所述根据所述流表确定具有环路的端口,包括:
对于所述流表中的每个端口,根据所述流表获取所述端口的同端IP地址集合和对端IP地址集合;
确定所述端口的同端IP地址集合和对端IP地址集合的交集,得到多个IP地址;
根据所述流表,确定经由所述端口的所有数据流中所述多个IP地址对应的数据流的总流数,将确定的总流数作为第一总流数;
如果所述第一总流数大于第一阈值,则确定经由所述端口的所有数据流的总流数,将确定的总流数作为第二总流数;
如果所述第一总流数与所述第二总流数之间的比值大于第二阈值,则确定所述端口为具有环路的端口。
该端口的同端IP地址集合是指与该端口属于同一侧的IP地址的集合,该端口的对端IP地址集合是指与该端口属于不同侧的IP地址的集合。环路端口是指经由该端口的大部分数据流的源端IP和目的端IP相同,也即是,经由该端口的大部分数据流的源端设备和目的设备为同一设备。
通常情况下,通过同端IP地址集合和对端IP地址集合的交集确定的多个IP地址为既作为源端又作为目的端的这些设备的IP地址,在这种情况下,可以认为该端口为具有环路的潜在端口。为了进一步验证该端口是否为具有环路的端口,可以确定第一总流数,如果第一总流数大于第一阈值,那么,可以进一步确定第二总流数,以及第一总流数与第二总流数之间的比值,如果该比值大于第二阈值,那么可以表明经由该端口的大部分数据流的源端IP和目的端IP相同,也即是,经由该端口的大部分数据流的源端设备和目的设备为同一设备,进而可以确定该端口为具有环路的端口。
可选地,所述基于所述环路端口集,根据所述流表确定单客户端访问服务集和第一多客户端访问服务集,包括:
根据所述流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务,得到单客户端访问潜在服务集和第一多客户端访问潜在服务集;
从所述单客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述单客户端访问服务集,从所述第一多客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述第一多客户端访问服务集。
可选地,所述根据所述流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务,包括:
根据所述流表确定多个目标服务,每个目标服务对应一个流表项中属于同一端的IP地址和端口,且每个目标服务对应多条数据流;
对于所述多个目标服务中的每个目标服务,确定所述目标服务的端口是否为随机产生的;
如果所述目标服务的端口是随机产生的,则确定所述目标服务的IP地址对应的同侧端口数量是否大于第三阈值;
如果所述目标服务的IP地址对应的同侧端口数量大于所述第三阈值,则确定所述目标服务对应的对端数量是否大于第四阈值;
如果所述目标服务对应的对端数量大于所述第四阈值,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务;
如果所述目标服务对应的对端数量不大于所述第四阈值,则确定所述目标服务的对端IP地址是否唯一;
如果所述目标服务的对端IP地址唯一,则确定所述目标服务为被单客户端访问且IP地址和端口属于同一端的服务。
在流表中,如果有多条数据流对应一个流表项中属于同一端的IP地址和端口,那么可以将该IP地址和端口作为目标服务。也即是,一个目标服务可能由源IP地址和源端口构成的,也可能由目的IP地址和目的端口构成的。
上述目标服务对应一个流表项中属于同一端的IP地址和端口,且目标服务对应多条数据流,也即是,在流表中,如果有多条数据流对应一个流表项中属于同一端的IP地址和端口,那么可以将该IP地址和端口作为目标服务。比如,流表中有多条数据流对应一个流表项中的目的IP地址和目的端口,那么可以将该目的IP地址和目的端口确定为目标服务。同理,如果流表中有多条数据流对应一个流表项中的源IP地址和源端口,那么可以将该源IP地址和源端口确定为目标服务。
由于目标服务对应一个流表项中属于同一端的IP地址和端口,且目标服务对应多条数据流,也即是,目标服务的IP地址和端口可能为服务端的IP地址和端口,换句话说,目标服务可能是被多客户端访问且IP地址和端口属于同一端的服务,此时,为了进一步确认目标服务是否为被多客户端访问且IP地址和端口属于同一端的服务,还可以确定目标服务的端口是否为随机产生的。如果该目标服务的端口是随机产生的,此时还不能确认该目标服务是否为被多客户端访问且IP地址和端口属于同一端的服务,还需要确定该目标服务的IP地址对应的同侧端口数量是否大于第三阈值。
可选地,所述确定所述目标服务的端口是否为随机产生的之后,还包括:
如果所述目标服务的端口不是随机产生的,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
如果该目标服务的端口的端口号小于1024,则确定该端口为知名端口,也即是,该端口不是随机产生的。如果该目标服务的端口的端口号大于1024,则确定该端口是随机产生的。
可选地,所述确定所述目标服务的IP地址对应的同侧端口数量是否大于第三阈值之后,还包括:
如果所述目标服务的IP地址对应的同侧端口数量不大于所述第三阈值,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
可选地,所述基于所述环路端口集和所述第一多客户端访问服务集,根据所述流表确定第二多客户端访问服务集,包括:
基于所述第一多客户端访问服务集,根据所述流表,确定被多客户端访问且IP地址和端口属于不同端的服务,得到第二多客户端访问潜在服务集;
从所述第二多客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述第二多客户端访问服务集。
可选地,所述基于所述第一多客户端访问服务集,根据所述流表,确定被多客户端访问且IP地址和端口属于不同端的服务,包括:
将所述流表中位于同一流表项且属于不同端的IP地址和端口确定为一个参考服务,得到多个参考服务;
对于所述多个参考服务中的每个参考服务,确定所述参考服务是否对应多条数据流;
如果所述参考服务对应多条数据流,则确定所述参考服务的端口是否为随机产生的;
如果所述参考服务的端口不是随机产生的,则确定所述参考服务的端口是否包含在所述第一多客户端访问服务集中;
如果所述参考服务的端口未包含在所述第一多客户端访问服务集中,则确定所述参考服务的IP地址是否包含在所述域名表的源IP地址中;
如果所述参考服务的IP地址未包含在所述域名表的源IP地址中,则确定所述参考服务为被多客户端访问且IP地址和端口属于不同端的服务。
参考服务也是由一个IP地址和端口组成,但参考服务的IP地址和端口是不同端的,比如,同一个流表项中的目的IP地址和源端口可以构成一个参考服务,同一个流表项中的源IP地址和目的端口也可以构成一个参考服务。
上述参考服务也是由一个IP地址和端口组成,但与目标服务不同的是,参考服务的IP地址和端口是不同端的,比如,同一个流表项中的目的IP地址和源端口可以构成一个参考服务,同一个流表项中的源IP地址和目的端口也可以构成一个参考服务。
在某些情况下,根据特征提取后得到的流表中可能会发生源IP地址与目的IP地址颠倒的情况,导致构成参考服务的源IP地址可能错为目的IP地址,或者目的IP地址错为源IP地址,进而无法判断参考服务中的IP地址和端口是否为同一流表项中属于不同端的IP地址和端口,但域名表中的源IP地址一定是正确的源IP地址。因此,如果确定该参考服务的IP地址未包含在域名表的源IP地址中,则可以确定该参考服务为被多客户端访问且IP地址和端口属于不同端的服务。
可选地,所述根据所述流表和所述域名表,对所述多个服务进行聚类,得到多个应用类型,包括:
根据所述流表和所述域名表,对所述多个服务进行时间相关性聚类,得到时间相关性聚类结果;
根据所述流表,从所述多个服务中选择具有周期性的服务,得到周期性聚类结果;
根据所述域名表,从所述多个服务中,获取多个第一服务和多个第二服务,所述多个第一服务是指被多客户端访问且有对应域名的服务,所述多个第二服务包括被多客户端访问且无对应域名的服务和被单客户端访问的服务;
对所述多个第一服务进行语义相关性聚类,得到语义相关性聚类结果;
对所述多个第二服务进行客户端相似度聚类,得到客户端相似度聚类结果;
对所述时间相关性聚类结果、所述周期性聚类结果、所述语义相关性聚类结果和所述客户端相似度聚类结果进行融合,得到所述多个应用类型。
基于上述描述可知,该多个服务中包括被多客户端访问的服务,也包括被单客户单访问的服务,而且域名表中的每个域名表项中包括源IP地址、目的域名、目的IP地址和域名类型,因此,对于被多客户端访问的服务,可以从域名表中,确定该多个服务中每个服务是否对应有域名,进而从该多个服务中筛选出被多客户端访问且有对应域名的服务,得到多个第一服务。同时,还可以筛选出被多客户端访问且无对应域名的服务。
可选地,所述根据所述流表和所述域名表,对所述多个服务进行时间相关性聚类,得到时间相关性聚类结果,包括:
根据所述流表,获取所述多个服务中每个服务所在的流表项中的流起始时间;
根据获取的流起始时间,确定所述多个服务中每两个服务之间的时间差;
通过确定的时间差,确定所述多个服务中每两个服务之间的时间相关性;
根据所述多个服务中每两个服务之间的时间相关性,从所述多个服务中选择满足时间相关性条件的服务;
根据选择出的服务之间的时间相关性,生成相似度矩阵;
根据所述相似度矩阵,按照谱聚类分析,确定所述多个服务的谱聚类结果;
根据所述域名表,确定所述多个服务中每两个服务之间的相似度;
根据所述多个服务中每两个服务之间的相似度和所述谱聚类结果,确定所述时间相关性聚类结果。
可选地,所述根据所述流表,从所述多个服务中选择具有周期性的服务,包括:
对于所述多个服务中的每个服务,根据所述流表,获取同一客户端访问所述服务的多条数据流的流起始时间;
按照访问所述服务的多条数据流的流起始时间的先后顺序,确定每相邻两个流起始时间之间的时间差;
基于确定的时间差,通过傅里叶变换,确定所述服务的周期性是否为强周期性;
如果所述服务的周期性为强周期性,则确定所述服务为具有周期性的服务。
可选地,所述对所述多个第一服务进行语义相关性聚类,得到语义相关性聚类结果,包括:
按照域名的语义相关性,对所述多个第一服务进行聚类,得到多个第一聚类结果;
基于所述多个第一聚类结果间的域名相似度,对所述多个第一聚类结果进行合并,得到多个第二聚类结果;
根据所述多个第一服务中未聚类的服务与每个第二聚类结果间的域名语义相关性,将所述未聚类的服务与所述多个第二聚类结果进行聚类,得到所述语义相关性聚类结果。
可选地,所述按照域名的语义相关性,对所述多个第一服务进行聚类,包括:
从所述多个第一服务中,获取被多客户端访问且对应唯一域名的多个第三服务,以及从所述多个第一服务中,获取被多客户端访问且对应多域名的多个第四服务;
从所述多个第四服务对应的域名中,获取可合并的域名,并将可合并的域名进行合并,得到多个第一域名;
去除每个第一域名中的数字和符号,以及去除每个第三服务对应的域名中的数字和符号,得到多个第二域名;
按照所述多个第二域名的语义相关性,将所述多个第二域名对应的服务进行聚类;
按照所述多个第四服务对应的域名中不可合并的域名的语义相关性,将所述不可合并的域名对应的服务进行聚类。
由于多个第一服务都是被多客户端访问的服务,因此,对于每个第一服务,可以从域名表中确定该第一服务对应的域名,如果该第一服务对应的域名唯一,则确定该第一服务为被多客户端访问且对应唯一域名的第三服务,如果该第一服务对应的域名不唯一,则确定该第一服务为被多客户端访问且对应多域名的第四服务。
可选地,所述对所述多个第二服务进行客户端相似度聚类,得到客户端相似度聚类结果,包括:
确定访问所述多个第二服务中每个第二服务的客户端的IP地址;
按照访问每个第二服务的客户端的IP地址的交并比,对所述多个第二服务进行聚类,得到所述客户端相似度聚类结果。
可选地,所述确定所述多个应用类型中每个应用类型对应的标签,包括:
将所述多个应用类型划分为第一应用组、第二应用组和第三应用组,所述第一应用组中的每个应用类型包括的服务存在对应的域名,所述第二应用组中的每个应用类型包括的服务均不存在对应的域名,所述第三应用组中的每个应用类型对应一个未聚类的服务;
基于所述第一应用组中的每个应用类型包括的服务对应的域名,确定每个应用类型对应的标签;
确定所述第二应用组和第三应用组中每个应用类型对应的标签。
当网络设备确定该多个应用类型中每个应用类型对应的标签之后,还可以展示该多个应用类型中每个应用类型对应的标签。
第二方面,提供了一种应用识别装置,所述应用识别装置具有实现上述第一方面中应用识别方法行为的功能。所述应用识别装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的应用识别方法。
第三方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器用于存储执行上述第一方面所提供的应用识别方法的程序,以及存储用于实现上述第一方面所提供的应用识别方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行上述第一方面所述的应用识别方法。
第五方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面所述的应用识别方法。
本申请提供的技术方案至少可以带来以下有益效果:
通过对流表进行流行为特征的分析,得到多个服务。由于每个服务由一个IP地址和一个端口标识构成,且一个应用通常可以由一组服务构成,因此,根据流表和域名表,对该多个服务进行聚类之后,可以得到多个应用类型,每个应用类型包括多个服务,且每个应用类型对应一个应用。此时,可以确定该多个应用类型中每个应用类型的标签,从而通过该标签可以识别数据流所属的应用。可以看出,本申请在识别应用的过程并不需要流量特征数据库,而是根据流行为特征即可识别,这样,当有新应用出现时,可以直接根据这个新应用访问的服务端的IP地址和端口,对该新应用进行识别,从而提高了应用的识别率。
附图说明
图1是本申请实施例提供的一种应用识别系统的架构图;
图2是本申请实施例提供的一种计算机设备的结构示意图;
图3是本申请实施例提供的一种应用识别方法的流程图;
图4是本申请实施例提供的一种无向图的示意图;
图5是本申请实施例提供的一种应用识别装置的结构示意图;
图6是本申请实施例提供的一种分析模块的示意图;
图7是本申请实施例提供的一种聚类模块的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的应用识别方法进行解释说明之前,先对本申请实施例的应用场景进行介绍。
在企业园区等私有网络中,往往存在关键业务和非关键业务,当非关键业务占用的带宽较大时,关键业务占用的带宽就会较小,此时,较小的带宽可能会影响关键业务的质量。而且,企业的关键业务通常为企业的私有应用对应的业务,因此,为了提高关键业务的质量,通常需要识别企业的私有应用,从而便于企业的网络管理人员配置一些能够提高关键业务质量的策略,进而提高关键业务的质量。比如,对于企业的私有应用,可以保证其正常运行所需的带宽,对于公网应用,可以进行限流处理,也即是,对私有应用对应的数据流不做限流处理,对公网应用对应的数据流进行限流处理,从而提高关键业务的质量。
当然,上述通过限流的策略来保证关键业务的质量只是本申请的一种应用场景,本申请还可以应用在其他的场景中,本申请对此不再一一列举。
图1是本申请实施例提供的一种应用识别系统的架构图,参见图1,该系统包括多个客户端101、一个网络设备102和多个服务端103,每个客户端101和网络设备102之间通过有线或者无线的方式连接以进行通信,每个服务端103和网络设备102之间也通过有线或者无线的方式连接以进行通信。
对于多个客户端101中的任一客户端101,该客户端101上安装有应用,当该客户端101运行应用时会产生数据流,此时,客户端101可以将这些数据流发送给网络设备102。网络设备102接收到这些数据流时,可以对这些数据流进行处理,以识别数据流对应的应用。之后,当这些数据流传输到服务端103时,服务端103可以处理这些数据流,以响应客户端101的操作。
客户端101上安装的应用可以为私有应用,也可以为公网应用。其中,私有应用是指企业内部使用的应用,公网应用是指任何人都可以使用的应用。比如,私有应用可以为企业内部用来通信的应用,公网应用可以为企业内部与业务外部用来通信的应用。
客户端101可以为是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如个人计算机(personalcomputer,PC)、手机、智能手机、个人数字助手(personal digital assistant,PDA)、可穿戴设备、掌上电脑(pocket PC,PPC)、平板电脑、智能车机、智能电视、智能音箱等。
网络设备102可以为核心交换机、接入交换机、路由器等设备。服务端103可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
图1仅仅采用3个客户端和3个服务端来对应用识别系统进行举例说明,并不构成对本申请实施例的限定。此外本申请实施例提供的应用识别方法除了可以使用于企业私有应用的识别以外,也可以应用于公网应用的识别。
请参考图2,图2是根据本申请实施例示出的一种计算机设备的结构示意图,该计算机设备可以是图1中所示的客户端101、网络设备102或服务端103。该计算机设备包括至少一个处理器201、通信总线202、存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(central processing unit,CPU)、网络处理器(NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线202用于在上述组件之间传送信息。通信总线202可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203可以是独立存在,并通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
通信接口204用于与其它设备或通信网络通信。通信接口204包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local areanetworks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,如图2中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,如图2中所示的处理器201和处理器205。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备206和输入设备207。输出设备206和处理器201通信,可以以多种方式来显示信息。例如,输出设备206可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备207和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备207可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器203用于存储执行本申请方案的程序代码210,处理器201可以执行存储器203中存储的程序代码210。例如,该计算机设备可以通过处理器201以及存储器203中的程序代码210,来实现下文图3实施例提供的应用识别方法。
图3是本申请实施例提供的一种应用识别方法的流程图,该方法应用于图1所示的应用识别系统中的网络设备。请参考图3,该方法包括如下步骤。
步骤301:网络设备对多条数据流分别提取特征,得到流表和域名表,流表包括多个流表项,所述多个流表中的每个流表项包括五元组和流起始时间,域名表包括多个域名表项,所述多个域名表项中的每个域名表项包括源IP地址、目的域名、目的IP地址和域名类型。
通常情况下,一条数据流可以包括一个或多个报文,且该一个或多个报文的五元组相同。换句话说,五元组相同的一个或多个报文可以构成一条数据流。另外,由于目的域名是目的IP地址对应的域名,当目的域名唯一时,域名类型也唯一,因此,网络设备可以分别提取每条数据流包括的任一报文中的五元组、目的域名和域名类型,并将每条数据流中的第一个报文的接收时间确定为流起始时间。之后,网络设备可以从五元组中获取源IP地址和目的IP地址,从而根据每条数据流的五元组和流起始时间,生成流表,以及根据每条数据流的源IP地址、目的域名、目的IP地址和域名类型,生成域名表。
由于五元组包括源IP地址、源端口、目的IP地址、目的端口和协议号,网络设备可以从五元组中获取数据流的源IP地址和目的IP地址。示例性地,假设客户端当前需要向服务端发送报文,那么,该报文的源IP地址和源端口为客户端的IP地址和端口,目的IP地址和目的端口为服务端的IP地址和端口,协议号为客户端和服务端通信时所采用的传输协议的编号。
基于上述描述,每条数据流的流起始时间是每条数据流中的第一个报文的接收时间。但是,每条数据流的第一个报文并不一定是整个数据流的首报文,而是当前提取特征时接收到的报文中的第一个报文。比如,当前需要对1:30到2:00之间采集到的所有数据流分别提取特征,假设,数据流A的首报文的接收时间为1:00,数据流A在1:30到2:00之间的第一个报文的接收时间为1:31,那么数据流A的流起始时间为1:31。
域名类型有两种形式:A.name和C.name,A.name是将主机名或者域名解析到一个IP地址,C.name是将多个主机名或者域名都可以解析到另一个域名,再由另一个域名解析到一个IP地址,这个IP地址与A.name解析到的IP地址相同。也就是说,多个C.name相当于一个A.name的分支。
在本申请实施例中,网络设备还可以设置特征提取的触发条件,也即是,在满足触发条件时对多条数据流分别提取特征。作为一种示例,网络设备在采集数据流的过程中,可以确定当前采集的数据流的数据量是否达到数据量阈值,当当前采集的数据流的数据量达到该数据量阈值时,网络设备可以对采集到的多条数据流分别提取特征。比如,网络设备设定的数据量阈值为200M,那么,网络设备在采集数据流的过程中,可以确定当前采集的数据流的数据量是否达到200M,如果达到,则对采集的数据流分别提取特征。
作为另一种示例,网络设备可以统计开始采集时间与当前时间之间的时间差,当该时间差达到第一时间阈值时,对采集的多条数据流分别提取特征。比如,网络设备设定的第一时间阈值为30分钟,那么,网络设备可以统计开始采集时间与当前时间之间的时间差,如果该时间差达到30分钟,则对采集到的数据流分别提取特征。
上述数据量阈值和第一时间阈值可以根据需求设置。
在一些实施例中,得到流表和域名表之后,还可以对流表和域名表进行预处理。作为一种示例,对于流表,网络设备可以对流表中的流表项进行去重以及流表项的合并,在合并之后,可以删除信息不完整的流表项,得到预处理后的流表。对于域名表,网络设备可以对域名表中的域名表项进行去重,以及筛选出域名类型为A.name的域名表项,在筛选之后,可以删除信息不完整的域名表项,得到预处理后的域名表。
比如,提取特征后得到的流表和域名表可以如下述表1和表2所示,表1中的第1个流表项和第2个流表项是重复的,此时,可以删除第1个流表项或者第2个流表项,而且,表1中的第2个流表项和第3个流表项的五元组相同,但流起始时间不同,假设相比于第3个流表项,第2个流表项的流起始时间较早,因此,可以将第2个流表项作为合并后的流表项,删除第3个流表项。此外,在对流表项进行去重以及流表项的合并后,还需要对流表中信息不完整的流表项进行删除,参见表1,表1中的第6个流表项、第8个流表项和第11个流表项的五元组不完整,那么,可以将这三个流表项删除,至此可以完成流表的预处理,从而可以得到表3所示的预处理后的流表。
表2中的第1个域名表项和第2个域名表项是重复的,此时,可以删除第1个域名表项或者第2个域名表项,而且,表2中第3个域名表项、第5个和第7个域名表项的域名类型为C.name。因为域名类型为C.name的域名表项相当于一个域名类型为A.name的域名表项的一个分支,为了保留特征突出的数据流来进行流行为特征分析,进而更准确地确定出多个服务,可以保留域名表中域名类型为A.name的域名表项,删除域名表中域名类型为C.name的域名表项。此外,在对域名表进行上述处理后,还需要删除域名表中信息不完整的域名表项,参见表2,表2中的第6个域名表项和第8个域名表项的信息不完整,那么,可以将这两个域名表项删除,至此可以完成域名表的预处理,从而可以得到表4所示的预处理后的域名表。
表1
表2
表3
表4
源IP | 目的域名 | 目的IP | 域名类型 |
IP01 | abpd-jap.xxx.com | IP001 | A.name |
IP03 | abnc-jp.xxx.com | IP003 | A.name |
IP08 | abnd-hx.xxx.com | IP008 | A.name |
IP09 | abnt-jp.xxx.com | IP009 | A.name |
IP10 | asnd-jp.xxx.com | IP011 | A.name |
IP11 | atnd-jap.xxx.com | IP012 | A.name |
IP12 | abyd-jnp.xxx.com | IP013 | A.name |
…… | …… | …… | …… |
对流表和域名表进行预处理的操作是可选地,也即是,后续步骤可以根据预处理前的流表和域名表来实现,也可以根据预处理后的流表和域名表来实现,两者的实现过程类似。在本申请实施例中,以预处理后的流表和域名表为例,对后续的步骤进行解释说明。也即是,后续步骤中提到的流表和域名表均为预处理后的流表和域名表。
尽管通过步骤301可以得到流表和域名表,但流表和域名表中的数据庞大,流数多且流行为特征复杂,很难从流表和域名表中识别出数据流对应的应用。但是,应用通常是由一组服务构成的,一个服务由一个IP地址和一个端口标识构成,所以可以采用分步处理的方式识别数据流对应的应用。也即是,先按照步骤302,根据流表进行流行为特征的分析,得到多个服务,再按照步骤303,对该多个服务进行聚类,得到多个应用类型,进而按照步骤303确定应用类型对应的标签,识别出数据流对应的应用。
步骤302:网络设备根据流表进行流行为特征的分析,得到多个服务,每个服务由一个IP地址和一个端口标识构成。
在一些实施例中,步骤302可以通过如下(1)-(4)的步骤来实现:
(1)根据流表确定具有环路的端口,得到环路端口集。
在一些实施例中,对于流表中的每个端口,网络设备可以根据流表获取该端口的同端IP地址集合和对端IP地址集合。确定该端口的同端IP地址集合和对端IP地址集合的交集,得到多个IP地址。根据流表,确定经由该端口的所有数据流中该多个IP地址对应的数据流的总流数,将确定的总流数作为第一总流数。如果第一总流数大于第一阈值,则确定经由该端口的所有数据流的总流数,将确定的总流数作为第二总流数。如果第一总流数与第二总流数之间的比值大于第二阈值,则确定该端口为具有环路的端口。之后,可以将流表中具有环路的端口组成环路端口集。
其中,网络设备根据流表,确定经由该端口的所有数据流的总流数,以及确定经由该端口的所有数据流中该多个IP地址对应的数据流的总流数的实现过程可以为:从流表中,选择该端口所在的流表项,统计选择的流表项的数量,将统计的数量确定为经由该端口的所有数据流的总流数。之后,统计选择出的流表项中源IP地址或者目的IP地址为该多个IP地址中的任一IP地址的流表项的数量,将统计的数量确定为经由该端口的所有数据流中该多个IP地址对应的数据流的总流数。
示例性地,当该端口为源端口时,从流表中,选择源端口为该端口的流表项,统计选择出的流表项的数量,将统计的数量确定为经由该端口的所有数据流的总流数。之后,统计选择出的流表项中源IP地址或者目的IP地址为该多个IP地址中的任一IP地址的流表项的数量,将统计的数量确定为经由该端口的所有数据流中该多个IP地址对应的数据流的总流数。
该端口的同端IP地址集合是指与该端口属于同一侧的IP地址的集合,该端口的对端IP地址集合是指与该端口属于不同侧的IP地址的集合。比如,该端口为源端口,那么,该端口的同端IP地址集合是指源端IP地址的集合,该端口的对端IP地址集合是指目的端IP地址的集合。同理,假设该端口为目的端口,那么,该端口的同端IP地址集合是指目的端IP地址的集合,该端口的对端IP地址集合是指源端IP地址的集合。
上述第一阈值和第二阈值可以根据需求设置,比如,第一阈值可以为20,第二阈值可以为0.2。
通常情况下,通过同端IP地址集合和对端IP地址集合的交集确定的多个IP地址为既作为源端又作为目的端的这些设备的IP地址,在这种情况下,可以认为该端口为具有环路的潜在端口。为了进一步验证该端口是否为具有环路的端口,可以确定第一总流数,如果第一总流数大于第一阈值,那么,可以进一步确定第二总流数,以及第一总流数与第二总流数之间的比值,如果该比值大于第二阈值,那么可以表明经由该端口的大部分数据流的源端IP和目的端IP相同,也即是,经由该端口的大部分数据流的源端设备和目的设备为同一设备,进而可以确定该端口为具有环路的端口。
比如,对于表3中的目的端口Port001,表3中有100个流表项的目的端口为Port001,其中有30个流表项的目的IP地址和源IP地址是相同的,则确定第一总流数为30,第二总流数为100。假设,网络设备根据需求设置的第一阈值为20,第二阈值为0.2。此时可以确定第一总流数30大于第一阈值20,所以需要进一步确定第一总流数与第二总流数的比值,该比值为0.3且该比值大于第二阈值0.2,所以将端口Port001确定为具有环路的端口。同理,对于表1中的源端口Port02,表3中有150个流表项的源端口为Port02,其中有50个流表项的源IP地址和目的IP地址相同,则确定第一总流数为50,第二总流数为150。此时可以确定第一总流数50大于第一阈值20,所以需要进一步确定第一总流数与第二总流数的比值,该比值为0.3且该比值大于第二阈值0.2,所以将端口Port02确定为具有环路的端口。
进一步地,如果第一总流数不大于第一阈值,或者,第一总流数与第二总流数之间的比值不大于第二阈值,那么可以确定该端口不是具有环路的端口。
(2)基于该环路端口集,根据流表确定单客户端访问服务集和第一多客户端访问服务集,单客户端访问服务集中的每个服务被单客户端访问、服务的IP地址和端口属于同一端、且端口不属于环路端口集,第一多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于同一端、且端口不属于环路端口集。
在一些实施例中,网络设备可以根据流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务,得到单客户端访问潜在服务集和第一多客户端访问潜在服务集。从单客户端访问潜在服务集中过滤环路端口集中的端口所在的服务,得到单客户端访问服务集。从第一多客户端访问潜在服务集中过滤环路端口集中的端口所在的服务,得到第一多客户端访问服务集。
其中,网络设备根据流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务的实现过程可以为:根据流表确定多个目标服务,每个目标服务对应一个流表项中属于同一端的IP地址和端口,且每个目标服务对应多条数据流。对于多个目标服务中的每个目标服务,确定该目标服务的端口是否为随机产生的。如果该目标服务的端口是随机产生的,则确定该目标服务的IP地址对应的同侧端口数量是否大于第三阈值。如果该目标服务的IP地址对应的同侧端口数量大于第三阈值,则确定该目标服务对应的对端数量是否大于第四阈值。如果该目标服务对应的对端数量大于第四阈值,则确定该目标服务为被多客户端访问且IP地址和端口属于同一端的服务。如果该目标服务对应的对端数量不大于第四阈值,则确定该目标服务的对端IP地址是否唯一;如果该目标服务的对端IP地址唯一,则确定该目标服务为被单客户端访问且IP地址和端口属于同一端的服务。
上述目标服务对应一个流表项中属于同一端的IP地址和端口,且目标服务对应多条数据流,也即是,在流表中,如果有多条数据流对应一个流表项中属于同一端的IP地址和端口,那么可以将该IP地址和端口作为目标服务。比如,流表中有多条数据流对应一个流表项中的目的IP地址和目的端口,那么可以将该目的IP地址和目的端口确定为目标服务。同理,如果流表中有多条数据流对应一个流表项中的源IP地址和源端口,那么可以将该源IP地址和源端口确定为目标服务。
在一些实施例中,网络设备确定目标服务是否对应多条数据流的实现过程可以为:网络设备可以确定流表中该目标服务所在的流表项的数量,如果确定的流表项的数量大于第五阈值,则确定该目标服务对应多条数据流,如果确定的流表项的数量不大于第五阈值,则确定该目标服务未对应多条数据流。
上述第三阈值、第四阈值和第五阈值可以根据需求设置,比如,第三阈值可以为20,第四阈值可以为5,第五阈值可以为10。
由于目标服务对应一个流表项中属于同一端的IP地址和端口,且目标服务对应多条数据流,也即是,目标服务的IP地址和端口可能为服务端的IP地址和端口,换句话说,目标服务可能是被多客户端访问且IP地址和端口属于同一端的服务,此时,为了进一步确认目标服务是否为被多客户端访问且IP地址和端口属于同一端的服务,还可以确定目标服务的端口是否为随机产生的。在一些实施例中,确定目标服务的端口是否为随机产生的实现过程可以为:确定该目标服务的端口的端口号是否大于1024,如果该目标服务的端口的端口号小于1024,则确定该端口为知名端口,也即是,该端口不是随机产生的。如果该目标服务的端口的端口号大于1024,则确定该端口是随机产生的。
如果该目标服务的端口是随机产生的,此时还不能确认该目标服务是否为被多客户端访问且IP地址和端口属于同一端的服务,还需要确定该目标服务的IP地址对应的同侧端口数量是否大于第三阈值。在确定该目标服务的IP地址对应的同侧端口数量是否大于第三阈值时,需要先确定该目标服务的IP地址对应的同侧端口数量。在一些实施例中,确定目标服务的IP地址对应的同侧端口数量的实现过程可以为:从流表中选择该目标服务的IP地址所在的流表项,确定选择的流表项中与该目标服务的IP地址属于同一端的端口的数量,将确定的端口的数量作为该目标服务的IP地址对应的同侧端口数量。
示例性地,基于上述描述,目标服务可能由源IP地址和源端口构成的,也可能由目的IP地址和目的端口构成的。当目标服务由源IP地址和源端口构成时,确定目标服务的IP地址对应的同侧端口数量的实现过程可以为:从流表中选择该目标服务的IP地址所在的流表项,确定选择的流表项中源端口的数量,将确定的源端口的数量作为该目标服务的IP地址对应的同侧端口数量。当目标服务由目的IP地址和目的端口构成时,确定目标服务的IP地址对应的同侧端口数量的实现过程可以为:从流表中选择该目标服务的IP地址所在的流表项,确定选择的流表项中目的端口的数量,将确定的目的端口的数量作为该目标服务的IP地址对应的同侧端口数量。
由于服务端的端口通常不会很多,访问服务端的客户端通常会比较多,因此,在确定该目标服务的IP地址对应的同侧端口数量大于第三阈值时,可以进一步判断该目标服务对应的对端数量是否大于第四阈值。在确定该目标服务对应的对端数量是否大于第四阈值时,需要先确定该目标服务对应的对端数量。在一些实施例中,确定该目标服务对应的对端数量的实现过程可以为:从流表中选择该目标服务所在的流表项,确定选择的流表项中与该目标服务属于不同端的IP地址的数量,将确定的IP地址的数量作为该目标服务对应的对端数量。
示例性地,当目标服务由源IP地址和源端口构成时,确定目标服务对应的对端数量的实现过程可以为:从流表中选择该目标服务所在的流表项,确定选择的流表项中目的IP地址的数量,将确定的目的IP地址的数量作为该目标服务对应的对侧数量。当目标服务由目的IP地址和目的端口构成时,确定目标服务对应的对端数量的实现过程可以为:从流表中选择该目标服务所在的流表项,确定选择的流表项中源IP地址的数量,将确定的源IP地址的数量作为该目标服务对应的对端数量。
其中,当确定该目标服务对应的对端数量大于第四阈值时,可以确定该目标服务为被多客户端访问且IP地址和端口属于同一端的服务。也即是,通过上述各级判断,可以准确地确定出被多客户端访问且IP地址和端口属于同一端的服务。当确定该目标服务对应的对端数量不大于第四阈值时,可以表明该目标服务可能是被单客户端访问,且该目标服务的IP地址和端口可能为服务端的IP地址和端口,此时,可以判断该目标服务对应的对端IP地址是否唯一,如果该目标服务对应的对端IP地址唯一,那么可以直接确定该目标服务为被单客户端访问且IP地址和端口属于同一端的服务。
比如,由目的IP地址和目的端口构成的一个目标服务为:IP001+Port001,假设目的端口Port001不是随机产生的,那么,可以确定其IP地址IP001对应的目的端口数量,假设,IP地址IP001对应的目的端口数量为25个,网络设备设置的第三阈值为20,由于该IP地址IP001对应的目的端口数量大于20,那么可以进一步确定该目标服务对应的源端数量。假设,目标服务IP001+Port001在流表中具有10个源IP地址和源端口不完全相同的流表项,网络设备设置的第四阈值为5,此时可以确定该目标服务对应的源端数量为10,且大于5,所以将目标服务IP001+Port001确定为被多客户端访问且IP地址和端口属于同一端的服务。
如果目标服务IP001+Port001在流表中具有3个源IP地址和源端口不完全相同的流表项,此时可以确定该目标服务对应的源端数量为3,且小于5,则确定这3个流表项的源IP地址是否相同,如果这是3个流表项的源IP地址相同,仅仅是源端口不同,则将此目标服务IP001+Port001确定为被单客户端访问且IP地址和端口属于同一端的服务。
进一步地,由于知名端口是服务端中预留的一些端口,因此,如果目标服务的端口不是随机产生的,也即是,目标服务的端口为知名端口,此时,可以直接确定该目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
进一步地,如果该目标服务的IP地址对应的同侧端口数量不大于第三阈值,则确定该目标服务为被多客户端访问且IP地址和端口属于同一端的服务。或者,如果该目标服务的对端IP地址不唯一,则确定该目标服务不是被单客户端访问且IP地址和端口属于同一端的服务,也不是被多客户端访问且IP地址和端口属于同一端的服务。
(3)基于环路端口集和第一多客户端访问服务集,根据流表确定第二多客户端访问服务集。
在一些实施例中,网络设备可以基于第一多客户端访问服务集,根据流表,确定被多客户端访问且IP地址和端口属于不同端的服务,得到第二多客户端访问潜在服务集。从第二多客户端访问潜在服务集中过滤环路端口集中的端口所在的服务,得到第二多客户端访问服务集。
其中,网络设备基于第一多客户端访问服务集,根据流表,确定被多客户端访问且IP地址和端口属于不同端的服务的实现过程可以为:将流表中位于同一流表项且属于不同端的IP地址和端口确定为一个参考服务,得到多个参考服务。对于多个参考服务中的每个参考服务,确定该参考服务是否对应多条数据流。如果该参考服务对应多条数据流,则确定该参考服务的端口是否为随机产生的。如果该参考服务的端口不是随机产生的,则确定该参考服务的端口是否包含在第一多客户端访问服务集中。如果该参考服务的端口未包含在第一多客户端访问服务集中,则确定该参考服务的IP地址是否包含在域名表的源IP地址中。如果该参考服务的IP地址未包含在域名表的源IP地址中,则确定该参考服务为被多客户端访问且IP地址和端口属于不同端的服务。
上述参考服务也是由一个IP地址和端口组成,但与目标服务不同的是,参考服务的IP地址和端口是不同端的,比如,同一个流表项中的目的IP地址和源端口可以构成一个参考服务,同一个流表项中的源IP地址和目的端口也可以构成一个参考服务。
在一些实施例中,网络设备确定参考服务是否对应多条数据流的实现过程可以为:网络设备可以确定流表中该参考服务所在的流表项的数量,如果确定的流表项的数量大于第五阈值,则确定该参考服务对应多条数据流,如果确定的流表项的数量不大于第五阈值,则确定该参考服务未对应多条数据流。
网络设备确定参考服务的端口是否为随机产生的操作可以参考上述判断目标服务的端口是否为随机产生的操作,本申请实施例对此不再详细阐述。
在某些情况下,根据特征提取后得到的流表中可能会发生源IP地址与目的IP地址颠倒的情况,导致构成参考服务的源IP地址可能错为目的IP地址,或者目的IP地址错为源IP地址,进而无法判断参考服务中的IP地址和端口是否为同一流表项中属于不同端的IP地址和端口,但域名表中的源IP地址一定是正确的源IP地址。因此,如果确定该参考服务的IP地址未包含在域名表的源IP地址中,则可以确定该参考服务为被多客户端访问且IP地址和端口属于不同端的服务。
进一步地,如果该参考服务未对应多条数据流,或者,该参考服务的端口是随机产生的,或者,该参考服务的端口包含在第一多客户端访问服务集中,或者该参考服务的IP地址包含在域名表的源IP地址中,那么可以确定该参考服务不是被多客户端访问且IP地址和端口属于不同端的服务。
(4)将第一多客户端访问服务集、第二多客户端访问服务集和单客户端访问服务集进行合并,得到多个服务。
由于第一多客户端访问服务、第二多客户端访问服务集合和单客户端访问服务集中都包含有一个或多个服务,因此,将第一多客户端访问服务集、第二多客户端访问服务集和单客户端访问服务集进行合并之后,即可得到属于服务端的多个服务。
步骤303:网络设备根据流表和域名表,对该多个服务进行聚类,得到多个应用类型。
在一些实施例中,步骤303可以通过如下(1)-(6)的步骤来实现:
(1)根据流表和域名表,对该多个服务进行时间相关性聚类,得到时间相关性聚类结果。
在一些实施例中,网络设备可以根据流表,获取该多个服务中每个服务所在的流表项中的流起始时间。根据获取的流起始时间,确定该多个服务中每两个服务之间的时间差。通过确定的时间差,确定该多个服务中每两个服务之间的时间相关性。根据该多个服务中每两个服务之间的时间相关性,从该多个服务中选择满足时间相关性条件的服务。根据选择出的服务之间的时间相关性,生成相似度矩阵。根据相似度矩阵,按照谱聚类分析,确定该多个服务的谱聚类结果。根据域名表,确定该多个服务中每两个服务之间的相似度。根据该多个服务中每两个服务之间的相似度和谱聚类结果,确定时间相关性聚类结果。
其中,网络设备通过确定的时间差,确定该多个服务中每两个服务之间的时间相关性的实现过程可以为:对于该多个服务中的任意两个服务,确定这两个服务之间的时间差是否小于第二时间阈值,如果这两个服务之间的时间差小于第二时间阈值,则确定这两个服务具有时间相关性。如果这两个服务之间的时间差不小于第二时间阈值,则确定这两个服务不具有时间相关性。对于其他任意两个服务,也可以按照上述方法确定这两个服务是否具有时间相关性。
第二时间阈值可以根据需求设置,本申请实施例对此不作限定。
在一些实施例中,网络设备根据该多个服务中每两个服务之间的时间相关性,从该多个服务中选择满足条件的服务的实现过程可以为:根据该多个服务中每两个服务之间的时间相关性,生成无向图,该无向图包括与该多个服务一一对应的多个节点,以及与具有时间相关性的两个服务对应的边,且边用于连接具有时间相关性的两个服务所对应的两个节点。确定无向图中的最大团,该最大团是指通过边连接节点之后包括的节点数量最多的连通区域。将最大团中的节点对应的服务确定为满足时间相关性条件的服务。
比如,该多个服务为服务A-服务G,服务A与服务B具有时间相关性,服务B与服务C具有时间相关性,服务C分别与服务A和服务D具有时间相关性,服务D与服务A具有时间相关性,服务E与服务F具有时间相关性,服务E与服务G具有时间相关性。那么,可以生成图4所示的无向图。在该无向图中,服务A对应的节点A’和服务B对应的节点B’之间连接形成一条边,服务B对应的节点B’和服务C对应的节点C’之间连接形成一条边,服务C对应的节点C’分别与服务A对应的节点A’和服务D对应的节点D’之间连接形成一条边,服务D对应的节点D’和服务A对应的节点A’之间连接形成一条边,服务E对应的节点E’与服务F对应的节点F’之间连接形成一条边,服务E对应的节点E’与服务G对应的节点G’之间连接形成一条边。在该无向图中,通过边连接节点之后包括的节点数量最多的连通区域是由节点A’、节点B’、节点C’和节点D’构成的连通区域。该连通区域即为上述无向图中的最大团,此时,将服务A、服务B、服务C和服务D确定为选择出满足时间相关性条件的服务。
在一些实施例中,网络设备根据选择出的服务之间的时间相关性,生成相似度矩阵的实现过程可以为:对于选择出的每两个服务,如果这两个服务之间具有时间相关性,则确定这两个服务在相似度矩阵中对应的元素为1,如果这两个服务不具有时间相关性,则确定这两个服务在相似度矩阵中对应的元素为0。其中,同一服务在相似度矩阵中对应的元素为1。
在另一些实施例中,在上述最大团的基础上,网络设备根据选择出的服务之间的时间相关性,生成相似度矩阵的实现过程可以为:对于选择出的每两个服务,如果这两个服务在最大团中对应的节点之间存在连接边,则确定这两个服务在相似度矩阵中对应的元素为1,如果这两个服务在最大团中对应的节点之间没有连接边,则确定这两个服务在相似度矩阵中对应的元素为0。
比如,服务A与服务B具有时间相关性,则服务A和服务B在相似度矩阵中对应的元素为1。服务B与服务C具有时间相关性,则服务B和服务C在相似度矩阵中对应的元素为1。服务C与服务A具有时间相关性,则服务C和服务A在相似度矩阵中对应的元素为1。服务C与服务D具有时间相关性,则服务C与服务D在相似度矩阵中对应的元素为1。此时,根据服务A、服务B、服务C和服务D之间的时间相关性,生成的相似度矩阵为:
上述相似度矩阵为n行n列的矩阵,也即是,根据该多个服务中每两个服务之间的时间相关性,从该多个服务中选择出n个服务。上述谱聚类分析是基于相似度矩阵,对这n个服务进行聚类。也即是,通过谱聚类分析可以确定这n个服务中的哪几个服务可以聚为一类。其中,谱聚类分析的实现过程可以参考相关技术。
在一些实施例中,网络设备根据域名表,确定该多个服务中每两个服务之间的相似度的实现过程可以为:从域名表中,确定该多个服务中每个服务的IP地址对应的域名,确定该多个服务中每两个服务的IP地址对应的域名之间的相似度,得到该多个服务中每两个服务之间的相似度。
其中,对于该多个服务中的任意两个服务,确定这两个服务的IP地址对应的域名之间的相似度的实现过程可以为:从域名表中确定这两个服务的IP地址对应的域名,对每个服务的IP地址对应的域名进行分词处理,得到每个IP地址对应的域名中的所有分词。之后,网络设备可以将每个IP地址对应的域名中的所有分词中,作为域名后缀的分词去除,得到每个IP地址对应的域名的分词组。确定这两个服务的IP地址对应的域名的分词组的交并比,将确定的交并比确定这两个服务的IP地址对应的域名之间的相似度。
可能大多数域名的域名后缀都是相同的,因此去除该域名后缀之外的分词的相似度能比较准确的反映两个域名的相似度。
还每两个分词组的交并比是指这两个分词组的交集元素个数与并集元素个数的比值。比如,服务1的IP地址对应的域名为abnd-jap.xxx.com,该域名中的分词组可以包括:abnd、jap和xxx,服务2的IP地址对应的域名为abnd-hx.xxx.com,该域名中的分词组可以包括:abnd、hk和xxx。这两个分词组中的交集元素为abnd和xxx,并集元素为abnd、jap、hk和xxx,也即是,这两个分词组的交集元素个数为2,并集元素个数为4,因此,这两个服务的IP地址对应的域名的分词组的交并比为2/4。
由于谱聚类分析是将较为相似的多个服务划分为一类,这样,谱聚类结果就可能包括多类服务,每类服务包括较为相似的多个服务。换句话说,谱聚类结果就可能包括多个第一服务集合,每个第一服务集合包括较为相似的多个服务。但是,通过谱聚类分析之后,两个服务集合中也可能存在更相似的服务,而且,还有一些服务未进行谱聚类分析,因此,根据该多个服务中每两个服务之间的相似度和谱聚类结果,确定时间相关性聚类结果。在一些实施例中,网络设备根据该多个服务中每两个服务之间的相似度和谱聚类结果,确定时间相关性聚类结果的实现过程可以为:对于谱聚类结果包括的多个第一服务集合中的每个第一服务集合中的每个服务,基于该多个服务中每两个服务之间的相似度,确定该服务与所在的第一服务集合中其他服务之间的相似度。如果该服务与所在的第一服务集合中的其他服务之间的相似度均不大于相似度阈值,则将该服务从这个第一服务集合中剔除。当按照上述方式遍历完谱聚类结果包括每个第一服务集合中的每个服务之后,可以得到多个第二服务集合。对于剔除出的每个服务,可以基于该多个服务中每两个服务之间的相似度,确定该服务与每个第二服务集合中的每个服务之间的相似度。如果该服务与其中一个第二服务集合中的每个服务之间的相似度均大于相似度阈值,则将该服务添加至这个第二服务集合中。对于未进行谱聚类分析的服务,也按照上述剔除出的服务的处理方式进行聚类,从而得到时间相关性聚类结果。
相似度阈值可以根据需求设置,本申请实施例对此不做限定。
可选地,在本申请实施例中,网络设备根据流表和域名表,对该多个服务进行时间相关性聚类之前,还可以基于步骤302确定出的多个服务,对上述流表再次处理。在一些实施例中,可以删除流表中目的IP地址和目的端口不是该多个服务中任一服务的IP地址和端口的流表项,和/或,对源IP地址和目的IP地址颠倒的表项进行纠正,以及对源端口和目的端口颠倒的表项进行纠正。
(2)根据流表,从该多个服务中选择具有周期性的服务,得到周期性聚类结果。
在一些实施例中,对于该多个服务中的每个服务,根据流表,获取同一客户端访问该服务的多条数据流的流起始时间。按照访问该服务的多条数据流的流起始时间的先后顺序,确定每相邻两个流起始时间之间的时间差。基于确定的时间差,通过傅里叶变换,确定该服务的周期性是否为强周期性。如果该服务的周期性为强周期性,则确定该服务为具有周期性的服务。
在一些实施例中,网络设备根据流表,获取同一客户端访问该服务的多条数据流的流起始时间的实现过程可以为:从流表中,选择该服务的IP地址和端口作为目的IP地址和目的端口的流表项,确定选择的流表项中的每个源IP地址所在的流表项的数量,从最大数量对应的源IP地址所在的流表项中获取流起始时间,将获取的流起始时间确定为同一客户端访问该服务的多条数据流的流起始时间。
比如,对于服务IP008+Port008,流表中该服务的IP地址和端口作为目的IP地址和目的端口的流表项有20个,如果这20个流表项中源IP地址为IP08的流表项的数量为15个,这个20个流表项中源IP地址为IP01的流表项的数量为5个,那么,可以获取IP08所在的流表项中的流起始时间,将获取的流起始时间确定为同一客户端访问该服务的多条数据流的流起始时间。
在一些实施例中,基于确定的时间差,通过傅里叶变换,确定该服务的周期性是否为强周期性的实现过程可以为:以确定的时间差的数量为横轴,以确定的时间差为纵轴建立坐标系,将确定的时间差绘制到该坐标系中,得到离散信号,对离散信号进行傅里叶变换,确定变换后的信号中的峰值数量是否小于第六阈值,如果小于第六阈值,则确定该服务的周期性为强周期性,否则,确定该服务的周期性不为强周期性。
第六阈值可以根据需求设置,本申请实施例对此不做限定。
(3)根据域名表,从该多个服务中,获取多个第一服务和多个第二服务,多个第一服务是指被多客户端访问且有对应域名的服务,多个第二服务包括被多客户端访问且无对应域名的服务和被单客户端访问的服务。
基于步骤302中的步骤(4)可知,该多个服务中包括被多客户端访问的服务,也包括被单客户单访问的服务,而且域名表中的每个域名表项中包括源IP地址、目的域名、目的IP地址和域名类型,因此,对于被多客户端访问的服务,可以从域名表中,确定该多个服务中每个服务是否对应有域名,进而从该多个服务中筛选出被多客户端访问且有对应域名的服务,得到多个第一服务。同时,还可以筛选出被多客户端访问且无对应域名的服务。
(4)对该多个第一服务进行语义相关性聚类,得到语义相关性聚类结果。
在一些实施例中,网络设备可以按照域名的语义相关性,对上述多个第一服务进行聚类,得到多个第一聚类结果。基于多个第一聚类结果间的域名相似度,对多个第一聚类结果进行合并,得到多个第二聚类结果。根据多个第一服务中未聚类的服务与每个第二聚类结果间的域名语义相关性,将未聚类的服务与多个第二聚类结果进行聚类,得到语义相关性聚类结果。
其中,按照域名的语义相关性,对多个第一服务进行聚类的实现过程可以为:从多个第一服务中,获取被多客户端访问且对应唯一域名的多个第三服务,以及从多个第一服务中,获取被多客户端访问且对应多域名的多个第四服务。从多个第四服务对应的域名中,获取可合并的域名,并将可合并的域名进行合并,得到多个第一域名。去除每个第一域名中的数字和符号,以及去除每个第三服务对应的域名中的数字和符号,得到多个第二域名。按照多个第二域名的语义相关性,将多个第二域名对应的服务进行聚类。按照多个第四服务对应的域名中不可合并的域名的语义相关性,将不可合并的域名对应的服务进行聚类。
由于多个第一服务都是被多客户端访问的服务,因此,对于每个第一服务,可以从域名表中确定该第一服务对应的域名,如果该第一服务对应的域名唯一,则确定该第一服务为被多客户端访问且对应唯一域名的第三服务,如果该第一服务对应的域名不唯一,则确定该第一服务为被多客户端访问且对应多域名的第四服务。
在一些实施例中,从多个第四服务对应的域名中,获取可合并的域名,并将可合并的域名进行合并,得到多个第一域名的实现过程可以为:从多个第四服务对应的域名中获取一级域名相同的多个域名,对获取的多个域名进行分词处理,得到每个域名中的所有分词。将每个域名中的所有分词中属于一级域名的分词去除,得到每个域名的分词组。确定获取的多个域名的分词组的交并比,如果该交并比大于第一交并比阈值,则确定该多个第四服务对应的域名中一级域名相同的这多个域名为可合并的域名。之后,确定获取的多个域名的分词组的交集,在一级域名的前面加上该多个分词组的交集,得到合并后的域名,也即是,第一域名。
比如,该多个第四服务对应的域名为abpd-jap.xxx.com、acnd-jap.xxx.com和abed-jap.xxx.com,对这三个域名进行分词处理,得到域名abpd-jap.xxx.com中的所有分词为abpd、jap、xxx和com,域名acnd-jap.xxx.com中的所有分词为acnd、jap、xxx和com,域名abed-jap.xxx.com中的所有分词为abed、jap、xxx和com。将每个域名中的所有分词中属于一级域名的分词xxx和com去除,得到域名abpd-jap.xxx.com的分词组为{abpd、jap},域名acnd-jap.xxx.com的分词组为{acnd、jap},域名abed-jap.xxx.com的分词组为{abed、jap}。这三个分词组中的交集元素为jap,交集元素个数为1,并集元素为abpd、acnd、abed和jap,并集元素个数为4,此时,可以确定这三个分词组的交并比为1/4。假设,该交并比大于第一交并比阈值,则确定这3个域名为可合并的域名。之后,确定获取的多个域名的分词组的交集,在一级域名的前面加上该多个分词组的交集,得到合并后的域名,也即是,第一域名为jap.xxx.com。
该多个第二域名的语义相关性也可以按照对应的分词组的交并比来确定,进而将交并比大于第二交并比阈值的第二域名划分为一类,从而实现该多个第二域名对应的服务的聚类。其中,多个第二域名对应的分词组的交并比的确定方式可以参考前文的方式,本申请实施例对此不再详细阐述。
该多个第四服务对应的域名中不可合并的域名的语义相关性也可以按照对应的分词组的交并比来确定,进而将交并比大于第三交并比阈值的第二域名划分为一类,从而实现不可合并的域名对应的服务的聚类。其中,该多个第四服务对应的域名中不可合并的域名对应的分词组的交并比的确定方式可以参考前文的方式,本申请实施例对此不再详细阐述。
其中,第一交并比阈值、第二交并比阈值和第三交并比阈值可以根据需求设置,且第一交并比阈值、第二交并比阈值和第三交并比阈值可以相同,也可以不同。
(5)对该多个第二服务进行客户端相似度聚类,得到客户端相似度聚类结果。
在一些实施例中,网络设备可以确定访问多个第二服务中每个第二服务的客户端的IP地址;按照访问每个第二服务的客户端的IP地址的交并比,对多个第二服务进行聚类,得到客户端相似度聚类结果。
作为一种示例,网络设备可以将第二服务的客户端的IP地址的交并比大于第四交并比阈值的第二服务划分为一类,从而得到客户端相似度聚类结果。
比如,第二服务A的客户端IP地址有三个:IP01、IP02、IP03,第二服务B的客户端IP地址也有三个:IP01、IP03、IP05,第二服务A的客户端的IP地址中的有两个IP地址和第二服务B客户端的IP地址中的两个IP地址相同,则第二服务A与第二服务B之间的客户端IP地址的交集元素为{IP01,IP03},第二服务A与第二服务B之间的客户端IP地址的并集元素为{IP01,IP02,IP03,IP05},第二服务A与第二服务B之间客户端IP地址的交并比为2/4,假设,第二服务A与第二服务B之间客户端IP地址的交并比大于第四交并比阈值,则将这两个第二服务进行聚类,得到客户端相似度聚类结果。
(6)对时间相关性聚类结果、周期性聚类结果、语义相关性聚类结果和客户端相似度聚类结果进行融合,得到多个应用类型。
在一些实施例中,网络设备可以确定每两个聚类结果之间的交并比,将交并比大于第五交并比阈值的两个聚类结果进行合并。按照这样的方式处理完所有的聚类结果之后,即可得到多个应用类型。其中,每两个聚类结果之间的交并比是指这两个聚类结果中服务的交并比。也即是,这两个聚类结果中交集服务个数与并集服务个数之间的比值。
每个聚类结果都包括多个应用类型,因此,将上述四个聚类结果进行融合之后,可以得到多个应用类型,每个应用类型可以对应多个服务。
另外,第四交并比阈值和第五交并比阈值可以根据需求设置,且第四交并比阈值和第五交并比阈值可以相同,也可以不同,而且,与上述第一交并比阈值、第二交并比阈值和第三交并比阈值可以相同,也可以不同。
步骤304:网络设备确定多个应用类型中每个应用类型对应的标签,该标签用于识别数据流所属的应用。
在一些实施例中,网络设备可以将该多个应用类型划分为第一应用组、第二应用组和第三应用组,第一应用组中的每个应用类型包括的服务存在对应的域名,第二应用组中的每个应用类型包括的服务均不存在对应的域名,第三应用组中的每个应用类型对应一个未聚类的服务。基于第一应用组中的每个应用类型包括的服务对应的域名,确定每个应用类型对应的标签,确定第二应用组和第三应用组中每个应用类型对应的标签。
在一些实施例中,网络设备基于第一应用组中的每个应用类型包括的服务对应的域名,确定每个应用类型对应的标签的实现过程可以为:对于第一应用组中的每个应用类型,确定该应用类型包括的服务对应的域名中的一级域名,如果确定的一级域名都相同,则确定该一级域名对应的企业名称,将该企业名称作为该应用类型对应的标签。如果确定的一级域名不同,则确定这些一级域名中占比最大的一级域名对应的企业名称作为该应用类型对应的标签。
比如,第一应用组中的某个应用类型包括20个服务,每个服务对应的域名中的一级域名均为xxx.com,假设这些一级域名对应的企业名称为xxx,则将xxx作为该应用类型对应的标签。又比如,第一应用中某个应用类型包括50个服务,其中,有40个服务对应的域名中的一级域名均为xxx.com,剩余10个服务对应的域名中的一级域名为scmd.com,假设一级域名xxx.com对应的企业名称为xxx,一级域名scmd.com对应的企业名称为scmd。由于一级域名xxx.com的占比最大,因此,可以将xxx作为该应用类型对应的标签。
在一些实施例中,网络设备确定第二应用组中每个应用类型对应的标签的实现过程可以为:对于第二应用组中的每个应用类型,从该应用类型包括的服务中,确定知名端口所在的服务、属于环路端口集的服务、源端口和目的端口相同的服务、以及属于第二多个客户端访问服务集的服务。确定这些服务的数量是否大于第七阈值,如果不大于第七阈值,则基于第一目标字符,按照第一格式,生成该应用类型对应的标签。如果大于第七阈值,则基于第一目标字符,按照第二格式,生成该应用类型对应的标签。
第一目标字符可以根据需求设置,比如,第一目标字符为NN。第一格式和第二格式也可以根据需求设置,比如,第一格式可以为:第一目标字符/{IP01+Port001、IP02+Port002、IP01+Port003},第二格式可以为:第一目标字符/{IP:001、002、003、004}。
比如,第二应用组中的某个应用类型包括30个服务,从这30个服务中,确定知名端口所在的服务分别为IP01+Port001、IP02+Port002,属于环路端口集的服务为IP12+Port002,源端口和目的端口相同的服务为IP14+Port011,属于第二多个客户端访问服务集的服务为IP05+Port005。此时,可以确定出的这些服务的数量为5,假设这些服务的数量5不大于第七阈值,且第一目标字符为NN,则可以确定该应用类型对应的标签为NN/{IP01+Port001、IP02+Port002、IP12+Port002、IP14+Port011、IP05+Port005}。假设这些服务的数量5大于第七阈值,则可以确定该应用类型对应的标签为NN/{IP:001、002、002、011、005}。
在一些实施例中,网络设备确定第三应用组中每个应用类型对应的标签的实现过程可以为:对于第三应用组中的每个应用类型,确定该应用类型包括的服务的数量是否大于第七阈值,如果不大于第七阈值,则基于第二目标字符,按照第一格式,生成该应用类型的标签。如果大于第七阈值,则基于第二目标字符,按照第二格式,生成该应用类型的标签。
第二目标字符可以根据需求设置,比如,第二目标字符为UKN。第一格式和第二格式也可以根据需求设置,比如,第一格式可以为:第二目标字符/{IP01+Port001、IP02+Port002、IP01+Port003},第二格式可以为:第二目标字符/{IP:001、002、003、004}。
当网络设备确定该多个应用类型中每个应用类型对应的标签之后,还可以展示该多个应用类型中每个应用类型对应的标签。
在本申请实施例中,网络设备可以通过对流表进行流行为特征的分析,得到多个服务。由于每个服务由一个IP地址和一个端口标识构成,且一个应用通常可以由一组服务构成,因此,根据流表和域名表,对该多个服务进行聚类之后,可以得到多个应用类型,每个应用类型包括多个服务,且每个应用类型对应一个应用。此时,可以确定该多个应用类型中每个应用类型的标签,从而通过该标签可以识别数据流所属的应用。可以看出,本申请实施例在识别应用的过程并不需要流量特征数据库,而是根据流行为特征即可识别,这样,当有新应用出现时,可以直接根据这个新应用访问的服务端的IP地址和端口,对该新应用进行识别,从而提高了应用的识别率。
图5是本申请实施例提供的一种应用识别装置的结构示意图,该应用识别装置可以由软件、硬件或者两者的结合实现成为网络设备的部分或者全部。参见图5,该装置包括:提取模块501、分析模块502、聚类模块503和确定模块504。其中,提取模块501、分析模块502、聚类模块503和确定模块504的功能均可以通过图2实施例中的处理器来实现。
提取模块501,用于执行图3实施例中步骤301的操作;
分析模块502,用于执行图3实施例中步骤302的操作;
聚类模块503,用于执行图3实施例中步骤303的操作;
确定模块504,用于执行图3实施例中步骤304的操作。
可选地,参见图6,分析模块502包括:
第一确定子模块5021,用于根据流表确定具有环路的端口,得到环路端口集;
第二确定子模块5022,用于基于环路端口集,根据流表确定单客户端访问服务集和第一多客户端访问服务集,单客户端访问服务集中的每个服务被单客户端访问、服务的IP地址和端口属于同一端、且端口不属于环路端口集,第一多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于同一端、且端口不属于环路端口集;
第三确定子模块5023,用于基于环路端口集和第一多客户端访问服务集,根据流表确定第二多客户端访问服务集,第二多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于不同端、且端口不属于环路端口集;
合并子模块5024,用于将第一多客户端访问服务集、第二多客户端访问服务集和单客户端访问服务集进行合并,得到多个服务。
可选地,第一确定子模块5021主要用于:
对于流表中的每个端口,根据流表获取端口的同端IP地址集合和对端IP地址集合;
确定端口的同端IP地址集合和对端IP地址集合的交集,得到多个IP地址;
根据流表,确定经由该端口的所有数据流中多个IP地址对应的数据流的总流数,将确定的总流数作为第一总流数;
如果第一总流数大于第一阈值,则确定经由该端口的所有数据流的总流数,将确定的总流数作为第二总流数;
如果第一总流数与第二总流数之间的比值大于第二阈值,则确定该端口为具有环路的端口。
可选地,第二确定子模块5022主要用于:
根据流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务,得到单客户端访问潜在服务集和第一多客户端访问潜在服务集;
从单客户端访问潜在服务集中过滤环路端口集中的端口所在的服务,得到单客户端访问服务集,从第一多客户端访问潜在服务集中过滤环路端口集中的端口所在的服务,得到第一多客户端访问服务集。
可选地,第二确定子模块5022还用于:
根据流表确定多个目标服务,每个目标服务对应一个流表项中属于同一端的IP地址和端口,且每个目标服务对应多条数据流;
对于多个目标服务中的每个目标服务,确定目标服务的端口是否为随机产生的;
如果目标服务的端口是随机产生的,则确定目标服务的IP地址对应的同侧端口数量是否大于第三阈值;
如果目标服务的IP地址对应的同侧端口数量大于第三阈值,则确定目标服务对应的对端数量是否大于第四阈值;
如果目标服务对应的对端数量大于第四阈值,则确定目标服务为被多客户端访问且IP地址和端口属于同一端的服务;
如果目标服务对应的对端数量不大于第四阈值,则确定目标服务的对端IP地址是否唯一;
如果目标服务的对端IP地址唯一,则确定目标服务为被单客户端访问且IP地址和端口属于同一端的服务。
可选地,第二确定子模块5022还用于:
如果目标服务的端口不是随机产生的,则确定目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
可选地,第二确定子模块5022还用于:
如果目标服务的IP地址对应的同侧端口数量不大于第三阈值,则确定目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
可选地,第三确定子模块5023主要用于:
基于第一多客户端访问服务集,根据流表,确定被多客户端访问且IP地址和端口属于不同端的服务,得到第二多客户端访问潜在服务集;
从第二多客户端访问潜在服务集中过滤环路端口集中的端口所在的服务,得到第二多客户端访问服务集。
可选地,第三确定子模块5023还用于:
将流表中位于同一流表项且属于不同端的IP地址和端口确定为一个参考服务,得到多个参考服务;
对于多个参考服务中的每个参考服务,确定参考服务是否对应多条数据流;
如果参考服务对应多条数据流,则确定参考服务的端口是否为随机产生的;
如果参考服务的端口不是随机产生的,则确定参考服务的端口是否包含在第一多客户端访问服务集中;
如果参考服务的端口未包含在第一多客户端访问服务集中,则确定参考服务的IP地址是否包含在域名表的源IP地址中;
如果参考服务的IP地址未包含在域名表的源IP地址中,则确定参考服务为被多客户端访问且IP地址和端口属于不同端的服务。
可选地,参见图7,聚类模块503包括:
第一聚类子模块5031,用于根据流表和域名表,对多个服务进行时间相关性聚类,得到时间相关性聚类结果;
第二聚类子模块5032,用于根据流表,从多个服务中选择具有周期性的服务,得到周期性聚类结果;
获取子模块5033,用于根据域名表,从多个服务中,获取多个第一服务和多个第二服务,多个第一服务是指被多客户端访问且有对应域名的服务,多个第二服务包括被多客户端访问且无对应域名的服务和被单客户端访问的服务;
第三聚类子模块5034,用于对多个第一服务进行语义相关性聚类,得到语义相关性聚类结果;
第四聚类子模块5035,用于对多个第二服务进行客户端相似度聚类,得到客户端相似度聚类结果;
融合子模块5036,用于对时间相关性聚类结果、周期性聚类结果、语义相关性聚类结果和客户端相似度聚类结果进行融合,得到多个应用类型。
可选地,第一聚类子模块5031主要用于:
根据流表,获取多个服务中每个服务所在的流表项中的流起始时间;
根据获取的流起始时间,确定多个服务中每两个服务之间的时间差;
通过确定的时间差,确定多个服务中每两个服务之间的时间相关性;
根据多个服务中每两个服务之间的时间相关性,从多个服务中选择满足时间相关性条件的服务;
根据选择出的服务之间的时间相关性,生成相似度矩阵;
根据相似度矩阵,按照谱聚类分析,确定多个服务的谱聚类结果;
根据域名表,确定多个服务中每两个服务之间的相似度;
根据多个服务中每两个服务之间的相似度和谱聚类结果,确定时间相关性聚类结果。
可选地,第二聚类子模块5032主要用于:
对于多个服务中的每个服务,根据流表,获取同一客户端访问服务的多条数据流的流起始时间;
按照访问服务的多条数据流的流起始时间的先后顺序,确定每相邻两个流起始时间之间的时间差;
基于确定的时间差,通过傅里叶变换,确定该服务的周期性是否为强周期性;
如果该服务的周期性为强周期性,则确定该服务为具有周期性的服务。
可选地,第三聚类子模块5034主要用于:
按照域名的语义相关性,对多个第一服务进行聚类,得到多个第一聚类结果;
基于多个第一聚类结果间的域名相似度,对多个第一聚类结果进行合并,得到多个第二聚类结果;
根据多个第一服务中未聚类的服务与每个第二聚类结果间的域名语义相关性,将未聚类的服务与多个第二聚类结果进行聚类,得到语义相关性聚类结果。
可选地,第三聚类子模块5034还用于:
从多个第一服务中,获取被多客户端访问且对应唯一域名的多个第三服务,以及从多个第一服务中,获取被多客户端访问且对应多域名的多个第四服务;
从多个第四服务对应的域名中,获取可合并的域名,并将可合并的域名进行合并,得到多个第一域名;
去除每个第一域名中的数字和符号,以及去除每个第三服务对应的域名中的数字和符号,得到多个第二域名;
按照多个第二域名的语义相关性,将多个第二域名对应的服务进行聚类;
按照多个第四服务对应的域名中不可合并的域名的语义相关性,将不可合并的域名对应的服务进行聚类。
可选地,第四聚类子模块5035主要用于:
确定访问多个第二服务中每个第二服务的客户端的IP地址;
按照访问每个第二服务的客户端的IP地址的交并比,对多个第二服务进行聚类,得到客户端相似度聚类结果。
可选地,确定模块504用于:
将多个应用类型划分为第一应用组、第二应用组和第三应用组,第一应用组中的每个应用类型包括的服务存在对应的域名,第二应用组中的每个应用类型包括的服务均不存在对应的域名,第三应用组中的每个应用类型对应一个未聚类的服务;
基于第一应用组中的每个应用类型包括的服务对应的域名,确定每个应用类型对应的标签;
确定第二应用组和第三应用组中每个应用类型对应的标签。
在本申请实施例中,网络设备可以通过对流表进行流行为特征的分析,得到多个服务。由于每个服务由一个IP地址和一个端口标识构成,且一个应用通常可以由一组服务构成,因此,根据流表和域名表,对该多个服务进行聚类之后,可以得到多个应用类型,每个应用类型包括多个服务,且每个应用类型对应一个应用。此时,可以确定该多个应用类型中每个应用类型的标签,从而通过该标签可以识别数据流所属的应用。可以看出,本申请实施例在识别应用的过程并不需要流量特征数据库,而是根据流行为特征即可识别,这样,当有新应用出现时,可以直接根据这个新应用访问的服务端的IP地址和端口,对该新应用进行识别,从而提高了应用的识别率。
上述实施例提供的应用识别装置在应用识别时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用识别装置与应用识别方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
实施例可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。
应当理解的是,本文提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (23)
1.一种应用识别方法,其特征在于,所述方法包括:
对多条数据流分别提取特征,得到流表和域名表,所述流表包括多个流表项,所述多个流表中的每个流表项包括五元组和流起始时间,所述域名表包括多个域名表项,所述多个域名表项中的每个域名表项包括源互联网协议IP地址、目的域名、目的IP地址和域名类型;
根据所述流表进行流行为特征的分析,得到多个服务,每个服务由一个IP地址和一个端口标识构成;
根据所述流表和所述域名表,对所述多个服务进行聚类,得到多个应用类型;
确定所述多个应用类型中每个应用类型对应的标签,所述标签用于识别数据流所属的应用。
2.如权利要求1所述的方法,其特征在于,所述根据所述流表进行流行为特征的分析,得到多个服务,包括:
根据所述流表确定具有环路的端口,得到环路端口集;
基于所述环路端口集,根据所述流表确定单客户端访问服务集和第一多客户端访问服务集,所述单客户端访问服务集中的每个服务被单客户端访问、服务的IP地址和端口属于同一端、且端口不属于所述环路端口集,所述第一多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于同一端、且端口不属于所述环路端口集;
基于所述环路端口集和所述第一多客户端访问服务集,根据所述流表确定第二多客户端访问服务集,所述第二多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于不同端、且端口不属于所述环路端口集;
将所述第一多客户端访问服务集、所述第二多客户端访问服务集和所述单客户端访问服务集进行合并,得到所述多个服务。
3.如权利要求2所述的方法,其特征在于,所述根据所述流表确定具有环路的端口,包括:
对于所述流表中的每个端口,根据所述流表获取所述端口的同端IP地址集合和对端IP地址集合;
确定所述端口的同端IP地址集合和对端IP地址集合的交集,得到多个IP地址;
根据所述流表,确定经由所述端口的所有数据流中所述多个IP地址对应的数据流的总流数,将确定的总流数作为第一总流数;
如果所述第一总流数大于第一阈值,则确定经由所述端口的所有数据流的总流数,将确定的总流数作为第二总流数;
如果所述第一总流数与所述第二总流数之间的比值大于第二阈值,则确定所述端口为具有环路的端口。
4.如权利要求2所述的方法,其特征在于,所述基于所述环路端口集,根据所述流表确定单客户端访问服务集和第一多客户端访问服务集,包括:
根据所述流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务,得到单客户端访问潜在服务集和第一多客户端访问潜在服务集;
从所述单客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述单客户端访问服务集,从所述第一多客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述第一多客户端访问服务集。
5.如权利要求4所述的方法,其特征在于,所述根据所述流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务,包括:
根据所述流表确定多个目标服务,每个目标服务对应一个流表项中属于同一端的IP地址和端口,且每个目标服务对应多条数据流;
对于所述多个目标服务中的每个目标服务,确定所述目标服务的端口是否为随机产生的;
如果所述目标服务的端口是随机产生的,则确定所述目标服务的IP地址对应的同侧端口数量是否大于第三阈值;
如果所述目标服务的IP地址对应的同侧端口数量大于所述第三阈值,则确定所述目标服务对应的对端数量是否大于第四阈值;
如果所述目标服务对应的对端数量大于所述第四阈值,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务;
如果所述目标服务对应的对端数量不大于所述第四阈值,则确定所述目标服务的对端IP地址是否唯一;
如果所述目标服务的对端IP地址唯一,则确定所述目标服务为被单客户端访问且IP地址和端口属于同一端的服务。
6.如权利要求5所述的方法,其特征在于,所述确定所述目标服务的端口是否为随机产生的之后,还包括:
如果所述目标服务的端口不是随机产生的,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
7.如权利要求5所述的方法,其特征在于,所述确定所述目标服务的IP地址对应的同侧端口数量是否大于第三阈值之后,还包括:
如果所述目标服务的IP地址对应的同侧端口数量不大于所述第三阈值,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
8.如权利要求2所述的方法,其特征在于,所述基于所述环路端口集和所述第一多客户端访问服务集,根据所述流表确定第二多客户端访问服务集,包括:
基于所述第一多客户端访问服务集,根据所述流表,确定被多客户端访问且IP地址和端口属于不同端的服务,得到第二多客户端访问潜在服务集;
从所述第二多客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述第二多客户端访问服务集。
9.如权利要求8所述的方法,其特征在于,所述基于所述第一多客户端访问服务集,根据所述流表,确定被多客户端访问且IP地址和端口属于不同端的服务,包括:
将所述流表中位于同一流表项且属于不同端的IP地址和端口确定为一个参考服务,得到多个参考服务;
对于所述多个参考服务中的每个参考服务,确定所述参考服务是否对应多条数据流;
如果所述参考服务对应多条数据流,则确定所述参考服务的端口是否为随机产生的;
如果所述参考服务的端口不是随机产生的,则确定所述参考服务的端口是否包含在所述第一多客户端访问服务集中;
如果所述参考服务的端口未包含在所述第一多客户端访问服务集中,则确定所述参考服务的IP地址是否包含在所述域名表的源IP地址中;
如果所述参考服务的IP地址未包含在所述域名表的源IP地址中,则确定所述参考服务为被多客户端访问且IP地址和端口属于不同端的服务。
10.如权利要求1-9中任意一项所述的方法,其特征在于,所述根据所述流表和所述域名表,对所述多个服务进行聚类,得到多个应用类型,包括:
根据所述流表和所述域名表,对所述多个服务进行时间相关性聚类,得到时间相关性聚类结果;
根据所述流表,从所述多个服务中选择具有周期性的服务,得到周期性聚类结果;
根据所述域名表,从所述多个服务中,获取多个第一服务和多个第二服务,所述多个第一服务是指被多客户端访问且有对应域名的服务,所述多个第二服务包括被多客户端访问且无对应域名的服务和被单客户端访问的服务;
对所述多个第一服务进行语义相关性聚类,得到语义相关性聚类结果;
对所述多个第二服务进行客户端相似度聚类,得到客户端相似度聚类结果;
对所述时间相关性聚类结果、所述周期性聚类结果、所述语义相关性聚类结果和所述客户端相似度聚类结果进行融合,得到所述多个应用类型。
11.如权利要求1-10中任意一项所述的方法,其特征在于,所述确定所述多个应用类型中每个应用类型对应的标签,包括:
将所述多个应用类型划分为第一应用组、第二应用组和第三应用组,所述第一应用组中的每个应用类型包括的服务存在对应的域名,所述第二应用组中的每个应用类型包括的服务均不存在对应的域名,所述第三应用组中的每个应用类型对应一个未聚类的服务;
基于所述第一应用组中的每个应用类型包括的服务对应的域名,确定每个应用类型对应的标签;
确定所述第二应用组和第三应用组中每个应用类型对应的标签。
12.一种应用识别装置,其特征在于,所述装置包括:
提取模块,用于对多条数据流分别提取特征,得到流表和域名表,所述流表包括多个流表项,所述多个流表中的每个流表项包括五元组和流起始时间,所述域名表包括多个域名表项,所述多个域名表项中的每个域名表项包括源互联网协议IP地址、目的域名、目的IP地址和域名类型;
分析模块,用于根据所述流表进行流行为特征的分析,得到多个服务,每个服务由一个IP地址和一个端口标识构成;
聚类模块,用于根据所述流表和所述域名表,对所述多个服务进行聚类,得到多个应用类型;
确定模块,用于确定所述多个应用类型中每个应用类型对应的标签,所述标签用于识别数据流所属的应用。
13.如权利要求12所述的装置,其特征在于,所述分析模块包括:
第一确定子模块,用于根据所述流表确定具有环路的端口,得到环路端口集;
第二确定子模块,用于基于所述环路端口集,根据所述流表确定单客户端访问服务集和第一多客户端访问服务集,所述单客户端访问服务集中的每个服务被单客户端访问、服务的IP地址和端口属于同一端、且端口不属于所述环路端口集,所述第一多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于同一端、且端口不属于所述环路端口集;
第三确定子模块,用于基于所述环路端口集和所述第一多客户端访问服务集,根据所述流表确定第二多客户端访问服务集,所述第二多客户端访问服务集中的每个服务被多客户端访问、服务的IP地址和端口属于不同端、且端口不属于所述环路端口集;
合并子模块,用于将所述第一多客户端访问服务集、所述第二多客户端访问服务集和所述单客户端访问服务集进行合并,得到所述多个服务。
14.如权利要求13所述的装置,其特征在于,所述第一确定子模块主要用于:
对于所述流表中的每个端口,根据所述流表获取所述端口的同端IP地址集合和对端IP地址集合;
确定所述端口的同端IP地址集合和对端IP地址集合的交集,得到多个IP地址;
根据所述流表,确定经由所述端口的所有数据流中所述多个IP地址对应的数据流的总流数,将确定的总流数作为第一总流数;
如果所述第一总流数大于第一阈值,则确定经由所述端口的所有数据流的总流数,将确定的总流数作为第二总流数;
如果所述第一总流数与所述第二总流数之间的比值大于第二阈值,则确定所述端口为具有环路的端口。
15.如权利要求13所述的装置,其特征在于,所述第二确定子模块主要用于:
根据所述流表确定被单客户端访问且IP地址和端口属于同一端的服务,以及被多客户端访问且IP地址和端口属于同一端的服务,得到单客户端访问潜在服务集和第一多客户端访问潜在服务集;
从所述单客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述单客户端访问服务集,从所述第一多客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述第一多客户端访问服务集。
16.如权利要求15所述的装置,其特征在于,所述第二确定子模块还用于:
根据所述流表确定多个目标服务,每个目标服务对应一个流表项中属于同一端的IP地址和端口,且每个目标服务对应多条数据流;
对于所述多个目标服务中的每个目标服务,确定所述目标服务的端口是否为随机产生的;
如果所述目标服务的端口是随机产生的,则确定所述目标服务的IP地址对应的同侧端口数量是否大于第三阈值;
如果所述目标服务的IP地址对应的同侧端口数量大于所述第三阈值,则确定所述目标服务对应的对端数量是否大于第四阈值;
如果所述目标服务对应的对端数量大于所述第四阈值,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务;
如果所述目标服务对应的对端数量不大于所述第四阈值,则确定所述目标服务的对端IP地址是否唯一;
如果所述目标服务的对端IP地址唯一,则确定所述目标服务为被单客户端访问且IP地址和端口属于同一端的服务。
17.如权利要求16所述的装置,其特征在于,所述第二确定子模块还用于:
如果所述目标服务的端口不是随机产生的,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
18.如权利要求16所述的装置,其特征在于,所述第二确定子模块还用于:
如果所述目标服务的IP地址对应的同侧端口数量不大于所述第三阈值,则确定所述目标服务为被多客户端访问且IP地址和端口属于同一端的服务。
19.如权利要求13所述的装置,其特征在于,所述第三确定子模块用于:
基于所述第一多客户端访问服务集,根据所述流表,确定被多客户端访问且IP地址和端口属于不同端的服务,得到第二多客户端访问潜在服务集;
从所述第二多客户端访问潜在服务集中过滤所述环路端口集中的端口所在的服务,得到所述第二多客户端访问服务集。
20.如权利要求19所述的装置,其特征在于,所述第三确定子模块还用于:
将所述流表中位于同一流表项且属于不同端的IP地址和端口确定为一个参考服务,得到多个参考服务;
对于所述多个参考服务中的每个参考服务,确定所述参考服务是否对应多条数据流;
如果所述参考服务对应多条数据流,则确定所述参考服务的端口是否为随机产生的;
如果所述参考服务的端口不是随机产生的,则确定所述参考服务的端口是否包含在所述第一多客户端访问服务集中;
如果所述参考服务的端口未包含在所述第一多客户端访问服务集中,则确定所述参考服务的IP地址是否包含在所述域名表的源IP地址中;
如果所述参考服务的IP地址未包含在所述域名表的源IP地址中,则确定所述参考服务为被多客户端访问且IP地址和端口属于不同端的服务。
21.如权利要求12-20中任意一项所述的装置,其特征在于,所述聚类模块包括:
第一聚类子模块,用于根据所述流表和所述域名表,对所述多个服务进行时间相关性聚类,得到时间相关性聚类结果;
第二聚类子模块,用于根据所述流表,从所述多个服务中选择具有周期性的服务,得到周期性聚类结果;
获取子模块,用于根据所述域名表,从所述多个服务中,获取多个第一服务和多个第二服务,所述多个第一服务是指被多客户端访问且有对应域名的服务,所述多个第二服务包括被多客户端访问且无对应域名的服务和被单客户端访问的服务;
第三聚类子模块,用于对所述多个第一服务进行语义相关性聚类,得到语义相关性聚类结果;
第四聚类子模块,用于对所述多个第二服务进行客户端相似度聚类,得到客户端相似度聚类结果;
融合子模块,用于对所述时间相关性聚类结果、所述周期性聚类结果、所述语义相关性聚类结果和所述客户端相似度聚类结果进行融合,得到所述多个应用类型。
22.如权利要求12-21中任意一项所述的装置,其特征在于,所述确定模块用于:
将所述多个应用类型划分为第一应用组、第二应用组和第三应用组,所述第一应用组中的每个应用类型包括的服务存在对应的域名,所述第二应用组中的每个应用类型包括的服务均不存在对应的域名,所述第三应用组中的每个应用类型对应一个未聚类的服务;
基于所述第一应用组中的每个应用类型包括的服务对应的域名,确定每个应用类型对应的标签;
确定所述第二应用组和第三应用组中每个应用类型对应的标签。
23.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-11任一所述的方法的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910853338.4A CN112564991A (zh) | 2019-09-10 | 2019-09-10 | 应用识别方法、装置及存储介质 |
PCT/CN2020/112316 WO2021047402A1 (zh) | 2019-09-10 | 2020-08-29 | 应用识别方法、装置及存储介质 |
EP20863933.6A EP4012980A4 (en) | 2019-09-10 | 2020-08-29 | APPLICATION RECOGNITION METHOD AND DEVICE AND STORAGE MEDIUM |
US17/691,463 US11863439B2 (en) | 2019-09-10 | 2022-03-10 | Method, apparatus and storage medium for application identification |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910853338.4A CN112564991A (zh) | 2019-09-10 | 2019-09-10 | 应用识别方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112564991A true CN112564991A (zh) | 2021-03-26 |
Family
ID=74867254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910853338.4A Pending CN112564991A (zh) | 2019-09-10 | 2019-09-10 | 应用识别方法、装置及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11863439B2 (zh) |
EP (1) | EP4012980A4 (zh) |
CN (1) | CN112564991A (zh) |
WO (1) | WO2021047402A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157540A (zh) * | 2021-03-31 | 2021-07-23 | 国家计算机网络与信息安全管理中心 | 一种用户行为分析方法和系统 |
CN113177206A (zh) * | 2021-05-21 | 2021-07-27 | 滨州职业学院 | 一种计算机应用识别方法、装置及存储介质 |
CN114039906A (zh) * | 2021-09-27 | 2022-02-11 | 网宿科技股份有限公司 | 流量引导方法、电子设备及可读存储介质 |
CN116708369A (zh) * | 2023-08-02 | 2023-09-05 | 闪捷信息科技有限公司 | 网络应用信息合并方法、装置、电子设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230336793A1 (en) * | 2022-04-14 | 2023-10-19 | Oxylabs, Uab | Streaming proxy service |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873259A (zh) * | 2010-06-01 | 2010-10-27 | 华为技术有限公司 | Sctp报文识别方法和装置 |
CN103051725A (zh) * | 2012-12-31 | 2013-04-17 | 华为技术有限公司 | 应用识别方法、数据挖掘方法、装置及系统 |
CN103297270A (zh) * | 2013-05-24 | 2013-09-11 | 华为技术有限公司 | 应用类型识别方法及网络设备 |
CN107426063A (zh) * | 2017-09-22 | 2017-12-01 | 中国联合网络通信集团有限公司 | 互联网应用流量的识别系统及方法 |
US20180041470A1 (en) * | 2016-08-08 | 2018-02-08 | Talari Networks Incorporated | Applications and integrated firewall design in an adaptive private network (apn) |
CN108650195A (zh) * | 2018-04-17 | 2018-10-12 | 南京烽火天地通信科技有限公司 | 一种app流量自动识别模型构建方法 |
CN109905288A (zh) * | 2018-12-21 | 2019-06-18 | 中国科学院信息工程研究所 | 一种应用服务分类方法及装置 |
CN110197234A (zh) * | 2019-06-13 | 2019-09-03 | 四川大学 | 一种基于双通道卷积神经网络的加密流量分类方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291495B1 (en) * | 2007-08-08 | 2012-10-16 | Juniper Networks, Inc. | Identifying applications for intrusion detection systems |
US20100192225A1 (en) * | 2009-01-28 | 2010-07-29 | Juniper Networks, Inc. | Efficient application identification with network devices |
CN102984243B (zh) * | 2012-11-20 | 2016-05-11 | 杭州迪普科技有限公司 | 一种ssl协议中应用的自动识别方法和装置 |
US9477718B2 (en) * | 2012-12-31 | 2016-10-25 | Huawei Technologies Co., Ltd | Application identification method, and data mining method, apparatus, and system |
US9569368B2 (en) * | 2013-12-13 | 2017-02-14 | Nicira, Inc. | Installing and managing flows in a flow table cache |
CN107864168B (zh) * | 2016-09-22 | 2021-05-18 | 华为技术有限公司 | 一种网络数据流分类的方法及系统 |
CN106534145B (zh) * | 2016-11-28 | 2019-11-15 | 拓尔思天行网安信息技术有限责任公司 | 一种应用识别方法及设备 |
CN108173705A (zh) * | 2017-11-28 | 2018-06-15 | 北京天融信网络安全技术有限公司 | 流量引流的首包识别方法、装置、设备及介质 |
CN115037575A (zh) * | 2017-12-26 | 2022-09-09 | 华为技术有限公司 | 报文处理的方法和装置 |
WO2020112658A1 (en) * | 2018-11-27 | 2020-06-04 | Xaxar Inc. | Systems and methods of data flow classification |
US11456952B2 (en) * | 2020-08-04 | 2022-09-27 | Pensando Systems, Inc. | Methods and systems for removing expired flow table entries using an extended packet processing pipeline |
-
2019
- 2019-09-10 CN CN201910853338.4A patent/CN112564991A/zh active Pending
-
2020
- 2020-08-29 EP EP20863933.6A patent/EP4012980A4/en active Pending
- 2020-08-29 WO PCT/CN2020/112316 patent/WO2021047402A1/zh unknown
-
2022
- 2022-03-10 US US17/691,463 patent/US11863439B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873259A (zh) * | 2010-06-01 | 2010-10-27 | 华为技术有限公司 | Sctp报文识别方法和装置 |
CN103051725A (zh) * | 2012-12-31 | 2013-04-17 | 华为技术有限公司 | 应用识别方法、数据挖掘方法、装置及系统 |
CN103297270A (zh) * | 2013-05-24 | 2013-09-11 | 华为技术有限公司 | 应用类型识别方法及网络设备 |
US20180041470A1 (en) * | 2016-08-08 | 2018-02-08 | Talari Networks Incorporated | Applications and integrated firewall design in an adaptive private network (apn) |
CN107426063A (zh) * | 2017-09-22 | 2017-12-01 | 中国联合网络通信集团有限公司 | 互联网应用流量的识别系统及方法 |
CN108650195A (zh) * | 2018-04-17 | 2018-10-12 | 南京烽火天地通信科技有限公司 | 一种app流量自动识别模型构建方法 |
CN109905288A (zh) * | 2018-12-21 | 2019-06-18 | 中国科学院信息工程研究所 | 一种应用服务分类方法及装置 |
CN110197234A (zh) * | 2019-06-13 | 2019-09-03 | 四川大学 | 一种基于双通道卷积神经网络的加密流量分类方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157540A (zh) * | 2021-03-31 | 2021-07-23 | 国家计算机网络与信息安全管理中心 | 一种用户行为分析方法和系统 |
CN113177206A (zh) * | 2021-05-21 | 2021-07-27 | 滨州职业学院 | 一种计算机应用识别方法、装置及存储介质 |
CN114039906A (zh) * | 2021-09-27 | 2022-02-11 | 网宿科技股份有限公司 | 流量引导方法、电子设备及可读存储介质 |
CN114039906B (zh) * | 2021-09-27 | 2023-09-22 | 网宿科技股份有限公司 | 流量引导方法、电子设备及可读存储介质 |
CN116708369A (zh) * | 2023-08-02 | 2023-09-05 | 闪捷信息科技有限公司 | 网络应用信息合并方法、装置、电子设备和存储介质 |
CN116708369B (zh) * | 2023-08-02 | 2023-10-27 | 闪捷信息科技有限公司 | 网络应用信息合并方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4012980A1 (en) | 2022-06-15 |
WO2021047402A1 (zh) | 2021-03-18 |
US11863439B2 (en) | 2024-01-02 |
EP4012980A4 (en) | 2022-10-05 |
US20220200902A1 (en) | 2022-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112564991A (zh) | 应用识别方法、装置及存储介质 | |
CN107832407B (zh) | 用于生成知识图谱的信息处理方法、装置和可读存储介质 | |
US9442979B2 (en) | Data analysis using multiple systems | |
CN106982150B (zh) | 一种基于Hadoop的移动互联网用户行为分析方法 | |
US20240232260A9 (en) | Data storage and querying | |
Bosagh Zadeh et al. | On the precision of social and information networks | |
CN114153980A (zh) | 知识图谱构建方法和装置、检查方法、存储介质 | |
CN106650783A (zh) | 用于移动终端数据分类、生成、匹配的方法、装置及系统 | |
CN111488515A (zh) | 信息查询方法、装置、设备及存储介质 | |
CN112035449A (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN112307318A (zh) | 一种内容发布方法、系统及装置 | |
CN110825919A (zh) | Id数据处理方法和装置 | |
US11531706B2 (en) | Graph search using index vertices | |
CN113157904A (zh) | 基于dfa算法的敏感词过滤方法及系统 | |
KR20110125905A (ko) | 패턴분석을 이용한 댓글 관리 방법, 그 시스템, 및 웹 서버 | |
CN112764839B (zh) | 一种用于管理服务平台的大数据配置方法及系统 | |
CN108737522B (zh) | 一种消息的处理方法、装置和系统 | |
CN112564928B (zh) | 服务分类方法及设备、互联网系统 | |
CN112532414B (zh) | 确定isp归属的方法、装置、设备及计算机存储介质 | |
CN110781211B (zh) | 一种数据的解析方法及装置 | |
CN108449226B (zh) | 信息快速分类的方法和系统 | |
CN111061719A (zh) | 数据收集方法、装置、设备和存储介质 | |
CN110781309A (zh) | 一种基于模式匹配的实体并列关系相似度计算方法 | |
Shim et al. | The method of clustering network traffic classifications for extracting payload signature by function | |
CN112738207B (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 |