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

文档序号:10515485阅读:221来源:国知局
一种基于协议属性的网络应用加密流量识别方法及其装置的制造方法
【专利摘要】本发明涉及一种基于协议属性的网络应用加密流量识别方法及其装置,属于计算机网络服务安全技术领域,包括离线训练模块和在线识别模块,离线训练模块由数据集获取模块、基于二阶马尔科夫链的消息类型指纹建立模块和证书长度聚类模块组成,通过数据集获取模块得到训练集,对其经过基于二阶马尔科夫链的消息类型指纹建立模块得到应用指纹并存储,经过证书长度聚类模块得到聚类结果及应用证书簇类分布概率并存储;在线识别模块由网络流抓取模块和识别模块组成,识别模块将抓取模块得到的网络流与已存储的应用指纹库逐一匹配,同时考虑证书聚类结果,得到识别概率,识别结果为对应概率最高的应用。对比现有技术,本发明提高了识别的准确率和效率。
【专利说明】
-种基于协议属性的网络应用加密流量识别方法及其装置
技术领域
[0001] 本发明设及一种基于协议属性的网络应用加密流量识别方法,旨在识别网络流来 源,发现并屏蔽恶意流量,提高网络安全,属于机器学习、网络服务安全技术领域。
【背景技术】
[0002] 流量是网络通信、网络服务,甚至是网络攻击的载体,流量中隐藏的恶意程序极易 造成网络故障。流量识别技术是指针对网络中的海量流量,识别其所属的网络服务或应用 的技术。通过流量识别,及时发现恶意流量,实施有效的拦截和屏蔽,是保障网络正常运转 的关键。在实际应用中,配备流量分类与识别功能的系统往往被部署在网关等起连接作用 的节点中,W方便审计网络流量,及早屏蔽恶意程序,确保网络安全。
[0003] 传统的流量识别方法大多是基于网络通信数据包内容的分析,其中两个大方向是 基于端口分析和基于载荷分析,而随着SSLALS (安全套阶层/传输层安全)协议的广泛应 用,网络通信数据包被加密传输,从根本上使得传统的流量识别方法失去有效性。因此,如 何对加密网络流进行有效的分类和识别成为近年的热口研究方向。
[0004] 在加密网络流分类与识别方面,可检索到的关联度最大的两项专利为:
[0005] (1)文献巧arly Recognition of lincrypted Application"提出一种新型的网络 加密流识别方法,仅仅依赖S化连接的前几个通信数据包大小的分析即可完成流量分类和 识别。该方法首先分析第一个数据包的明文部分并提取出本次加密使用的加密算法信息, 然后根据事先实验获知的不同加密算法对明文数据包大小的改变量,反推出前几个密文数 据包的明文大小并将其构造成向量,将该向量与事先实验获知的不同应用前几个数据包大 小构成的向量集进行相似度匹配,并判定该向量对应的加密网络流属于与其相似度最接近 的向量对应的网络流隶属的应用。作者的实验表明运种方法用于加密网络流识别的准确率 达到85 %左右。
[0006] (2)文南犬"Markov Chain Fingerprinting to Classify Encrypted Tr曰ffic"提 出一种结合机器学习的新型加密网络流识别方法。该方法基于统计学相关知识,利用SSL/ TLS协议握手阶段的消息数据包作为建模的离散状态,为每种网络服务或应用建立一个相 对应的马尔科夫链模型,并将其作为应用的指纹信息来表征应用特点。由于用于建模的状 态对应SSLALS协议握手阶段有限的消息类型,生成的应用指纹差异性并不十分理想,不同 网络服务或应用的指纹部分重合或相似的情况时有发生,导致运种情况下加密网络流分类 与识别的准确度大大降低。
[0007] 综上所述,在加密网络流分类与识别方面,两种方法均不能实现高准确性,与投入 实际应用所需的标准仍有一定距离,且实验表明在某些情况下,上述第二种方法有极大可 能表现出极低的识别准确性。

【发明内容】

[0008] 本发明的目的在于提高加密网络流分类与识别方法的准确度,降低其出现误判和 漏判的频率,同时提高方法的稳定性,保证该方法在大多数情况下都能表现出足够高的识 别精度。本发明针对【背景技术】中提及的现有加密网络流识别方法存在的各种问题,采取相 应的解决方案,并在此基础上提出一种基于协议属性的网络应用加密流量识别方法。本发 明适用于应用SSLALS协议的加密网络通讯场景。
[0009] 本发明是通过W下技术方案实现的:
[0010] 本发明中的一种基于协议属性的网络应用加密流量识别方法的实现过程如下: [OOW 步骤1、离线训练集获取;
[0012] 步骤1.1基于Wireshark、Tshark等网络抓包工具,搭建数据集获取平台,旨在监听 并存储流经本平台的SSLALS加密网络流;
[0013] 步骤1.2选择多个网关等网络纽带节点部署上述数据集获取平台,W生成多个离 线训练子集,减小特殊数据集的干扰;
[0014] 步骤1.3将步骤1.2生成的每个离线训练子集合并,过滤非SSL/化巧日密协议的数 据包,接着W "源地址"为参考字段进行归类,同源网络数据包则按照"时间"字段排序,W此 生成综合的离线训练集;
[0015] 步骤1.4通过大量人工操作(例如逆向域名地址解析、域名地址匹配),获取离线训 练集中每条网络流对应的网络服务或应用,重新划分训练集,将相同网络服务或应用对应 的网络流汇集在一个训练集中,即每种网络服务或应用对应一个离线训练集,W此作为分 类和识别的真实值来训练本发明方法;
[0016] 步骤2、基于二阶马尔科夫链的消息类型建模;
[0017] 步骤2.1针对步骤1生成的每个网络服务或者应用的离线训练集,提取其中每条网 络流的每个网络数据包中的SSLALS会话消息类型,构成消息类型流,并W此精简地表征原 网络流,即网络服务或应用的每条网络流的构成元素由原来复杂丰富的数据包形式替换为 消息类型形式,视网络流(消息类型序列)为二阶马尔科夫链,其中每种消息类型对应一种 离散状态,构成建模的基本单位;
[0018] 步骤2.2针对步骤2.1中每种网络服务或应用的离线训练集,统计每条网络流的前 两个消息类型出现的频数,从而计算该网络服务或应用"进入二阶马尔科夫链"的概率,即 该任意两种消息类型(有序)作为网络服务或应用前两个消息类型出现的概率,计算方法为 网络流前两个消息类型出现的频数除W该离线训练集中网络流的总个数;
[0019] 步骤2.3针对步骤2.1中每种网络服务或应用的离线训练集,统计每条网络流的最 后两个消息类型出现的频数,从而计算该网络服务或应用"退出二阶马尔科夫链"的概率, 即该任意两种消息类型(有序)作为网络服务或应用最后两个消息类型出现的概率;
[0020] 步骤2.4针对步骤2.1中每种网络服务或应用的离线训练集,W滑动窗口的方式统 计消息类型状态二阶转移(消息类型A-消息类型B-消息类型C)出现的频数,从而计算该 网络服务或应用的状态二阶转移概率;
[0021 ] 步骤2.5综合步骤2.2,2.3 W及2.4产生的"进入二阶马尔科夫链"概率、"退出二阶 马尔科夫链"概率W及状态二阶转移概率,将W上结果W文件形式存储,并W此作为某种网 络服务或应用的二阶马尔科夫链指纹;
[0022] 步骤3、证书长度聚类;
[0023] 步骤3.1针对步骤1当中生成的每个网络服务或者应用的离线训练集,提取其中每 条网络流的证书消息类型的长度(部分网络流不包含证书消息类型则忽略),将所有网络服 务或应用网络流的证书长度汇集在一个综合的证书长度数据集中;
[0024] 步骤3.2给定簇数,将步骤3.1生成的证书长度数据集进行聚类,聚类结果W不同 簇中屯、大小构成的列表方式给出;
[0025] 作为优选,所述聚类采用K-Means聚类法,并且由于聚类中屯、的选择是随机的,不 同聚类中屯、的初始化会影响聚类效果,因此采用多次聚类取最优结果的方法保证聚类效 果。
[0026] 步骤3.3针对每种网络服务或应用的网络流W及步骤3.2生成的簇中屯、大小列表, 判断每条网络流包含的证书属于哪个簇(判断方式为计算该证书长度与每个簇中屯、的距 离,距离最近的簇则为所求),计算该网络服务或应用的网络流证书落在不同簇的概率,概 率间差异性越大则表示证书聚类的效果越好,本发明W此为指标来衡量给定簇数的证书聚 类效果;
[0027] 步骤3.4假设簇数为2,3,4……,重复步骤3.2和3.3,根据上述证书聚类效果衡量 指标,确定适合的簇数,并得到在此情况下的簇中屯、大小列表和每种网络服务或应用落在 不同簇的概率,写入证书长度聚类结果文件;
[0028] 步骤4、在线网络流抓取;
[00巧]步骤4.1如同步骤1.1所述,基于Wireshark或Tshark等网络抓包工具,搭建在线网 络流抓取平台,旨在截获流经本平台的SSL/TL巧日密网络流为后续分类与识别操作提供数 据支持;
[0030] 步骤4.2将步骤4.1中的在线网络流抓取平台部署在有需要进行在线网络流识别 的网络位置;
[0031] 步骤4.3在线抓取加密网络流,并过滤无用数据包,确保网络流完整;
[0032] 步骤5、在线网络流识别;
[0033] 步骤5.1提取步骤4.3抓取的网络流的每个网络数据包中的SSLALS会话消息类 型,构成消息类型流,视该流为二阶马尔科夫链,与步骤2.5生成的每种网络服务或应用的 指纹匹配,得到匹配概率(匹配概率=进入二阶马尔科夫链概率X状态二阶转移概率X退 出二阶马尔科夫链概率);
[0034] 步骤5.2提取步骤4.3抓取的网络流的证书消息长度(若无证书消息则忽略此步 骤),W步骤3.4生成的证书聚类结果为标准,判断并获知该证书属于的簇;
[0035] 步骤5.3假设步骤4.3抓取的网络流属于某种网络服务或应用,将网络流与该应用 指纹的匹配概率(步骤5.1)与该应用属于步骤5.2判定的簇的概率的乘积作为网络流被识 别为该应用的概率,重复此步骤W遍历离线训练集中所有的网络服务或应用,最大识别概 率所对应的网络服务或应用即为所抓取的网络流属于的网络服务或应用。
[0036] 本发明的基于上述一种基于协议属性的网络应用加密流量识别方法的一种基于 协议属性的网络应用加密流量识别装置包括离线训练模块和在线识别模块,装置示意图如 附图5所示;
[0037] 其中,离线训练模块包括数据集获取模块,基于二阶马尔科夫链的消息类型指纹 建立模块和证书长度聚类模块;
[0038] 其中,在线识别模块包括网络流抓取模块和网络流识别模块;
[0039] 安装过程:所述的离线训练模块安装在高配置的大型服务工作站上;所述的在线 识别模块安装在网关等网络纽带节点上;
[0040] 本发明中的一种基于协议属性的网络应用加密流量识别装置的各个组成模块的 功能如下:
[0041] 其中,离线训练模块中的数据集获取模块的功能为:在大量网络流途经的节点,如 网关等网络纽带节点,部署数据集获取平台,抓取大数据量的加密网络数据集,W此作为本 发明方法的离线训练集。数据集获取平台应部署在多个网络纽带节点W生成多个离线训练 子集,结合生成综合的离线训练集,W排除特殊情况的干扰,确保训练集的普遍性;
[0042] 其中,离线训练模块中的基于二阶马尔科夫链的消息类型指纹建立模块的功能 为:利用加密网络流在SSLALS协议握手阶段的消息类型作为建模的离散状态来建立对应 的二阶马尔科夫链模型,训练过程中的每个网络服务或应用都将唯一对应一个二阶马尔科 夫链的消息类型指纹;
[0043] 其中,离线训练模块中的证书长度聚类模块的功能为:针对训练过程中所有网络 服务或应用对应SSL/TLS网络流中的证书长度进行聚类,计算每个网络服务或应用证书长 度落在聚类结果簇的概率,并生成结果文件,W待后续操作;
[0044] 其中,在线识别模块中的网络流抓取模块的功能为:在网络纽带节点部署网络流 抓取平台,捕捉流经节点的加密网络流,并实施过滤、归类等初始化操作,得到完整的待识 别加密网络流;
[0045] 其中,在线识别模块中的网络流识别模块的功能为:将网络流抓取模块生成的完 整的待识别加密网络流与网络流识别模块中的应用指纹库进行逐一匹配,同时综合考虑证 书长度聚类带来的结果,获得最终的匹配概率,并将待识别网络流标记为对应概率最高的 网络服务或应用。
[0046] 有益效果
[0047] 与现有的加密流识别方法相比,本发明提出的一种基于协议属性的网络应用加密 流量识别方法主要包括了W下有益效果:
[0048] (1)本发明通过大量数据实验证明,与现有的加密网络流分类和识别方法相比具 有更高的准确性和识别精度,更低的假阳率和误报率;
[0049] (2)本发明引入二阶马尔科夫链模型,该模型是Ξ维的,与大多数现有的加密网络 流分类和识别方法中应用的二维模型相比,拓展了模型维度,使得模型更加多元,从模型类 另IJ角度降低了指纹相似的可能性;
[0050] (3)本发明引入证书长度聚类方法,WSSLALS会话的消息类型、消息长度等多元 信息作为指纹建模的基本状态,拓展了状态集合,从建模基本单元的角度提高了指纹的区 分度;
[0051] (4)本发明包括离线训练模块和在线识别模块,把计算量大,空间时间要求高的任 务安排到离线训练模块完成,将计算结果W文件形式存储供在线识别模块调用,从而保证 了加密网络流在线识别的高效性;
【附图说明】
[0052] 图1为数据集获取模块结构示意图;
[0053] 图2为基于二阶马尔科夫链的消息类型指纹结构示意图;
[0054] 图3为结合二阶马尔科夫链的消息类型指纹与证书聚类结果示意图;
[0055] 图4为证书聚类结果文件结构示意图;
[0056] 图5为一种基于协议属性的网络应用加密流量识别装置示意图。
【具体实施方式】
[0057] 本发明中的一种基于协议属性的网络应用加密流量识别方法包括离线训练模块 和在线测试模块,离线训练模块将训练海量数据集W获得网络服务或应用的加密网络流指 纹库,在线识别模块将调用离线训练结果高效地实现加密网络流的实时在线分类和识别。
[0058] 下面结合附图和实施例,更具体地说明本发明一种基于协议属性的网络应用加密 流量识别方法的过程,并阐述其优点。应当指出,本发明的实施并不局限于下面的实施例, 对本发明所做的任何形式上的变通或改变将落入本发明保护范围。
[0化9]实施例1
[0060] 本实施例"一种基于协议属性的网络应用加密流量识别方法"中的数据集获取原 理与结构如图1所示。客户端与应用服务器之间的通信是通过网络流在互联网内不断寻址、 拓扑和传递完成的。在网关等网络纽带节点部署基于Wireshark或Tshark等网络抓包工具 搭建的数据集获取平台,监听并存储流经此节点的加密网络流,W构造离线训练数据集。由 于SSL/TLS协议客户端存在不同配置,同一种网络服务或应用的同一种行为操作对应的客 户端到服务器流向的加密网络流存在一定差异,不便于建模,而建模只需单向流,且不关屯、 流向,因此构造离线训练集时本发明只保留服务器到客户端流向的加密网络流。
[0061] 针对离线训练集中的每个应用,我们对其进行建模,并将模型作为应用指纹来标 识应用。离线建模的过程分为两个部分,第一个部分是将应用的加密网络流视为马尔科夫 链,其中数据包消息类型视为马尔科夫链的状态,W此建立二阶马尔科夫链模型;第二个部 分是将训练集中所有应用网络流的证书长度做一个聚类,并计算每个应用属于各簇的概 率,将此信息作为第一部分的二阶马尔科夫链的一个拓展状态来进一步丰富模型,提高模 型的区分度,构成应用的综合模型,并W文件的形式存储模型W便后续调用。至此,离线训 练过程结束。
[0062] 在线识别阶段,系统将监听的加密网络流与模型库中的应用模型逐个匹配,计算 匹配概率,将未知加密网络流标记为匹配概率最高值所对应的网络应用。至此,在线识别过 程结束。
[0063] 本发明通过优化建模方法,为每个网络应用建立了具有明显区分度的应用指纹, 从而提高了加密网络流分类与识别的准确性。本发明通过与【背景技术】中的第二篇参考文献 方法进行对比,展示了方法的先进性,具体信息参见表1,其中正阳率为被模型预测为正的 正样本数与正样本实际数的商,假阴率为被预测为正的负样本数与负样本实际数的商。从 表中可W看出,本发明方法的准确性远远高于对比方法。
[0064] 表1本发明与目前最先进加密流分类方法结果对比表
[00 化]
[0066] 实施例2
[0067] 本实施例"一种基于协议属性的网络应用加密流量识别方法"中的基于二阶马尔 科夫链的消息类型指纹建立过程如下描述:
[0068] 我们假设存在离散随机变量Xt,其中t = t〇,ti,. . .,tnET,T为时刻集合,表征了时 序关系,随机变量Xt的对应值ite {1,.. .,s},it代表了SSLALS协议会话中的单个消息类型 或者一个TCP段中的消息类型序列,设共包括巧巾消息类型或序列。
[0069] 我们假设Xt代表一条二阶马尔科夫链,即当我们预测当前状态时需要考虑前两个 状态的影响,形式化描述如下公式:
[0070]
(1)
[0071] 我们进一步假设该二阶马尔科夫链是齐次的,即从t-2到t-1再到t的状态转移是 恒定的,形式化描述如下公式:
[0072]
(2)
[0073] 则可得二阶马尔科夫链的状态转移矩阵如下:
[0074]
(3):
[00巧]其中
,其中1〇'£[1,3]。另外,我们定义二阶马尔科夫链前两个状态 为"进入二阶马尔科夫链"的概率,如下公式:
[0076] Q=[qi-i, . . . ,q^s,q2-i, . . . ,q2-s, . . . ,qs-i, . . . ,qs-s] (4)
[0077] 其中94=口祐+1叫而=1),此时处于*〇和心即表示随机变量取马尔科夫链最前 的两个状态;我们定义二阶马尔科夫链最后两个状态为"退出二阶马尔科夫链"的概率,如 下公式:
[007引 W=[W1-1, . . . ,W^S,W2-1, . . . ,W2-S, . . . ,Ws-l, . . . ,Ws-s] (5)
[0079] 其中巧4 = 口祐叫而-1 = 1),此时处于心-1和心,即表示随机变量取马尔科夫链最 后的两个状态。结合状态转移矩阵、进入w及退出马尔科夫链的概率,即可得到某网络服务 或应用的基于二阶马尔科夫链的消息类型指纹,其格式如附图2所示。
[0080] 基于W上假设与定义,离散状态序列XI,. . .,Χτ代表SSLALS会话的可能性可W表 示为:
[0081 ]
(6)
[0082] 即为网络流与网络服务或应用指纹匹配的概率。
[0083] 实施例3
[0084] 本实施例"一种基于协议属性的网络应用加密流量识别方法"中的基于证书长度 聚类结合二阶马尔科夫链的消息类型指纹建立过程如下描述。基于二阶马尔科夫链的消息 类型指纹建模已于实施例2中进行介绍,本实施例则主要介绍证书长度聚类与之结合建模 的方法。
[0085] 实际上,我们将SSLALS协议会话中的"证书"消息类型进行扩展,一个"证书"可能 对应了多个"子证书",而某条马尔科夫链由"证书"向"子证书"的连接路径则取决于"证书' 长度的聚类结果。
[0086] 我们对离线训练集中提取的所有网络服务或应用的证书消息类型根据其长度进 行聚类,假设聚类完成后得到了C个簇,我们定义簇中屯、集合为C=kenti,. . .,cent。},其中 centi代表第i个簇类中屯、的值,即某证书长度值。那么可依据如下公式判定长度为length 的证书属于的簇,标记为cent:
[0087]
(7;
[0088] 基于W上定义与网络服务或应用的离线训练集,我们可W计算某种网络服务或应 用的证书长度分布概率集:
[0089] Fapp=[fapp,l,...,fapp,c] (8)
[0090] 其中fapp,i表示某种网络服务或应用app的证书长度分布在第i个簇的概率,由此类 推,我们可W得到不同应用证书长度的分布概率:
[0091]
巧)
[0092] 其4
,r表示不同网络服务或应用的个数。
[0093] 结合实施例2中的二阶马尔科夫链消息类型指纹,我们可W得到证书扩展后的综 合模型来表征网络服务或应用指纹,其过程如附图3所示,此时,离散状态序列XI,...,Χτ代 表SSLALS会话的可能性可W表示为:
[0094] Μ({Χ?, . . . ,Χτ})=Ρ({Χ?, . . . ,Χτ}) XFapp_idx,clut_idx (10)
[OOM]其中app_idx代表某种网络服务或应用a卵的索引,clut_idx代表完成聚类生成的 簇的索引。所得的M( {XI,...,Χτ})值越大则表示离散状态序列与网络服务或应用的指纹的 匹配度越高。
[0096] 实施例4
[0097] 本实施例"一种基于协议属性的网络应用加密流量识别方法"将时间、空间要求 高,计算量大的任务安排在离线训练阶段,将每个应用的指纹与证书长度聚类结果都W文 件的形式存储,其文件结构如附图2与附图4所示。在线识别阶段,系统首先从模型库中读取 各个应用的二阶马尔科夫链模型,从而构造出每个应用的马尔科夫链的状态转移概率矩阵 Ρ,进入马尔科夫链概率Q,W及退出马尔科夫链概率W,同时系统也将读取离线训练产生的 证书长度聚类结果文件,构造每个应用的证书长度分布概率矩阵F;针对监听的加密网络 流,系统将其视为一条二阶马尔科夫链,通过提取其中的消息类型定位到状态转移矩阵P、 进入概率Q和退出概率W的索引,从而获取对应的概率值,并求积得到网络流与该模型的匹 配概率;另外,系统通过欧几里得距离算法计算网络流证书长度与证书簇的距离,并判定对 应的从属簇,得到相应应用的证书长度分布概率,将此概率与前一步骤所求的模型匹配概 率相乘,得到网络流与该应用的匹配概率。依此方法类推,计算网络流与库中所有应用的匹 配概率,最高概率值对应的应用即为识别结果。
[0098] 在线识别阶段只需要读取文件来获得离线训练的结果,从而大大降低了对时间、 空间的要求,简化了操作步骤,提高了识别效率。
【主权项】
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生成的每种网络服务或应用的指纹匹配,得 到如下匹配概率: 匹配概率=进入二阶马尔科夫链概率X状态二阶转移概率X退出二阶马尔科夫链概 率; 步骤5.2提取步骤4.3抓取的网络流的证书消息长度,若无证书消息则忽略此步骤,否 贝1J,以步骤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将网络流抓取模块生成的完整的待识别 加密网络流与所述应用指纹库进行逐一匹配,同时综合考虑证书长度聚类带来的结果,获 得最终的匹配概率,并将待识别网络流标记为对应概率最高的网络服务或应用后输出。
【文档编号】H04L29/06GK105871832SQ201610187193
【公开日】2016年8月17日
【申请日】2016年3月29日
【发明人】沈蒙, 魏明伟, 祝烈煌
【申请人】北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1