CN114039928A - 网络流量的识别方法、装置、设备及存储介质 - Google Patents

网络流量的识别方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114039928A
CN114039928A CN202111289011.2A CN202111289011A CN114039928A CN 114039928 A CN114039928 A CN 114039928A CN 202111289011 A CN202111289011 A CN 202111289011A CN 114039928 A CN114039928 A CN 114039928A
Authority
CN
China
Prior art keywords
state machine
target
message data
state
network traffic
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.)
Granted
Application number
CN202111289011.2A
Other languages
English (en)
Other versions
CN114039928B (zh
Inventor
白司特
崔渊博
周忠义
阿曼太
梁彧
傅强
田野
王杰
杨满智
蔡琳
金红
陈晓光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eversec Beijing Technology Co Ltd
Original Assignee
Eversec Beijing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Eversec Beijing Technology Co Ltd filed Critical Eversec Beijing Technology Co Ltd
Priority to CN202111289011.2A priority Critical patent/CN114039928B/zh
Publication of CN114039928A publication Critical patent/CN114039928A/zh
Application granted granted Critical
Publication of CN114039928B publication Critical patent/CN114039928B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种网络流量的识别方法、装置、设备及存储介质,该方法包括:获取目标网际协议IP地址的网络流量,并对网络流量进行解析,获取对应的报文数据;当报文数据与目标状态机的起始状态检测内容成功匹配时,将目标状态机配置为起始状态,并将报文数据依次与目标状态机的各其他状态检测内容进行匹配;在预设时间阈值内,若检测到目标状态机的最终状态,则确定网络流量由目标状态机对应的目标应用产生。本发明实施例的技术方案,提出了一种利用状态机实现网络流量识别的新方式,可以实现对加密网络流量的准确识别,可以提升网络流量识别的准确度。

Description

网络流量的识别方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种网络流量的识别方法、装置、设备及存储介质。
背景技术
随着互联网对隐私保护需求的日益增高,通常基于传输层安全(Transport LayerSecurity,TLS)协议对网络流量进行加密;实现对TLS协议加密后的网络流量的准确识别,在网络优化、网络监控等领域具有广阔应用前景。
目前,现有的TLS协议加密网络流量的识别方法,主要包括字段匹配方法和机器学习算法;其中,字段匹配方法,主要利用TLS协议协商过程中发送的服务器名称指示(ServerName Indication,SNI)字段,确定对应的应用;机器学习算法,通过提取TLS协议协商头部字段的特征信息,并将该特征信息作为样本数据,训练得到网络流量识别模型,最终基于训练完成的网络流量识别模型,实现对TLS协议加密网络流量的识别。
然而,对于字段匹配方法,当存在某个域名的服务器被多个应用共同使用时,此时各应用的网络流量中的SNI字段相同,无法实现对不同应用的网络流量的区分。对于机器学习算法,其对不同应用网络流量的识别准备率主要取决于样本数据的数量,而在实际场景下,样本数据的数量通常是有限的,导致网络流量的识别准确度低。
发明内容
本发明实施例提供一种网络流量的识别方法、装置、设备及存储介质,可以实现对加密网络流量的准确识别,可以提升网络流量识别的准确度。
第一方面,本发明实施例提供了一种网络流量的识别方法,包括:
获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据;
当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配;
在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
第二方面,本发明实施例还提供了一种网络流量的识别装置,包括:
报文数据获取模块,用于获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据;
状态检测内容匹配模块,用于当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配;
最终状态检测模块,用于在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行所述计算机程序时实现本发明任意实施例提供的网络流量的识别方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的网络流量的识别方法。
本发明实施例提供的技术方案,通过获取目标网际协议IP地址的网络流量,并对网络流量进行解析,获取对应的报文数据;当检测到报文数据与目标状态机的起始状态检测内容成功匹配时,将目标状态机配置为起始状态,并将报文数据依次与目标状态机的各其他状态检测内容进行匹配;在预设时间阈值内,若检测到目标状态机的最终状态,则可以确定网络流量由目标状态机对应的目标应用产生,提出了一种利用状态机实现网络流量识别的新方式,可以实现对加密网络流量的准确识别,可以提升网络流量识别的准确度。
附图说明
图1A是本发明一实施例中的一种网络流量的识别方法的流程图;
图1B是本发明一实施例中的一种传输层安全协议的交互流程示意图;
图1C是本发明一实施例中的一种传输控制协议状态机的流程示意图;
图1D是本发明一实施例中的一种网络流量的获取页面示意图
图2A是本发明另一实施例中的一种网络流量的识别方法的流程图;
图2B是本发明另一实施例中的一种网络流量的识别方法的流程示意图;
图2C是本发明另一实施例中的一种网络流量的获取页面示意图;
图3是本发明另一实施例中的一种网络流量的识别装置的结构示意图;
图4是本发明另一实施例中的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1A为本发明一实施例提供的一种网络流量的识别方法的流程图,本发明实施例可适用于利用状态机实现对加密网络流量准确识别的情况;该方法可以由网络流量的识别装置来执行,该装置可由硬件和/或软件组成,并一般可集成在电子设备中,典型的,可以集成在计算机设备或者服务器中。如图1A所示,该方法具体包括如下步骤:
S110、获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据。
其中,目标网际协议(Internet Protocol,IP)地址,可以是产生待检测网络流量的终端设备的网际协议地址。可以理解的是,所检测网络流量由某个应用产生,故网络流量的IP地址与该应用所在终端设备的IP地址相同;其次,同一终端设备可能安装多个不同应用,故同一IP地址的网络流量可能由不同的应用生成。
在本实施例中,网络流量,可以是经过加密协议加密后的网络流量;其中,加密协议可以包括传输层安全(Transport Layer Security,TLS)协议。TLS协议用于在两个通信应用程序之间提供保密性和数据完整性,其协议交互流程如图1B所示。值的注意的是,虽然TLS协议为加密协议,但其协议本身并不加密,故协议本身的大多数字段(例如,服务器名称指示字段)的值均为明文形式。
在本实施例中,可以对目标IP地址的网络流量进行实时监测,一旦监测到目标IP地址的网络流量,则截获该网络流量;进一步的,确定该网络流量对应的网络协议,并根据确定的网络协议,对网络流量进行对应的协议解析,以获取网络流量包括的报文数据。其中,报文数据,可以是TLS协议报文数据,也可以是超文本传输协议(Hyper Text TransferProtocol,HTTP)报文数据。
S120、当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配。
其中,状态机,是有限状态机的简称;有限状态机,是一种用于进行对象行为建模的工具,可以描述对象在其生命周期内所经历的状态序列,以及对外界各种事件的响应。在计算机技术领域中,有限状态机被广泛应用于应用行为建模、硬件电路系统设计、软件工程,编译器以及网络协议等方面。例如,如图1C所示的传输控制协议(TransmissionControl Protocol,TCP)状态机。
在本实施例中,针对各应用均预先建立有对应的状态机,各状态机可以包括多个状态机状态,各状态机状态分别具有对应的状态检测内容;其中,状态机状态可以包括起始状态、至少一个中间状态和终止状态;对应的,状态检测内容,可以包括某个协议字段的字符串和特征模式信息。在本实施例中,对状态机状态的数量不作具体限定。
其中,状态检测内容,可以包括用户代理数据、统一资源定位符、超文本传输协议的首部字段以及传输层安全协议的服务器名称指示中的至少一项。用户代理数据,可以是超文本传输协议的User-Agent字段值,通常包括当前报文数据所属应用的名称信息(例如,应用的拼音)。统一资源定位符(Uniform Resource Locator,URL),是指互联网资源的存储地址,不同应用通常具有对应的URL。超文本传输协议的首部字段,可以是request-belong字段,通常包括应用程序包名和页面字符串。传输层安全协议的服务器名称指示(Transport Layer Security-Server Name Indication,TLS-SNI),是TLS协议协商过程中的一部分明文信息,用于表示连接的对端服务器的域名地址;可以理解的是,一个服务器的域名地址,通常标识代表了一个应用本身;由此,可以将SNI字段作为一项状态检测内容,以进行网络流量的识别。
由上述内容可知,在本实施例中,可以结合TLS加密报文数据和其他报文数据(例如,HTTP报文数据),共同进行网络流量的识别判断,可以极大的提升TLS加密报文数据的识别效率,可以提升TLS加密报文数据的识别准确率。同时,基于上述其他报文数据,可以实现对仅基于TLS加密报文数据无法识别内容的准确识别。
在一个具体的例子中,如图1D所示,使用wireshark网络数据捕获软件获取美团应用和大众点评应用的部分网络流量。其中,最左侧一列为报文数据的序号,且按照报文数据的实际先后顺序排列;图中,{2658,2736,2739,2740,3041}号报文为美团应用产生的报文,{3320,3408,3413,3927}号报文为大众点评应用产生的报文。{A,B,C,D}四个框选区域为数据特征部分,如wireshark列名所示,分别为{User-Agent,request-belong,request URL,TLS SNI}。其中B选框是单独显示的3041号报文的request-belong字段内容特征。
由图1D可知,当前美团应用和大众点评应用的网络流量的TLS SNI字段均为“catdot.dianping.com”,此时,仅通过TLS协议无法实现对网络流量所属应用的有效区分。而通过User-Agent、request-belong、request URL和TLS SNI等数据特征部分对网络流量进行联合检测,则可以实现对加密网络流量所属应用的有效区分,可以提升网络流量的识别准确度。
在本实施例中,若检测到当前的报文数据与某个状态机的起始状态检测内容一致,则可以将该状态机作为目标状态机,并将该目标状态机首先配置为起始状态,进而开始进行目标状态机的后续状态的自动检测。
在本实施例的一个可选的实施方式中,在对所述网络流量进行解析,获取对应的报文数据之后,还可以包括:若所述报文数据,与各状态机的起始状态检测内容均未成功匹配,则获取下一报文数据,直至获取的报文数据,与某个状态机的起始状态检测内容成功匹配,将所述状态机作为目标状态机。
其中,若当前的报文数据与各状态机的起始状态检测内容均未成功匹配,表示根据该报文数据无法确定匹配的目标状态机;此时,继续获取下一报文数据,并重新与各状态机的起始状态检测内容进行匹配检测,直至获取的报文数据与某一个状态机的起始状态检测内容成功匹配。
在本实施例中,当根据当前的报文数据无法检测到匹配的目标状态机时,自动获取下一报文数据,重新进行匹配目标状态机的检测,可以提升网络流量识别方法的容错率,确保对网络流量的准确识别。
在本实施例的一个可选的实施方式中,在将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配之后,还可以包括:
在预设时间阈值内,若检测到所述报文数据与目标状态机的目标其他状态检测内容成功匹配,则将目标状态机更新为目标其他状态检测内容对应的状态机状态;以及若检测到所述报文数据与目标状态机的各其他状态检测内容均成功匹配,则将目标状态机更新为最终状态。
其中,在将当前的报文数据,与各其他状态检测内容进行依次匹配的过程中,若该报文数据与一个状态检测内容成功匹配,则将目标状态机自动更新为该状态检测内容对应的状态机状态。值的注意的是,各状态机状态具有固定的顺序,对应的状态检测内容同样具有固定的顺序;报文数据需要根据各状态检测内容的顺序,逐个进行状态检测内容的匹配对比;只有与当前的状态检测内容成功匹配后,才可以进行下一状态检测内容的匹配对比。
在本实施例中,在预设时间阈值内,当报文数据与目标状态机的全部状态检测内容均成功匹配时,将目标状态机更新为最终状态,表示报文数据所属的目标IP地址的网络流量与目标状态机完全匹配。
值的注意的是,通过设置状态检测内容间的固定顺序,可以利用应用程序本身的逻辑设计,对应用程序的时序关联特征进行判断,可以极大降低在限定关系内产生的误判概率,提升网络流量的识别准确度。
可选的,在本实施例中,也可以直接获取各应用对应的时序关联特征,作为网络流量的识别内容,并基于该时序关联特征,直接进行网络流量的识别,而不一定必须采用状态机的方式。
S130、在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
其中,预设时间阈值,为预先设置的目标状态机的状态检测持续时间。在本实施例中,当目标状态机被配置为起始状态后,可以设置一个时间计数器,并在当前时刻使时间计数器归零,开始计时。
在本实施例中,在预设时间阈值内,将当前的报文数据与目标状态机的各中间状态和最终状态的状态检测内容进行依次的匹配;若一个状态检测内容匹配成功,则自动进行下一状态检测内容的匹配;同时,在确定报文数据与一个状态检测内容匹配成功后,则可以将目标状态机的状态更新为该状态检测内容对应的状态机状态;重复上述过程,若当前报文与每个状态检测内容均匹配成功,最终将目标状态机配置为最终状态。
由上述内容可知,在预设时间阈值内,如果成功检测到了目标状态机的最终状态,则表示当前的报文数据与目标状态机的各状态检测内容均匹配成功;此时,可直接确定该报文数据所属的目标IP地址网络流量,由该目标状态机对应的目标应用产生。
需要说明的是,在预设时间阈值内,若当前报文数据与某一个状态检测内容匹配失败;此时,只要还未超出预设时间阈值,可以继续获取下一报文数据,并在目标状态机当前状态机状态的基础上,继续进行后续状态检测内容的匹配,而不需要重新进行目标状态机的起始状态检测内容的匹配。其中,若已经超出了预设时间阈值,则可以确定该目标IP地址的网络流量,不属于目标状态机对应的目标应用。
可以理解的是,在确定目标IP地址网络流量,由该目标状态机对应的目标应用产生后,对于各状态机状态匹配的TLS加密报文数据,可自动确定为由当前的目标应用产生,可以实现对TLS加密报文数据的准确识别。
本发明实施例提供的技术方案,通过获取目标网际协议IP地址的网络流量,并对网络流量进行解析,获取对应的报文数据;当检测到报文数据与目标状态机的起始状态检测内容成功匹配时,将目标状态机配置为起始状态,并将报文数据依次与目标状态机的各其他状态检测内容进行匹配;在预设时间阈值内,若检测到目标状态机的最终状态,则可以确定网络流量由目标状态机对应的目标应用产生,提出了一种利用状态机实现网络流量识别的新方式,可以实现对加密网络流量的准确识别,可以提升网络流量识别的准确度。
图2A为本发明又一实施例提供的网络流量的识别方法的流程图,本实施例以上述技术方案为基础,在本实施例中,预先构建各应用对应的状态机,并在预设时间阈值内,持续获取报文数据,直至检测到目标状态机的最终状态;如图2A所示,该方法包括:
S210、预先建立各应用对应的状态机。
其中,各状态机包括至少一个状态机状态,状态机状态与状态检测内容一一对应。
在本实施例中,针对各应用程序可以预先建立对应的状态机;具体的,首先对各应用的确定网络流量进行特征提取,以获取对应的特征内容;其次将提取的特征内容,作为各应用对应状态机的状态检测内容,以确定各应用对应状态机的多个状态机状态,实现对各应用对应状态机的构建。
在本实施例中,通过预先构建各应用对应的状态机,使得在获取到网络流量后,可以直接将网络流量中的报文数据,与各状态机的起始状态检测内容进行匹配,以确定与报文数据匹配的目标状态机,提升了目标状态机的确定效率,进而提升了对网络流量的识别效率。
S220、获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据。
S230、当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配。
S240、在预设时间阈值内,若检测到所述报文数据与目标状态机的某一个其他状态检测内容未成功匹配,则重新获取下一报文数据,并将所述下一报文数据依次与所检测状态检测内容,以及所检测状态检测内容之后的各其他状态检测内容进行匹配,直至检测到所述目标状态机的最终状态,或者达到预设时间阈值。
在本实施例中,在预设时间阈值内,如果检测到当前的报文数据与某个状态检测内容匹配失败;此时,可以自动获取下一报文数据,并在匹配失败的状态检测内容的基础上,继续进行状态检测内容的匹配,直至实现对全部状态检测内容的成功匹配,即检测到目标状态机的最终状态。
在另一种场景下,若已经达到预设时间阈值,仍然未完成对全部状态检测内容的成功匹配;此时,可以认为当前目标IP地址的网络流量与该目标状态机不匹配。
可选的,为了提升网络流量的识别效率,可以在确定目标IP地址的网络流量的报文数据,与目标状态机预设数量的状态检测内容成功匹配时,即可确定当前的网络流量与目标状态机对应,而不必需要与全部状态检测内容的完全匹配。例如,目标状态机包括四个状态机状态,当目标IP地址的网络流量的报文数据,与前三个状态机状态对应的状态检测内容均成功匹配时,则可以确定该网络流量与目标状态机对应。
S250、在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
在本发明实施例的一个可选的实施方式中,在达到预设时间阈值之后,还可以包括:清除所述目标状态机的状态机状态。其中,如果在达到预设时间阈值之后,仍未实现与全部状态检测内容的成功匹配,则可以清除目标状态机的全部状态机状态,确定该IP地址的网络流量与目标状态机不匹配。
在本实施例中,通过配置预设时间阈值,以及各状态机的各状态检测内容,实际是对网络流量在特定时间范围内进行一系列内容的检测;值的注意的是,所检测的内容可以来自不同的报文数据,可以实现对跨报文数据的检测识别。
需要说明的是,预设时间阈值,也可以用其他限定条件进行代替;例如,限定条件可以是如果重复检测到某一个内容多少次则认为超过阈值,或者,如果持续检测一定数量的报文数据仍未实现成功匹配,则认为超过阈值。
本发明实施例提供的技术方案,通过预先建立各应用对应的状态机,并对获取的目标IP地址的网络流量进行解析,以获取对应的报文数据;进而在检测到报文数据与目标状态机的起始状态检测内容成功匹配时,将目标状态机配置为起始状态,并将报文数据依次与目标状态机的各其他状态检测内容进行匹配;在预设时间阈值内,如果检测到报文数据与目标状态机的某一个其他状态检测内容未成功匹配,则重新获取下一报文数据,并将下一报文数据依次与所检测状态检测内容,以及所检测状态检测内容之后的各其他状态检测内容进行匹配,直至检测到目标状态机的最终状态,或者达到预设时间阈值;通过在确定报文数据无法进行成功匹配时,自动获取下一报文数据,继续进行状态检测内容的匹配,可以实现对跨报文数据的检测识别,进一步提升了网络流量的识别准确度。
在本实施例的一个具体的实施方式中,如图2B所示,状态机的状态机状态包括{S0,S1,...,Sn},其中,S0为起始状态,Sn为最终状态,其余均为中间状态。首先开始检测某IP的网络流量,并通过对网络流量进行解析,获取一个报文数据包。其次,将报文数据包与状态机状态S0对应的状态检测内容进行匹配,若成功匹配,则建立状态机,并将该状态机设置为S0状态;而若未成功匹配,则返回重新获取报文数据包,并重新进行起始状态的匹配。
进一步的,在将状态机设置为S0状态之后,将检测阈值,也即预设时间阈值归零,并开始计时;若当前的报文数据包与后续的某一个状态机状态匹配失败,则获取下一报文数据包;此时,若未超过预设时间阈值,则采用下一报文数据包继续与后续的状态机状态S(i+1)进行匹配,若成功匹配,则将状态机设置为S(i+1)状态,否则,继续获取下一报文数据包,直至全部成功匹配或者达到预设时间阈值。在预设时间阈值内,若成功检测到状态机的最终状态Sn,则标记最终检测结果。而若超过预设时间阈值,则清除此状态机的状态码。
在本实施例的一个具体的实施方式中,如图2C所示,针对需要识别的catdot.dianping.com流量,建立美团应用的状态机为{S0:User-Agent=AiMeiTuan,S1:TLS_SNI=catdot.dianping.com,S2:TLS_SNI=catdot.dianping.com,S3:TLS_SNI=catdot.dianping.com,S4:request-belong=com.meituan.android.pt.homepage.activity.MainActivity}。大众点评应用的状态机为{S0:URI=/olp/dianping/,S1:TLS_SNI=catdot.dianping.com,S2:TLS_SNI=catdot.dianping.com,S3:TLS_SNI=txpic.dpfile.com}。其中,框选的区域为报文数据对应的时间,对应应用程序启动的时间,主要取决于手机处理速度或者网络速度等。基于上述时间,针对美团应用的状态机设置一个5秒的预设时间阈值(远大于7.478311-9.686814的实际间隔);对应的,针对大众点评应用设置一个8秒(远大于13.880644-16.262421的实际间隔)的预设时间阈值。
进一步的,开始检测报文数据,如果检测到一个HTTP报文的User-Agent字段的值包含AiMeiTuan字符串,则美团应用对应的状态机开始置位S0,并将与该状态机对应的5秒预设时间阈值开始计时。如果在预设时间阈值内,在后续报文中检测到了3个TLS协议加密报文数据的SNI字段的值为catdot.dianping.com,则将状态机相继设置为对应的状态位S1、S2和S3。继续检测后续报文,如果又检测到一个HTTP报文的request-belong字段值为com.meituan.android.pt.homepage.activity.MainActivity,则将状态机设置为状态位S4
其中,S0和S4分别为当前状态机的起始状态位和结束状态位,时间跨度{Ts0,Ts4}为一个时间检测域,其间的S1、S2和S3则为待匹配的匹配条件。若当前状态机最终迁移到了状态S4,则表明此状态机成立;其间的状态机状态S1、S2和S3对应的三个TLS协议加密报文数据,最终可确定为美团应用的catdot.dianping.com流量。
同理,对于大众点评应用网络流量的识别流程如下。首先开始检测报文数据,如果检测到一个HTTP报文的URI字段的值包含/olp/dianping/字符串,则大众点评应用对应的状态机开始置位S0,并将与该状态机对应的8秒预设时间阈值开始计时。如果在预设时间阈值内,在后续报文数据中检测到了2个TLS协议加密报文数据的SNI字段的值为catdot.dianping.com,那么此状态机相继设置为对应的状态位S1和S2,并继续检测后续报文数据。如果又检测到一个TLS协议加密报文数据的SNI字段值为txpic.dpfile.com,则设置状态机为S3。其中,S0和S3分别为此状态机的起始状态位和结束状态位,时间跨度{Ts0,Ts3}为一个时间检测域,其间的S1和S2则为待匹配的匹配条件。若此状态机最终迁移到了状态S3,则表明此状态机成立,其间的S1和S2对应的两个TLS协议加密报文数据,最终可确定为大众点评应用的catdot.dianping.com流量。
通过上述方法,可以实现对不同应用的网络流量的区分,且不容易产生误判;同时只需待识别样本自身的特征即可实现对该待识别样本的准确识别,理论上最少仅需一个应用对应网络流量的样本,即可实现对状态机匹配规则的生成,可以避免现有机器学习算法中需要获取大量的训练样本,可以避免人力物力的浪费。
在本实施例的另一个具体的实施方式中,可以基于前述的网络流量的识别方法,实现对TLS协议加密报文数据的内容识别。在一种场景下,如果TLS协议加密内容部分只有一个字节0或1两种值的状态区分,例如,是否登录成功,或A、B两种不同功能码。此时,仅通过TLS协议加密报文数据本身的特征信息,很难实现对TLS协议加密内容的识别。
可以理解的是,由于TLS协议加密内容的不同,可能导致其关联的传输数据的内容或者行为不同;例如,以0和1分别表示登录成功和登录失败,当TLS协议加密内容为0时,后续只会出现登录成功相关联的网络流量和内容;对应的,当TLS协议加密内容为1时,后续只会出现登录失败相关联的网络流量和内容。由此,通过状态机的方式,利用TLS协议加密报文数据本身的特征信息和其关联的网络流量和内容,可对TLS协议加密报文数据的内容进行识别。
具体的,对某条TLS协议加密报文数据是否包括登录成功信息进行识别,首先建立应用A登录成功对应状态机{S0:登录前某特征信息Astart,S1:加密报文数据本身特征ASNI域名,S2:登录成功后才有的特征Aend},并设置对应的预设时间阈值为Tlimit(例如1秒),也即Aend与Astart数据之间的时间差需要小于Tlimit。当在预设时间阈值内,存在多个报文数据分别与Astart、ASNI域名和Aend分别匹配,则可以确定状态S1对应的TLS协议加密报文数据为应用A登录成功的TLS协议加密报文数据。同理,也可以建立一个应用登录失败的状态机,以识别登录失败对应的TLS协议加密报文数据。
在本实施例的另一个具体的实施方式中,TLS协议的SNI字段对应的服务器包括多个页面,各页面可以对应不同商品信息或者图片信息等;当需要识别TLS协议加密网络流量中是否包括商品A的网络流量时,可以获取加密网络流量之外的商品特征信息,并结合加密网络流量本身的特征信息,即通过商品的加密网络流量加商品特征信息,实现对加密网络流量对应商品的识别。
可以理解的是,页面中的一个HTTP超链接,会产生对应元素的多个链接数据;在商品页面中,多个链接数据均与当前商品特定相关;例如,商品A的连接数据可能是商品A的图片或视频。需要说明的是,同一商品对应的图片或视频类资源数据的数据量通常是固定不变的,不会像文本信息,可能随着文本的更新而变化。由此,尽管这些资源数据本身经过TLS协议加密,但是可以使用资源数据的行为来对不同商品进行标识;例如,使用资源数据的数据量大小来代表不同的商品信息。
基于上述内容,当需要识别某应用的商品A时,例如,item.domain.com无数页面里的商品A;可以建立商品A的状态机为{S0:应用浏览商品的特征Astart,S1:加密报文数据本身特征ASNI域名,S2:商品A才有的特征例Apicture1_size,S3:商品A才有的特征Apicture2_size,S4:商品A才有的特征例Avideo1_size},并设置对应的预设时间阈值为Tlimit
当在预设时间阈值内,检测到存在多个报文数据(例如,HTTP报文数据和TLS协议加密报文数据)分别与S0、S1、S2、S3和S4匹配,则可以确定状态S1对应的TLS协议加密报文数据,为当前应用的商品A对应的报文数据。
在本实施例中,通过状态机,可以利用TLS协议加密网络流量之外的网络流量,辅助实现对TLS协议加密网络流量所包含内容的识别,提升了对TLS协议加密内容的识别效率,提升了对TLS协议加密内容的识别准确率;同时,针对上述场景,当需要对应用的大量商品页面中商品进行识别时,可以避免机器学习算法中需要大量的学习样本所导致的人力资源浪费。
图3为本发明另一实施例提供的一种网络流量的识别装置的结构示意图。如图3所示,该装置包括:报文数据获取模块310、状态检测内容匹配模块320和最终状态检测模块330。其中,
报文数据获取模块310,用于获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据;
状态检测内容匹配模块320,用于当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配;
最终状态检测模块330,用于在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
本发明实施例提供的技术方案,通过获取目标网际协议IP地址的网络流量,并对网络流量进行解析,获取对应的报文数据;当检测到报文数据与目标状态机的起始状态检测内容成功匹配时,将目标状态机配置为起始状态,并将报文数据依次与目标状态机的各其他状态检测内容进行匹配;在预设时间阈值内,若检测到目标状态机的最终状态,则可以确定网络流量由目标状态机对应的目标应用产生,提出了一种利用状态机实现网络流量识别的新方式,可以实现对加密网络流量的准确识别,可以提升网络流量识别的准确度。
可选的,在上述技术方案的基础上,所述网络流量的识别装置,还包括:
后续匹配模块,用于在预设时间阈值内,若检测到所述报文数据与目标状态机的某一个其他状态检测内容未成功匹配,则重新获取下一报文数据,并将所述下一报文数据依次与所检测状态检测内容,以及所检测状态检测内容之后的各其他状态检测内容进行匹配,直至检测到所述目标状态机的最终状态,或者达到预设时间阈值。
可选的,在上述技术方案的基础上,所述网络流量的识别装置,还包括:
状态机状态更新模块,用于在预设时间阈值内,若检测到所述报文数据与目标状态机的目标其他状态检测内容成功匹配,则将目标状态机更新为目标其他状态检测内容对应的状态机状态;以及
若检测到所述报文数据与目标状态机的各其他状态检测内容均成功匹配,则将目标状态机更新为最终状态。
可选的,在上述技术方案的基础上,所述网络流量的识别装置,还包括:
状态清除模块,用于清除所述目标状态机的状态机状态。
可选的,在上述技术方案的基础上,所述网络流量的识别装置,还包括:
状态机建立模块,用于预先建立各应用对应的状态机;
其中,所述各状态机包括至少一个状态机状态,状态机状态与状态检测内容一一对应。
可选的,在上述技术方案的基础上,报文数据获取模块310,还用于若所述报文数据,与各状态机的起始状态检测内容均未成功匹配,则获取下一报文数据,直至获取的报文数据,与某个状态机的起始状态检测内容成功匹配,将所述状态机作为目标状态机。
可选的,在上述技术方案的基础上,所述状态检测内容,包括用户代理数据、统一资源定位符、超文本传输协议的首部字段以及传输层安全协议的服务器名称指示中的至少一项。
上述装置可执行本发明前述实施例所提供的网络流量的识别方法,具备执行上述方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明前述实施例所提供的网络流量的识别方法。
图4为本发明另一实施例提供的一种电子设备的结构示意图,如图4所示,该电子设备包括处理器410、存储器420、输入装置430和输出装置440;电子设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;电子设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例中的一种网络流量的识别方法对应的程序指令/模块(例如,一种网络流量的识别装置中的报文数据获取模块310、状态检测内容匹配模块320和最终状态检测模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的一种网络流量的识别方法。也即,该程序被处理器执行时实现:
获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据;
当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配;
在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置430可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,可以包括键盘和鼠标等。输出装置440可包括显示屏等显示设备。
可选的,该电子设备可以为服务器,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述方法。当然,本发明实施例所提供的一种计算机可读存储介质,其可以执行本发明任意实施例所提供的一种网络流量的识别方法中的相关操作。也即,该程序被处理器执行时实现:
获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据;
当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配;
在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述网络流量的识别装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种网络流量的识别方法,其特征在于,包括:
获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据;
当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配;
在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
2.根据权利要求1所述的方法,其特征在于,在将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配之后,还包括:
在预设时间阈值内,若检测到所述报文数据与目标状态机的某一个其他状态检测内容未成功匹配,则重新获取下一报文数据,并将所述下一报文数据依次与所检测状态检测内容,以及所检测状态检测内容之后的各其他状态检测内容进行匹配,直至检测到所述目标状态机的最终状态,或者达到预设时间阈值。
3.根据权利要求1所述的方法,其特征在于,在将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配之后,还包括:
在预设时间阈值内,若检测到所述报文数据与目标状态机的目标其他状态检测内容成功匹配,则将目标状态机更新为目标其他状态检测内容对应的状态机状态;以及
若检测到所述报文数据与目标状态机的各其他状态检测内容均成功匹配,则将目标状态机更新为最终状态。
4.根据权利要求2所述的方法,其特征在于,在达到预设时间阈值之后,还包括:
清除所述目标状态机的状态机状态。
5.根据权利要求1所述的方法,其特征在于,在获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据之前,还包括:
预先建立各应用对应的状态机;
其中,所述各状态机包括至少一个状态机状态,状态机状态与状态检测内容一一对应。
6.根据权利要求1所述的方法,其特征在于,在对所述网络流量进行解析,获取对应的报文数据之后,还包括:
若所述报文数据,与各状态机的起始状态检测内容均未成功匹配,则获取下一报文数据,直至获取的报文数据,与某个状态机的起始状态检测内容成功匹配,将所述状态机作为目标状态机。
7.根据权利要求1-6任一所述的方法,其特征在于,所述状态检测内容,包括用户代理数据、统一资源定位符、超文本传输协议的首部字段以及传输层安全协议的服务器名称指示中的至少一项。
8.一种网络流量的识别装置,其特征在于,包括:
报文数据获取模块,用于获取目标网际协议IP地址的网络流量,并对所述网络流量进行解析,获取对应的报文数据;
状态检测内容匹配模块,用于当所述报文数据与目标状态机的起始状态检测内容成功匹配时,将所述目标状态机配置为起始状态,并将所述报文数据依次与目标状态机的各其他状态检测内容进行匹配;
最终状态检测模块,用于在预设时间阈值内,若检测到目标状态机的最终状态,则确定所述网络流量由所述目标状态机对应的目标应用产生。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行所述计算机程序时实现如权利要求1-7中任一所述的网络流量的识别方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一所述的网络流量的识别方法。
CN202111289011.2A 2021-11-02 2021-11-02 网络流量的识别方法、装置、设备及存储介质 Active CN114039928B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111289011.2A CN114039928B (zh) 2021-11-02 2021-11-02 网络流量的识别方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111289011.2A CN114039928B (zh) 2021-11-02 2021-11-02 网络流量的识别方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114039928A true CN114039928A (zh) 2022-02-11
CN114039928B CN114039928B (zh) 2024-07-02

Family

ID=80142547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111289011.2A Active CN114039928B (zh) 2021-11-02 2021-11-02 网络流量的识别方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114039928B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980240A (zh) * 2006-12-08 2007-06-13 杭州华为三康技术有限公司 数据流的模式匹配方法及装置
CN101282362A (zh) * 2008-05-13 2008-10-08 中兴通讯股份有限公司 深度报文检测方法和装置
US20100250731A1 (en) * 2009-03-31 2010-09-30 Xiao Haitao Systems and methods for application identification
CN102087631A (zh) * 2011-03-09 2011-06-08 中国人民解放军国发科学技术大学 一种面向状态协议实现软件的模糊测试方法
CN102142009A (zh) * 2010-12-09 2011-08-03 华为技术有限公司 一种正则表达式匹配的方法及装置
CN102594565A (zh) * 2012-02-23 2012-07-18 汉柏科技有限公司 利用数字证书识别加密协议的识别方法及系统
CN102710504A (zh) * 2012-05-16 2012-10-03 华为技术有限公司 应用识别方法和装置
CN102868571A (zh) * 2012-08-07 2013-01-09 华为技术有限公司 一种规则匹配方法和装置
CN107948022A (zh) * 2018-01-11 2018-04-20 北京安博通科技股份有限公司 一种对等网络流量的识别方法及识别装置
CN112637223A (zh) * 2020-12-26 2021-04-09 曙光网络科技有限公司 应用协议识别方法、装置、计算机设备和存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980240A (zh) * 2006-12-08 2007-06-13 杭州华为三康技术有限公司 数据流的模式匹配方法及装置
CN101282362A (zh) * 2008-05-13 2008-10-08 中兴通讯股份有限公司 深度报文检测方法和装置
US20100250731A1 (en) * 2009-03-31 2010-09-30 Xiao Haitao Systems and methods for application identification
CN102142009A (zh) * 2010-12-09 2011-08-03 华为技术有限公司 一种正则表达式匹配的方法及装置
CN102087631A (zh) * 2011-03-09 2011-06-08 中国人民解放军国发科学技术大学 一种面向状态协议实现软件的模糊测试方法
CN102594565A (zh) * 2012-02-23 2012-07-18 汉柏科技有限公司 利用数字证书识别加密协议的识别方法及系统
CN102710504A (zh) * 2012-05-16 2012-10-03 华为技术有限公司 应用识别方法和装置
CN102868571A (zh) * 2012-08-07 2013-01-09 华为技术有限公司 一种规则匹配方法和装置
US20150081612A1 (en) * 2012-08-07 2015-03-19 Huawei Technologies Co., Ltd. Rule matching method and apparatus
CN107948022A (zh) * 2018-01-11 2018-04-20 北京安博通科技股份有限公司 一种对等网络流量的识别方法及识别装置
CN112637223A (zh) * 2020-12-26 2021-04-09 曙光网络科技有限公司 应用协议识别方法、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BO XU ET AL.: "A network identification method based on finite state machine", IEEE *
李洁: "基于DPI的流量识别与控制系统的设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Also Published As

Publication number Publication date
CN114039928B (zh) 2024-07-02

Similar Documents

Publication Publication Date Title
Xu et al. Am I eclipsed? A smart detector of eclipse attacks for Ethereum
US9848004B2 (en) Methods and systems for internet protocol (IP) packet header collection and storage
CN111600850B (zh) 一种检测挖矿虚拟货币的方法、设备及存储介质
US20230092522A1 (en) Data packet processing method, apparatus, and electronic device, computer-readable storage medium, and computer program product
KR20200033091A (ko) 네트워크에 대한 인공지능 기반 이상 징후 검출 방법, 장치 및 시스템
US9948661B2 (en) Method and apparatus for detecting port scans in a network
KR102076861B1 (ko) 네트워크 성능 진단 방법 및 장치, 및 시스템
CN104506484A (zh) 一种私有协议分析与识别方法
CN113315742B (zh) 攻击行为检测方法、装置及攻击检测设备
US10775751B2 (en) Automatic generation of regular expression based on log line data
CN109194671A (zh) 一种异常访问行为的识别方法及服务器
CN109698798B (zh) 一种应用的识别方法、装置、服务器和存储介质
CN110163013B (zh) 一种检测敏感信息的方法和设备
CN111770079A (zh) 一种web框架注入漏洞检测方法及装置
CN109688099B (zh) 服务器端撞库识别方法、装置、设备及可读存储介质
CN114172980A (zh) 一种识别操作系统类型的方法、系统、装置、设备及介质
Antunes et al. ReverX: Reverse engineering of protocols
CN111427710B (zh) 应用程序中组件的通信方法、装置、设备及存储介质
CN113259364A (zh) 一种网络事件关联分析方法及装置、计算机设备
CN112436969A (zh) 一种物联网设备管理方法、系统、设备及介质
CN114039928B (zh) 网络流量的识别方法、装置、设备及存储介质
CN116192527A (zh) 攻击流量检测规则生成方法、装置、设备及存储介质
CN114760216B (zh) 一种扫描探测事件确定方法、装置及电子设备
CN114221777B (zh) 受限条件下数字货币流量自同步监测方法、装置和设备
Whalen et al. Hidden markov models for automated protocol learning

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
GR01 Patent grant