You are on page 1of 20

(19)国家知识产权局

(12)发明专利
(10)授权公告号 CN 111478861 B
(45)授权公告日 2022.08.23
(21)申请号 202010254366 .7 (51)Int .Cl .

(22)申请日 2020 .04 .02 H04L 47/2483 (2022 .01)


H04L 47/2441 (2022 .01)
(65)同一申请的已公布的文献号 H04L 47/2475 (2022 .01)
申请公布号 CN 111478861 A H04L 61/4511 (2022 .01)
(43)申请公布日 2020 .07 .31 H04L 9/40 (2022 .01)
(73)专利权人 恒安嘉新(北京)科技股份公司 G06K 9/62 (2022 .01)
地址 100098 北京市海淀区北三环西路25 (56)对比文件
号27号楼五层5002室 US 2016323186 A1 ,2016 .11 .03
CN 109617762 A ,2019 .04 .12
(72)发明人 苑晓鹏 崔渊博 周忠义 傅强 
CN 101252541 A ,2008 .08 .27
阿曼太 梁彧 田野 王杰 
杨满智 蔡琳 金红 陈晓光  CN 105871832 A ,2016 .08 .17

(74)专利代理机构 北京品源专利代理有限公司 审查员 刘静微

11332
专利代理师 孟金喆

权利要求书2页 说明书12页 附图5页

(54)发明名称
流量识别方法、装置、
电子设备、 及存储介质
(57)摘要
本公开实施例公开了一种流量识别方法、 装
置、 电子设备、及存储介质, 方法包括:获取网络
中未确定所属应用程序的数据流作为未知数据
流; 回溯多个不包含域名信息且已确定所属应用
程序的数据流作为多个参考数据流; 分别计算所
述多个参考数据流与所述未知数据流之间的相
似度, 以确定最大相似度、以及所述最大相似度
对应的参考数据流; 若所述最大相似度大于或等
于预定相似度阈值, 则确定所述未知数据流的所
属应用程序, 与所述最大相似度对应的参考数据
流的所属应用程序相同。本公开实施例的技术方
案能够提高识别恶意流量的准确性和精度。
CN 111478861 B
CN 111478861 B 权 利 要 求 书 1/2 页

1 .一种流量识别方法, 其特征在于,包括:
获取网络中未确定所属应用程序的数据流作为未知数据流;
回溯多个不包含域名信息且已确定所属应用程序的数据流作为多个参考数据流;
分别计算所述多个参考数据流与所述未知数据流之间的相似度, 以确定最大相似度、
以及所述最大相似度对应的参考数据流;
若所述最大相似度大于或等于预定相似度阈值, 则确定所述未知数据流的所属应用程
序, 与所述最大相似度对应的参考数据流的所属应用程序相同;
若所述最大相似度小于所述预定相似度阈值, 则:回溯多个DNS应答记录,若所述多个
DNS应答记录中包含以未知流的IP地址为目的地址的至少一个DNS记录, 获取所述至少一个
DNS记录对应的至少一个域名; 回溯多个包含所述至少一个域名的已确定所属应用程序的
数据流, 分别计算所回溯的数据流与所述未知数据流之间的域名文本相似度, 若域名文本
相似度大于第二预定相似度阈值, 则根据所述数据流的所属应用程序, 以及所述多个参考
数据流的所属应用程序, 确定所述未知数据流的所属应用程序;
其中, 所述根据所述数据流的所属应用程序, 以及所述多个参考数据流的所属应用程
序, 确定所述未知数据流的所属应用程序包括:
若所述多个参考数据流中存在至少一个参考数据流的所属应用程序, 为所述数据流的
所属应用程序, 且所述至少一个参考数据流中包含至少一个参考数据流, 与所述未知数据
流之间的相似度大于第二预定相似度阈值, 则确定所述未知数据流的所属应用程序为所述
数据流的所属应用程序, 其中所述第二预定相似度阈值小于所述预定相似度阈值。
2 .根据权利要求1所述的方法, 其特征在于,获取网络中未确定所属应用程序的数据流
作为未知数据流包括:
获取网络中数据流, 根据预定的硬编码规则确定所述数据流的所属应用程序, 若确定
成功则为所述数据流标记所述所属应用程序, 若确定失败则获取所述数据流作为所述未知
数据流。
3 .根据权利要求1所述的方法, 其特征在于,计算参考数据流与所述未知数据流之间的
相似度包括:
计算所述参考数据流与所述未知数据流之间的流特征距离向量;
将所述流特征距离向量输入至预先训练的流相似度计算模型, 获取所述流相似度计算
模型输出的相似度, 所述相似度用于表示输入的流特征距离向量对应的两个数据流属于相
同应用程序的概率。
4 .根据权利要求3所述的方法, 其特征在于,计算所述参考数据流与所述未知数据流之
间的流特征距离向量包括:
根据数据流的预定流特征计算所述参考数据流与所述未知数据流之间的流特征距离
向量, 其中所述数据流的预定流特征包括如下至少一种:
数据流的上行包长序列的中位数、数据流的时间间隔序列的标准差、数据流的下行包
长序列的中位数、 数据流的流前N个包的包长、 以及数据流的预定字段的域名特征。
5 .根据权利要求3‑4任一项所述的方法,其特征在于,所述流相似度计算模型通过如下
步骤训练得到:
获取训练样本集合, 其中,训练样本包括两个数据流之间的流特征距离向量, 和用于表

2
CN 111478861 B 权 利 要 求 书 2/2 页

示所述两个数据流是否属于相同应用程序的标注信息, 标注信息为1表示属于相同应用程
序,标注信息为0表示不属于相同应用程序;
确定初始化的流相似度计算模型, 其中所述初始化的流相似度计算模型包括用于输出
两个数据流属于相同应用程序的概率的目标层;
利用机器学习的方法, 将所述训练样本集合中的训练样本中的流特征距离向量作为初
始化的流相似度计算模型的输入, 将与输入的流特征距离向量对应的标注信息作为初始化
的流相似度计算模型的期望输出, 训练得到所述流相似度计算模型。
6 .一种流量识别装置,其特征在于, 包括:
未知流获取单元, 用于获取网络中未确定所属应用程序的数据流作为未知数据流;
回溯单元, 用于回溯多个不包含域名信息且已确定所属应用程序的数据流作为多个参
考数据流;
相似数据流确定单元, 用于分别计算所述多个参考数据流与所述未知数据流之间的相
似度, 以确定最大相似度、 以及所述最大相似度对应的参考数据流;
第一确定单元,用于若所述最大相似度大于或等于预定相似度阈值, 则确定所述未知
数据流的所属应用程序, 与所述最大相似度对应的参考数据流的所属应用程序相同;
第二确定单元, 用于若所述最大相似度小于所述预定相似度阈值, 则:
回溯多个DNS应答记录, 若所述多个DNS应答记录中包含以未知流的IP地址为目的地址
的至少一个DNS记录, 获取所述至少一个DNS记录对应的至少一个域名; 回溯多个包含所述
至少一个域名的已确定所属应用程序的数据流, 分别计算所回溯的数据流与所述未知数据
流之间的域名文本相似度, 若域名文本相似度大于第二预定相似度阈值, 则根据所述数据
流的所属应用程序, 以及所述多个参考数据流的所属应用程序, 确定所述未知数据流的所
属应用程序;
其中, 所述第二确定单元,具体用于:
若所述多个参考数据流中存在至少一个参考数据流的所属应用程序, 为所述数据流的
所属应用程序, 且所述至少一个参考数据流中包含至少一个参考数据流, 与所述未知数据
流之间的相似度大于第二预定相似度阈值, 则确定所述未知数据流的所属应用程序为所述
数据流的所属应用程序, 其中所述第二预定相似度阈值小于所述预定相似度阈值。
7 .一种电子设备,其特征在于,包括:
处理器; 以及
存储器, 用于存储可执行指令, 所述可执行指令在被所述处理器执行时, 使得所述电子
设备执行如权利要求1‑5中任一项所述的方法。
8 .一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于,所述计算机程序被
处理器执行时实现如权利要求1‑5任一项所述的方法。

3
CN 111478861 B 说 明 书 1/12 页

流量识别方法、装置、
电子设备、及存储介质

技术领域
[0001] 本公开实施例涉及计算机网络技术领域,
具体涉及一种流量识别方法、
装置、
电子
设备、 及存储介质。

背景技术
[0002] 流量识别的目标是对网络流量按照协议、 应用和WEB服务三个层次进行实时识别,
尽可能做到细粒度的分类, 为网络监控提供决策参考。在流量识别的基础上, 网络监控可以
采取多种措施。流量识别可以用于流量计费、 提升用户体验和保障网络安全方面, 还可以用
于日常运维, 通过流量识别及早发现网络流量异动, 从而采取保障措施,确保业务不受影
响。
[0003] 目前流量识别技术包括端口识别技术、 深度包识别技术、 深度流识别技术、以及机
器学习或者人工智能技术。 由于机器学习技术可以从原始数据中直接提取特征, 节省了人
工成本, 同时能够发现人眼难以发现的规律,可以处理加密流量。 因此基于机器学习和人工
智能的流量识别方法是目前研究的主流方向, 但是现有的基于机器学习的流量识别方法对
流量分类比较粗, 识别恶意流量时准确性不高。

发明内容
[0004] 有鉴于此,本公开实施例提供一种流量识别方法、 装置、
电子设备、及存储介质,以
提高识别恶意流量的准确性和精度。
[0005] 本公开实施例的其他特性和优点将通过下面的详细描述变得显然, 或部分地通过
本公开实施例的实践而习得。
[0006] 在本公开的第一方面, 本公开实施例提供了一种流量识别方法, 包括:
[0007] 获取网络中未确定所属应用程序的数据流作为未知数据流;
[0008] 回溯多个不包含域名信息且已确定所属应用程序的数据流作为多个参考数据流;
[0009] 分别计算所述多个参考数据流与所述未知数据流之间的相似度, 以确定最大相似
度、 以及所述最大相似度对应的参考数据流;
[0010] 若所述最大相似度大于或等于预定相似度阈值, 则确定所述未知数据流的所属应
用程序, 与所述最大相似度对应的参考数据流的所属应用程序相同。
[0011] 于一实施例中, 获取网络中未确定所属应用程序的数据流作为未知数据流包括:
[0012] 获取网络中数据流, 根据预定的硬编码规则确定所述数据流的所属应用程序, 若
确定成功则为所述数据流标记所述所属应用程序, 若确定失败则获取所述数据流作为所述
未知数据流。
[0013] 于一实施例中 ,所述方法还包括, 若所述最大相似度小于所述预定相似度阈值,
则:
[0014] 回溯多个DNS应答记录,若所述多个DNS应答记录中包含以所述未知流的IP地址为
目的地址的至少一个DNS记录, 获取所述至少一个DNS记录对应的至少一个域名;

4
CN 111478861 B 说 明 书 2/12 页

[0015] 回溯多个包含所述至少一个域名的已确定所属应用程序的数据流, 分别计算所回


溯的数据流与所述未知数据流之间的域名文本相似度, 若域名文本相似度大于第二预定相
似度阈值, 则根据所述数据流的所属应用程序, 以及所述多个参考数据流的所属应用程序,
确定所述未知数据流的所属应用程序。
[0016] 于一实施例中, 根据所述数据流的所属应用程序, 以及所述多个参考数据流的所
属应用程序, 确定所述未知数据流的所属应用程序包括:
[0017] 若所述多个参考数据流中存在至少一个参考数据流的所属应用程序, 为所述数据
流的所属应用程序, 且所述至少一个参考数据流中包含至少一个参考数据流, 与所述未知
数据流之间的相似度大于第二预定相似度阈值, 则确定所述未知数据流的所属应用程序为
所述数据流的所属应用程序, 其中所述第二预定相似度阈值小于所述预定相似度阈值。
[0018] 于一实施例中,计算参考数据流与所述未知数据流之间的相似度包括:
[0019] 计算所述参考数据流与所述未知数据流之间的流特征距离向量;
[0020] 将所述流特征距离向量输入至预先训练的流相似度计算模型, 获取所述流相似度
计算模型输出的相似度, 所述相似度用于表示输入的流特征距离向量对应的两个数据流属
于相同应用程序的概率。
[0021] 于一实施例中, 计算所述参考数据流与所述未知数据流之间的流特征距离向量包
括:
[0022] 根据数据流的预定流特征计算所述参考数据流与所述未知数据流之间的流特征
距离向量, 其中所述数据流的预定流特征包括如下至少一种:
[0023] 数据流的上行包长序列的中位数、 数据流的时间间隔序列的标准差、数据流的下
行包长序列的中位数、 数据流的流前N个包的包长、 以及数据流的预定字段的域名特征。
[0024] 于一实施例中,所述流相似度计算模型通过如下步骤训练得到:
[0025] 获取训练样本集合, 其中,训练样本包括两个数据流之间的流特征距离向量, 和用
于表示所述两个数据流是否属于相同应用程序的标注信息, 标注信息为1表示属于相同应
用程序, 标注信息为0表示不属于相同应用程序;
[0026] 确定初始化的流相似度计算模型, 其中所述初始化的流相似度计算模型包括用于
输出两个数据流属于相同应用程序的概率的目标层;
[0027] 利用机器学习的方法, 将所述训练样本集合中的训练样本中的流特征距离向量作
为初始化的流相似度计算模型的输入, 将与输入的流特征距离向量对应的标注信息作为初
始化的流相似度计算模型的期望输出, 训练得到所述流相似度计算模型。
[0028] 在本公开的第二方面, 本公开实施例还提供了一种流量识别装置, 包括:
[0029] 未知流获取单元, 用于获取网络中未确定所属应用程序的数据流作为未知数据
流;
[0030] 回溯单元,用于回溯多个不包含域名信息且已确定所属应用程序的数据流作为多
个参考数据流;
[0031] 相似数据流确定单元, 用于分别计算所述多个参考数据流与所述未知数据流之间
的相似度, 以确定最大相似度、以及所述最大相似度对应的参考数据流;
[0032] 第一确定单元, 用于若所述最大相似度大于或等于预定相似度阈值, 则确定所述
未知数据流的所属应用程序, 与所述最大相似度对应的参考数据流的所属应用程序相同。

5
CN 111478861 B 说 明 书 3/12 页

[0033] 于一实施例中, 所述未知流获取单元用于:


[0034] 获取网络中数据流, 根据预定的硬编码规则确定所述数据流的所属应用程序, 若
确定成功则为所述数据流标记所述所属应用程序, 若确定失败则获取所述数据流作为所述
未知数据流。
[0035] 于一实施例中, 所述装置还包括第二确定单元, 所述第二确定单元用于若所述最
大相似度小于所述预定相似度阈值, 则:
[0036] 回溯多个DNS应答记录,若所述多个DNS应答记录中包含以所述未知流的IP地址为
目的地址的至少一个DNS记录, 获取所述至少一个DNS记录对应的至少一个域名;
[0037] 回溯多个包含所述至少一个域名的已确定所属应用程序的数据流, 分别计算所回
溯的数据流与所述未知数据流之间的域名文本相似度, 若域名文本相似度大于第二预定相
似度阈值, 则根据所述数据流的所属应用程序, 以及所述多个参考数据流的所属应用程序,
确定所述未知数据流的所属应用程序。
[0038] 于一实施例中, 所述第二确定单元用于根据所述数据流的所属应用程序, 以所述
多个参考数据流的所属应用程序确定所述未知数据流的所属应用程序包括:
[0039] 若所述多个参考数据流中存在至少一个参考数据流的所属应用程序, 为所述数据
流的所属应用程序, 且所述至少一个参考数据流中包含至少一个参考数据流, 与所述未知
数据流之间的相似度大于第二预定相似度阈值, 则确定所述未知数据流的所属应用程序为
所述数据流的所属应用程序, 其中所述第二预定相似度阈值小于所述预定相似度阈值。
[0040] 于一实施例中, 所述相似数据流确定单元用于计算参考数据流与所述未知数据流
之间的相似度包括:
[0041] 计算所述参考数据流与所述未知数据流之间的流特征距离向量;
[0042] 将所述流特征距离向量输入至预先训练的流相似度计算模型, 获取所述流相似度
计算模型输出的相似度, 所述相似度用于表示输入的流特征距离向量对应的两个数据流属
于相同应用程序的概率。
[0043] 于一实施例中, 所述相似数据流确定单元用于计算所述参考数据流与所述未知数
据流之间的流特征距离向量包括:
[0044] 根据数据流的预定流特征计算所述参考数据流与所述未知数据流之间的流特征
距离向量, 其中所述数据流的预定流特征包括如下至少一种:
[0045] 数据流的上行包长序列的中位数、 数据流的时间间隔序列的标准差、数据流的下
行包长序列的中位数、 数据流的流前N个包的包长、 以及数据流的预定字段的域名特征。
[0046] 于一实施例中, 所述流相似度计算模型通过如下模块进行训练得到:
[0047] 样本获取模块, 用于获取训练样本集合, 其中,训练样本包括两个数据流之间的流
特征距离向量, 和用于表示所述两个数据流是否属于相同应用程序的标注信息, 标注信息
为1表示属于相同应用程序, 标注信息为0表示不属于相同应用程序;
[0048] 模型确定模块, 用于确定初始化的流相似度计算模型, 其中所述初始化的流相似
度计算模型包括用于输出两个数据流属于相同应用程序的概率的目标层;
[0049] 模型训练模块, 用于利用机器学习的方法, 将所述训练样本集合中的训练样本中
的流特征距离向量作为初始化的流相似度计算模型的输入, 将与输入的流特征距离向量对
应的标注信息作为初始化的流相似度计算模型的期望输出, 训练得到所述流相似度计算模

6
CN 111478861 B 说 明 书 4/12 页

型。
[0050] 在本公开的第三方面,提供了一种电子设备。该电子设备包括:处理器;以及存储
器,用于存储可执行指令, 所述可执行指令在被所述处理器执行时使得所述电子设备执行
第一方面中的方法。
[0051] 在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,
该计算机程序被处理器执行时实现第一方面中的方法。
[0052] 本公开实施例提出的技术方案的有益技术效果是:
[0053] 本公开实施例通过在获取未知数据流后, 回溯多个不包含域名信息且已确定所属
应用程序的数据流作为多个参考数据流, 分别计算各参考数据流与未知数据流之间的相似
度, 以确定最大相似度及其对应的参考数据流, 若最大相似度大于或等于预定相似度阈值,
则确定所述未知数据流的所属应用程序与该最大相似度对应的参考数据流的所属应用程
序相同, 能够提高识别恶意流量的准确性和精度。

附图说明
[0054] 为了更清楚地说明本公开实施例中的技术方案,下面将对本公开实施例描述中所
需要使用的附图作简单的介绍, 显而易见地,下面描述中的附图仅仅是本公开实施例中的
一部分实施例, 对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
本公开实施例的内容和这些附图获得其他的附图。
[0055] 图1是根据本公开实施例提供的一种流量识别方法的流程示意图;
[0056] 图2是根据本公开实施例提供的流相似度计算模型的一种训练方法的流程示意
图;
[0057] 图3是根据本公开实施例提供的另一种流量识别方法的流程示意图;
[0058] 图4是根据本公开实施例提供的又一种流量识别方法的流程示意图;
[0059] 图5是根据本公开实施例提供的一种流量识别装置的结构示意图;
[0060] 图6是根据本公开实施例提供的流相似度计算模型的一种训练装置的结构示意
图;
[0061] 图7是根据本公开实施例提供的另一种流量识别装置的结构示意图;
[0062] 图8示出了适于用来实现本公开实施例的电子设备的结构示意图。

具体实施方式
[0063] 为使本公开实施例解决的技术问题、 采用的技术方案和达到的技术效果更加清
楚, 下面将结合附图对本公开实施例的技术方案作进一步的详细描述, 显然,所描述的实施
例仅仅是本公开实施例中的一部分实施例, 而不是全部的实施例。基于本公开实施例中的
实施例, 本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于
本公开实施例保护的范围。
[0064] 需要说明的是,本公开实施例中术语“系统”和“网络”在本文中常被可互换使用。
本公开实施例中提到的“和/或”是指包括一个或更多个相关所列项目的任何和所有组合。
本公开的说明书和权利要求书及附图中的术语“第一”、 “第二”等是用于区别不同对象,而
不是用于限定特定顺序。

7
CN 111478861 B 说 明 书 5/12 页

[0065] 还需要说明是, 本公开实施例中下述各个实施例可以单独执行, 各个实施例之间


也可以相互结合执行, 本公开实施例对此不作具体限制。
[0066] 本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性
的目的, 而并不是用于对这些消息或信息的范围进行限制。
[0067] 下面结合附图并通过具体实施方式来进一步说明本公开实施例的技术方案。
[0068] 图1示出了本公开实施例提供的一种流量识别方法的流程示意图 , 本实施例可适
用于识别网络中未知流量的所属应用程序的情况, 该方法可以由配置于电子设备中的流量
识别装置来执行, 如图1所示, 本实施例所述的流量识别方法包括:
[0069] 在步骤S110中,获取网络中未确定所属应用程序的数据流作为未知数据流。
[0070] 例如,可获取网络中数据流, 根据预定的硬编码规则确定所述数据流的所属应用
程序, 若确定成功则为所述数据流标记所述所属应用程序, 若确定失败则获取所述数据流
作为所述未知数据流。
[0071] 在步骤S120中,回溯多个不包含域名信息且已确定所属应用程序的数据流作为多
个参考数据流。
[0072] 在步骤S130中,分别计算所述多个参考数据流与所述未知数据流之间的相似度,
以确定最大相似度、 以及所述最大相似度对应的参考数据流。
[0073] 计算参考数据流与所述未知数据流之间的相似度可采用多种方法, 例如,
可通过
预先训练的流相似度计算模型来计算, 例如计算所述参考数据流与所述未知数据流之间的
流特征距离向量; 将所述流特征距离向量输入至预先训练的流相似度计算模型, 获取所述
流相似度计算模型输出的相似度, 所述相似度用于表示输入的流特征距离向量对应的两个
数据流属于相同应用程序的概率。
[0074] 其中,计算所述参考数据流与所述未知数据流之间的流特征距离向量, 可根据数
据流的预定流特征计算所述参考数据流与所述未知数据流之间的流特征距离向量。其中所
述数据流的预定流特征包括数据流的上行包长序列的中位数、 数据流的时间间隔序列的标
准差、 数据流的下行包长序列的中位数、数据流的流前N个包的包长、 以及数据流的预定字
段的域名特征等。
[0075] 其中,所述流相似度计算模型可通过多种方法训练得到, 图2示出了所述流相似度
计算模型的一种训练方法的流程示意图, 如图2所示,
所述流相似度计算模型可通过如下步
骤训练得到:
[0076] 在步骤S210中,获取训练样本集合,其中,训练样本包括两个数据流之间的流特征
距离向量, 和用于表示所述两个数据流是否属于相同应用程序的标注信息, 标注信息为1表
示属于相同应用程序, 标注信息为0表示不属于相同应用程序。
[0077] 在步骤S220中,确定初始化的流相似度计算模型, 其中所述初始化的流相似度计
算模型包括用于输出两个数据流属于相同应用程序的概率的目标层。
[0078] 在步骤S230中,利用机器学习的方法, 将所述训练样本集合中的训练样本中的流
特征距离向量作为初始化的流相似度计算模型的输入, 将与输入的流特征距离向量对应的
标注信息作为初始化的流相似度计算模型的期望输出, 训练得到所述流相似度计算模型。
[0079] 在步骤S140中,若所述最大相似度大于或等于预定相似度阈值, 则确定所述未知
数据流的所属应用程序, 与所述最大相似度对应的参考数据流的所属应用程序相同。

8
CN 111478861 B 说 明 书 6/12 页

[0080] 本实施例通过在获取未知数据流后, 回溯多个不包含域名信息且已确定所属应用


程序的数据流作为多个参考数据流, 分别计算各参考数据流与未知数据流之间的相似度,
以确定最大相似度及其对应的参考数据流, 若最大相似度大于或等于预定相似度阈值, 则
确定所述未知数据流的所属应用程序与该最大相似度对应的参考数据流的所属应用程序
相同, 能够提高识别恶意流量的准确性和精度。
[0081] 图3示出了本公开实施例提供的另一种流量识别方法的流程示意图 , 本实施例以
前述实施例为基础, 进行了改进优化。如图3所示, 本实施例所述的流量识别方法包括:
[0082] 在步骤S310中,获取网络中未确定所属应用程序的数据流作为未知数据流。例如
可获取网络中数据流, 根据预定的硬编码规则确定所述数据流的所属应用程序, 若确定成
功则为所述数据流标记所述所属应用程序, 若确定失败则获取所述数据流作为所述未知数
据流。
[0083] 在步骤S320中,回溯多个不包含域名信息且已确定所属应用程序的数据流作为多
个参考数据流。
[0084] 在步骤S330中,分别计算所述多个参考数据流与所述未知数据流之间的相似度,
以确定最大相似度、 以及所述最大相似度对应的参考数据流。
[0085] 在步骤S340中,确定最大相似度是否小说预定相似度阈值, 若是则执行步骤S360 ,
否则执行步骤S350。
[0086] 在步骤S350中,确定所述未知数据流的所属应用程序, 与所述最大相似度对应的
参考数据流的所属应用程序相同。
[0087] 在步骤S360中,回溯多个DNS应答记录, 若所述多个DNS应答记录中包含以所述未
知流的IP地址为目的地址的至少一个DNS记录, 获取所述至少一个DNS记录对应的至少一个
域名。
[0088] 在步骤S370中 ,
回溯多个包含所述至少一个域名的已确定所属应用程序的数据
流, 分别计算所回溯的数据流与所述未知数据流之间的域名文本相似度, 若域名文本相似
度大于第二预定相似度阈值, 则根据所述数据流的所属应用程序, 以及所述多个参考数据
流的所属应用程序, 确定所述未知数据流的所属应用程序。
[0089] 其中,根据所述数据流的所属应用程序, 以及所述多个参考数据流的所属应用程
序, 确定所述未知数据流的所属应用程序可进一步通过如下方法实现: 若所述多个参考数
据流中存在至少一个参考数据流的所属应用程序, 为所述数据流的所属应用程序, 且所述
至少一个参考数据流中包含至少一个参考数据流, 与所述未知数据流之间的相似度大于第
二预定相似度阈值, 则确定所述未知数据流的所属应用程序为所述数据流的所属应用程
序, 其中所述第二预定相似度阈值小于所述预定相似度阈值。
[0090] 在上一实施例的基础之上, 本实施例进一步公开了若最大相似度小于预定相似度
阈值的情况下, 对该未知流进一步通过回溯DNS应答记录的方式进行识别, 能进一步提高未
知数据流的识别率。
[0091] 图4示出了本公开实施例提供的又一种流量识别方法的流程示意图 , 本实施例以
前述实施例为基础, 进行了改进优化。如图4所示, 本实施例所述的流量识别方法包括:
[0092] 在步骤S401中,识别到出现未知流。
[0093] 在步骤S402中,回溯K条不包含域名信息的已识别流。

9
CN 111478861 B 说 明 书 7/12 页

[0094] 即出现未知流时, 向上回溯部分纯TCP或纯UDP流的信息。在此之前, 需要采集测试


APP的已识别的数据流样本。
[0095] 例如可通过样本由移动设备采集测试APP产生的pcap数据包经过DPI回放的话单
信息和脚本解析生成。在移动设备上运行待测试的APP, 监控其产生的流量数据形成pcap数
据包。利用DPI引擎对形成的pcap数据包进行回放, 形成相应的话单。编写脚本从pcap数据
包中解析出包长序列和时间序列等流特征, 与话单中的流特征相结合使用。
[0096] 在步骤S403中,
代入模型计算出K个相似度。
[0097] 例如可计算所述参考数据流与所述未知数据流之间的流特征距离向量, 将所述流
特征距离向量输入根据图2所述的机器学习模型训练方法训练得到的流相似度计算模型,
分别通过该流相似度计算模型输出该未知流与所述K条已识别流的相似度, 以分别确定该
未知流与所述K条已识别流属于相同应用程序APP的概率。
[0098] 其中计算两个数据流之间的流特征距离向量, 可对话单和脚本解析出的流特征进
行筛选, 特征主要来自包长序列和时间间隔序列, 并通过简单计算得到新的统计特征, 具体
特征举例如下: 上行包长序列的中位数、 时间间隔序列的标准差、 时间间隔序列的平均值、
下行包长序列的中位数、流前n个包的包长、 以及DNS  query和host字段这种域名特征。其
中, 所述上行方向是指本地IP向服务器IP发送字节数的方向。所述下行方向是指服务器IP
向本地IP发送字节数的方向。 聚合特征的计算范围可选择前n个包或时间间隔, 计算聚合特
征后, 对不满n个包的流进行zero‑padding处理。
[0099] 训练所述流相似度计算模型时, 样本采集及标注可采用多种方法, 例如样本可由
移动设备采集测试APP产生的pcap数据包经过DPI回放的话单信息和脚本解析生成。例如,
可在移动设备上运行待测试的APP, 监控其产生的流量数据形成pcap数据包。利用DPI引擎
对形成的pcap数据包进行回放, 形成相应的话单。编写脚本从pcap数据包中解析出包长序
列和时间序列等流特征, 与话单中的流特征相结合使用。
[0100] 在步骤S404中,确定相似度最大值是否大于阈值Y, 若是则执行步骤S405 ,否则执
行步骤S406。
[0101] 在步骤S405中,
得到分类结果 ,结束。
[0102] 在步骤S406中,
回溯N条DNS应答记录。
[0103] 在步骤S407中,确定是否存在该IP地址的DNS记录, 若是则执行步骤S408 ,否则执
行步骤S412。
[0104] 在步骤S408中,
回溯M条包含域名信息的已识别流。
[0105] 在步骤S409中,确定域名文本相似度是否大于阈值X, 若是则执行步骤S410 ,否则
执行步骤S412。
[0106] 在步骤S410中,确定K条无域名流中是否包含该APP, 若是则执行步骤S411 ,否则执
行步骤S412。
[0107] 在步骤S411中,确定无域名流相似度是否大于阈值Z, 若是则执行步骤S405 ,否则
执行步骤S412。
[0108] 在步骤S412中,
将所述未知流归为未识别。
[0109] 通过观察不同app的流特征可知, 同一app可能具有流特征相似度极低的流特征,
相似度极低的两条流可能是由app的不同动作或行为所产生的。而来自同一app的同一行为

10
CN 111478861 B 说 明 书 8/12 页

的流流特征相似度最高。
[0110] 由于DPI引擎难以识别的流量大部分是没有域名信息的纯TCP流和纯UDP流, 所以
训练过程可先分别对TCP流和UDP流按开始时间进行排序。之后对每一条纯TCP或纯UDP流,
向上回溯若干条纯TCP或纯UDP流, 分别计算每个流特征的距离, 得到距离向量。若两条流来
自同一app, 则打上标签1, 反之标0, 代入复杂度低的机器学习模型进行训练。训练后的机器
学习模型输出的概率值就是两条流来自同一app的概率, 也可以视为流与流的流特征关联
度。
[0111] 在模刑应用过程中, 一旦出现未知流, 则向前回溯若干条已识别的流。分别将流特
征与未知流通过计算得到流特征距离向量, 将向量代入训练好的机器学习模型得到相似
度。取相似度最大值与流特征关联度阈值作对比 , 若大于阈值, 则给未知流打上相似度最高
的流的标签, 反之则继续标记为未知。
[0112] 需要明确的是, 除了本身包含域名特征的DNS流, HTTP流和HTTPS流以外,
某些本身
不包含域名信息的纯TCP流和纯UDP流, 其IP地址会出现在之前的DNS应答字段中。通过这种
关联, 可以对一部分流填充域名信息。
[0113] 对于每条未知流, 向前回溯若干DNS应答, 如果DNS应答中的IP地址与流的目的IP
相同, 则将域名填充至未知流。
[0114] 成功回填后, 对于TCP流,对回填的每一个域名向上回溯有域名特征的已知流, 并
计算两条流域名的文本相似度, 若域名文本相似度大于阈值, 则将已知流标记为域名相似
流。 并更新文本相似度阈值。在对下一回填的域名继续上述操作, 直至遍历所有回填域名为
止。遍历完成后, 若存在域名相似流, 则再次遍历回溯过的已知纯TCP流, 若存在与域名相似
流同app的流, 使用流特征关联度模块的机器学习模型计算该流与未知流的流特征相似度,
若相似度大于流特征相似度限制阈值, 则为未知流打上该相似流的便签。
[0115] 对于UDP流,
若未知流域名回填成功, 只需查看是否所有域名来自同一app即可, 若
来自同一app, 则将已知流标记为域名相似流。 检查流特征相似度的过程与TCP流相同。
[0116] 在流式计算过程中, 缓存固定条数的已识别有域名流, 和固定条数的已识别无域
名流, 以及固定时间内的DNS应答信息, 分别给流特征关联模块和域名关联模块使用。调节
缓存大小和3个阈值的大小可以让算法在性能、 覆盖率和识别准确率时间做出取舍。分别为
流特征相似度阈值, 初始文本相似度阈值, 流特征相似度限制阈值。
[0117] 本公开实施例在识别到未知流时, 通过向上回溯部分纯TCP或纯UDP流的信息, 计
算流特征相似度。 并向上回溯部分包含域名的流的域名信息, 计算流域名文本相似度。二者
结合确定关联流, 实现未知流的识别, 能够提高识别恶意流量的准确性和精度。
[0118] 作为上述各图所示方法的实现, 本申请提供了一种流量识别装置的一个实施例 ,
图5示出了本实施例提供的一种流量识别装置的结构示意图, 该装置实施例与图1至图4所
示的方法实施例相对应, 该装置具体可以应用于各种电子设备中。如图5所示, 本实施例所
述的流量识别装置包括未知流获取单元510、 回溯单元520、相似数据流确定单元530和第一
确定单元540。
[0119] 所述未知流获取单元510被配置为, 用于获取网络中未确定所属应用程序的数据
流作为未知数据流;
[0120] 所述回溯单元520被配置为, 用于回溯多个不包含域名信息且已确定所属应用程

11
CN 111478861 B 说 明 书 9/12 页

序的数据流作为多个参考数据流;
[0121] 所述相似数据流确定单元530被配置为, 用于分别计算所述多个参考数据流与所
述未知数据流之间的相似度, 以确定最大相似度、 以及所述最大相似度对应的参考数据流;
[0122] 所述第一确定单元540被配置为, 用于若所述最大相似度大于或等于预定相似度
阈值, 则确定所述未知数据流的所属应用程序, 与所述最大相似度对应的参考数据流的所
属应用程序相同。
[0123] 根据本公开的一个或多个实施例, 所述未知流获取单元510被配置为,用于: 获取
网络中数据流, 根据预定的硬编码规则确定所述数据流的所属应用程序, 若确定成功则为
所述数据流标记所述所属应用程序, 若确定失败则获取所述数据流作为所述未知数据流。
[0124] 根据本公开的一个或多个实施例, 所述相似数据流确定单元530被配置为, 用于计
算所述参考数据流与所述未知数据流之间的流特征距离向量; 将所述流特征距离向量输入
至预先训练的流相似度计算模型, 获取所述流相似度计算模型输出的相似度, 所述相似度
用于表示输入的流特征距离向量对应的两个数据流属于相同应用程序的概率。
[0125] 进一步地,所述相似数据流确定单元530被配置为用于计算所述参考数据流与所
述未知数据流之间的流特征距离向量包括: 根据数据流的预定流特征计算所述参考数据流
与所述未知数据流之间的流特征距离向量, 其中所述数据流的预定流特征包括如下至少一
种: 数据流的上行包长序列的中位数、 数据流的时间间隔序列的标准差、 数据流的下行包长
序列的中位数、 数据流的流前N个包的包长、 以及数据流的预定字段的域名特征。
[0126] 图6是根据本公开实施例提供的流相似度计算模型的一种训练装置的结构示意
图, 根据本公开的一个或多个实施例, 所述相似数据流确定单元530中使用的所述流相似度
计算模型通过如图6所示的样本获取模块610、 模型确定模块620和模型训练模块630进行训
练得到。
[0127] 所述样本获取模块610被配置为, 用于获取训练样本集合, 其中,训练样本包括两
个数据流之间的流特征距离向量, 和用于表示所述两个数据流是否属于相同应用程序的标
注信息, 标注信息为1表示属于相同应用程序, 标注信息为0表示不属于相同应用程序。
[0128] 所述模型确定模块620被配置为,用于确定初始化的流相似度计算模型, 其中所述
初始化的流相似度计算模型包括用于输出两个数据流属于相同应用程序的概率的目标层。
[0129] 所述模型训练模块630被配置为,用于利用机器学习的方法, 将所述训练样本集合
中的训练样本中的流特征距离向量作为初始化的流相似度计算模型的输入, 将与输入的流
特征距离向量对应的标注信息作为初始化的流相似度计算模型的期望输出, 训练得到所述
流相似度计算模型。
[0130] 本实施例提供的流量识别装置可执行本公开方法实施例所提供的流量识别方法,
具备执行方法相应的功能模块和有益效果。
[0131] 图7示出了本公开实施例提供的另一种流量识别装置的结构示意图 , 如图7所示,
本实施例所述的流量识别装置包括未知流获取单元710、 回溯单元720、相似数据流确定单
元730、 第一确定单元740和第二确定单元750。
[0132] 所述未知流获取单元710被配置为, 用于获取网络中未确定所属应用程序的数据
流作为未知数据流。
[0133] 所述回溯单元720被配置为,用于回溯多个不包含域名信息且已确定所属应用程

12
CN 111478861 B 说 明 书 10/12 页

序的数据流作为多个参考数据流。
[0134] 所述相似数据流确定单元730被配置为, 用于分别计算所述多个参考数据流与所
述未知数据流之间的相似度, 以确定最大相似度、 以及所述最大相似度对应的参考数据流。
[0135] 所述第一确定单元740被配置为, 用于若所述最大相似度大于或等于预定相似度
阈值, 则确定所述未知数据流的所属应用程序, 与所述最大相似度对应的参考数据流的所
属应用程序相同。
[0136] 所述第二确定单元750被配置为, 用于若所述最大相似度小于所述预定相似度阈
值, 则: 回溯多个DNS应答记录, 若所述多个DNS应答记录中包含以所述未知流的IP地址为目
的地址的至少一个DNS记录, 获取所述至少一个DNS记录对应的至少一个域名; 回溯多个包
含所述至少一个域名的已确定所属应用程序的数据流, 分别计算所回溯的数据流与所述未
知数据流之间的域名文本相似度, 若域名文本相似度大于第二预定相似度阈值, 则根据所
述数据流的所属应用程序, 以及所述多个参考数据流的所属应用程序, 确定所述未知数据
流的所属应用程序。
[0137] 于一实施例中, 所述未知流获取单元710被配置为, 还用于获取网络中数据流, 根
据预定的硬编码规则确定所述数据流的所属应用程序, 若确定成功则为所述数据流标记所
述所属应用程序, 若确定失败则获取所述数据流作为所述未知数据流。
[0138] 于一实施例中, 所述第二确定单元750被配置为, 用于若所述多个参考数据流中存
在至少一个参考数据流的所属应用程序, 为所述数据流的所属应用程序, 且所述至少一个
参考数据流中包含至少一个参考数据流, 与所述未知数据流之间的相似度大于第二预定相
似度阈值, 则确定所述未知数据流的所属应用程序为所述数据流的所属应用程序, 其中所
述第二预定相似度阈值小于所述预定相似度阈值。
[0139] 于一实施例中, 所述相似数据流确定单元730被配置为, 用于计算所述参考数据流
与所述未知数据流之间的流特征距离向量; 将所述流特征距离向量输入至预先训练的流相
似度计算模型, 获取所述流相似度计算模型输出的相似度, 所述相似度用于表示输入的流
特征距离向量对应的两个数据流属于相同应用程序的概率。
[0140] 进一步地, 所述相似数据流确定单元730被配置为, 用于根据数据流的预定流特征
计算所述参考数据流与所述未知数据流之间的流特征距离向量, 其中所述数据流的预定流
特征包括如下至少一种: 数据流的上行包长序列的中位数、数据流的时间间隔序列的标准
差、 数据流的下行包长序列的中位数、 数据流的流前N个包的包长、 以及数据流的预定字段
的域名特征。
[0141] 本实施例提供的流量识别装置可执行本公开方法实施例所提供的流量识别方法,
具备执行方法相应的功能模块和有益效果。
[0142] 下面参考图8, 其示出了适于用来实现本公开实施例的电子设备800的结构示意
图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、 笔记本电脑、数字广播接
收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车
载导航终端)等等的移动终端以及诸如数字TV、 台式计算机等等的固定终端。 图8示出的电
子设备仅仅是一个示例, 不应对本公开实施例的功能和使用范围带来任何限制。
[0143] 如图8所示 ,电 子设备800可以包括处理装置(例如中央处理器、图形处理器等)
801, 其可以根据存储在只读存储器(ROM)802中的程序或者从存储装置808加载到随机访问

13
CN 111478861 B 说 明 书 11/12 页

存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM  803中, 还存储有电子设备


800操作所需的各种程序和数据。处理装置801、ROM  802以及RAM  803通过总线804彼此相
连。输入/输出(I/O)接口805也连接至总线804。
[0144] 通常,以下装置可以连接至I/O接口805: 包括例如触摸屏、触摸板、键盘、 鼠标、摄
像头、麦克风、加速度计、 陀螺仪等的输入装置806; 包括例如液晶显示器(LCD)、扬声器、振
动器等的输出装置807; 包括例如磁带、 硬盘等的存储装置808; 以及通信装置809。通信装置
809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具
有各种装置的电子设备800, 但是应理解的是, 并不要求实施或具备所有示出的装置。可以
替代地实施或具备更多或更少的装置。
[0145] 特别地,根据本公开实施例的实施例, 上文参考流程图描述的过程可以被实现为
计算机软件程序。例如, 本公开实施例的实施例包括一种计算机程序产品, 其包括承载在计
算机可读介质上的计算机程序, 该计算机程序包含用于执行流程图所示的方法的程序代
码。在这样的实施例中, 该计算机程序可以通过通信装置809从网络上被下载和安装, 或者
从存储装置808被安装, 或者从ROM  802被安装。在该计算机程序被处理装置801执行时, 执
行本公开实施例的方法中限定的上述功能。
[0146] 需要说明的是, 本公开实施例上述的计算机可读介质可以是计算机可读信号介质
或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以
是——但不限于——电、 磁、光、电磁、 红外线、或半导体的系统、 装置或器件, 或者任意以上
的组合。计算机可读存储介质的更具体的例子可以包括但不限于: 具有一个或多个导线的
电连接、 便携式计算机磁盘、 硬盘、 随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程
只读存储器(EPROM或闪存)、 光纤、 便携式紧凑磁盘只读存储器(CD‑ROM)、 光存储器件、 磁存
储器件、 或者上述的任意合适的组合。在本公开实施例中, 计算机可读存储介质可以是任何
包含或存储程序的有形介质, 该程序可以被指令执行系统、装置或者器件使用或者与其结
合使用。而在本公开实施例中, 计算机可读信号介质可以包括在基带中或者作为载波一部
分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多
种形式, 包括但不限于电磁信号、 光信号或上述的任意合适的组合。计算机可读信号介质还
可以是计算机可读存储介质以外的任何计算机可读介质, 该计算机可读信号介质可以发
送、 传播或者传输用于由指令执行系统、 装置或者器件使用或者与其结合使用的程序。计算
机可读介质上包含的程序代码可以用任何适当的介质传输, 包括但不限于: 电线、光缆、RF
(射频)等等, 或者上述的任意合适的组合。
[0147] 上述计算机可读介质可以是上述电子设备中所包含的; 也可以是单独存在, 而未
装配入该电子设备中。
[0148] 上述计算机可读介质承载有一个或者多个程序, 当上述一个或者多个程序被该电
子设备执行时, 使得该电子设备: 获取网络中未确定所属应用程序的数据流作为未知数据
流; 回溯多个不包含域名信息且已确定所属应用程序的数据流作为多个参考数据流; 分别
计算所述多个参考数据流与所述未知数据流之间的相似度, 以确定最大相似度、 以及所述
最大相似度对应的参考数据流; 若所述最大相似度大于或等于预定相似度阈值, 则确定所
述未知数据流的所属应用程序, 与所述最大相似度对应的参考数据流的所属应用程序相
同。

14
CN 111478861 B 说 明 书 12/12 页

[0149] 可以以一种或多种程序设计语言或其组合来编写用于执行本公开实施例的操作
的 计算 机程 序代 码 ,上 述 程 序设 计 语言 包括 面向 对象的 程 序设 计 语言 — 诸 如Ja va 、
Smalltalk、C++,
还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语
言。程序代码可以完全地在用户计算机上执行、 部分地在用户计算机上执行、作为一个独立
的软件包执行、部分在用户计算机上部分在远程计算机上执行、 或者完全在远程计算机或
服务器上执行。在涉及远程计算机的情形中, 远程计算机可以通过任意种类的网络——包
括局域网(LAN)或广域网(WAN)—连接到用户计算机, 或者,可以连接到外部计算机(例如利
用因特网服务提供商来通过因特网连接)。
[0150] 附图中的流程图和框图 , 图示了按照本公开实施例各种实施例的系统、方法和计
算机程序产品的可能实现的体系架构、 功能和操作。在这点上, 流程图或框图中的每个方框
可以代表一个模块、 程序段、或代码的一部分, 该模块、 程序段、 或代码的一部分包含一个或
多个用于实现规定的逻辑功能的可执行指令。也应当注意, 在有些作为替换的实现中, 方框
中所标注的功能也可以以不同于附图中所标注的顺序发生。例如, 两个接连地表示的方框
实际上可以基本并行地执行, 它们有时也可以按相反的顺序执行, 这依所涉及的功能而定。
也要注意的是, 框图和/或流程图中的每个方框、 以及框图和/或流程图中的方框的组合, 可
以用执行规定的功能或操作的专用的基于硬件的系统来实现, 或者可以用专用硬件与计算
机指令的组合来实现。
[0151] 描述于本公开实施例中所涉及到的单元可以通过软件的方式实现, 也可以通过硬
件的方式来实现。其中, 单元的名称在某种情况下并不构成对该单元本身的限定, 例如, 第
一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
[0152] 以上描述仅为本公开实施例的较佳实施例以及对所运用技术原理的说明。 本领域
技术人员应当理解, 本公开实施例中所涉及的公开范围, 并不限于上述技术特征的特定组
合而成的技术方案, 同时也应涵盖在不脱离上述公开构思的情况下, 由上述技术特征或其
等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的
(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

15
CN 111478861 B 说 明 书 附 图 1/5 页

图1

图2

16
CN 111478861 B 说 明 书 附 图 2/5 页

图3

17
CN 111478861 B 说 明 书 附 图 3/5 页

图4

18
CN 111478861 B 说 明 书 附 图 4/5 页

图5

图6

19
CN 111478861 B 说 明 书 附 图 5/5 页

图7

图8

20

You might also like