CN111182072A - 会话请求的应用识别方法、装置和计算机设备 - Google Patents
会话请求的应用识别方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111182072A CN111182072A CN201911424693.6A CN201911424693A CN111182072A CN 111182072 A CN111182072 A CN 111182072A CN 201911424693 A CN201911424693 A CN 201911424693A CN 111182072 A CN111182072 A CN 111182072A
- Authority
- CN
- China
- Prior art keywords
- session request
- application
- identification
- cache
- identification result
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种会话请求的应用识别方法,应用于网关设备,包括:接收来自客户端的会话请求,该会话请求包括多个数据包。然后,基于会话请求的首个数据包中的标识信息,在网关设备的应用识别缓存中查找针对该标识信息的缓存识别结果。响应于查找到针对该标识信息的缓存识别结果,再确定会话请求是否符合预定条件。如果确定会话请求符合预定条件,则基于上述缓存识别结果,确定会话请求的应用识别结果。其中,会话请求的应用识别结果包括:会话请求的源应用信息,和/或,会话请求的目的应用信息。本公开还提供了一种会话请求的应用识别方法和计算机设备。
Description
技术领域
本公开涉及一种会话请求的应用识别方法、装置和计算机设备。
背景技术
在一种应用识别方案中,网关设备利用应用识别引擎确定会话请求的应用识别结果,并将应用识别结果进行缓存。之后在接收到新的会话请求时,先在网关设备的缓存中查找相应的应用识别结果,如果存在则直接利用缓存中的应用识别结果。然而,对于任一已缓存应用识别结果的会话请求来说,如果该会话请求的相关应用发生变更,则继续使用缓存中的针对该会话请求的应用识别结果会导致应用识别准确率下降。
发明内容
本公开的一个方面提供了一种会话请求的应用识别方法,应用于网关设备,包括:接收来自客户端的会话请求,该会话请求包括多个数据包。然后,基于会话请求的首个数据包中的标识信息,在网关设备的应用识别缓存中查找针对该标识信息的缓存识别结果。响应于查找到针对该标识信息的缓存识别结果,再确定会话请求是否符合预定条件。如果确定会话请求符合预定条件,则基于上述缓存识别结果,确定会话请求的应用识别结果。其中,会话请求的应用识别结果包括:会话请求的源应用信息,和/或,会话请求的目的应用信息。
可选地,上述方法还包括:响应于未查找到针对标识信息的缓存识别结果,利用网关设备的应用识别引擎,基于会话请求的多个数据包识别会话请求的应用识别结果。
可选地,上述方法还包括:在上述基于会话请求的多个数据包识别会话请求的应用识别结果之后,将应用识别结果添加至应用识别缓存。
可选地,缓存识别结果包括终止引擎识别标识。上述确定会话请求是否符合预定条件包括:当缓存识别结果中的终止引擎识别标识的取值为第一数值时,利用网关设备的应用识别引擎,基于会话请求的多个数据包识别会话请求的应用识别结果。当终止引擎识别标识的取值为第二数值时,获取针对会话请求的第一预定阈值,并生成针对会话请求的随机值,并且,在第一预定阈值大于随机值的情况下,确定会话请求符合预定条件。
可选地,上述获取针对会话请求的第一预定阈值包括:确定该会话请求所属的识别类型,然后将针对该识别类型所设置的概率阈值作为针对该会话请求的第一预定阈值。
可选地,上述方法还包括:对于应用识别缓存中的任一缓存识别结果,基于该任一缓存识别结果中的识别类型,确定该任一缓存识别结果的超时时间。从该任一缓存识别结果生成或更新时开始计时,当计时达到该任一缓存识别结果的超时时间时,将该任一缓存识别结果从所述应用识别缓存中删除。
可选地,上述生成针对所述会话请求的随机值包括:计算接收到会话请求的时间信息的哈希值,以作为针对该会话请求的随机值。
可选地,上述方法还包括:如果确定会话请求不符合预定条件,则利用网关设备的应用识别引擎,基于会话请求的多个数据包识别该会话请求的应用识别结果。
可选地,上述方法还包括:在基于会话请求的多个数据包识别会话请求的应用识别结果之后,确定该应用识别结果与之前在应用识别缓存中查询到的缓存识别结果是否匹配。如果不匹配,则分别获取该应用识别结果的可信度和所查找到的缓存识别结果的可信度。当应用识别结果的可信度高于缓存识别结果的可信度时,接着确定缓存识别结果的可信度是否低于第二预定阈值。如果确定缓存识别结果的可信度是低于第二预定阈值,则利用应用识别结果在应用识别缓存中更新该缓存识别结果,如果否,则降低该缓存识别结果的可信度。
可选地,缓存识别结果包括:应用名称和用于进行协议还原的类别信息。上述基于缓存识别结果,确定会话请求的应用识别结果包括:将缓存识别结果中的应用名称和用于进行协议还原的类别信息作为会话请求的应用识别结果。
可选地,上述方法还包括:响应于查找到针对标识信息的缓存识别结果,在上述确定所述会话请求是否符合预定条件之前,基于缓存识别结果中的应用信息,在网关设备中查找针对会话请求的属性标识。如果查找到,则利用网关设备的应用识别引擎基于多个数据包,识别会话请求的应用识别结果。如果未查找到,则执行确定所述会话请求是否符合预定条件的操作。
本公开的另一方面提供了一种会话请求的应用识别装置,应用于网关设备,包括:接收模块、匹配模块、第一确定模块和第二确定模块。接收模块用于接收来自客户端的会话请求,会话请求包括多个数据包。匹配模块用于基于多个数据包的首个数据包中的标识信息,在网关设备的应用识别缓存中查找针对标识信息的缓存识别结果。第一确定模块用于响应于查找到针对标识信息的缓存识别结果,确定会话请求是否符合预定条件。第二确定模块用于在确定会话请求符合预定条件时,基于缓存识别结果,确定会话请求的应用识别结果。其中,应用识别结果包括:所述会话请求的源应用信息,和/或,所述会话请求的目的应用信息。
本公开的另一方面提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开的实施例的会话请求的应用识别方法和装置的应用场景;
图2A示意性示出了根据本公开实施例的会话请求的应用识别方法的流程图;
图2B示意性示出了根据本公开另一实施例的会话请求的应用识别方法的流程图;
图3示意性示出了根据本公开另一实施例的会话请求的应用识别方法的流程图;
图4示意性示出了根据本公开另一实施例的会话请求的应用识别方法的流程图;
图5示意性示出了根据本公开实施例的会话请求的应用识别装置的框图;以及
图6示意性示出了根据本公开实施例的计算机设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的一个方面提供了一种会话请求的应用识别方法和装置,应用于网关设备,网关设备包括应用识别缓存。该方法用于确定会话请求的应用识别结果,会话请求的应用识别结果可以包括:会话请求的源应用信息,和/或,会话请求的目的应用信息。该方法可以包括会话接收过程、缓存查找过程、条件匹配过程和结果确定过程。在会话接收过程,接收来自客户端的会话请求,该会话请求包括多个数据包。然后进行缓存查找过程,基于会话请求的首个数据包中的标识信息,在应用识别缓存中查找针对该标识信息的缓存识别结果。响应于查找到针对该标识信息的缓存识别结果,进行条件匹配过程,确定会话请求是否符合预定条件。如果确定会话请求符合预定条件,则进行结果确定过程,基于上述缓存识别结果,确定会话请求的应用识别结果。
图1示意性示出了根据本公开的实施例的会话请求的应用识别方法和装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景可以包括终端设备101、102,网关设备103,网络104和服务器/服务器集群105、106、107。网关设备103作为部署于终端设备101、102和服务器/服务器集群105、106、107之间的中间件,网络104是用以在网关设备103和服务器/服务器集群105、106、107之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102中可以安装各种客户端,网关设备103可以接收任一客户端发出的会话请求,并对会话请求进行安全分析,再基于安全分析结果对会话请求进行后续处理。例如,对于一些存在安全威胁的会话请求进行过滤、阻拦等。其中,网关设备103在对会话请求进行分析之前,需要对会话请求进行应用识别,以识别会话请求的源应用和/或目的应用。从而依据会话请求的应用识别结果对会话请求进行安全分析。例如,当识别到一个会话请求的目的应用为邮件应用时,基于适配于邮件应用的病毒分析引擎对该会话请求中的数据进行安全分析。再例如,当识别到一个会话请求的目的应用为指定数据库且该会话请求的源应用为指定应用,后续可以进一步分析指定应用是否有针对指定数据库的访问权限。
需要说明的是,本公开实施例所提供的会话请求的应用识别方法一般可以由网关设备103执行。相应地,本公开实施例所提供的会话请求的应用识别装置一般可以设置于网关设备103中。
应该理解,图1中的终端设备、网络和服务器/服务器集群的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器/服务器集群。
在一种应用识别方案中,网关设备利用应用识别引擎确定会话请求的应用识别结果,并将应用识别结果进行缓存。之后在接收到新的会话请求时,先在网关设备的缓存中查找相应的应用识别结果,如果存在则直接利用缓存中的应用识别结果。然而,对于任一已缓存应用识别结果的会话请求来说,如果该会话请求的相关应用发生变更,则继续使用缓存中的针对该会话请求的应用识别结果会导致应用识别准确率下降。
根据本公开实施例,提供了一种会话请求的应用识别方法,以尽量避免在应用变更场景中针对会话请求的应用识别准确率下降,下面结合图例对该方法进行示例性说明。应注意,以下方法中各个步骤的序号仅作为该步骤的表示以便描述,而不应被看作表示该各个步骤的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
图2A示意性示出了根据本公开实施例的会话请求的应用识别方法的流程图。该方法应用于网关(gateway)设备,该网关设备包括应用识别缓存(applicationidentification cache,ai cache)。
如图2A所示,该方法包括操作S210~S240。
在操作S210,接收来自客户端的会话请求。
其中,该会话请求可以包括多个数据包。
然后,在操作S220,基于会话请求的首个数据包中的标识信息,在网关设备的应用识别缓存中查找针对该标识信息的缓存识别结果。
示例性地,首个数据包中的标识信息例如可以包括源IP、目的IP、源端口、目的端口、协议类型等中的一个或多个。例如本操作S220抓取会话请求的首个数据包并提取其中的五元组(源IP、目的IP、源端口、目的端口、协议类型),从而获得该会话请求的标识信息。然后基于该标识信息从应用识别缓存中查找相应的缓存识别结果。该过程仅需在接收到会话请求的首个数据包后即可进行,十分快速便捷。应用识别缓存中的每个缓存识别结果可以包括:会话请求的标识信息,与标识信息对应的源应用信息和/或目的应用信息。应用识别缓存中如果存在针对该会话请求的缓存识别结果,说明该会话请求之前已被识别过。
接着,在操作S230,响应于查找到针对该标识信息的缓存识别结果,再确定会话请求是否符合预定条件。
接着,在操作S240,如果确定会话请求符合预定条件,则基于上述缓存识别结果,确定会话请求的应用识别结果。
其中,会话请求的应用识别结果包括:会话请求的源应用信息,和/或,会话请求的目的应用信息。
本领域技术人员可以理解,根据本公开实施例的会话请求的应用识别方法对于接收到的会话请求,如果在网关设备的应用识别缓存中查找到针对该会话请求的缓存识别结果并且确定该会话请求符合预定条件,则直接基于查找到的缓存识别结果确定会话请求的应用识别结果。在其他情况下不直接基于查找到的缓存识别结果确定会话请求的应用识别结果。基于这样的应用识别策略,使得并非所有已识别过的会话请求都通过应用识别缓存进行快速识别,而是有条件有概率选择一些会话请求通过其他方式进行识别,从而在应用变更场景中能够尽量保证针对会话请求的应用识别的准确率,并对应用识别缓存中的缓存识别结果进行校正。
根据本公开的实施例,应用识别缓存中的每个缓存识别结果中除上述标识信息之外,还可以包括应用信息,该应用信息可以包括源应用信息和/或目的应用信息。任一应用信息可以包括:应用名称和用于进行协议还原的类别信息。示例性地,上述基于缓存识别结果,确定会话请求的应用识别结果包括:将缓存识别结果中的应用名称和用于进行协议还原的类别信息作为会话请求的应用识别结果。例如,缓存识别结果包括标识信息、应用名称和用于进行协议还原的类别信息,其中标识信息包括IP和端口,当通过应用名称判断应用类型为服务端时,确定缓存识别结果的标识信息中的IP和端口分别为目的IP和目的端口。当通过应用名称判断应用类型为客户端时,确定缓存识别结果的标识信息中的IP和端口分别为源IP和源端口。直接利用应用识别缓存中的缓存识别结果得到应用识别结果的过程十分便利、高效,能够提高网关设备对于会话请求的处理效率。
根据本公开的实施例,网关设备除应用识别缓存之外,还包括应用识别引擎,应用识别引擎可以对于任意会话请求进行应用识别,以得到应用识别结果。在利用应用识别引擎进行应用识别时,应用识别引擎需要对于会话请求的多个数据包按照一定规则进行特征提取、正则匹配等处理。通常情况下,相比于基于首个数据包中的标识信息查找缓存识别结果并直接利用应用识别缓存中的缓存识别结果来进行应用识别的方式,应用识别引擎的识别复杂度更高、所需时间更长、但识别精度更高。本公开实施例的会话请求的应用识别方法基于网关设备中应用识别缓存和应用识别引擎各自的特点,按照预定策略对接收到的会话请求的应用识别方式进行分配,尽量保证网关设备针对会话请求的应用识别方案无论在识别效率方面还是在识别准确率方面都能保证较为稳定良好的水平。
示例性地,如果在应用识别缓存中未查找到针对一个会话请求的标识信息的缓存识别结果,则利用应用识别引擎对该会话请求的多个数据包进行处理,以得到针对该会话请求的应用识别结果。并且应用识别缓存中没有针对该会话请求的相应记录,说明该会话请求的本次应用识别为第一次应用识别,为了实现协议的首包识别以进行协议完整还原和提高系统性能,可以将应用识别引擎得到的应用识别结果添加至应用识别缓存中。对于所有会话请求均可按照上述过程进行处理。
图2B示意性示出了根据本公开另一实施例的会话请求的应用识别方法的流程图,用于说明图2A所示的操作S230的示例性实施方法。示例性地,缓存识别结果还可以包括终止引擎识别(bypass application identification,bypass ai)标识,一个缓存识别结果中的终止引擎识别标识的取值可以用于表征与该缓存识别结果对应的会话请求适于利用应用识别缓存进行应用识别的程度。
如图2B所示,上述确定会话请求是否符合预定条件的过程可以包括操作S231~S233。
在操作S231,当缓存识别结果中的终止引擎识别标识的取值为第一数值时,利用网关设备的应用识别引擎,基于会话请求的多个数据包识别会话请求的应用识别结果。
然后,在操作S232,当终止引擎识别标识的取值为第二数值时,获取针对会话请求的第一预定阈值,并生成针对会话请求的随机值。
示例性地,上述获取针对会话请求的第一预定阈值包括:确定该会话请求所属的识别类型,然后将针对该识别类型所设置的概率阈值作为针对该会话请求的第一预定阈值。例如,会话请求所属的识别类型例如可以包括:TCP(Transmission Control Protocol,传输控制协议)类型、UDP(User Datagram Protocol,用户数据报协议)类型、P2P(Peer toPeer,点对点)类型、静态类型等,每个会话请求所属的识别类型可以在记录于缓存识别结果中,并在记录识别类型时为其设置相应的概率阈值,不同的识别类型对应于不同的概率阈值,识别类型是首次应用识别时基于会话请求的行为特征划分的,该行为特征可以包括所基于的协议特征、传输路径长度、源端和目的端是否处于同一局域网等。
示例性地,上述生成针对会话请求的随机值的过程可以包括:计算接收到会话请求的时间信息的哈希值,以作为针对该会话请求的随机值。或者,在其他例子中,可以通过其他随机数算法来计算针对会话请求的随机值,在此不做限制。
接着,在操作S233,在第一预定阈值大于随机值的情况下,确定会话请求符合预定条件。
根据本公开的实施例,上述方法还包括:对于应用识别缓存中的任一缓存识别结果,基于该任一缓存识别结果中的识别类型,确定该任一缓存识别结果的超时时间。从该任一缓存识别结果生成或更新时开始计时,当计时达到该任一缓存识别结果的超时时间时,将该任一缓存识别结果从所述应用识别缓存中删除。例如,应用识别缓存对不同识别类型(例如TCP类型、UDP类型、P2P类型、静态类型)还分别设置不同的超时时间。对于任一缓存识别结果,当该缓存识别结果的超时时间达到时,应用识别缓存删除该缓存识别结果。如果再接收到相应的会话请求,则需要利用应用识别引擎对该会话请求重新进行应用识别,新的识别结果重新加入到应用识别缓存中。
可以理解,根据本公开实施例的会话请求的应用识别方法对于接收到的会话请求先通过查询应用识别缓存的方式来得到初步的缓存识别结果。考虑一些情况,与加入到应用识别缓存中的IP、端口对应的服务或应用有可能发生变化,故需要对缓存识别结果进一步分析,决定是否需要利用应用识别引擎进行重新识别。如上文所述的需要进一步确定会话请求是否符合预定条件,如果不符合预定条件,则需要利用应用识别引擎对该会话请求的多个数据包进行处理,以得到针对该会话请求的应用识别结果。并且可以利用新的应用识别结果对应用识别缓存中的缓存识别结果进行校正。上述预定条件用于随机性地对会话请求进行筛选,也可以使用其他筛选方式进行随机性筛选,以使一定概率的会话请求能够通过应用识别引擎来识别,以保证识别准确性。
图3示意性示出了根据本公开另一实施例的会话请求的应用识别方法的流程图。
如图3所示,该方法可以包括操作S210~S260,其中操作S210~S240在上文中已详细说明。
在操作S250,如果确定会话请求不符合预定条件,则利用网关设备的应用识别引擎,基于会话请求的多个数据包识别该会话请求的应用识别结果。
在操作S260,基于应用识别结果对缓存识别结果进行处理。
示例性地,上述基于应用识别结果对缓存识别结果进行处理的过程可以包括:在基于会话请求的多个数据包识别会话请求的应用识别结果之后,确定该应用识别结果与之前在应用识别缓存中查询到的缓存识别结果是否匹配。如果不匹配,则分别获取该应用识别结果的可信度和所查找到的缓存识别结果的可信度。当应用识别结果的可信度高于缓存识别结果的可信度时,接着确定缓存识别结果的可信度是否低于第二预定阈值。如果确定缓存识别结果的可信度是低于第二预定阈值,则利用应用识别结果在应用识别缓存中更新该缓存识别结果,如果否,则降低该缓存识别结果的可信度。
示例性地,利用应用识别引擎得到的应用识别结果的可信度可以根据应用识别引擎进行应用识别时所使用的识别规则来确定,具体地,不同的识别规则具有不同的优先级,通过优先级可以确定可信度。应用识别缓存中的每个缓存识别结果可以包括识别依据,该识别依据用于表明最初得到该缓存识别结果时所使用的识别规则,不同的识别依据对应于不同的可信度。例如,对于一个会话请求A,应用识别缓存中存在针对该会话请求A的缓存识别结果a,当确定该会话请求A不符合预定条件时,利用应用识别引擎对该会话请求A进行应用识别,得到应用识别结果a’。根据应用识别引擎所使用的识别规则确定应用识别结果a’的可信度为L1,根据缓存识别结果a所记录的识别依据确定缓存识别结果a的可信度为L2。此时,如果L1大于L2且L2尚未低于第二预定阈值,则以(L2-ΔL)作为更新后的L2,其中ΔL为预定变化量,ΔL为正数。如果L1大于L2且L2低于第二预定阈值,则利用应用识别结果a’更新应用识别缓存中的缓存识别结果a。更新之后,缓存识别结果a的超时时间开始重新计时。
下面参考图4,结合具体例子,对根据本公开实施例的会话请求的应用识别方法进行示例性说明。
图4示意性示出了根据本公开另一实施例的会话请求的应用识别方法的流程图。
如图4所示,该方法可以包括如下操作S401~S408。
在操作S401,接收来自客户端的会话请求。
其中,该会话请求可以包括多个数据包。
然后,在操作S402,确定应用识别缓存中是否存在针对会话请求的缓存识别结果。如果是,则执行操作S403。如果否,则执行操作S406。
例如,每个缓存识别结果可以包括IP、端口、协议(TCP/UDP)、应用名称、流量还原的应用协议、bypass ai标识、识别依据、命中次数与超时时间。命中次数是指基于标识信息在应用识别缓存中进行查找的历史累计命中次数。超时时间为基于识别类别所设置的,上文已有说明,在此不再赘述。
然后,在操作S403,确定网关设备中是否存在针对会话请求的属性标识。如果是,则执行操作S406。如果否,则执行操作S404。
示例性地,对于一个会话请求中可能包含多个用户操作动作而得到多个识别结果的应用类型的情况,设置相应的属性标识,不依赖缓存识别结果,必须利用应用识别引擎进行应用识别。例如,对于具有不同解码需求、应用识别粒度较细的会话请求,如邮箱登录、邮件上传、邮件发送的会话请求定义三个应用,一个会话请求过程随着数据包的变化依次可识别出这三种应用,故对于这类会话请求,即便应用识别缓存中存在缓存识别结果,仅利用缓存识别结果中的协议信息进行首包还原,但不依赖于缓存识别结果中的应用名称,仍继续进入应用识别引擎重新进行应用的识别。
接着,在操作S404,确定会话请求是否符合预定条件。如果是,则执行操作S405。如果否,则执行操作S406。
其中,确定会话请求是否符合预定条件的过程在上文中已详细说明,在此不再赘述。
在操作S405,将缓存识别结果中的应用信息作为应用识别结果。
在操作S406,利用网关设备的应用识别引擎,基于会话请求的多个数据包识别会话请求的应用识别结果。
在操作S407,在应用识别缓存中不存在针对会话请求的缓存识别结果的情况下,将应用识别结果添加至应用识别缓存中,以记录新的缓存识别结果。
在操作S408,在应用识别缓存中存在针对会话请求的缓存识别结果的情况下,利用应用识别结果对缓存识别结果进行处理。
其中,利用应用识别结果对缓存识别结果进行处理在上文中已详细说明,在此不再赘述。
图5示意性示出了根据本公开实施例的会话请求的应用识别装置的框图。
如图5所示,会话请求的应用识别装置500可以包括:接收模块510、匹配模块520、第一确定模块530和第二确定模块540。
接收模块510用于接收来自客户端的会话请求,会话请求包括多个数据包。
匹配模块520用于基于多个数据包的首个数据包中的标识信息,在网关设备的应用识别缓存中查找针对标识信息的缓存识别结果。
第一确定模块530用于响应于查找到针对标识信息的缓存识别结果,确定会话请求是否符合预定条件。
第二确定模块540用于在确定会话请求符合预定条件时,基于缓存识别结果,确定会话请求的应用识别结果。其中,应用识别结果包括:所述会话请求的源应用信息,和/或,所述会话请求的目的应用信息。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开的实施例的适于实现上文描述的方法的计算机设备的框图。图6示出的计算机设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机设备600包括处理器610和计算机可读存储介质620。该计算机设备600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,接收模块510、匹配模块520、第一确定模块530和第二确定模块540中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上文所述的方法。
本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (14)
1.一种会话请求的应用识别方法,应用于网关设备,包括:
接收来自客户端的会话请求,所述会话请求包括多个数据包;
基于所述多个数据包的首个数据包中的标识信息,在所述网关设备的应用识别缓存中查找针对所述标识信息的缓存识别结果;
响应于查找到针对所述标识信息的缓存识别结果,确定所述会话请求是否符合预定条件;以及
如果确定所述会话请求符合预定条件,则基于所述缓存识别结果,确定所述会话请求的应用识别结果,所述应用识别结果包括:所述会话请求的源应用信息,和/或,所述会话请求的目的应用信息。
2.根据权利要求1所述的方法,还包括:
响应于未查找到针对所述标识信息的缓存识别结果,利用所述网关设备的应用识别引擎,基于所述多个数据包识别所述会话请求的应用识别结果。
3.根据权利要求2所述的方法,还包括:
在所述基于所述多个数据包识别所述会话请求的应用识别结果之后,将所述应用识别结果添加至所述应用识别缓存。
4.根据权利要求1所述的方法,其中,所述缓存识别结果包括终止引擎识别标识;
所述确定所述会话请求是否符合预定条件包括:
当所述缓存识别结果中的终止引擎识别标识的取值为第一数值时,利用所述网关设备的应用识别引擎,基于所述多个数据包识别所述会话请求的应用识别结果;
当所述终止引擎识别标识的取值为第二数值时,获取针对所述会话请求的第一预定阈值,并生成针对所述会话请求的随机值;以及
在所述第一预定阈值大于所述随机值的情况下,确定所述会话请求符合预定条件。
5.根据权利要求4所述的方法,其中,所述缓存识别结果还包括识别类型;
所述获取针对所述会话请求的第一预定阈值包括:
基于所述缓存识别结果,确定所述会话请求所属的识别类型;以及
将针对所述识别类型所设置的概率阈值作为针对所述会话请求的第一预定阈值;并且/或者
所述生成针对所述会话请求的随机值包括:计算接收到所述会话请求的时间信息的哈希值,以作为针对所述会话请求的随机值。
6.根据权利要求5所述的方法,还包括:
对于所述应用识别缓存中的任一缓存识别结果,基于所述任一缓存识别结果中的识别类型,确定所述任一缓存识别结果的超时时间;以及
从所述任一缓存识别结果生成或更新时开始计时,当计时达到所述任一缓存识别结果的超时时间时,将所述任一缓存识别结果从所述应用识别缓存中删除。
7.根据权利要求1所述的方法,还包括:
如果所述确定所述会话请求不符合预定条件,则利用所述网关设备的应用识别引擎,基于所述多个数据包识别所述会话请求的应用识别结果。
8.根据权利要求7所述的方法,还包括:
在所述基于所述多个数据包识别所述会话请求的应用识别结果之后,确定所述应用识别结果与所述缓存识别结果是否匹配;
如果不匹配,则分别获取所述应用识别结果的可信度和所述缓存识别结果的可信度;
当所述应用识别结果的可信度高于所述缓存识别结果的可信度时,确定所述缓存识别结果的可信度是否低于第二预定阈值;以及
如果确定所述缓存识别结果的可信度是低于第二预定阈值,则利用所述应用识别结果在所述应用识别缓存中更新所述缓存识别结果,如果否,则降低所述缓存识别结果的可信度。
9.根据权利要求1所述的方法,其中,所述缓存识别结果包括:应用名称和用于进行协议还原的类别信息;
所述基于所述缓存识别结果,确定所述会话请求的应用识别结果包括:将所述缓存识别结果中的应用名称和用于进行协议还原的类别信息作为所述会话请求的应用识别结果。
10.根据权利要求1所述的方法,还包括:
响应于查找到针对所述标识信息的缓存识别结果,在所述确定所述会话请求是否符合预定条件之前,基于所述缓存识别结果中的应用信息,在所述网关设备中查找针对所述会话请求的属性标识;
如果查找到,则利用所述网关设备的应用识别引擎基于所述多个数据包,识别所述会话请求的应用识别结果;以及
如果未查找到,则执行所述确定所述会话请求是否符合预定条件的操作。
11.一种会话请求的应用识别装置,应用于网关设备,包括:
接收模块,用于接收来自客户端的会话请求,所述会话请求包括多个数据包;
匹配模块,用于基于所述多个数据包的首个数据包中的标识信息,在所述网关设备的应用识别缓存中查找针对所述标识信息的缓存识别结果;
第一确定模块,用于响应于查找到针对所述标识信息的缓存识别结果,确定所述会话请求是否符合预定条件;以及
第二确定模块,用于在确定所述会话请求符合预定条件时,基于所述缓存识别结果,确定所述会话请求的应用识别结果,所述应用识别结果包括:所述会话请求的源应用信息,和/或,所述会话请求的目的应用信息。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如权利要求1~10中任一项所述的方法。
13.一种计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如权利要求1~10中任一项所述的方法。
14.一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行如权利要求1~10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424693.6A CN111182072A (zh) | 2019-12-31 | 2019-12-31 | 会话请求的应用识别方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424693.6A CN111182072A (zh) | 2019-12-31 | 2019-12-31 | 会话请求的应用识别方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111182072A true CN111182072A (zh) | 2020-05-19 |
Family
ID=70657737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911424693.6A Pending CN111182072A (zh) | 2019-12-31 | 2019-12-31 | 会话请求的应用识别方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111182072A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076462A (zh) * | 2021-03-25 | 2021-07-06 | 恒安嘉新(北京)科技股份公司 | 网络会话数据查询方法、装置、设备及介质 |
CN114124415A (zh) * | 2020-08-13 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 目标交互应用中的信息交互方法和装置 |
CN115618342A (zh) * | 2022-12-19 | 2023-01-17 | 深圳昂楷科技有限公司 | 访问数据库工具名的识别方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414939A (zh) * | 2008-11-28 | 2009-04-22 | 武汉虹旭信息技术有限责任公司 | 一种基于动态深度包检测的互联网应用识别方法 |
CN102710504A (zh) * | 2012-05-16 | 2012-10-03 | 华为技术有限公司 | 应用识别方法和装置 |
CN103139072A (zh) * | 2011-11-30 | 2013-06-05 | 美国博通公司 | 用于在交换机asic中集成线速应用识别的系统和方法 |
CN104038389A (zh) * | 2014-06-19 | 2014-09-10 | 高长喜 | 多重应用协议识别方法和装置 |
EP2898653A1 (en) * | 2012-09-19 | 2015-07-29 | Telefonaktiebolaget LM Ericsson (Publ) | Method and node for controlling resources for a media service as well as a corresponding system and computer program |
CN106209505A (zh) * | 2016-06-29 | 2016-12-07 | 北京网康科技有限公司 | 一种应用识别装置及方法、防火墙、服务器 |
CN106411845A (zh) * | 2016-08-27 | 2017-02-15 | 浙江远望信息股份有限公司 | 一种网络应用的智能识别方法 |
CN107646187A (zh) * | 2015-06-12 | 2018-01-30 | 慧与发展有限责任合伙企业 | 应用标识高速缓存 |
-
2019
- 2019-12-31 CN CN201911424693.6A patent/CN111182072A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414939A (zh) * | 2008-11-28 | 2009-04-22 | 武汉虹旭信息技术有限责任公司 | 一种基于动态深度包检测的互联网应用识别方法 |
CN103139072A (zh) * | 2011-11-30 | 2013-06-05 | 美国博通公司 | 用于在交换机asic中集成线速应用识别的系统和方法 |
CN102710504A (zh) * | 2012-05-16 | 2012-10-03 | 华为技术有限公司 | 应用识别方法和装置 |
EP2898653A1 (en) * | 2012-09-19 | 2015-07-29 | Telefonaktiebolaget LM Ericsson (Publ) | Method and node for controlling resources for a media service as well as a corresponding system and computer program |
CN104038389A (zh) * | 2014-06-19 | 2014-09-10 | 高长喜 | 多重应用协议识别方法和装置 |
CN107646187A (zh) * | 2015-06-12 | 2018-01-30 | 慧与发展有限责任合伙企业 | 应用标识高速缓存 |
CN106209505A (zh) * | 2016-06-29 | 2016-12-07 | 北京网康科技有限公司 | 一种应用识别装置及方法、防火墙、服务器 |
CN106411845A (zh) * | 2016-08-27 | 2017-02-15 | 浙江远望信息股份有限公司 | 一种网络应用的智能识别方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124415A (zh) * | 2020-08-13 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 目标交互应用中的信息交互方法和装置 |
CN113076462A (zh) * | 2021-03-25 | 2021-07-06 | 恒安嘉新(北京)科技股份公司 | 网络会话数据查询方法、装置、设备及介质 |
CN113076462B (zh) * | 2021-03-25 | 2024-04-30 | 恒安嘉新(北京)科技股份公司 | 网络会话数据查询方法、装置、设备及介质 |
CN115618342A (zh) * | 2022-12-19 | 2023-01-17 | 深圳昂楷科技有限公司 | 访问数据库工具名的识别方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735379B2 (en) | Hybrid hardware-software distributed threat analysis | |
WO2015165296A1 (zh) | 协议类型的识别方法和装置 | |
US9537887B2 (en) | Method and system for network connection chain traceback using network flow data | |
Yang et al. | RIHT: a novel hybrid IP traceback scheme | |
CN111182072A (zh) | 会话请求的应用识别方法、装置和计算机设备 | |
US7860100B2 (en) | Service path selection in a service network | |
EP2434689B1 (en) | Method and apparatus for detecting message | |
US8799189B2 (en) | Multiple hypothesis tracking | |
CN105591973B (zh) | 应用识别方法及装置 | |
US8515881B2 (en) | Multiple hypothesis tracking | |
EP2915314B1 (en) | Downlink service path determination for multiple subscription based services in provider edge network | |
EP3282643B1 (en) | Method and apparatus of estimating conversation in a distributed netflow environment | |
US10264004B2 (en) | System and method for connection fingerprint generation and stepping-stone traceback based on netflow | |
CN111641585B (zh) | 一种DDoS攻击检测方法及设备 | |
US20160299971A1 (en) | Identifying Search Engine Crawlers | |
WO2019127895A1 (zh) | 一种数据流的引导方法、服务器和系统 | |
CN104333483A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
KR101674169B1 (ko) | 오픈플로우 스위치 및 플로우 테이블 관리 방법 | |
CN110958245B (zh) | 一种攻击的检测方法、装置、设备和存储介质 | |
CN102164182A (zh) | 一种网络协议识别设备和方法 | |
US9912619B1 (en) | Publish-subscribe based exchange for network services | |
US10897483B2 (en) | Intrusion detection system for automated determination of IP addresses | |
KR20170054215A (ko) | 넷플로우 기반 연결 핑거프린트 생성 및 경유지 역추적 방법 | |
CN113890746A (zh) | 攻击流量识别方法、装置、设备以及存储介质 | |
CN106506400B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200519 |
|
RJ01 | Rejection of invention patent application after publication |