一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于大规模预训练的多场景低资源加密流量识别方法和系统

2022-11-30 10:39:19 来源:中国专利 TAG:


1.本发明属于网络流量测量分析技术领域,尤其涉及一种基于大规模预训练的多场景低资源加密流量识别方法和系统。


背景技术:

2.为了保护隐私安全,通信网络应用服务逐渐采用加密传输等技术方法来保证用户的浏览数据不被第三方监控。即便如此,由于不同应用、不同网站所加载的资源不同,加密网站指纹识别等方法可以通过网站加载时产生的流量的外部特征(例如数据包大小序列)来识别特定的网站和应用。然而,目前大部分的加密流量识别工作都是聚焦在单一的场景下,并且是在标注流量样本数量充足的假设下进行的,即用户会多次访问同一个网站内容或应用功能。单一场景和充足标注样本的假设排除了可能存在的不同场景下加密流量的共性和流量数据的长尾分布,降低了加密流量识别的难度。然而在真实场景中,伴随加密协议、匿名信道、隧道通信等隐私增强技术在不断演进,网站和应用很可能在用户无感的情况下更新传输协议,而用户也很可能使用多种客户端代理访问不同目标网络服务,在加密流量识别中是无法感知捕获的流量中是否存在这些变化的,只能使用单一场景和充足的带标注流量样本来训练识别模型,得到的模型难以同时应对多种场景共存的网络流量数据。
3.目前已有的加密网络流量识别方法主要分为三类:基于明文指纹的方法,基于统计特征的方法和基于传统深度学习的方法:(1)基于明文指纹的方法首先捕获ip地址,端口,协议,证书等明文字段,将这些字段做聚类和迭代筛选后构建指纹库。此类方法理论上只能识别应用了包含有效明文信息的tls 1.2及旧版本的加密协议的网站和应用。(2)基于统计特征的方法摒弃了对明文信息的依赖而更适应加密流量,这类方法将数据包大小,数据包方向,数据包时间戳等信息按照会话流等方式构造出数值序列,同时使用最大值、最小值、均值等统计方法表示流特征进行加密流量指纹构造。(3)基于传统深度学习的方法采用端到端的结构完成自动化特征学习和流量识别分类的过程,这类方法使用原始的流序列作为样本,通过深度学习模型自动提取不同类别的流样本的特征。
4.三类方法均明显提高了加密流量识别在单一场景下的效果,但也存在一些问题:(1)特征工程繁杂:前两类方法都需要人工构造特征集合,明文指纹方法和统计特征方法都需要专家经验知识的干预。明文指纹方法特别依赖多维有辨识度的明文信息的关联,且需要长期维护指纹库以达到准确识别的效果,这种特征指纹构建方式受到加密协议全密化等传输协议的隐私增强特性影响而难以构建有效区分性的指纹库。(2)方法的效果受标注样本数量影响大:这三类方法都需要大量标注样本集作为训练数据,在样本拟合过程中受短时间内大量相似的标注样本的影响,容易发生过拟合现象;而当标注训练样本数据较少但是无标注样本丰富时,模型训练效果难以达到预期,无法捕捉到少量数据样本下不同类别的差异性并且难以挖掘无标注数据样本的信息。(3)无法直接迁移到多个不同场景:这三类方法聚焦在单一的场景下解决特定的问题,明文指纹构建方法无法适应全密化趋势下的加
密流量,统计特征和传统深度学习方法对每个场景都需要经过相应大量的有标注数据集下的特征工程而难以高效迁移,这些方法都无法捕捉到不同场景下加密流量的共性特征因而难以实现多场景的迁移应用。因此,多场景低资源的加密流量识别需要在无标注流量知识学习、有标注流量数据特征提取等方面进一步改进,以提高识别效果。


技术实现要素:

5.本发明要解决的技术问题:提供一种多场景低资源加密流量特征的提取和识别方法和系统,通过自监督学习掩码任务、burst同源任务以挖掘有效通用加密流量知识,并结合低资源下多场景的微调学习表征每个场景下对应不同类别的加密流量,可以实现高效地在多场景加密流量识别任务中迁移应用,而不依赖明文信息和大量标注样本;同时作为一种端到端方法,无需手动提取特征集。本发明能够解决现有多场景低资源加密流量识别方法存在的特征工程繁杂、受标注样本数量影响大、无法直接迁移到多场景进而导致识别效果受限的问题。
6.本发明采用的技术方案如下:
7.一种基于大规模预训练的多场景低资源加密流量识别方法,包括以下步骤:
8.采集无标注加密流量;
9.通过预训练网络模型学习无标注加密流量的上下文关系;
10.通过预训练网络模型学习无标注加密流量的burst同源关系;
11.获取带标注多场景加密流量;
12.利用带标注多场景加密流量对预训练网络模型进行微调,得到加密流量识别模型;
13.利用加密流量识别模型对待测网络流量进行加密流量识别。
14.进一步地,对采集的所述无标注加密流量数据进行预处理,所述预处理包括:
15.通过手动或自动脚本的方式采集网关处产生的大量流量,保存为pcap文件的形式;
16.将pcap文件转化为hex格式,以tcp协议层的sequence为标志字符串从pcap文件中提取数据报文,将pcap文件按照单条会话流进行分割,并以单向连续数据包作为burst单元,然后使用bigram编码表示以扩充内容表示维度。
17.进一步地,对采集的所述无标注加密流量进行嵌入表示;所述嵌入表示包括符号嵌入表示、位置嵌入表示和分段嵌入表示;
18.所述符号嵌入表示使用字节对编码对加密流量进行符号化处理,并且增加特殊符号以服务于后续的不同序列区分,包括开头[cls],填充[pad],结尾[sep];
[0019]
所述位置嵌入表示用于表征加密流量中的符号位置信息以区分相同符号的差异;
[0020]
所述分段嵌入表示使用0和1表示两种向量来表征一对burst序列中的不同子序列。
[0021]
进一步地,所述通过预训练网络模型学习无标注加密流量的上下文关系,是使用多头自注意力机制的transformer编码器学习不同符号间的上下文关系;在训练过程中,使用掩码自监督学习任务将输入的每条加密流量序列中的符号以一定的概率做随机掩盖处理。
[0022]
进一步地,所述通过预训练网络模型学习无标注加密流量的burst同源关系,包括:对输入的burst进行切分并结合分段嵌入表示捕获不同分段流量是否来源同一传输资源的知识。
[0023]
进一步地,使用正负例划分两个流量分段是否具有同源关系。
[0024]
进一步地,所述获取带标注多场景加密流量,包括:
[0025]
确定一批关注的目标网络服务名单,通过手动或自动脚本的方式采集目标网络服务产生的流量,保存为pcap文件的形式;
[0026]
将pcap文件按照五元组做会话流和数据包的切分,按照访问的目标应用或服务打好标签,并将会话流和数据包进行bigram编码处理和嵌入表征处理。
[0027]
一种基于大规模预训练的多场景低资源加密流量识别系统,其包括:
[0028]
无标注加密流量采集模块,用于采集无标注加密流量;
[0029]
预训练模块,用于通过预训练网络模型学习无标注加密流量的上下文关系,以及通过预训练网络模型学习无标注加密流量的burst同源关系;
[0030]
带标注多场景加密流量获取模块,用于获取带标注多场景加密流量;
[0031]
模型微调模块,用于利用带标注多场景加密流量对预训练网络模型进行微调,得到加密流量识别模型;
[0032]
加密流量识别模块,用于利用加密流量识别模型对待测网络流量进行加密流量识别。
[0033]
与现有技术相比,本发明的有益效果是:
[0034]
无需人工构建特征集,尤其无需为特性经常变化的流量报文构建特征集,不需要确定具体的加密流量应用场景即可完成多场景的识别;
[0035]
通过预训练阶段对流量包级别和流级别的自监督学习任务有效利用了无监督加密流量数据所包含的流量传输特性,解决了依赖大规模的带标注加密流量的问题。
[0036]
通过微调阶段有效适应多场景低资源的加密流量识别需求,不需要在不同场景重新利用大量标注数据进行训练,同时也不会受加密流量场景变化的影响而使得模型失效(例如只能识别流级别序列特征)。
[0037]
经实验测试,本方法在安卓应用数据集、ios应用数据集、恶意家族数据集、vpn隧道应用数据集、tor应用数据集、tls 1.3加密应用数据集上均取得了高于已有方法的准确率、召回率和精确率,且随着微调使用的带标注样本规模从100%降低到10%,模型的效果保持稳定。同时,消融实验也表明本方法设计的预训练自监督任务起到了关键作用。
附图说明
[0038]
图1是加密流量识别方法的实施场景示意图。
[0039]
图2是一种基于大规模预训练的多场景低资源加密流量识别方法的流程图。
具体实施方式
[0040]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
[0041]
本发明的一种基于大规模预训练的多场景低资源加密流量识别方法,包括以下步
骤:
[0042]
s1:无标注加密流量采集和预处理;
[0043]
s2:大规模预训练学习;
[0044]
s3:带标注多场景加密流量预处理;
[0045]
s4:低资源微调训练。
[0046]
该方法的实施场景如图1所示,具体步骤如图2所示。下面分别对每个步骤进行详细阐述:
[0047]
s1-1:无标注加密流量采集和预处理。
[0048]
该步骤捕获大规模无标注加密流量。在确定一批其关注的目标网络服务名单前,通过手动或自动脚本的方式采集网关处产生的大量流量,保存为pcap文件的形式。由于不需要标注流量而需要多种协议、场景的加密流量,每个捕获的pcap文件中会包含多条数据流,无需根据五元组归类。使用数据包处理程序scapy将pcap文件转化为hex格式,以tcp协议层的sequence为标志字符串从pcap文件中提取数据报文,使用数据包处理程序tshark将pcap按照单条会话流进行分割,并以单向连续数据包作为burst单元,然后使用bigram编码表示以扩充内容表示维度。其中burst是指一条会话流中相同方向连续传输的数据包集合。
[0049]
s1-2:加密流量表征。
[0050]
该步骤将原始流量处理为报文序列的嵌入表征。步骤1-1保证了加密流量能够作为有效的序列,但是由于数据集是无标注的且没有构建合适的表征以学习流量上下文的关系,因此本方法对编码内容进行嵌入表示,包括符号嵌入表示、位置嵌入表示和分段嵌入表示,为后续特征提取、模型预训练做准备。与编码表示不同,本方法与后续的自监督学习任务密切相关。符号嵌入表示使用字节对编码对加密流量进行符号化处理,并且增加一些特殊符号以服务于后续的不同序列区分,包括开头[cls],填充[pad],结尾[sep]。位置嵌入表示用于表征加密流量中的符号位置信息以区分相同符号的差异。分段嵌入表示使用0和1表示两种向量来表征一对burst序列中的不同子序列。
[0051]
s2-1:自监督学习加密流量上下文关系。
[0052]
基于网络资源传输时的时序依赖特性,本方法使用多头自注意力机制的transformer编码器结构学习不同符号间的上下文关系。在训练过程中,使用掩码自监督学习任务将输入的每条加密流量序列中的符号以15%的概率做随机掩盖处理,其中80%的被掩盖符号使用特殊符号[mask]替换,10%的被掩盖符号使用随机符号替换,剩余的10%的被掩盖符号不做处理。
[0053]
transformer编码器的每层结构由多头自注意力层、层归一化、前馈网络层和归一化四层操作组成。原始输入为3维张量x=[batch,length,embedding],经过多头自注意力学习获得每个符号新的特征向量。其中,batch表示单次训练过程选取的样本数量,length表示输入报文序列的长度,embedding表示嵌入表示的维度。
[0054]
多头自注意力机制由公式多头自注意力机制由公式表示,每个注意力头通过学习不同的参数矩阵w
iq
,来刻画多个流量符号之间的关系强弱。其中,concat表示拼接处理,将不同向量进行首尾连接,attentioni表示自注意力计算模块。
[0055]
自注意力机制由表示,其中q,k,v分别代表查询向量、结果向量、值向量。向量q与向量k之间的相似度越高,注意力得分会越趋近向量v,反之则趋于0。相似度一般表示为二者的点积,且除以开方后的向量k的维度值dk以减小误差,并用softmax函数处理得到(0,1)之间的权重值。在本方法的场景下,q和v都是符号特征向量,q表示待查询的符号,v表示用来比较的符号,k则存储了符号之间的相似关系。所有的掩码符号被传入多个并行的gelu激活层,根据与原始符号之间的误差计算交叉熵损失,反向传播后调整权重w,使模型逐步具备流量符号上下文的识别能力。
[0056]
s2-2:自监督学习burst同源关系。
[0057]
步骤2-1保证了模型对流量上下文的知识学习,能够捕捉到数据包级别的加密流量间的关系。但是流量传输中的资源加载产生的关联信息并不能通过符号上下文的知识来捕获,因此本方法对输入的burst进行切分并结合分段嵌入表示捕获不同分段流量是否来源同一传输资源的知识。
[0058]
与符号上下文关系学习不同,本方法不对[mask]符号进行预测,而是对每个分段的开头[cls]进行上下文关系预测。由于训练的是无标注的流量数据,本方法使用正负例划分两个流量分段是否具有同源关系。所有输入的burst流量数据被切分为burst_1和burst_2,其中burst_1的正例即剩余的burst_2,而负例的选择是随机选择非同一个burst流量的任意完整的burst分段。例如,burst_a_1与burst_a_2为一对正例数据对,而burst_a_1和burst_b_1或burst_c_2构成的则属于负例。在经过多头自注意力的学习后,将输出的[cls]表征结果输入2个全连接层,然后传入softmax激活层,根据与真实同源关系的误差计算分类损失,使模型逐步具备同源关系的识别能力。
[0059]
s3:带标注多场景加密流量预处理。
[0060]
确定一批关注的目标网络服务名单,通过手动或自动脚本的方式采集这些目标应用服务产生的流量(以单个应用/单个服务的形式访问),保存为pcap文件的形式。由于加密流量识别的场景有多种,本方法采取两种常见的规格,即会话流和数据包。每个捕获的pcap文件会包含一段时间内的网络通讯流量,使用数据包处理程序tshark将pcap文件按照五元组做会话流和数据包的切分,按照访问的目标应用或服务打好标签。将会话流和数据包进行bigram编码处理和嵌入表征处理,与步骤1-2不同的是,分段嵌入表示只有一种类别。
[0061]
s4:低资源微调训练。
[0062]
在预训练好的模型上,使用少量带标注的数据样本作为输入,在预训练好的模型基础上微调训练模型,从多个并行的softmax激活层的输出结果获取数据样本代表的多个应用或服务类别,完成加密流量识别。
[0063]
本发明的一个实施例中,提供一种基于大规模预训练的多场景低资源加密流量识别方法,包括以下步骤:按步骤s1-1、步骤s1-2所述,选择网关处周期性采集加密流量,使用自动化脚本开启多线程模拟访问多个网站和移动应用的情况,同时捕获流量保存为pcap文件,从pcap文件中提取报文序列并进行bigram编码。出于综合效率的考虑,在获取burst时的有效报文长度固定为512(按单数据包报文长度为120的标准),不足512的部分用0填充,超出的部分会被截断。通过wordpiece嵌入表征增添特殊符号表示并划分每个burst报文序列的完整分段序列。
[0064]
按步骤s2-1、步骤s2-2所述,使用transformer网络结构处理大规模无标注数据集,transformer的层数为12层,每层的自注意力头是12个,隐藏单元数量为768。训练的批次选择为32,训练的步数选择为500,000,学习率为2
×
10-5
,热身比率是0.1。训练模型,待两个自监督任务的损失值稳定后保存模型参数用于微调学习使用。
[0065]
按步骤s3所述,选择alexa排名前5000的120种实施tls 1.3加密协议的网站,使用自动化脚本开启多线程模拟访问网站,并捕获流量保存为pcap文件。同时使用公开的中国、美国、印度地区安卓和ios市场排名前100的移动应用数据集,公开的恶意家族服务ustc-tfc数据集,公开的vpn和tor加密应用和服务iscx数据集。使用数据包和会话流的两种规格进行pcap文件的切分,并使用步骤s1-1、s1-2同样的方式提取bigram编码后的嵌入表征序列。根据访问的应用或服务类别标注好后,按照8:1:1划分为训练集、验证集和测试集。
[0066]
按步骤s4所述,将步骤s3中带标注数据集输入模型,微调训练模型,训练的批次选择为32,训练的轮次为10,对于数据包规格的学习率为2
×
10-5
,会话流规格的学习率为6
×
10-5
。从激活层得到输出的加密流量应用/服务的识别结果,确定测试样本的类别,检验模型的识别效果。
[0067]
本发明的另一实施例提供一种基于大规模预训练的多场景低资源加密流量识别系统,其包括:
[0068]
无标注加密流量采集模块,用于采集无标注加密流量;
[0069]
预训练模块,用于通过预训练网络模型学习无标注加密流量的上下文关系,以及通过预训练网络模型学习无标注加密流量的burst同源关系;
[0070]
带标注多场景加密流量获取模块,用于获取带标注多场景加密流量;
[0071]
模型微调模块,用于利用带标注多场景加密流量对预训练网络模型进行微调,得到加密流量识别模型;
[0072]
加密流量识别模块,用于利用加密流量识别模型对待测网络流量进行加密流量识别。
[0073]
其中各模块的具体实施过程参见前文对本发明方法的描述。
[0074]
本发明的另一实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
[0075]
本发明的另一实施例提供一种计算机可读存储介质(如rom/ram、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
[0076]
本发明的另一实施例提供一种计算机程序网络接口(如程序引用库、web服务api),所述计算机程序网络接口访问计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
[0077]
以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献