CN105871832B - 一种基于协议属性的网络应用加密流量识别方法及其装置 - Google Patents

一种基于协议属性的网络应用加密流量识别方法及其装置 Download PDF

Info

Publication number
CN105871832B
CN105871832B CN201610187193.5A CN201610187193A CN105871832B CN 105871832 B CN105871832 B CN 105871832B CN 201610187193 A CN201610187193 A CN 201610187193A CN 105871832 B CN105871832 B CN 105871832B
Authority
CN
China
Prior art keywords
network
application
cluster
certificate
module
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.)
Expired - Fee Related
Application number
CN201610187193.5A
Other languages
English (en)
Other versions
CN105871832A (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201610187193.5A priority Critical patent/CN105871832B/zh
Publication of CN105871832A publication Critical patent/CN105871832A/zh
Application granted granted Critical
Publication of CN105871832B publication Critical patent/CN105871832B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于协议属性的网络应用加密流量识别方法及其装置,属于计算机网络服务安全技术领域,包括离线训练模块和在线识别模块,离线训练模块由数据集获取模块、基于二阶马尔科夫链的消息类型指纹建立模块和证书长度聚类模块组成,通过数据集获取模块得到训练集,对其经过基于二阶马尔科夫链的消息类型指纹建立模块得到应用指纹并存储,经过证书长度聚类模块得到聚类结果及应用证书簇类分布概率并存储;在线识别模块由网络流抓取模块和识别模块组成,识别模块将抓取模块得到的网络流与已存储的应用指纹库逐一匹配,同时考虑证书聚类结果,得到识别概率,识别结果为对应概率最高的应用。对比现有技术,本发明提高了识别的准确率和效率。

Description

一种基于协议属性的网络应用加密流量识别方法及其装置
技术领域
本发明涉及一种基于协议属性的网络应用加密流量识别方法,旨在识别网络流来源,发现并屏蔽恶意流量,提高网络安全,属于机器学习、网络服务安全技术领域。
背景技术
流量是网络通信、网络服务,甚至是网络攻击的载体,流量中隐藏的恶意程序极易造成网络故障。流量识别技术是指针对网络中的海量流量,识别其所属的网络服务或应用的技术。通过流量识别,及时发现恶意流量,实施有效的拦截和屏蔽,是保障网络正常运转的关键。在实际应用中,配备流量分类与识别功能的系统往往被部署在网关等起连接作用的节点中,以方便审计网络流量,及早屏蔽恶意程序,确保网络安全。
传统的流量识别方法大多是基于网络通信数据包内容的分析,其中两个大方向是基于端口分析和基于载荷分析,而随着SSL/TLS(安全套阶层/传输层安全)协议的广泛应用,网络通信数据包被加密传输,从根本上使得传统的流量识别方法失去有效性。因此,如何对加密网络流进行有效的分类和识别成为近年的热门研究方向。
在加密网络流分类与识别方面,可检索到的关联度最大的两项专利为:
(1)文献“Early Recognition of Encrypted Application”提出一种新型的网络加密流识别方法,仅仅依赖SSL连接的前几个通信数据包大小的分析即可完成流量分类和识别。该方法首先分析第一个数据包的明文部分并提取出本次加密使用的加密算法信息,然后根据事先实验获知的不同加密算法对明文数据包大小的改变量,反推出前几个密文数据包的明文大小并将其构造成向量,将该向量与事先实验获知的不同应用前几个数据包大小构成的向量集进行相似度匹配,并判定该向量对应的加密网络流属于与其相似度最接近的向量对应的网络流隶属的应用。作者的实验表明这种方法用于加密网络流识别的准确率达到85%左右。
(2)文献“Markov Chain Fingerprinting to Classify Encrypted Traffic”提出一种结合机器学习的新型加密网络流识别方法。该方法基于统计学相关知识,利用SSL/TLS协议握手阶段的消息数据包作为建模的离散状态,为每种网络服务或应用建立一个相对应的马尔科夫链模型,并将其作为应用的指纹信息来表征应用特点。由于用于建模的状态对应SSL/TLS协议握手阶段有限的消息类型,生成的应用指纹差异性并不十分理想,不同网络服务或应用的指纹部分重合或相似的情况时有发生,导致这种情况下加密网络流分类与识别的准确度大大降低。
综上所述,在加密网络流分类与识别方面,两种方法均不能实现高准确性,与投入实际应用所需的标准仍有一定距离,且实验表明在某些情况下,上述第二种方法有极大可能表现出极低的识别准确性。
发明内容
本发明的目的在于提高加密网络流分类与识别方法的准确度,降低其出现误判和漏判的频率,同时提高方法的稳定性,保证该方法在大多数情况下都能表现出足够高的识别精度。本发明针对背景技术中提及的现有加密网络流识别方法存在的各种问题,采取相应的解决方案,并在此基础上提出一种基于协议属性的网络应用加密流量识别方法。本发明适用于应用SSL/TLS协议的加密网络通讯场景。
本发明是通过以下技术方案实现的:
本发明中的一种基于协议属性的网络应用加密流量识别方法的实现过程如下:
步骤1、离线训练集获取;
步骤1.1基于Wireshark、Tshark等网络抓包工具,搭建数据集获取平台,旨在监听并存储流经本平台的SSL/TLS加密网络流;
步骤1.2选择多个网关等网络纽带节点部署上述数据集获取平台,以生成多个离线训练子集,减小特殊数据集的干扰;
步骤1.3将步骤1.2生成的每个离线训练子集合并,过滤非SSL/TLS加密协议的数据包,接着以“源地址”为参考字段进行归类,同源网络数据包则按照“时间”字段排序,以此生成综合的离线训练集;
步骤1.4通过大量人工操作(例如逆向域名地址解析、域名地址匹配),获取离线训练集中每条网络流对应的网络服务或应用,重新划分训练集,将相同网络服务或应用对应的网络流汇集在一个训练集中,即每种网络服务或应用对应一个离线训练集,以此作为分类和识别的真实值来训练本发明方法;
步骤2、基于二阶马尔科夫链的消息类型建模;
步骤2.1针对步骤1生成的每个网络服务或者应用的离线训练集,提取其中每条网络流的每个网络数据包中的SSL/TLS会话消息类型,构成消息类型流,并以此精简地表征原网络流,即网络服务或应用的每条网络流的构成元素由原来复杂丰富的数据包形式替换为消息类型形式,视网络流(消息类型序列)为二阶马尔科夫链,其中每种消息类型对应一种离散状态,构成建模的基本单位;
步骤2.2针对步骤2.1中每种网络服务或应用的离线训练集,统计每条网络流的前两个消息类型出现的频数,从而计算该网络服务或应用“进入二阶马尔科夫链”的概率,即该任意两种消息类型(有序)作为网络服务或应用前两个消息类型出现的概率,计算方法为网络流前两个消息类型出现的频数除以该离线训练集中网络流的总个数;
步骤2.3针对步骤2.1中每种网络服务或应用的离线训练集,统计每条网络流的最后两个消息类型出现的频数,从而计算该网络服务或应用“退出二阶马尔科夫链”的概率,即该任意两种消息类型(有序)作为网络服务或应用最后两个消息类型出现的概率;
步骤2.4针对步骤2.1中每种网络服务或应用的离线训练集,以滑动窗口的方式统计消息类型状态二阶转移(消息类型A—消息类型B—消息类型C)出现的频数,从而计算该网络服务或应用的状态二阶转移概率;
步骤2.5综合步骤2.2,2.3以及2.4产生的“进入二阶马尔科夫链”概率、“退出二阶马尔科夫链”概率以及状态二阶转移概率,将以上结果以文件形式存储,并以此作为某种网络服务或应用的二阶马尔科夫链指纹;
步骤3、证书长度聚类;
步骤3.1针对步骤1当中生成的每个网络服务或者应用的离线训练集,提取其中每条网络流的证书消息类型的长度(部分网络流不包含证书消息类型则忽略),将所有网络服务或应用网络流的证书长度汇集在一个综合的证书长度数据集中;
步骤3.2给定簇数,将步骤3.1生成的证书长度数据集进行聚类,聚类结果以不同簇中心大小构成的列表方式给出;
作为优选,所述聚类采用K-Means聚类法,并且由于聚类中心的选择是随机的,不同聚类中心的初始化会影响聚类效果,因此采用多次聚类取最优结果的方法保证聚类效果。
步骤3.3针对每种网络服务或应用的网络流以及步骤3.2生成的簇中心大小列表,判断每条网络流包含的证书属于哪个簇(判断方式为计算该证书长度与每个簇中心的距离,距离最近的簇则为所求),计算该网络服务或应用的网络流证书落在不同簇的概率,概率间差异性越大则表示证书聚类的效果越好,本发明以此为指标来衡量给定簇数的证书聚类效果;
步骤3.4假设簇数为2,3,4……,重复步骤3.2和3.3,根据上述证书聚类效果衡量指标,确定适合的簇数,并得到在此情况下的簇中心大小列表和每种网络服务或应用落在不同簇的概率,写入证书长度聚类结果文件;
步骤4、在线网络流抓取;
步骤4.1如同步骤1.1所述,基于Wireshark或Tshark等网络抓包工具,搭建在线网络流抓取平台,旨在截获流经本平台的SSL/TLS加密网络流为后续分类与识别操作提供数据支持;
步骤4.2将步骤4.1中的在线网络流抓取平台部署在有需要进行在线网络流识别的网络位置;
步骤4.3在线抓取加密网络流,并过滤无用数据包,确保网络流完整;
步骤5、在线网络流识别;
步骤5.1提取步骤4.3抓取的网络流的每个网络数据包中的SSL/TLS会话消息类型,构成消息类型流,视该流为二阶马尔科夫链,与步骤2.5生成的每种网络服务或应用的指纹匹配,得到匹配概率(匹配概率=进入二阶马尔科夫链概率×状态二阶转移概率×退出二阶马尔科夫链概率);
步骤5.2提取步骤4.3抓取的网络流的证书消息长度(若无证书消息则忽略此步骤),以步骤3.4生成的证书聚类结果为标准,判断并获知该证书属于的簇;
步骤5.3假设步骤4.3抓取的网络流属于某种网络服务或应用,将网络流与该应用指纹的匹配概率(步骤5.1)与该应用属于步骤5.2判定的簇的概率的乘积作为网络流被识别为该应用的概率,重复此步骤以遍历离线训练集中所有的网络服务或应用,最大识别概率所对应的网络服务或应用即为所抓取的网络流属于的网络服务或应用。
本发明的基于上述一种基于协议属性的网络应用加密流量识别方法的一种基于协议属性的网络应用加密流量识别装置包括离线训练模块和在线识别模块,装置示意图如附图5所示;
其中,离线训练模块包括数据集获取模块,基于二阶马尔科夫链的消息类型指纹建立模块和证书长度聚类模块;
其中,在线识别模块包括网络流抓取模块和网络流识别模块;
安装过程:所述的离线训练模块安装在高配置的大型服务工作站上;所述的在线识别模块安装在网关等网络纽带节点上;
本发明中的一种基于协议属性的网络应用加密流量识别装置的各个组成模块的功能如下:
其中,离线训练模块中的数据集获取模块的功能为:在大量网络流途经的节点,如网关等网络纽带节点,部署数据集获取平台,抓取大数据量的加密网络数据集,以此作为本发明方法的离线训练集。数据集获取平台应部署在多个网络纽带节点以生成多个离线训练子集,结合生成综合的离线训练集,以排除特殊情况的干扰,确保训练集的普遍性;
其中,离线训练模块中的基于二阶马尔科夫链的消息类型指纹建立模块的功能为:利用加密网络流在SSL/TLS协议握手阶段的消息类型作为建模的离散状态来建立对应的二阶马尔科夫链模型,训练过程中的每个网络服务或应用都将唯一对应一个二阶马尔科夫链的消息类型指纹;
其中,离线训练模块中的证书长度聚类模块的功能为:针对训练过程中所有网络服务或应用对应SSL/TLS网络流中的证书长度进行聚类,计算每个网络服务或应用证书长度落在聚类结果簇的概率,并生成结果文件,以待后续操作;
其中,在线识别模块中的网络流抓取模块的功能为:在网络纽带节点部署网络流抓取平台,捕捉流经节点的加密网络流,并实施过滤、归类等初始化操作,得到完整的待识别加密网络流;
其中,在线识别模块中的网络流识别模块的功能为:将网络流抓取模块生成的完整的待识别加密网络流与网络流识别模块中的应用指纹库进行逐一匹配,同时综合考虑证书长度聚类带来的结果,获得最终的匹配概率,并将待识别网络流标记为对应概率最高的网络服务或应用。
有益效果
与现有的加密流识别方法相比,本发明提出的一种基于协议属性的网络应用加密流量识别方法主要包括了以下有益效果:
(1)本发明通过大量数据实验证明,与现有的加密网络流分类和识别方法相比具有更高的准确性和识别精度,更低的假阳率和误报率;
(2)本发明引入二阶马尔科夫链模型,该模型是三维的,与大多数现有的加密网络流分类和识别方法中应用的二维模型相比,拓展了模型维度,使得模型更加多元,从模型类别角度降低了指纹相似的可能性;
(3)本发明引入证书长度聚类方法,以SSL/TLS会话的消息类型、消息长度等多元信息作为指纹建模的基本状态,拓展了状态集合,从建模基本单元的角度提高了指纹的区分度;
(4)本发明包括离线训练模块和在线识别模块,把计算量大,空间时间要求高的任务安排到离线训练模块完成,将计算结果以文件形式存储供在线识别模块调用,从而保证了加密网络流在线识别的高效性;
附图说明
图1为数据集获取模块结构示意图;
图2为基于二阶马尔科夫链的消息类型指纹结构示意图;
图3为结合二阶马尔科夫链的消息类型指纹与证书聚类结果示意图;
图4为证书聚类结果文件结构示意图;
图5为一种基于协议属性的网络应用加密流量识别装置示意图。
具体实施方式
本发明中的一种基于协议属性的网络应用加密流量识别方法包括离线训练模块和在线测试模块,离线训练模块将训练海量数据集以获得网络服务或应用的加密网络流指纹库,在线识别模块将调用离线训练结果高效地实现加密网络流的实时在线分类和识别。
下面结合附图和实施例,更具体地说明本发明一种基于协议属性的网络应用加密流量识别方法的过程,并阐述其优点。应当指出,本发明的实施并不局限于下面的实施例,对本发明所做的任何形式上的变通或改变将落入本发明保护范围。
实施例1
本实施例“一种基于协议属性的网络应用加密流量识别方法”中的数据集获取原理与结构如图1所示。客户端与应用服务器之间的通信是通过网络流在互联网内不断寻址、拓扑和传递完成的。在网关等网络纽带节点部署基于Wireshark或Tshark等网络抓包工具搭建的数据集获取平台,监听并存储流经此节点的加密网络流,以构造离线训练数据集。由于SSL/TLS协议客户端存在不同配置,同一种网络服务或应用的同一种行为操作对应的客户端到服务器流向的加密网络流存在一定差异,不便于建模,而建模只需单向流,且不关心流向,因此构造离线训练集时本发明只保留服务器到客户端流向的加密网络流。
针对离线训练集中的每个应用,我们对其进行建模,并将模型作为应用指纹来标识应用。离线建模的过程分为两个部分,第一个部分是将应用的加密网络流视为马尔科夫链,其中数据包消息类型视为马尔科夫链的状态,以此建立二阶马尔科夫链模型;第二个部分是将训练集中所有应用网络流的证书长度做一个聚类,并计算每个应用属于各簇的概率,将此信息作为第一部分的二阶马尔科夫链的一个拓展状态来进一步丰富模型,提高模型的区分度,构成应用的综合模型,并以文件的形式存储模型以便后续调用。至此,离线训练过程结束。
在线识别阶段,系统将监听的加密网络流与模型库中的应用模型逐个匹配,计算匹配概率,将未知加密网络流标记为匹配概率最高值所对应的网络应用。至此,在线识别过程结束。
本发明通过优化建模方法,为每个网络应用建立了具有明显区分度的应用指纹,从而提高了加密网络流分类与识别的准确性。本发明通过与背景技术中的第二篇参考文献方法进行对比,展示了方法的先进性,具体信息参见表1,其中正阳率为被模型预测为正的正样本数与正样本实际数的商,假阴率为被预测为正的负样本数与负样本实际数的商。从表中可以看出,本发明方法的准确性远远高于对比方法。
表1本发明与目前最先进加密流分类方法结果对比表
实施例2
本实施例“一种基于协议属性的网络应用加密流量识别方法”中的基于二阶马尔科夫链的消息类型指纹建立过程如下描述:
我们假设存在离散随机变量Xt,其中t=t0,t1,...,tn∈T,T为时刻集合,表征了时序关系,随机变量Xt的对应值it∈{1,...,s},it代表了SSL/TLS协议会话中的单个消息类型或者一个TCP段中的消息类型序列,设共包括S种消息类型或序列。
我们假设Xt代表一条二阶马尔科夫链,即当我们预测当前状态时需要考虑前两个状态的影响,形式化描述如下公式:
我们进一步假设该二阶马尔科夫链是齐次的,即从t-2到t-1再到t的状态转移是恒定的,形式化描述如下公式:
则可得二阶马尔科夫链的状态转移矩阵如下:
其中其中i,j∈[1,s]。另外,我们定义二阶马尔科夫链前两个状态为“进入二阶马尔科夫链”的概率,如下公式:
Q=[q1-1,...,q1-s,q2-1,...,q2-s,...,qs-1,...,qs-s] (4)
其中qi-j=P(Xt+1=j,Xt=i),此时处于t0和t1,即表示随机变量取马尔科夫链最前的两个状态;我们定义二阶马尔科夫链最后两个状态为“退出二阶马尔科夫链”的概率,如下公式:
W=[w1-1,...,w1-s,w2-1,...,w2-s,...,ws-1,...,ws-s] (5)
其中wi-j=P(Xt=j,Xt-1=i),此时处于tn-1和tn,即表示随机变量取马尔科夫链最后的两个状态。结合状态转移矩阵、进入以及退出马尔科夫链的概率,即可得到某网络服务或应用的基于二阶马尔科夫链的消息类型指纹,其格式如附图2所示。
基于以上假设与定义,离散状态序列X1,...,XT代表SSL/TLS会话的可能性可以表示为:
即为网络流与网络服务或应用指纹匹配的概率。
实施例3
本实施例“一种基于协议属性的网络应用加密流量识别方法”中的基于证书长度聚类结合二阶马尔科夫链的消息类型指纹建立过程如下描述。基于二阶马尔科夫链的消息类型指纹建模已于实施例2中进行介绍,本实施例则主要介绍证书长度聚类与之结合建模的方法。
实际上,我们将SSL/TLS协议会话中的“证书”消息类型进行扩展,一个“证书”可能对应了多个“子证书”,而某条马尔科夫链由“证书”向“子证书”的连接路径则取决于“证书”长度的聚类结果。
我们对离线训练集中提取的所有网络服务或应用的证书消息类型根据其长度进行聚类,假设聚类完成后得到了c个簇,我们定义簇中心集合为C={cent1,...,centc},其中centi代表第i个簇类中心的值,即某证书长度值。那么可依据如下公式判定长度为length的证书属于的簇,标记为cent:
基于以上定义与网络服务或应用的离线训练集,我们可以计算某种网络服务或应用的证书长度分布概率集:
Fapp=[fapp,1,...,fapp,c] (8)
其中fapp,i表示某种网络服务或应用app的证书长度分布在第i个簇的概率,由此类推,我们可以得到不同应用证书长度的分布概率:
其中r表示不同网络服务或应用的个数。
结合实施例2中的二阶马尔科夫链消息类型指纹,我们可以得到证书扩展后的综合模型来表征网络服务或应用指纹,其过程如附图3所示,此时,离散状态序列X1,...,XT代表SSL/TLS会话的可能性可以表示为:
M({X1,...,XT})=P({X1,...,XT})×Fapp_idx,clut_idx (10)
其中app_idx代表某种网络服务或应用app的索引,clut_idx代表完成聚类生成的簇的索引。所得的M({X1,...,XT})值越大则表示离散状态序列与网络服务或应用的指纹的匹配度越高。
实施例4
本实施例“一种基于协议属性的网络应用加密流量识别方法”将时间、空间要求高,计算量大的任务安排在离线训练阶段,将每个应用的指纹与证书长度聚类结果都以文件的形式存储,其文件结构如附图2与附图4所示。在线识别阶段,系统首先从模型库中读取各个应用的二阶马尔科夫链模型,从而构造出每个应用的马尔科夫链的状态转移概率矩阵P,进入马尔科夫链概率Q,以及退出马尔科夫链概率W,同时系统也将读取离线训练产生的证书长度聚类结果文件,构造每个应用的证书长度分布概率矩阵F;针对监听的加密网络流,系统将其视为一条二阶马尔科夫链,通过提取其中的消息类型定位到状态转移矩阵P、进入概率Q和退出概率W的索引,从而获取对应的概率值,并求积得到网络流与该模型的匹配概率;另外,系统通过欧几里得距离算法计算网络流证书长度与证书簇的距离,并判定对应的从属簇,得到相应应用的证书长度分布概率,将此概率与前一步骤所求的模型匹配概率相乘,得到网络流与该应用的匹配概率。依此方法类推,计算网络流与库中所有应用的匹配概率,最高概率值对应的应用即为识别结果。
在线识别阶段只需要读取文件来获得离线训练的结果,从而大大降低了对时间、空间的要求,简化了操作步骤,提高了识别效率。

Claims (4)

1.一种基于协议属性的网络应用加密流量识别方法,其特征在于:包括以下步骤,其中前三个步骤属于训练阶段,后两个步骤属于识别阶段:
步骤1、离线训练集获取:
步骤1.1基于网络抓包工具,搭建数据集获取平台,旨在监听并存储流经本平台的SSL/TLS加密网络流;
步骤1.2选择多个网络纽带节点部署上述数据集获取平台,以生成多个离线训练子集,减小特殊数据集的干扰;
步骤1.3将步骤1.2生成的每个离线训练子集合并,过滤非SSL/TLS加密协议的数据包,接着以“源地址”为参考字段进行归类,同源网络数据包则按照“时间”字段排序,以此生成综合的离线训练集;
步骤1.4通过人工判断获取离线训练集中每条网络流对应的网络服务或应用,重新划分离线训练集,将相同网络服务或应用对应的网络流汇集在一个离线训练集中;
步骤2、基于二阶马尔科夫链的消息类型建模:
步骤2.1针对步骤1生成的每个网络服务或者应用的离线训练集,提取其中每条网络流的每个网络数据包中的SSL/TLS会话消息类型,构成消息类型流,将其视为二阶马尔科夫链,并以此精简地表征原网络流;
步骤2.2针对步骤2.1中每种网络服务或应用的离线训练集,统计每条网络流的前两个消息类型出现的频数,从而计算该网络服务或应用“进入二阶马尔科夫链”的概率;
步骤2.3针对步骤2.1中每种网络服务或应用的离线训练集,统计每条网络流的最后两个消息类型出现的频数,从而计算该网络服务或应用“退出二阶马尔科夫链”的概率;
步骤2.4针对步骤2.1中每种网络服务或应用的离线训练集,以滑动窗口的方式统计消息类型状态二阶转移出现的频数,从而计算该网络服务或应用的状态二阶转移概率;
步骤2.5综合步骤2.2,2.3以及2.4产生的“进入二阶马尔科夫链”概率、“退出二阶马尔科夫链”概率以及状态二阶转移概率,将以上结果以文件形式存储,并以此作为某种网络服务或应用的二阶马尔科夫链指纹;
步骤3、证书长度聚类;
步骤3.1针对步骤1当中生成的每个网络服务或者应用的离线训练集,提取其中每条网络流的证书消息类型的长度,将所有网络服务或应用网络流的证书长度汇集在一个综合的证书长度数据集中;
步骤3.2给定簇数,将步骤3.1生成的证书长度数据集进行聚类,聚类结果以不同簇中心大小构成的列表方式给出;
步骤3.3针对每种网络服务或应用的网络流以及步骤3.2生成的簇中心大小列表,判断每条网络流包含的证书属于哪个簇,判断方式为计算该证书长度与每个簇中心的距离,距离最近的簇则为所求,计算该网络服务或应用的网络流证书落在不同簇的概率,概率间差异性越大则表示证书聚类的效果越好,以此为指标来衡量给定簇数的证书聚类效果;
步骤3.4假设簇数为2,3,4……,重复步骤3.2和3.3,根据上述证书聚类效果衡量指标,确定适合的簇数,并得到在此情况下的簇中心大小列表和每种网络服务或应用落在不同簇的概率,写入证书长度聚类结果文件;
步骤4、在线网络流抓取;
步骤4.1如同步骤1.1所述,基于网络抓包工具,搭建在线网络流抓取平台,旨在截获流经本平台的SSL/TLS加密网络流;
步骤4.2将步骤4.1中的在线网络流抓取平台部署在有需要进行在线网络流识别的网络位置;
步骤4.3在线抓取加密网络流,并过滤无用数据包,确保网络流完整;
步骤5、在线网络流识别;
步骤5.1提取步骤4.3抓取的网络流的每个网络数据包中的SSL/TLS会话消息类型,构成消息类型流,即二阶马尔科夫链,与步骤2.5生成的每种网络服务或应用的指纹匹配,得到如下匹配概率:
匹配概率=进入二阶马尔科夫链概率×状态二阶转移概率×退出二阶马尔科夫链概率;
步骤5.2提取步骤4.3抓取的网络流的证书消息长度,若无证书消息则忽略此步骤,否则,以步骤3.4生成的证书聚类结果为标准,判断并获知该证书属于的簇;
步骤5.3假设步骤4.3抓取的网络流属于某种网络服务或应用,将网络流与此种网络服务或应用指纹的匹配概率与此种网络服务或应用属于步骤5.2判定的簇的概率的乘积作为网络流被识别为此种网络服务或应用的概率,重复此步骤以遍历离线训练集中所有的网络服务或应用,最大识别概率所对应的网络服务或应用即为所抓取的网络流属于的网络服务或应用。
2.根据权利要求1所述的一种基于协议属性的网络应用加密流量识别方法,其特征在于:所述聚类采用K-Means聚类法,并且由于聚类中心的选择是随机的,不同聚类中心的初始化会影响聚类效果,因此采用多次聚类取最优结果的方法保证聚类效果。
3.根据权利要求1或2所述的一种基于协议属性的网络应用加密流量识别方法,其特征在于:所述聚类采用K-Means聚类法,其聚类数K需要人为设定并作为参数传入,不同的K值会影响聚类效果,因此采用多K值聚类取最优结果的方法保证聚类效果。
4.一种基于协议属性的网络应用加密流量识别装置,其特征在于:包括离线训练模块和在线识别模块;所述离线训练模块进一步包括数据集获取模块,基于二阶马尔科夫链的消息类型指纹建立模块和证书长度聚类模块;所述在线识别模块进一步包括网络流抓取模块和网络流识别模块;
所述数据集获取模块用于在多个大量网络流途经的节点,抓取大数据量的加密网络数据集,以排除特殊情况的干扰,确保训练集的普遍性;并对该网络数据集进行过滤、同源分类以及对于同源数据包按时间先后顺序排序输出得到综合离线训练集,对此集合按网络服务或应用归类,得到对应于不同网络服务或应用的离线训练子集;
所述基于二阶马尔科夫链的消息类型指纹建立模块用于利用加密网络流在SSL/TLS协议握手阶段的消息类型作为建模的离散状态按照权利要求1所述步骤2来建立对应的二阶马尔科夫链模型,使得训练结束后每个网络服务或应用都唯一对应一个二阶马尔科夫链的消息类型指纹,并将之存储于应用指纹库;
所述证书长度聚类模块用于按照权利要求1所述步骤3对所述综合离线训练集中所有网络流的证书长度进行聚类,并计算得到每个网络服务或应用证书长度落在聚类结果簇的概率;
所述网络流抓取模块用于在网络纽带节点,捕捉流经节点的加密网络流,并实施过滤、归类以及排序操作,从而得到完整的待识别加密网络流;
所述识别模块用于按照权利要求1所述步骤5将网络流抓取模块生成的完整的待识别加密网络流与所述应用指纹库进行逐一匹配,同时综合考虑证书长度聚类带来的结果,获得最终的匹配概率,并将待识别网络流标记为对应概率最高的网络服务或应用后输出。
CN201610187193.5A 2016-03-29 2016-03-29 一种基于协议属性的网络应用加密流量识别方法及其装置 Expired - Fee Related CN105871832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610187193.5A CN105871832B (zh) 2016-03-29 2016-03-29 一种基于协议属性的网络应用加密流量识别方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610187193.5A CN105871832B (zh) 2016-03-29 2016-03-29 一种基于协议属性的网络应用加密流量识别方法及其装置

Publications (2)

Publication Number Publication Date
CN105871832A CN105871832A (zh) 2016-08-17
CN105871832B true CN105871832B (zh) 2018-11-02

Family

ID=56625304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610187193.5A Expired - Fee Related CN105871832B (zh) 2016-03-29 2016-03-29 一种基于协议属性的网络应用加密流量识别方法及其装置

Country Status (1)

Country Link
CN (1) CN105871832B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109802924B (zh) * 2017-11-17 2022-05-17 华为技术有限公司 一种识别加密数据流的方法及装置
CN109905328B (zh) 2017-12-08 2021-06-01 华为技术有限公司 数据流的识别方法和装置
CN109936512B (zh) 2017-12-15 2021-10-01 华为技术有限公司 流量分析方法、公共服务流量归属方法及相应的计算机系统
CN108833360B (zh) * 2018-05-23 2019-11-08 四川大学 一种基于机器学习的恶意加密流量识别方法
RU2702080C1 (ru) * 2018-06-29 2019-10-03 Акционерное общество "Лаборатория Касперского" Способ блокировки сетевых соединений с ресурсами из запрещенных категорий
CN108881255B (zh) * 2018-06-29 2020-11-13 长扬科技(北京)有限公司 一种基于c&c通信状态转换检测僵尸网络的方法
CN109617762B (zh) * 2018-12-14 2020-05-12 南京财经大学 一种利用网络流量识别移动应用的方法
CN109495513B (zh) * 2018-12-29 2021-06-01 极客信安(北京)科技有限公司 无监督的加密恶意流量检测方法、装置、设备及介质
CN109617904A (zh) * 2018-12-29 2019-04-12 江苏天创科技有限公司 一种IPv6网络中的HTTPS应用识别方法
CN110197234B (zh) * 2019-06-13 2020-05-19 四川大学 一种基于双通道卷积神经网络的加密流量分类方法
CN110138812B (zh) * 2019-07-11 2019-11-12 乌鲁木齐九州凌云电子科技有限公司 网络安全分析系统
CN112751802B (zh) * 2019-10-30 2023-04-18 北京观成科技有限公司 一种加密流量的应用识别方法、系统和设备
CN111224940B (zh) * 2019-11-15 2021-03-09 中国科学院信息工程研究所 一种嵌套在加密隧道中的匿名服务流量关联识别方法及系统
CN110958233B (zh) * 2019-11-22 2021-08-20 上海交通大学 一种基于深度学习的加密型恶意流量检测系统和方法
CN111478861B (zh) * 2020-04-02 2022-08-23 恒安嘉新(北京)科技股份公司 流量识别方法、装置、电子设备、及存储介质
CN113595967A (zh) * 2020-04-30 2021-11-02 深信服科技股份有限公司 数据识别方法、设备、存储介质及装置
CN111368120B (zh) * 2020-05-28 2020-09-15 广东博智林机器人有限公司 目标指纹库构建方法、装置、电子设备及存储介质
CN111901300B (zh) * 2020-06-24 2023-02-03 武汉绿色网络信息服务有限责任公司 一种对网络流量进行分类的方法和分类装置
CN111866024B (zh) * 2020-08-05 2022-10-14 国家计算机网络与信息安全管理中心 一种网络加密流量识别方法及装置
CN112118270B (zh) * 2020-10-29 2023-01-06 江苏科技大学 一种针对基于ssl加密的vpn流量识别方法
CN112839055B (zh) * 2021-02-04 2022-08-23 北京六方云信息技术有限公司 面向tls加密流量的网络应用识别方法、装置及电子设备
CN113067839B (zh) * 2021-06-02 2021-08-10 中国人民解放军国防科技大学 一种基于多模态神经网络的恶意加密流量检测方法
CN113743542B (zh) * 2021-11-05 2022-03-01 北京广通优云科技股份有限公司 一种基于加密流量的网络资产识别方法与系统
CN114465786B (zh) * 2022-01-21 2023-10-20 积至(海南)信息技术有限公司 一种加密网络流量的监控方法
CN114401097B (zh) * 2022-01-25 2023-10-20 北京浩瀚深度信息技术股份有限公司 一种基于ssl证书指纹的https业务流量识别的方法
CN115665286B (zh) * 2022-12-26 2023-03-28 深圳红途科技有限公司 接口聚类方法、装置、计算机设备及存储介质
CN118350230B (zh) * 2024-06-18 2024-08-13 中国海洋大学 一种全球海域快速构建局部加密的区域海洋模型的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252541A (zh) * 2008-04-09 2008-08-27 中国科学院计算技术研究所 一种网络流量分类模型的建立方法及相应系统
CN101710898A (zh) * 2009-11-06 2010-05-19 北京理工大学 一种应用软件通信协议特征的描述方法
CN103200133A (zh) * 2013-03-21 2013-07-10 南京邮电大学 一种基于网络流引力聚类的流量识别方法
CN104699606A (zh) * 2015-03-06 2015-06-10 国网四川省电力公司电力科学研究院 一种基于隐马尔科夫模型的软件系统状态预测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101300247B1 (ko) * 2011-11-11 2013-08-26 경희대학교 산학협력단 마르코프 연쇄 은닉 조건부 랜덤 필드 모델 기반의 패턴 인식 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252541A (zh) * 2008-04-09 2008-08-27 中国科学院计算技术研究所 一种网络流量分类模型的建立方法及相应系统
CN101710898A (zh) * 2009-11-06 2010-05-19 北京理工大学 一种应用软件通信协议特征的描述方法
CN103200133A (zh) * 2013-03-21 2013-07-10 南京邮电大学 一种基于网络流引力聚类的流量识别方法
CN104699606A (zh) * 2015-03-06 2015-06-10 国网四川省电力公司电力科学研究院 一种基于隐马尔科夫模型的软件系统状态预测方法

Also Published As

Publication number Publication date
CN105871832A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN105871832B (zh) 一种基于协议属性的网络应用加密流量识别方法及其装置
CN102315974B (zh) 基于层次化特征分析的tcp、udp流量在线识别方法和装置
Shapira et al. FlowPic: A generic representation for encrypted traffic classification and applications identification
US8797901B2 (en) Method and its devices of network TCP traffic online identification using features in the head of the data flow
CN109063745B (zh) 一种基于决策树的网络设备类型识别方法及系统
CN104270392B (zh) 一种基于三分类器协同训练学习的网络协议识别方法及系统
CN102523241B (zh) 基于决策树高速并行处理的网络流量在线分类方法及装置
CN111385297B (zh) 无线设备指纹识别方法、系统、设备及可读存储介质
CN111224940B (zh) 一种嵌套在加密隧道中的匿名服务流量关联识别方法及系统
WO2011050545A1 (zh) 一种未知应用层协议自动分析方法
CN105429968B (zh) 基于布隆过滤器的网络取证载荷归属方法及系统
CN109768981B (zh) 一种在sdn架构下基于机器学习的网络攻击防御方法和系统
CN111147394B (zh) 一种远程桌面协议流量行为的多级分类检测方法
CN110460502B (zh) 基于分布特征随机森林的vpn下应用程序流量识别方法
CN114143037B (zh) 一种基于进程行为分析的恶意加密信道检测方法
CN113283498B (zh) 一种面向高速网络的vpn流量快速识别方法
CN114866485B (zh) 一种基于聚合熵的网络流量分类方法及分类系统
CN111953669A (zh) 适用于SDN的Tor流量溯源与应用类型识别方法和系统
CN106789242A (zh) 一种基于手机客户端软件动态特征库的识别应用智能分析引擎
CN111711545A (zh) 一种软件定义网络中基于深度包检测技术的加密流量智能识别方法
Kong et al. Identification of abnormal network traffic using support vector machine
CN106899978A (zh) 一种无线网络攻击定位方法
CN109660656A (zh) 一种智能终端应用程序识别方法
CN108667804B (zh) 一种基于SDN架构的DDoS攻击检测及防护方法和系统
CN110266603A (zh) 基于http协议的身份认证业务网络流量分析系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181102

CF01 Termination of patent right due to non-payment of annual fee