CN111200652A - 应用识别方法、应用识别装置和计算设备 - Google Patents
应用识别方法、应用识别装置和计算设备 Download PDFInfo
- Publication number
- CN111200652A CN111200652A CN201911415601.8A CN201911415601A CN111200652A CN 111200652 A CN111200652 A CN 111200652A CN 201911415601 A CN201911415601 A CN 201911415601A CN 111200652 A CN111200652 A CN 111200652A
- Authority
- CN
- China
- Prior art keywords
- information
- application
- data packet
- destination
- restoration
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种应用识别方法、应用识别装置和计算设备。该方法包括:接收客户端发送的针对非标准端口的数据包,数据包包括第一目的地址信息和目的端口信息;以及响应于数据包,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息,以便基于应用关联信息对数据包进行协议栈还原,获得数据包的还原信息。
Description
技术领域
本公开涉及信息安全技术领域,更具体地,涉及一种应用识别方法、应用识别装置和计算设备。
背景技术
随着通信和计算机技术的快速发展,互联网信息安全成为人们日益关注的焦点。
在网络技术中,逻辑意义上的端口,可以指传输控制协议/网际协议(TCP/IP)中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于文件传输协议(file transfer protocol,简称ftp)服务的21端口等等。需要进行网络通讯的每一个应用,操作系统都要为它使用一个或若干个端口,以免发生冲突。系统默认的端口是标准端口,应用也可以使用自定义的端口,即使用非标准端口。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:对于非标准端口,防火墙不易直接确定其所采用的通讯协议,以对接收的数据包进行还原、监测等。
发明内容
有鉴于此,本公开提供了一种应用识别方法、应用识别装置和计算设备。
本公开的一个方面提供了一种由服务器端执行的应用识别方法,包括:接收客户端发送的针对非标准端口的数据包,数据包包括第一目的地址信息和目的端口信息;以及响应于数据包,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息,以便基于应用关联信息对数据包进行协议栈还原,获得数据包的还原信息;其中,数据包包括使客户端与目的服务器端之间建立连接的握手包;第一数据集合包括地址信息和端口信息与应用关联信息之间的映射关系;还原信息至少用于对与还原信息对应的数据包进行监测。
根据本公开的实施例,在接收到基于非标准端口传输的数据包时,基于第一目的地址信息和目的端口信息从第一数据集合确定应用关联信息,以基于应用关联信息进行数据还原,便于防火墙对还原后的数据进行监测、过滤和修改等操作。其中,由于可以直接基于第一数据集合确定应用关联信息(如通讯协议),使得防火墙可以在接收到第一个握手数据包时即可确定其应用关联信息,提升防火墙的处理效率。
根据本公开的实施例,上述方法还包括:在从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息之后,接收域名系统请求,域名系统请求包括域名信息;响应于域名系统请求,确定与域名信息对应的应用名称;以及基于应用名称更新应用关联信息。
根据本公开的实施例,确定与域名信息对应的应用名称包括:从域名系统请求中获取第二目的地址信息;以及从第二数据集合中确定与第二目的地址信息相匹配的适配应用名称,以获得与域名信息对应的应用名称,其中,第二数据集合包括地址信息与应用名称之间的映射关系。
根据本公开的实施例,应用关联信息包括可信度属性。相应地,上述方法还包括:在基于应用关联信息对数据包进行协议栈还原之后,获得数据包的还原信息,以对数据包进行数据包过滤或指定信息替换,得到处理后数据包;将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接;接收交互信息,交互信息是基于连接进行传输的;基于交互信息更新应用关联信息的可信度;以及基于应用关联信息的可信度更新第一数据集合。
根据本公开的实施例,应用关联信息还包括身份标识信息,身份标识信息包括客户端标识和服务器端标识。
根据本公开的实施例,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息包括:如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有客户端标识的地址信息和端口信息相匹配,则确定应用关联信息为客户端应用关联信息;以及如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有服务器端标识的地址信息和端口信息相匹配,则确定应用关联信息为服务器端应用关联信息。
根据本公开的实施例,上述方法还包括:在基于应用关联信息对数据包进行协议栈还原之后,获得数据包对应的还原信息,以进行数据包过滤或指定信息替换,得到处理后数据包;将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接;接收交互信息,交互信息是基于连接进行传输的;基于交互信息确定准确应用关联信息;基于准确应用关联信息更新应用关联信息。
根据本公开的实施例,应用关联信息包括以下至少一种:传输层协议信息、应用名称、数据还原的应用协议信息、身份标识信息、识别方式和超时时间;以及第一数据集合存储在服务器端的缓存中。
本公开的另一个方面提供了一种应用识别装置,包括:数据包接收模块和应用关联信息确定模块。数据包接收模块,用于接收客户端发送的针对非标准端口的数据包,数据包包括第一目的地址信息和目的端口信息;以及应用关联信息确定模块,用于响应于数据包,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息,以便基于应用关联信息对数据包进行协议栈还原,获得数据包的还原信息;其中,数据包包括使客户端与目的服务器端之间建立连接的握手包;第一数据集合包括地址信息和端口信息与应用关联信息之间的映射关系;还原信息至少用于对与还原信息对应的数据包进行监测。
根据本公开的实施例,上述装置还包括请求接收模块、应用名称确定模块和信息更新模块。其中,请求接收模块用于接收域名系统请求,域名系统请求包括域名信息;应用名称确定模块用于响应于域名系统请求,确定与域名信息对应的应用名称;以及信息更新模块用于基于应用名称更新应用关联信息。
根据本公开的实施例,应用名称确定模块包括:地址获取子模块和应用名称获得子模块。其中,地址获取子模块用于从域名系统请求中获取第二目的地址信息;以及应用名称获得子模块用于从第二数据集合中确定与第二目的地址信息相匹配的适配应用名称,以获得与域名信息对应的应用名称,其中,第二数据集合包括地址信息与应用名称之间的映射关系。
根据本公开的实施例,应用关联信息包括可信度属性。相应地,上述装置还包括:数据包处理模块、建立连接模块、交互模块、可信度更新模块和集合更新模块。其中,数据包处理模块用于在基于应用关联信息对数据包进行协议栈还原之后,获得数据包的还原信息,以对数据包进行数据包过滤或指定信息替换,得到处理后数据包;建立连接模块用于将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接;交互模块用于接收交互信息,交互信息是基于连接进行传输的;可信度更新模块用于基于交互信息更新应用关联信息的可信度;以及集合更新模块用于基于应用关联信息的可信度更新第一数据集合。
根据本公开的实施例,应用关联信息还包括身份标识信息,身份标识信息包括客户端标识和服务器端标识。
根据本公开的实施例,应用关联信息确定模块包括:第一确定子模块和第二确定子模块。第一确定子模块用于如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有客户端标识的地址信息和端口信息相匹配,则确定应用关联信息为客户端应用关联信息;以及第二确定子模块用于如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有服务器端标识的地址信息和端口信息相匹配,则确定应用关联信息为服务器端应用关联信息。
根据本公开的实施例,上述装置还包括:还原处理模块、连接模块、交互模块、准确信息确定模块和关联信息更新模块。其中,还原处理模块用于在基于应用关联信息对数据包进行协议栈还原之后,获得数据包对应的还原信息,以进行数据包过滤或指定信息替换,得到处理后数据包;连接模块用于将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接;交互模块用于接收交互信息,交互信息是基于连接进行传输的;准确信息确定模块用于基于交互信息确定准确应用关联信息;以及关联信息更新模块用于基于准确应用关联信息更新应用关联信息。
根据本公开的实施例,应用关联信息包括以下至少一种:传输层协议信息、应用名称、数据还原的应用协议信息、身份标识信息、识别方式和超时时间;以及第一数据集合存储在服务器端的缓存中。
本公开的另一方面提供了一种计算设备,包括一个或多个处理器以及存储装置,其中,存储装置用于存储可执行指令,可执行指令在被处理器执行时,实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的应用识别方法、应用识别装置和计算设备的应用场景;
图2示意性示出了根据本公开实施例适用于应用识别方法、应用识别装置和计算设备的架构图;
图3示意性示出了根据本公开实施例的应用识别方法的流程图;
图4示意性示出了根据本公开实施例的协议栈模型的结构示意图;
图5示意性示出了根据本公开另一实施例的应用识别方法的流程图;
图6示意性示出了根据本公开实施例的应用识别装置的框图;以及
图7示意性示出了根据本公开实施例的计算设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“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的系统等)。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
本公开的实施例提供了一种应用识别方法、应用识别装置和计算设备。该方法包括信息获得过程和数据还原过程。在信息获得过程中,接收客户端发送的针对非标准端口的数据包,数据包包括第一目的地址信息(IP)和目的端口(Port)信息。在完成信息获得过程之后,进入数据还原过程,响应于数据包,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息,以便基于应用关联信息对数据包进行协议栈还原,获得数据包的还原信息。其中,数据包包括使客户端与目的服务器端之间建立连接的握手包;第一数据集合包括地址信息和端口信息与应用关联信息之间的映射关系;还原信息至少用于对与还原信息对应的数据包进行监测。
图1示意性示出了根据本公开实施例的应用识别方法、应用识别装置和计算设备的应用场景。
如图1所示,客户端可以通过网关将信息发送至目的服务器端。网关可以具有防火墙功能。具体地,可以将客户端发送的数据包基于所采用的通讯协议进行协议栈还原,以获得数据包包括的信息,这样可以基于数据包的信息对数据包进行过滤,如禁止被屏蔽的客户端等向目的服务器端发送数据包。又例如,可以对数据包中的敏感信息进行屏蔽或替换,如游戏中禁止使用“死”字,则可以将数据包中还原信息中的“死”字替换为指定字符(如“*”)。通过以上方式可以改善网络环境。
针对标准端口的数据包的通讯协议是已知的,防火墙可以直接利用该通讯协议对数据包进行协议栈还原。而针对非标准端口的数据包的通讯协议是未知的。在一种实施方式中,防火墙或者网络流量深度采集(DPI)探针(网络流量监测和分析产品)需要对TCP协议进行完整协议栈还原,故在握手阶段需要知道具体的应用协议类型。对于非标准端口的数据包,应用的识别只能基于数据包本身的数据特征和多个数据包的交互特征进行识别,从而不能在一条会话的首个数据包(即TCP握手发送的第一次握手数据包(简称SYN包))时确定应用协议类型。通过缓存TCP三次握手包等待识别结果,再进行协议栈还原的方式可以解决一部分问题。例如,数据包本身的数据特征如http数据包中的uri、host等信息可以标识某种应用。又例如,服务器端发回的banner信息“200FileZilla”可以识别为FTP服务器。但是,这种通过缓存TCP三次握手包等待识别结果,再进行协议栈还原的方式也存在以下问题:给服务器端的内存等带来压力。其中,缓存TCP三次握手包等待识别结果,再进行协议栈还原的方式可以包括如下操作:首先,将TCP三次握手包进行缓存,握手建立连接。然后,应用的交互数据到来,再对交互数据进行应用的识别。接着,根据应用的类型,选择协议栈还原的方式(如代理模式或者重组模式),对TCP握手包及数据包进行处理还原。
在另一种实施方式中,确定接受的数据包是针对非标准端口的数据包时,可以从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息,这样就使得可以直接利用应用关联信息对防火墙接收的首个握手包进行协议栈还原,以满足防火墙监测需求。由于目的IP和目的端口对应的服务在一定时间内不会发生变化,因此,该第一数据集合在一定时间内具有可用性,这样可以有效降低服务器端的内存压力。
图2示意性示出了根据本公开实施例适用于应用识别方法、应用识别装置和计算设备的架构图。
需要注意的是,图2所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图2所示,根据该实施例的系统架构200可以包括终端设备201、202、203,网络204、服务器205和网关206。网络204用以在终端设备201、202、203、服务器205和网关206之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备201、202、203通过网络204和网关206与服务器205交互,以接收或发送消息等。终端设备201、202、203上可以安装有各种通讯客户端应用,例如防火墙类应用、查毒/杀毒类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。服务器205和网关206上可以安装有防火墙类应用。
终端设备201、202、203可以是具有显示屏并且支持网页浏览的各种计算设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、智能家居和台式计算机等等。
服务器205可以是提供各种服务的服务器,例如对用户利用终端设备201、202、203所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
网关206可以将终端设备201、202、203和服务器205发送的信息路由至正确的地址。此外,网关206还可以对接收的网络数据流进行应用识别,并且具有防火墙功能。
需要说明的是,本公开实施例所提供的应用识别方法一般可以由网关206执行。相应地,本公开实施例所提供的应用识别装置一般可以设置于网关206中。本公开实施例所提供的应用识别方法也可以由不同于网关206且能够与网关206、服务器205通信的服务器或服务器集群执行。相应地,本公开实施例所提供的应用识别装置也可以设置于不同于网关206且能够与网关206、服务器205通信的服务器或服务器集群中。
应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图3示意性示出了根据本公开实施例的应用识别方法的流程图。
如图3所示,应用识别方法可以包括操作S301~操作S303。
在操作S301,接收客户端发送的针对非标准端口的数据包,数据包包括第一目的地址信息和目的端口信息。
其中,非标准端口可以指数据包发送至的端口所适用的通讯协议在服务器端(防火墙)是未知的。因此,在确定该端口所适用的通讯协议之前,防火墙无法对发送给该端口的数据包进行协议栈还原,以对数据包的内容进行监测,只能采用缓存未进行协议栈还原的指定个数的数据包,待确定其适用的通讯协议后在进行还原、监测。然而,这会给服务器端造成压力。数据包的第一目的地址信息和目的端口信息可以位于数据包的报文的指定位置,如表头处以便于服务器端确定该数据包的目的服务器端和目的端口。
在操作S303,响应于数据包,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息,以便基于应用关联信息对数据包进行协议栈还原,获得数据包的还原信息。
其中,数据包包括使客户端与目的服务器端之间建立连接的握手包;第一数据集合包括地址信息和端口信息与应用关联信息之间的映射关系;还原信息至少用于对与还原信息对应的数据包进行监测。
图4示意性示出了根据本公开实施例的协议栈模型的结构示意图。
如图4所示,协议栈(Protocol stack)模型可以包括:应用层、传输层、网络层、数据链路层和物理层。其中,应用层支持超文本传输协议(hypertext transfer Protocol,简称http)、远程登录协议(Telnet)、ftp、简单文件传输协议(trivial file transferProtocol,简称tftp)、网络文件系统(network file system,简称nfs)等。传输层可以支持传输控制协议(TCP)/用户数据报协议(UDP)等。网络层可以支持IP等,数据链路层可以支持如Ethernet、802.3等,物理层可以包括接口和线缆等。对接收到的封包进行协议栈还原,即可获得封包内的信息,以便于对封包进行监测,实现防火墙功能。
例如,可以创建缓存,如果本次识别出非标准端口支持的通讯协议为HTTP,则确定在一定时间段内该非标准端口支持的通讯协议为HTTP,即可使用HTTP对应的协议栈还原方式对针对非标准端口的数据包进行协议栈还原。
在一个具体实施例中,目的IP和目的端口对应的服务在一定时间内不会发生变化,故在第一次会话过程中识别出应用关联信息时,将对应的应用关联信息,如目的IP、目的端口、采用的通讯协议(如TCP/UDP)、流量还原协议类型(如HTTP/ftp/SMB(ServerMessage Block)等)以及应用名称等存储在数据库中,为了提升响应速率,还可以对应用关联信息进行缓存。在后续会话的握手包到达时,以地址信息和端口为主键(key)值在数据库(如缓存)中查询,从而得到对应的应用协议结果,并进行完整的协议栈还原。针对非标准端口的数据包,可以跳过复杂的应用识别过程(如跳过对流量进行数据特征和交互特征进行分析的复杂的应用识别过程),从而达到性能的提升。
其中,应用协议结果可以如下所示,一个具体的应用对应一个应用协议类别,如163邮箱对应HTTP应用协议,协议栈还原选择重组模式进行还原。FTP应用对应FTP应用协议,协议栈还原选择代理模式。
图5示意性示出了根据本公开另一实施例的应用识别方法的流程图。
如图5所示,本实施例可以结合域名系统(Domain Name System,简称DNS)增加应用识别的准确性。具体地,上述方法在执行操作S301从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息之后,还可以包括操作S501至操作S505。
在操作S501,接收域名系统请求,域名系统请求包括域名信息。
在操作S503,响应于域名系统请求,确定与域名信息对应的应用名称。
具体地,确定与域名信息对应的应用名称可以包括如下操作。首先,从域名系统请求中获取第二目的地址信息。然后,从第二数据集合中确定与第二目的地址信息相匹配的适配应用名称,以获得与域名信息对应的应用名称,其中,第二数据集合包括地址信息与应用名称之间的映射关系。
在操作S505,基于应用名称更新应用关联信息。
在一个实施例中,客户端的浏览器访问HTTP服务时,会首先发起一个DNS请求会话。DNS会话的响应中包含目的IP与域名的对应关系,而域名作为特征串在应用识别过程中对应识别到具体的应用,从而在DNS会话阶段,可以建立目的IP与应用名称的识别关系。在后续阶段的HTTP会话过程,会对目的IP进行访问,根据之前IP与应用名称的对应关系,从而在TCP握手阶段就可识别出该HTTP会话对应的应用。该IP与应用名称的对应关系可以用于对从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息进行校验。
这是由于因为目的IP对应到一个域名,而域名也是一个特征串,如域名www.baidu.com可以识别为百度应用,从而该目的IP对应到百度应用,这样可以辅助确认从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息的准确度。
在另一个实施例中,应用关联信息包括可信度属性。相应地,上述方法还可以包括如下操作。
首先,在基于应用关联信息对数据包进行协议栈还原之后,获得数据包的还原信息,以对数据包进行数据包过滤或指定信息替换,得到处理后数据包。
然后,将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接。
接着,接收交互信息,交互信息是基于连接进行传输的。
然后,基于交互信息更新应用关联信息的可信度。
接着,基于应用关联信息的可信度更新第一数据集合。
在本实施例中,HTTP会话本身具有更具体和准确的特征串并得到一个新的识别结果,该新的识别结果与之前通过DNS会话得到的识别结果进行对比,对识别结果的可信度进行增加或降低,HTTP会话过程的识别结果对DNS过程识别结果有更高的优先级。这样可以进一步确定应用关联信息的准确度。
在另一个实施例中,也可以不利用DNS会话对应用关联信息进行准确度确认,直接利用HTTP会话对应用关联信息进行准确度确认。
例如,上述方法在基于应用关联信息对数据包进行协议栈还原之后,还包括如下操作。
首先,获得数据包对应的还原信息,以进行数据包过滤或指定信息替换,得到处理后数据包。
然后,将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接。
接着,接收交互信息,交互信息是基于连接进行传输的。
然后,基于交互信息确定准确应用关联信息。
接着,基于准确应用关联信息更新应用关联信息。
本实施例可以直接基于HTTP会话对应用关联信息进行更新,确保第一数据集合中地址信息和端口信息与应用关联信息之间的映射关系的准确度。
在另一个实施了中,应用关联信息还包括身份标识信息,身份标识信息包括客户端标识和服务器端标识。
相应地,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息可以包括如下操作。
如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有客户端标识的地址信息和端口信息相匹配,则确定应用关联信息为客户端应用关联信息。
如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有服务器端标识的地址信息和端口信息相匹配,则确定应用关联信息为服务器端应用关联信息。
如果第一数据集合中只存储了目的IP、目的端口和应用名称之间的映射关系,且在第一数据集合中存储的应用名称并没有区分是发起方(如客户端)还是接收方(如服务器端)。例如,第一数据集合中存储的应用名称为新浪,对于使用IE浏览器访问新浪和使用搜狐浏览器访问新浪,基于第一数据集合识别出的应用均为新浪。也即,在用户想要识别发起方时,有可能会错误识别为接收方,识别结果不准确。因此,还可以在第一数据集合中加入标识信息,标识此应用名称是从接收方提取的,还是从发送方提取的,若是从接收方提取的,则第一数据集合中的应用名称为接收方应用的应用名称,若是从发起方提取的,则第一数据集合中的应用名称为发起方应用的应用名称。
例如,身份标识信息有SERVER_APP与CLIENT_APP。对于SERVER_APP:加入第一数据集合的是目的IP和目的端口,待识别会话的目的IP和目的端口相同则命中第一数据集合。该应用的流量特征提取自接收方(服务器)。对于CLIENT_APP:加入第一数据集合的是源IP和源端口,待识别会话的源IP和源端口相同则命中第一数据集合。该应用的流量特征提取自发送方(客户端)。
在一个具体实施例中,应用关联信息包括以下至少一种:传输层协议信息、应用名称、数据还原的应用协议信息、身份标识信息、识别方式和超时时间。其中,第一数据集合可以存储在服务器端的缓存中以提升响应速度。识别方式可以指是基于第一数据集合确定的应用关联信息,还是基于DNS请求确定的应用关联信息,或者基于业务会话过程确定的应用关联信息,其中,基于业务会话过程确定的应用关联信息的准确度高于基于DNS请求确定的应用关联信息,基于DNS请求确定的应用关联信息高于基于第一数据集合确定的应用关联信息。超时时间可以指第一数据集合有效时长,当超过有效时长后,需要及时对第一数据集合进行更新,以提升第一数据集合的准确度。
图6示意性示出了根据本公开实施例的应用识别装置的框图。
如图6所示,该应用识别装置600包括:数据包接收模块610和应用关联信息确定模块630。
其中,数据包接收模块610用于接收客户端发送的针对非标准端口的数据包,数据包包括第一目的地址信息和目的端口信息。
应用关联信息确定模块630用于响应于数据包,从第一数据集合中确定与第一目的地址信息和目的端口信息相匹配的应用关联信息,以便基于应用关联信息对数据包进行协议栈还原,获得数据包的还原信息。
其中,数据包包括使客户端与目的服务器端之间建立连接的握手包,第一数据集合包括地址信息和端口信息与应用关联信息之间的映射关系,还原信息至少用于对与还原信息对应的数据包进行监测。
在一个实施例中,上述装置600还包括请求接收模块、应用名称确定模块和信息更新模块。
其中,请求接收模块用于接收域名系统请求,域名系统请求包括域名信息。应用名称确定模块用于响应于域名系统请求,确定与域名信息对应的应用名称。以及信息更新模块用于基于应用名称更新应用关联信息。
例如,应用名称确定模块包括:地址获取子模块和应用名称获得子模块。
其中,地址获取子模块用于从域名系统请求中获取第二目的地址信息。
应用名称获得子模块用于从第二数据集合中确定与第二目的地址信息相匹配的适配应用名称,以获得与域名信息对应的应用名称,其中,第二数据集合包括地址信息与应用名称之间的映射关系。
在另一个实施例中,应用关联信息包括可信度属性。相应地,上述装置600还包括:数据包处理模块、建立连接模块、交互模块、可信度更新模块和集合更新模块。
其中,数据包处理模块用于在基于应用关联信息对数据包进行协议栈还原之后,获得数据包的还原信息,以对数据包进行数据包过滤或指定信息替换,得到处理后数据包。建立连接模块用于将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接。交互模块用于接收交互信息,交互信息是基于连接进行传输的。可信度更新模块用于基于交互信息更新应用关联信息的可信度。以及集合更新模块用于基于应用关联信息的可信度更新第一数据集合。
根据本公开的实施例,应用关联信息还包括身份标识信息,身份标识信息包括客户端标识和服务器端标识。
具体地,应用关联信息确定模块630可以包括:第一确定子模块和第二确定子模块。
第一确定子模块用于如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有客户端标识的地址信息和端口信息相匹配,则确定应用关联信息为客户端应用关联信息。第二确定子模块用于如果数据包的第一目的地址信息和目的端口信息与第一数据集合中具有服务器端标识的地址信息和端口信息相匹配,则确定应用关联信息为服务器端应用关联信息。
此外,上述装置600还可以包括:还原处理模块、连接模块、交互模块、准确信息确定模块和关联信息更新模块。
其中,还原处理模块用于在基于应用关联信息对数据包进行协议栈还原之后,获得数据包对应的还原信息,以进行数据包过滤或指定信息替换,得到处理后数据包;连接模块用于将处理后数据包发送至第一目的地址信息和目的端口信息对应的服务器端,以建立连接;交互模块用于接收交互信息,交互信息是基于连接进行传输的;准确信息确定模块用于基于交互信息确定准确应用关联信息;以及关联信息更新模块用于基于准确应用关联信息更新应用关联信息。
例如,应用关联信息包括以下至少一种:传输层协议信息、应用名称、数据还原的应用协议信息、身份标识信息、识别方式和超时时间。第一数据集合存储在服务器端的缓存中。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,数据包接收模块610和应用关联信息确定模块630中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,数据包接收模块610和应用关联信息确定模块630中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,数据包接收模块610和应用关联信息确定模块630中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的计算设备的方框图。图7示出的计算设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据本公开实施例的计算设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有系统700操作所需的各种程序和数据。处理器701、ROM 702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。系统700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种由服务器端执行的应用识别方法,包括:
接收客户端发送的针对非标准端口的数据包,所述数据包包括第一目的地址信息和目的端口信息;以及
响应于所述数据包,从第一数据集合中确定与所述第一目的地址信息和所述目的端口信息相匹配的应用关联信息,以便基于所述应用关联信息对所述数据包进行协议栈还原,获得所述数据包的还原信息;
其中,所述数据包包括使所述客户端与目的服务器端之间建立连接的握手包;所述第一数据集合包括地址信息和端口信息与应用关联信息之间的映射关系;所述还原信息至少用于对与所述还原信息对应的数据包进行监测。
2.根据权利要求1所述的方法,还包括:在从第一数据集合中确定与所述第一目的地址信息和所述目的端口信息相匹配的应用关联信息之后,
接收域名系统请求,所述域名系统请求包括域名信息;
响应于所述域名系统请求,确定与所述域名信息对应的应用名称;以及
基于所述应用名称更新所述应用关联信息。
3.根据权利要求2所述的方法,其中,所述确定与所述域名信息对应的应用名称包括:
从所述域名系统请求中获取第二目的地址信息;以及
从第二数据集合中确定与所述第二目的地址信息相匹配的适配应用名称,以获得与所述域名信息对应的应用名称,其中,所述第二数据集合包括地址信息与应用名称之间的映射关系。
4.根据权利要求2所述的方法,其中:
所述应用关联信息包括可信度属性;
所述方法还包括:在基于所述应用关联信息对所述数据包进行协议栈还原之后,
获得所述数据包的还原信息,以对所述数据包进行数据包过滤或指定信息替换,得到处理后数据包;
将所述处理后数据包发送至所述第一目的地址信息和所述目的端口信息对应的服务器端,以建立连接;
接收交互信息,所述交互信息是基于所述连接进行传输的;
基于所述交互信息更新所述应用关联信息的可信度;以及
基于所述应用关联信息的可信度更新所述第一数据集合。
5.根据权利要求4所述的方法,其中,所述应用关联信息还包括身份标识信息,所述身份标识信息包括客户端标识和服务器端标识。
6.根据权利要求5所述的方法,其中,所述从第一数据集合中确定与所述第一目的地址信息和所述目的端口信息相匹配的应用关联信息包括:
如果所述数据包的第一目的地址信息和目的端口信息与所述第一数据集合中具有客户端标识的地址信息和端口信息相匹配,则确定所述应用关联信息为客户端应用关联信息;以及
如果所述数据包的第一目的地址信息和目的端口信息与所述第一数据集合中具有服务器端标识的地址信息和端口信息相匹配,则确定所述应用关联信息为服务器端应用关联信息。
7.根据权利要求1所述的方法,还包括:在基于所述应用关联信息对所述数据包进行协议栈还原之后,
获得所述数据包对应的还原信息,以进行数据包过滤或指定信息替换,得到处理后数据包;
将所述处理后数据包发送至所述第一目的地址信息和所述目的端口信息对应的服务器端,以建立连接;
接收交互信息,所述交互信息是基于所述连接进行传输的;
基于所述交互信息确定准确应用关联信息;以及
基于所述准确应用关联信息更新所述应用关联信息。
8.根据权利要求1所述的方法,其中:
所述应用关联信息包括以下至少一种:传输层协议信息、应用名称、数据还原的应用协议信息、身份标识信息、识别方式和超时时间;以及
所述第一数据集合存储在服务器端的缓存中。
9.一种应用识别装置,包括:
数据包接收模块,用于接收客户端发送的针对非标准端口的数据包,所述数据包包括第一目的地址信息和目的端口信息;以及
应用关联信息确定模块,用于响应于所述数据包,从第一数据集合中确定与所述第一目的地址信息和所述目的端口信息相匹配的应用关联信息,以便基于所述应用关联信息对所述数据包进行协议栈还原,获得所述数据包的还原信息;其中,所述数据包包括使所述客户端与目的服务器端之间建立连接的握手包;所述第一数据集合包括地址信息和端口信息与应用关联信息之间的映射关系;所述还原信息至少用于对与所述还原信息对应的数据包进行监测。
10.一种计算设备,包括:
一个或多个处理器;
存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,所述指令被处理器执行时使处理器执行如权利要求1~8中任一项所述的方法。
12.一种计算机程序,包括计算机可执行指令,所述指令被处理器执行时使处理器执行如权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911415601.8A CN111200652A (zh) | 2019-12-31 | 2019-12-31 | 应用识别方法、应用识别装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911415601.8A CN111200652A (zh) | 2019-12-31 | 2019-12-31 | 应用识别方法、应用识别装置和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111200652A true CN111200652A (zh) | 2020-05-26 |
Family
ID=70747313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911415601.8A Pending CN111200652A (zh) | 2019-12-31 | 2019-12-31 | 应用识别方法、应用识别装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111200652A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276522A1 (en) * | 2008-04-30 | 2009-11-05 | Seidel Craig H | Cooperative monitoring of peer-to-peer network activity |
CN103634306A (zh) * | 2013-11-18 | 2014-03-12 | 北京奇虎科技有限公司 | 网络数据的安全检测方法和安全检测服务器 |
CN104486161A (zh) * | 2014-12-22 | 2015-04-01 | 成都科来软件有限公司 | 一种网络流量的识别方法及装置 |
CN209046663U (zh) * | 2018-08-03 | 2019-06-28 | 上海欣诺通信技术股份有限公司 | 数据包捕获设备、还原设备及系统 |
CN110430191A (zh) * | 2019-08-06 | 2019-11-08 | 合肥优尔电子科技有限公司 | 调度数据网中基于协议识别的安全预警方法及装置 |
-
2019
- 2019-12-31 CN CN201911415601.8A patent/CN111200652A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276522A1 (en) * | 2008-04-30 | 2009-11-05 | Seidel Craig H | Cooperative monitoring of peer-to-peer network activity |
CN103634306A (zh) * | 2013-11-18 | 2014-03-12 | 北京奇虎科技有限公司 | 网络数据的安全检测方法和安全检测服务器 |
CN104486161A (zh) * | 2014-12-22 | 2015-04-01 | 成都科来软件有限公司 | 一种网络流量的识别方法及装置 |
CN209046663U (zh) * | 2018-08-03 | 2019-06-28 | 上海欣诺通信技术股份有限公司 | 数据包捕获设备、还原设备及系统 |
CN110430191A (zh) * | 2019-08-06 | 2019-11-08 | 合肥优尔电子科技有限公司 | 调度数据网中基于协议识别的安全预警方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3069231B1 (en) | Automated sdk ingestion | |
US8572691B2 (en) | Selecting a web service from a service registry based on audit and compliance qualities | |
AU2015409179B2 (en) | Machine-driven crowd-disambiguation of data resources | |
US11196833B1 (en) | Proxy server synchronizer | |
CN111131320B (zh) | 资产识别方法、装置、系统和介质 | |
CN109413219B (zh) | 一种域名解析方法和装置、服务器及存储介质 | |
CN107463453B (zh) | 同一终端不同应用间通信的方法、装置、设备和存储介质 | |
CN113905030B (zh) | 内外网通讯方法、装置、内网终端、代理服务器和存储介质 | |
EP3175365A1 (en) | Web redirection for content filtering | |
US20120266186A1 (en) | Providing inter-platform application launch in context | |
US10594584B2 (en) | Network analysis and monitoring tool | |
CN109788050B (zh) | 一种获取源站ip地址方法、系统、电子设备和介质 | |
US11677585B2 (en) | Transparent TCP connection tunneling with IP packet filtering | |
US11190607B2 (en) | Communication monitoring apparatus, communication monitoring method, and computer-readable non-transitory storage medium | |
US20170111430A1 (en) | Methods for website version control using bucket cookies | |
US9590990B2 (en) | Assigning user requests of different types or protocols to a user by trust association interceptors | |
US11310191B2 (en) | Receiving device, receiving device control method, network system, network system control method, and medium | |
EP3971748A1 (en) | Network connection request method and apparatus | |
CN111200652A (zh) | 应用识别方法、应用识别装置和计算设备 | |
CN111049949B (zh) | 域名识别方法、装置、电子设备和介质 | |
WO2015117380A1 (zh) | 一种远程桌面协议网关进行路由交换的方法、设备及系统 | |
US11445003B1 (en) | Systems and methods for autonomous program detection | |
JP5738042B2 (ja) | ゲートウェイ装置、情報処理装置、処理方法およびプログラム | |
US11811734B2 (en) | Protocol switching for connections to zero-trust proxy | |
US11438393B1 (en) | Origin server address rotation |
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: 20200526 |
|
RJ01 | Rejection of invention patent application after publication |