一种网站指纹防御的智能流量混淆方法、系统及计算机存储介质

文档序号:26503194发布日期:2021-09-04 04:41阅读:159来源:国知局
一种网站指纹防御的智能流量混淆方法、系统及计算机存储介质

1.本发明属于网络安全技术,具体涉及一种网站指纹防御的智能流量混淆方法、系统及计算机存储介质。


背景技术:

2.随着网络规模的扩大,越来越多的人使用网络进行娱乐和工作,但随之而来的是各种各样的网络监视,严重威胁到了网络用户的隐私。为了隐藏网络活动中的隐私信息,研究者们开发了一系列的匿名通信系统,如i2p、mix、tor等,可以为用户提供隐私保护和信息隐藏。tor是当前最受欢迎的匿名通信系统之一,tor致力于保护用户在访问网络时的安全性和隐私性,防止窃听者关联用户及其通信对象。但是tor网络容易受到流量分析攻击,其中以网站指纹攻击为代表,可以通过被动的监听客户端与tor网络第一跳结点之间的流量,运行机器学习技术识别出客户端所要访问的网页。一方面,攻击者在客户端和服务器之间收集传输的加密数据包,提取流量模式和特征,然后使用机器学习技术进行流量分析,推断出用户正在访问的目标网站。另一方面,防御者(例如tor)已经开发出各种手段来伪装和变形数据包,用以抵御各种攻击方式。
3.网站指纹攻击主要是从加密数据包中提取有用的特征来训练模型,特征越显著、独特,网站指纹攻击的效果越好。因此大部分的网站指纹防御措施都是针对此特点进行设计的,目的是混淆网站加密数据包的模式。防御措施包括流量变形(使得源网站的流量看起来是来自另一个人网站)和时间变形(客户端和服务器之间数据包交换所需时间)。
4.但是随着深度学习的发展,越来越多的网站指纹攻击技术使用基于神经网络的分类器,导致以往的网站指纹防御方法无法抵御攻击。因此需要一个更加有效的网站指纹防御方法。


技术实现要素:

5.发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种网站指纹防御的智能流量混淆方法、系统及计算机存储介质,实现自适应的流量填充方式,抵抗现有的网站指纹攻击。
6.技术方案:本发明的一种网站指纹防御的智能流量混淆方法,包括以下步骤:
7.步骤s1、目标网站流量筛选和选择
8.选取用户不经常访问的网站作为目标网站,形成目标网站集,收集目标网站集中的网站流量形成目标流量集,提取目标流量序列中的到达间隔时间特征,将所有的到达间隔时间特征按列存储在于一个矩阵,形成到达间隔时间矩阵;
9.步骤s2、流量矩阵计算
10.根据到达间隔时间矩阵计算流量分布矩阵,确定目标流量与源流量之间的分布差异;同时设置填充参数,确定流量填充的范围和数量;
11.步骤s3、时间采样
12.使用余弦距离计算目标流量与源流量之间的距离,进而得到余弦距离最小的目标网站流量,从该目标流量序列中采样时间生成计时器;在程序收到真实数据包时启动计时器开始倒计时;若倒计时结束前又收到真实数据包,重新进行时间采样并计时(即重复步骤s3);
13.步骤s4、数据包填充
14.倒计时结束启动填充程序,根据时间戳、数据包方向和大小信息生成虚拟数据包,随后填充虚拟数据包并等待下一条真实数据包的到来;若流量还未结束,返回步骤步骤s3;若流量结束,则结束填充进程。
15.进一步地,所述步骤s1中目标网站是指用户不经常访问且攻击者不感兴趣的正常网站,然后通过模拟用户网络环境访问目标网站,收集访问过程中产生的流量用作目标流量集。
16.进一步地,所述步骤s1中到达间隔时间矩阵的计算方法为:先对目标流量集中所有流量序列进行统计,去除异常流量,确定流量序列长度为所有流量序列长度的平均值;然后计算每个流量序列中的到达间隔时间,按列存储形成到达间隔时间矩阵。
17.进一步地,所述步骤s2中计算流量分布矩阵的具体过程为:
18.由于每个流量序列的到达间隔时间都是一个列向量,因此对到达间隔时间矩阵也是按列计算;对于到达间隔时间矩阵,首先计算得到一列中每个到达间隔时间在此列中所占概率,随后用一个新的列向量表示概率质量函数,依次计算到达间隔时间矩阵中的列向量形成流量分布矩阵。
19.进一步地,所述步骤s2中填充参数包括填充时间w
max
和填充数据包数量p;
20.通过填充时间w
max
确定流量填充的最大范围,即填充流量序列的前w秒,w由(1,w
max
)均匀采样得到;
21.通过参数p确定数据包的填充数量,即在需要填充的流量间隙中,填充p个虚拟数据包,p由(1,p)随机采样得到。
22.进一步地,所述步骤s3的具体过程为:
23.根据目标流量序列之间的相似度来选取一个目标网站流量作为采样对象,即计算采样对象与源流量序列之间的余弦距离,余弦距离越小,相似度越小;假设给定的源流量序列为t
s
,目标流量为t

s
,则最小化距离函数d(t
s
,t

s
),距离最小的目标流量作为采样对象;
24.同时为保证流量填充不会造成用户实际体验的下降,需要确定流量填充位置为真实流量序列的间隙,这样不会对真实数据包的接受发送造成任何的延迟;确定采样对象的目标流量序列之后,随机从中采样出一个时间t进行倒计时,以此寻找到真实流量序列中的间隙;若倒计时结束前又收到真实数据包,说明此间隙插入虚拟数据包会产生延迟,因此重新进行时间采样;若倒计时结束,则进入填充阶段。
25.进一步地,所述步骤s4的具体方法为:
26.倒计时结束,说明存在可填充的流量间隙,然后根据当前数据包属性生成虚数据包generate_dummy(t,dir,length),所述数据包属性包括时间t、数据包大小length和方向dir;
27.然后进入填充阶段,填充时数据包的大小统一设定为最大传输单元(mtu),数据包
方向用正负号表示,虚拟数据包的时间为前一流量的时间戳加上填充间隙,以模仿真实流量的发送情况;并且只填充流量序列的前w秒,即保证了填充的效率又避免产生较大的带宽消耗;然后从(1,p)随机采样得到p,即p

random(1,p),确定需要填充的虚拟数据包个数,若在填充时收到真实数据包,则直接截断虚拟数据包并停止填充,确保真实数据的准时收发;
28.填充完成之后,回到时间采样阶段,等待下一个流量间隙。
29.本发明还公开一种用于实现网站指纹防御的智能流量混淆方法的系统,包括目标网站流量筛选和选择模块、流量矩阵计算模块、时间采样模块、数据包填充模块;
30.所述目标网站流量筛选和选择模块根据用户网络习惯选取目标网站集,模拟用户网络环境收集目标网站流量;
31.所述流量矩阵计算模块根据目标网站流量集计算到达间隔时间矩阵,将符合要求流量序列中的到达间隔时间属性按列存储;
32.所述时间采样模型根据到达间隔时间矩阵计算流量分布矩阵,并从分布矩阵中进行时间采样生成计时器,以期寻找真实流量序列的填充间隙;
33.所述数据包填充模块在倒计时结束之后,生成虚拟数据包填充进流量序列的间隙中,保证流量填充的零延迟特点。
34.本发明还公开一种计算机存储介质,该计算机存储介质中存储有网站指纹防御的智能流量混淆方法程序,执行该程序时实现如权利要求1至7任意一项所述的网站指纹防御的智能流量混淆方法。
35.有益效果:本发明针对现有网站指纹攻击的特点和防御的不足,结合时间采样和自适应随机填充方法,在流量间隙中填充虚拟数据包,扩充了流量序列,增大了填充前后流量分布的差异,导致网站指纹攻击分类器不能很好的提取流量特征并学习用户流量的模式。由于是在用户流量序列的间隙中填充流量,因此不会延迟用户的真实流量数据,保证了良好的网络体验,同时因为确定了流量填充范围,在提升防御性能的前提下减少了网络带宽消耗,使得此发明更易于部署在实际场景中,大大提高了当前网站指纹防御方法的性能和实用性。
附图说明
36.图1为本发明中的整体流程示意图;
37.图2为实施例中有限状态机转换图;
38.图3为实施例中系统示意图。
具体实施方式
39.下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
40.如图1所示,本发明是一种适用于匿名通信系统的网站指纹混淆方法,结合直接时间采样和自适应随机填充技术,针对网络用户生成的网站流量进行混淆。首先从非用户目标网站抓取流量用作目标流量集,然后使用直接时间采样方法从目标流量集中获取填充阶段所需的时间信息,随后采样自适应随机填充技术向用户流量中填充虚拟数据包以改变整
个流量序列,使得源网站流量模式趋向于某个目标网站流量模式,以此来混淆网站指纹攻击分类器。本发明能够实现网站流量的智能混淆,根据源流量分布的不同自适应的选择对应的目标网站流量,尽可能的扩大填充前后的流量分布差异。
41.本发明通过以下技术特征实现实现自适应的流量填充进而抵抗现有的网站指纹攻击:一、采样目标流量的选取与现有技术不同(首先从非用户目标网站抓取流量用作目标流量集),本发明使得填充之后的流量具有较大的改变;二、本发明使用自适应随机填充机制,在填充的过程中充分的混淆了原始流量的特征。
42.本实施例的具体步骤为:
43.s101:选取用户不经常访问的网站作为目标网站集,收集目标网站集合中的网站流量形成目标流量集,提取目标流量序列中的到达间隔时间特征,将所有的到达间隔时间按列存储在一个矩阵当中;
44.s102:根据s101中的到达间隔时间矩阵计算流量分布矩阵,确定目标流量与源流量之间的分布差异。同时设置填充参数,确定流量填充的范围和数量;
45.s103:使用余弦距离计算目标流量与源流量之间的距离,选择余弦距离最小的目标网站流量,从此流量序列中采样时间生成计时器。在程序收到真实数据包时启动计时器开始倒计时。若倒计时结束前又收到了真实数据包,重复步骤s103;
46.s104:倒计时结束启动填充程序,根据时间戳、数据包方向和大小等信息生成虚拟数据包,随后填充虚拟数据包并等待下一条真实数据包的到来。若流量还未结束,返回步骤s103;若流量结束,则结束填充进程。
47.其中,数据包自适应填充算法详细过程为:
[0048][0049]
如图2所示,本发明通过一个有限状态机来描述网站流量的变化。状态机包含四个状态,分别是初始化、采样、填充和终止状态,而目标网站流量的收集属于预备工作,因此没有出现在状态机当中。当用户启动包含本发明的程序时,状态机从初始化开始,首先计算目标网站流量的到达间隔时间矩阵,为后续的时间采样提供依据。在收到真实数据包之后,开始进行时间采样、倒计时以及填充参数采样等一系列设置,确定流量序列的间隙之后开始虚拟数据包的填充。在流量序列结束时,状态机停止在某个目标网站流量所属的类别或模式上,该目标网站流量的选取依据由源流量与该流量的余弦距离所确定,即目标网站流量
与源流量的距离是最小的。
[0050]
如图3所示,本发明的一个实施例的一种适用于匿名通信系统的网站指纹混淆方法,包括以下模块:包括目标网站流量筛选和选择模块100、流量矩阵计算模块200、时间采样模块300、数据包填充模块400;
[0051]
目标网站流量筛选和选择模块100,根据用户网络习惯选取目标网站集,模拟用户网络环境收集目标网站流量;
[0052]
流量矩阵计算模块200根据目标网站流量集计算到达间隔时间矩阵,将符合要求流量序列中的到达间隔时间属性按列存储;
[0053]
时间采样模块300根据到达间隔时间矩阵计算流量分布矩阵,并从分布矩阵中进行时间采样生成计时器,以期寻找真实流量序列的填充间隙;
[0054]
数据包填充模块400在倒计时结束之后,生成虚拟数据包填充进流量序列的间隙中,保证流量填充的零延迟特点。
[0055]
本发明目标流量选取的证明:
[0056]
假设一个神经网络函数为f(x)=y,输入为输出为假设一个监控网站为s,基于深度学习的分类器模型为f。对于给定的源流量序列t
s
,其类别为s∈s,本发明是寻找一个扰动δ使得t

s
=t
s
+δ,t

s
为目标流量,属于非监控网站,即f(t

s
)=t,t≠s。t
s
是源网站的流量序列,表示为:
[0057][0058]
其中n为流量序列的长度。扰动δ为虚拟流量序列,由虚拟数据包组成。
[0059]
方法的目的形式化定义为:
[0060]
minimize
[0061]
subject to f(t
s
+δ)=t,
[0062]
t
s
+δ∈[0,1]
n
[0063]
源流量序列t
s
固定不变,则本发明的目的是寻找一个δ能够最小化t
s
和t

s
之间的距离d(t
s
,t
s
+δ)。是一个距离度量,这里选择的是余弦距离。
[0064]
为最小化距离,本发明使用基于adam优化器的梯度下降对距离函数进行计算,则扰动δ定义为:
[0065][0066]
其中α为学习率,β1和β2为超参数(β1,β2∈[0,1))。
[0067]
计算的梯度为具体形式为:
[0068][0069]
其中p
i
是源流量序列t
s
中的第i个数据包。然后通过填充扰动δ进源流量序列,使得t

s
=t
s
+δ,分类器便难以学习到源流量的特征并产生错误的分类结果。
[0070]
基于以上证明,本发明选择的目标网站流量t

s
是与源流量序列最为不同的,并且会导致分类器预测类别失误。
[0071]
实施例:
[0072]
本实施基于上述技术方案以业界著名的匿名通信系统tor作为流量生成和获取的载体,进行智能流量混淆,同时本实施例还基于tor设定网站指纹攻击和防御的应用环境。
[0073]
步骤一:建立目标网站流量集并计算到达间隔时间特征矩阵。网站指纹技术所面向的是使用tor或其他匿名通信系统的用户,识别匿名用户产生的流量称为指纹攻击,加强用户在网络活动中的匿名性称为指纹防御。
[0074]
因此,本实施例在采集目标网站流量时,需要模拟tor用户网络环境,然后访问网站,在用户和tor网络第一跳节点之间抓取流量组成流量集。同时按照业界普遍设定,将网站划分为两类:监控网站和非监控网站。监控网站指攻击者感兴趣的网站,非监控网站为用户未访问或攻击者不感兴趣的网站,数据集组成由表1所示。
[0075]
本实施例将非监控网站作为目标网站集,对其进行数据预处理,只留下时间戳、数据包大小和数据包方向这三种流量特征,并存储为文本文件,每一个文本代表一条完整的网络流。
[0076]
获得目标网站流量集之后,计算每一条流中的到达间隔时间特征,将其存储在一个维度为n列向量中。到达间隔时间特征矩阵由m个列向量组成,其中若有流长度小于n,则剩余部分由0填充;若大于n,则截断多余部分。由此得到一个矩阵其中x
i
=[x
1i
,x
2i
,

,x
ni
]
t
,矩阵中每一个元素x
ji
表示一个到达间隔时间。
[0077]
表1 tor数据集
[0078][0079]
步骤二:计算流量分布矩阵并设置填充参数。根据到达间隔时间特征矩阵计算每个特征的概率质量函数得到流量分布矩阵其中d
i
=[d
1i
,d
2i
,

,d
ni
]
t
,矩阵中元素,d
ji
表示第i个流中第j大的到达间隔时间的概率。
[0080]
在以往的流量填充方法中,大多数都是针对整条流进行数据包填充,这不仅增加了带宽消耗,也十分容易导致数据包的延迟。然而一条流的前几秒部分(称为流的前域)已经包含了大量有关此流量的特征,攻击者只获取流的前域便能以高准确率判断出此流量的来源。
[0081]
因此,本实施例设定一个数据包填充范围参数w
max
,在数据包填充时从(1,w
max
)采样得到参数w确定填充流量的范围。
[0082]
同时为进一步加强流量混淆,本实施例还设定一个填充扰动参数p,填充时从(1,p)中采样得到p,即在每一个可填充间隙中填充的数据包个数为p,这样既使得原始流量可以充分混淆,掩盖流量特征,又保证了填充过程的随机性,在不同时间对同一条流量进行填充获得的流量分布是完全不同的。
[0083]
步骤三:选取目标流量。根据目标流量与原始流量之间的相似度来选取一个目标网站流量作为采样对象,即计算采样对象与源流量序列之间的余弦距离,余弦距离越小,相
似度越小,即最小化距离函数距离最小的目标流量作为采样对象。
[0084]
步骤四:数据包填充。为保证流量填充不会造成用户实际体验的下降,因此对于真实数据包不能做任何处理和延迟。在数据包填充之前,从目标流量采样一个时间t作为计时器,倒计时结束之前收到真实数据包则将其直接发送并重新采样时间;若倒计时结束,则进入虚拟数据包填充阶段。程序根据时间戳、数据包大小和方向特征生成虚拟数据包,虚拟数据包个数又参数p决定。之后将虚拟数据包填充进流量序列,若填充过程又再次收到真实数据包,则停止虚拟数据包填充,发送真实数据包并重新开始时间采样。当填充流量序列范围超过参数w时,判定此条流量填充结束,程序退出,准备下一条流量的填充。
[0085]
经过以上四个步骤,原始流量的数据包填充完成,此时原始流量的流量分布与之前大不相同,因此基于机器学习或深度学习分类器无法识别此流量。如果攻击者需要识别填充之后的流量,则需要抓取填充之后的流量重新对分类器进行训练,这将对攻击者造成很大的负担,极大地提高了攻击者的攻击成本。上述实施例表明,本发明针对网络用户生成的网站流量进行混淆,成功抵御了基于神经网络分类器的网站指纹攻击。首先从非用户目标网站抓取流量用作目标流量集,然后使用直接时间采样方法从目标流量集中获取填充阶段所需的时间信息,随后采样自适应随机填充技术向用户流量中填充虚拟数据包以改变整个流量序列,使得源网站流量模式趋向于某个目标网站流量模式,以此来混淆网站指纹攻击分类器。本发明结合时间采样和自适应随机填充能够实现网站流量的智能混淆,解决了匿名网络中网页访问的隐私保护问题。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1